--- stack/stack.c 2002/02/13 00:16:00 1.75 +++ stack/stack.c 2002/02/13 00:47:36 1.76 @@ -531,7 +531,7 @@ /* Reverse (flip) a list */ extern void rev(environment *env){ - stackitem *old_head, *new_head, *item; + stackitem *item, *temp, *prev= NULL; if((env->head)==NULL) { printerr("Too Few Arguments"); @@ -545,15 +545,16 @@ return; } - old_head=(stackitem *)(env->head->item->content.ptr); - new_head=NULL; - while(old_head != NULL){ - item=old_head; - old_head=old_head->next; - item->next=new_head; - new_head=item; + item= (stackitem *)(env->head->item->content.ptr); + while(item->next!=NULL){ + temp= item->next; + item->next= prev; + prev= item; + item= temp; } - env->head->item->content.ptr=new_head; + item->next= prev; + + env->head->item->content.ptr=item; } /* Make a list. */