diff options
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -27,23 +27,31 @@ main(int argc, char *argv[]) break; }ARGEND + int errorcode; +restart: + SETUPERROR(errorcode); + if(errorcode){ + if(globalerror.msg) + print("%S: %S\n", errorstrs[errorcode], globalerror.msg); + else + print("%S\n", errorstrs[errorcode]); + goto restart; + } + while(!off){ checkmem("main loop"); Rune *input = prompt(L"\t"); Datum *result = evalline(input, 1); - if(result == nil){ - if(errormsg == nil) - off = 1; - else - print("ERROR: %S\n", errormsg); - }else{ + if(result == nil) + continue; + else{ if(result[0].shy == 0) print("%S\n", ppdatum(*result)); if(result->tag == ArrayTag) freearray(result->array); free(result); } - print("Unfreed arrays: %d\n", alloccounts); + /* print("Unfreed arrays: %d\n", alloccounts); */ } exits(nil); } |