/[cvs]/stack/stack.c
ViewVC logotype

Diff of /stack/stack.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.38 by teddy, Wed Feb 6 11:15:05 2002 UTC revision 1.39 by teddy, Wed Feb 6 11:39:20 2002 UTC
# Line 315  void print_h(stackitem *stack_head) Line 315  void print_h(stackitem *stack_head)
315        printf(" ");        printf(" ");
316        stack_head=stack_head->next;        stack_head=stack_head->next;
317      }      }
318      printf("] ");      printf("]");
319      break;      break;
320    default:    default:
321      printf("#<unknown %p>", (stack_head->item->content.ptr));      printf("#<unknown %p>", (stack_head->item->content.ptr));
# Line 603  extern void expand(environment *env) Line 603  extern void expand(environment *env)
603    
604  }  }
605    
606    /* Reverse a list */
607    extern void rev(environment *env){
608      stackitem *old_head, *new_head, *item;
609    
610      if((env->head)==NULL) {
611        printerr("Too Few Arguments");
612        env->err=1;
613        return;
614      }
615    
616      if(env->head->item->type!=list) {
617        printerr("Bad Argument Type");
618        env->err=2;
619        return;
620      }
621    
622      old_head=(stackitem *)(env->head->item->content.ptr);
623      new_head=NULL;
624      while(old_head != NULL){
625        item=old_head;
626        old_head=old_head->next;
627        item->next=new_head;
628        new_head=item;
629      }
630      env->head->item->content.ptr=new_head;
631    }
632    
633  /* Compares two elements by reference. */  /* Compares two elements by reference. */
634  extern void eq(environment *env)  extern void eq(environment *env)
635  {  {

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26