diff --git a/arch/carbon/messagebox.c b/arch/carbon/messagebox.c index a76f9d478..5e7965770 100644 --- a/arch/carbon/messagebox.c +++ b/arch/carbon/messagebox.c @@ -87,7 +87,7 @@ void msgbox_warning(char *message) display_mac_alert(message, 0); } -void msgbox_error(char *message) +void msgbox_error(const char *message) { display_mac_alert(message, 1); } diff --git a/arch/include/messagebox.h b/arch/include/messagebox.h index 27a7d8006..711f55056 100644 --- a/arch/include/messagebox.h +++ b/arch/include/messagebox.h @@ -13,6 +13,6 @@ extern void msgbox_warning(char *message); // Display an error in a messagebox -extern void msgbox_error(char *message); +extern void msgbox_error(const char *message); #endif diff --git a/arch/win32/messagebox.c b/arch/win32/messagebox.c index f8d9d22d5..8ae2f6bea 100644 --- a/arch/win32/messagebox.c +++ b/arch/win32/messagebox.c @@ -38,7 +38,7 @@ void msgbox_warning(char *message) display_win32_alert(message, 0); } -void msgbox_error(char *message) +void msgbox_error(const char *message) { display_win32_alert(message, 1); } diff --git a/include/dxxerror.h b/include/dxxerror.h index 7c09923fa..98eef83f6 100644 --- a/include/dxxerror.h +++ b/include/dxxerror.h @@ -31,8 +31,7 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #endif void warn_printf(char *s); -int error_init(void (*func)(char *), char *fmt,...); //init error system, set default message, returns 0=ok -void set_exit_message(char *fmt,...); //specify message to print at exit +int error_init(void (*func)(const char *)); //init error system, returns 0=ok void Warning(char *fmt,...); //print out warning message to user void set_warn_func(void (*f)(char *s));//specifies the function to call with warning messages void clear_warn_func(void (*f)(char *s));//say this function no longer valid diff --git a/main/inferno.c b/main/inferno.c index 2ec9edbf6..2b7d40aab 100644 --- a/main/inferno.c +++ b/main/inferno.c @@ -301,9 +301,9 @@ int main(int argc, char *argv[]) { mem_init(); #ifdef __LINUX__ - error_init(NULL, NULL); + error_init(NULL); #else - error_init(msgbox_error, NULL); + error_init(msgbox_error); set_warn_func(msgbox_warning); #endif PHYSFSX_init(argc, argv); @@ -317,7 +317,6 @@ int main(int argc, char *argv[]) if (GameArg.SysShowCmdHelp) { print_commandline_help(); - set_exit_message(""); return(0); } diff --git a/misc/error.c b/misc/error.c index 10efa3543..75f8ef560 100644 --- a/misc/error.c +++ b/misc/error.c @@ -28,13 +28,8 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #define MAX_MSG_LEN 256 -//edited 05/17/99 Matt Mueller added err_ prefix to prevent conflicts with statically linking SDL -int err_initialized=0; -//end edit -MM +static void (*ErrorPrintFunc)(const char *); -static void (*ErrorPrintFunc)(char *); - -char exit_message[MAX_MSG_LEN]=""; char warn_message[MAX_MSG_LEN]; //takes string in register, calls printf with string on stack @@ -57,50 +52,34 @@ void clear_warn_func(void (*f)(char *s)) warn_func = warn_printf; } -void set_exit_message(char *fmt,...) -{ - va_list arglist; - int len; - - va_start(arglist,fmt); - len = vsprintf(exit_message,fmt,arglist); - va_end(arglist); - - if (len==-1 || len>MAX_MSG_LEN) Error("Message too long in set_exit_message (len=%d, max=%d)",len,MAX_MSG_LEN); - -} - void _Assert(int expr,char *expr_text,char *filename,int linenum) { Int3(); if (!(expr)) Error("Assertion failed: %s, file %s, line %d",expr_text,filename,linenum); } -void print_exit_message(void) +void print_exit_message(const char *exit_message) { - if (*exit_message) - { if (ErrorPrintFunc) { (*ErrorPrintFunc)(exit_message); } con_printf(CON_CRITICAL, "\n%s\n",exit_message); - } } //terminates with error code 1, printing message void Error(const char *fmt,...) { + char exit_message[MAX_MSG_LEN]="Error: "; // don't put the new line in for dialog output va_list arglist; - strcpy(exit_message,"Error: "); // don't put the new line in for dialog output va_start(arglist,fmt); vsprintf(exit_message+strlen(exit_message),fmt,arglist); va_end(arglist); Int3(); - /*if (!err_initialized)*/ print_exit_message(); + print_exit_message(exit_message); exit(1); } @@ -124,23 +103,8 @@ void Warning(char *fmt,...) } //initialize error handling system, and set default message. returns 0=ok -int error_init(void (*func)(char *), char *fmt, ...) +int error_init(void (*func)(const char *)) { - va_list arglist; - int len; - - //atexit(print_exit_message); //last thing at exit is print message CHRIS: Removed to allow newmenu dialog - ErrorPrintFunc = func; // Set Error Print Functions - - if (fmt != NULL) { - va_start(arglist,fmt); - len = vsprintf(exit_message,fmt,arglist); - va_end(arglist); - if (len==-1 || len>MAX_MSG_LEN) Error("Message too long in error_init (len=%d, max=%d)",len,MAX_MSG_LEN); - } - - err_initialized=1; - return 0; }