diff --git a/src/builtin_functions.c b/src/builtin_functions.c index 9820f6bbd8cfa5a3b4cb6973a068ae1e8ba485d6..f422cf214c426fbce4440643cc0553b41df02843 100644 --- a/src/builtin_functions.c +++ b/src/builtin_functions.c @@ -623,6 +623,8 @@ void f_exit(INT32 args) if(sp[-args].type != T_INT) error("Bad argument 1 to exit.\n"); + exit_on_error="Pike is exiting: "; + call_callback(&exit_callbacks, (void *)0); free_callback(&exit_callbacks); diff --git a/src/error.c b/src/error.c index c09e5b30da3cc287823c90cdd52aed36637b60c5..1770453aa3ba3a1c7463c4d4da3f04c1c3254bdb 100644 --- a/src/error.c +++ b/src/error.c @@ -88,7 +88,7 @@ void va_error(char *fmt, va_list args) abort(); } - if(exit_on_error && !recoveries) + if(exit_on_error || !recoveries) { if(!exit_on_error) exit_on_error="No error recovery context: "; diff --git a/src/main.c b/src/main.c index 34bbe127fd7442630b317ffb0155df41d25850e6..9834a4ad6794fc80fb49433bbe81f2b1dd8d44c1 100644 --- a/src/main.c +++ b/src/main.c @@ -264,7 +264,6 @@ void exit_main() void cleanup_pike_types(); void cleanup_program(); - exit_on_error="Pike is exiting: "; cleanup_objects(); exit_signals(); exit_lex();