--- stack/stack.c 2002/02/02 15:12:56 1.20 +++ stack/stack.c 2002/02/02 15:26:10 1.21 @@ -208,7 +208,7 @@ printf("%d", (*stack_head)->content.val); break; case string: - printf("%s", (char*)(*stack_head)->content.ptr); + printf("\"%s\"", (char*)(*stack_head)->content.ptr); break; case ref: printf("%s", ((stackitem*)(*stack_head)->content.ptr)->id); @@ -243,7 +243,7 @@ { if(*stack_head != NULL) { print_st(*stack_head, 1); - printf("\n"); + nl(); } else { printerr("Stack empty"); } @@ -335,14 +335,14 @@ break; } /* If symbol */ - if((convert= sscanf(in_line, "%[^] ;\n\r]%[^\n\r]", temp, rest))) { + if((convert= sscanf(in_line, "%[^][ ;\n\r]%[^\n\r]", temp, rest))) { push_ref(stack_head, in_hash, temp); break; } /* If single char */ if((convert= sscanf(in_line, "%c%[^\n\r]", temp, rest))) { if(*temp==';') { - if(non_eval_flag) { + if(!non_eval_flag) { eval(stack_head); /* Evaluate top element */ break; } @@ -354,7 +354,8 @@ if(*temp==']') { push_ref(stack_head, in_hash, "["); pack(stack_head); - non_eval_flag--; + if(non_eval_flag!=0) + non_eval_flag--; break; }