diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2022-02-22 21:25:36 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2022-02-22 21:25:36 +0000 |
commit | 40af1deff9db7b86532db6957ebdbc0aaff38db1 (patch) | |
tree | cb417113744f26a015d36ee6732746c4e808e700 /main.c | |
parent | ae6471f1c94f51df540d95edc09c7749002f44e8 (diff) |
Make errors more like dyalog:
* Use the same error numbers
* Rename ⎕THROW to ⎕SIGNAL
* Implement ⎕EN to inspect the last error code
* Implement ⎕EM to get a message from an error code
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -33,10 +33,14 @@ threadmain(int argc, char *argv[]) restart: if(setjmp(eg->jmp)){ ThreadData *td = getthreaddata(); - if(td->lasterrormsg) - print("%S: %S\n", errorstrs[td->lasterror], td->lasterrormsg); - else - print("%S\n", errorstrs[td->lasterror]); + Rune *msg = errorstr(td->lasterror); + if(td->lasterrormsg){ + if(runestrlen(msg) == 0) + print("%S\n", td->lasterrormsg); + else + print("%S: %S\n", errorstr(td->lasterror), td->lasterrormsg); + }else + print("%S\n", errorstr(td->lasterror)); while(getcurrentdfn()) popdfnframe(); goto restart; |