diff options
Diffstat (limited to 'error.c')
-rw-r--r-- | error.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -67,6 +67,7 @@ errorstr(int code) case EValue: err = L"VALUE ERROR"; break; case EDomain: err = L"DOMAIN ERROR"; break; case ETimeout: err = L"TIMEOUT ERROR"; break; + case EStack: err = L"STACK OVERFLOW"; break; case ENotImplemented: err = L"NOT IMPLEMENTED"; break; default: err = L""; break; } @@ -77,11 +78,14 @@ void displayerror(void) { ThreadData *td = getthreaddata(); + int tmp = td->requiredstack; + td->requiredstack = 0; Array *error = allocarray(AtypeArray, 1, 3); error->shape[0] = 3; error->arraydata[0] = mkrunearray(errorstr(td->lasterror)); error->arraydata[1] = mkrunearray(td->lasterrormsg ? td->lasterrormsg : L""); error->arraydata[2] = fnSame(td->name); rundfn(L"0::⎕RAWIO←⍵ ⋄ ('!' ⍵) ⍈ ⎕SESSION", nil, nil, nil, error); + td->requiredstack = tmp; freearray(error); }
\ No newline at end of file |