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

Diff of /stack/stack.c

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

revision 1.48 by teddy, Thu Feb 7 04:34:42 2002 UTC revision 1.49 by masse, Thu Feb 7 05:24:19 2002 UTC
# Line 531  extern void eval(environment *env) Line 531  extern void eval(environment *env)
531      toss(env);      toss(env);
532      if(env->err) return;      if(env->err) return;
533      temp_string= malloc(strlen((char*)temp_val->content.ptr)+5);      temp_string= malloc(strlen((char*)temp_val->content.ptr)+5);
534      strcat(temp_string, "[ ");      strcpy(temp_string, "[ ");
535      strcat(temp_string, (char*)temp_val->content.ptr);      strcat(temp_string, (char*)temp_val->content.ptr);
536      strcat(temp_string, " ]");      strcat(temp_string, " ]");
537      stack_read(env, temp_string);      stack_read(env, temp_string);
# Line 905  int main() Line 905  int main()
905  /* + */  /* + */
906  extern void sx_2b(environment *env) {  extern void sx_2b(environment *env) {
907    int a, b;    int a, b;
908      size_t len;
909      char* new_string;
910      value *a_val, *b_val;
911    
912    if((env->head)==NULL || env->head->next==NULL) {    if((env->head)==NULL || env->head->next==NULL) {
913      printerr("Too Few Arguments");      printerr("Too Few Arguments");
914      env->err=1;      env->err=1;
915      return;      return;
916    }    }
917    
918      if(env->head->item->type==string
919         && env->head->next->item->type==string) {
920        a_val= env->head->item;
921        b_val= env->head->next->item;
922        a_val->refcount++;
923        b_val->refcount++;
924        toss(env); if(env->err) return;
925        toss(env); if(env->err) return;
926        len= strlen(a_val->content.ptr)+strlen(b_val->content.ptr)+1;
927        new_string= malloc(len);
928        strcpy(new_string, b_val->content.ptr);
929        strcat(new_string, a_val->content.ptr);
930        free_val(a_val); free_val(b_val);
931        push_cstring(&(env->head), new_string);
932        free(new_string);
933        return;
934      }
935        
936    if(env->head->item->type!=integer    if(env->head->item->type!=integer
937       || env->head->next->item->type!=integer) {       || env->head->next->item->type!=integer) {

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49

root@recompile.se
ViewVC Help
Powered by ViewVC 1.1.26