From 40af1deff9db7b86532db6957ebdbc0aaff38db1 Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Tue, 22 Feb 2022 21:25:36 +0000 Subject: Make errors more like dyalog: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- main.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 60beed2..d67d742 100644 --- a/main.c +++ b/main.c @@ -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; -- cgit v1.2.3