--- stack/stack.c 2002/03/21 03:19:32 1.120 +++ stack/stack.c 2002/03/27 14:45:17 1.121 @@ -1109,7 +1109,7 @@ } if(myenv.interactive) { - printf("Stack version $Revision: 1.120 $\n\ + printf("Stack version $Revision: 1.121 $\n\ Copyright (C) 2002 Mats Alritzson and Teddy Hogeborn\n\ Stack comes with ABSOLUTELY NO WARRANTY; for details type 'warranty;'.\n\ This is free software, and you are welcome to redistribute it\n\ @@ -1670,7 +1670,9 @@ extern void to(environment *env) { int ending, start, i; - value *iterator, *temp; + value *iterator, *temp, *end; + + end= new_val(env); if(env->head->type==empty || CDR(env->head)->type==empty) { printerr("Too Few Arguments"); @@ -1705,11 +1707,11 @@ if(iterator->type==empty || (CAR(iterator)->type==symb && CAR(iterator)->content.sym->id[0]=='[')) { - temp= NULL; + temp= end; toss(env); } else { /* Search for first delimiter */ - while(CDR(iterator)!=NULL + while(CDR(iterator)->type!=empty && (CAR(CDR(iterator))->type!=symb || CAR(CDR(iterator))->content.sym->id[0]!='[')) iterator= CDR(iterator); @@ -1717,9 +1719,9 @@ /* Extract list */ temp= env->head; env->head= CDR(iterator); - CDR(iterator)= NULL; + CDR(iterator)= end; - if(env->head!=NULL) + if(env->head->type!=empty) toss(env); }