--- stack/stack.c 2003/08/04 11:57:33 1.127 +++ stack/stack.c 2003/08/04 13:50:53 1.128 @@ -185,7 +185,7 @@ printf(" integer: %d", env->gc_ref->item->content.i); break; case func: - printf(" func: %p", env->gc_ref->item->content.ptr); + printf(" func: %p", env->gc_ref->item->content.func); break; case symb: printf(" symb: %s", env->gc_ref->item->content.sym->id); @@ -203,7 +203,7 @@ /* Keep values */ env->gc_count += sizeof(value); if(env->gc_ref->item->type==string) - env->gc_count += strlen(env->gc_ref->item->content.ptr)+1; + env->gc_count += strlen(env->gc_ref->item->content.string)+1; titem= env->gc_ref->next; env->gc_ref->next= new_head; @@ -300,10 +300,10 @@ value *new_value= new_val(env); int length= strlen(in_string)+1; - new_value->content.ptr= malloc(length); + new_value->content.string= malloc(length); assert(new_value != NULL); env->gc_count += length; - strcpy(new_value->content.ptr, in_string); + strcpy(new_value->content.string, in_string); new_value->type= string; push_val(env, new_value); @@ -346,8 +346,7 @@ return; } - new_string= - mangle_str((const char *)(CAR(env->head)->content.ptr)); + new_string= mangle_str(CAR(env->head)->content.string); toss(env); if(env->err) return; @@ -412,7 +411,7 @@ if(dlerr==NULL) { /* If a function was found */ new_fvalue->type= func; /* The new value is a function pointer */ - new_fvalue->content.ptr= funcptr; /* Store function pointer */ + new_fvalue->content.func= funcptr; /* Store function pointer */ (*new_symbol)->val= new_fvalue; /* Bind the symbol to the new function value */ } @@ -454,13 +453,13 @@ break; case string: if(noquote){ - if(fprintf(stream, "%s", (char*)(val->content.ptr)) < 0){ + if(fprintf(stream, "%s", val->content.string) < 0){ perror("print_val"); env->err= 5; return; } } else { /* quote */ - if(fprintf(stream, "\"%s\"", (char*)(val->content.ptr)) < 0){ + if(fprintf(stream, "\"%s\"", val->content.string) < 0){ perror("print_val"); env->err= 5; return; @@ -475,14 +474,14 @@ } break; case func: - if(fprintf(stream, "#", (funcp)(val->content.ptr)) < 0){ + if(fprintf(stream, "#", val->content.func) < 0){ perror("print_val"); env->err= 5; return; } break; case port: - if(fprintf(stream, "#", (funcp)(val->content.p)) < 0){ + if(fprintf(stream, "#", val->content.p) < 0){ perror("print_val"); env->err= 5; return; @@ -653,7 +652,7 @@ /* If it's a lone function value, run it */ case func: - in_func= (funcp)(CAR(env->head)->content.ptr); + in_func= CAR(env->head)->content.func; toss(env); if(env->err) return; return in_func(env); @@ -823,7 +822,7 @@ } if(myenv.interactive) { - printf("Stack version $Revision: 1.127 $\n\ + printf("Stack version $Revision: 1.128 $\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\ @@ -881,8 +880,7 @@ new_value->content= old_value->content; break; case string: - (char *)(new_value->content.ptr)= - strdup((char *)(old_value->content.ptr)); + new_value->content.string= strdup(old_value->content.string); break; case tcons: @@ -1006,15 +1004,15 @@ readlinestream(env, env->inputstream); if(env->err) return; - if(((char *)(CAR(env->head)->content.ptr))[0]=='\0'){ + if((CAR(env->head)->content.string)[0]=='\0'){ env->err= 4; /* "" means EOF */ return; } - env->in_string= malloc(strlen(CAR(env->head)->content.ptr)+1); + env->in_string= malloc(strlen(CAR(env->head)->content.string)+1); assert(env->in_string != NULL); env->free_string= env->in_string; /* Save the original pointer */ - strcpy(env->in_string, CAR(env->head)->content.ptr); + strcpy(env->in_string, CAR(env->head)->content.string); toss(env); if(env->err) return; }