-// ----------------------------------------------------------------------------
-// error handling functions
-// ----------------------------------------------------------------------------
-
-#define MAX_INTERNAL_ERROR_SIZE 1024
-
-// used by SetError() and GetError() to store internal error messages
-static char internal_error[MAX_INTERNAL_ERROR_SIZE];
-
-void SetError(char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- vsnprintf(internal_error, MAX_INTERNAL_ERROR_SIZE, format, ap);
- va_end(ap);
-}
-
-char *GetError(void)
-{
- return internal_error;
-}
-
-void Error(int mode, char *format, ...)
-{
- static boolean last_line_was_separator = FALSE;
- char *process_name = "";
-
- if (program.log_file[LOG_ERR_ID] == NULL)
- return;
-
-#if defined(PLATFORM_ANDROID)
- android_log_prio = (mode & ERR_DEBUG ? ANDROID_LOG_DEBUG :
- mode & ERR_INFO ? ANDROID_LOG_INFO :
- mode & ERR_WARN ? ANDROID_LOG_WARN :
- mode & ERR_EXIT ? ANDROID_LOG_FATAL :
- ANDROID_LOG_UNKNOWN);
-#endif
-
- // display debug messages only when running in debug mode
- if (mode & ERR_DEBUG && !options.debug)
- return;
-
- // display warnings only when running in verbose mode
- if (mode & ERR_WARN && !options.verbose)
- return;
-
- if (mode == ERR_INFO_LINE)
- {
- if (!last_line_was_separator)
- printf_log_line(format, 79);
-
- last_line_was_separator = TRUE;
-
- return;
- }
-
- last_line_was_separator = FALSE;
-
- if (mode & ERR_SOUND_SERVER)
- process_name = " sound server";
- else if (mode & ERR_NETWORK_SERVER)
- process_name = " network server";
- else if (mode & ERR_NETWORK_CLIENT)
- process_name = " network client **";
-
- if (format)
- {
-#if !defined(PLATFORM_ANDROID)
- printf_log_nonewline("%s%s: ", program.command_basename, process_name);
-#endif
-
- if (mode & ERR_WARN)
- printf_log_nonewline("warning: ");
-
- if (mode & ERR_EXIT)
- printf_log_nonewline("fatal error: ");
-
- va_list ap;
-
- va_start(ap, format);
- vprintf_log(format, ap);
- va_end(ap);
-
- if ((mode & ERR_EXIT) && !(mode & ERR_FROM_SERVER))
- {
- va_start(ap, format);
- program.exit_message_function(format, ap);
- va_end(ap);
- }
- }
-
- if (mode & ERR_HELP)
- printf_log("%s: Try option '--help' for more information.",
- program.command_basename);
-
- if (mode & ERR_EXIT)
- printf_log("%s%s: aborting", program.command_basename, process_name);
-
- if (mode & ERR_EXIT)
- {
- if (mode & ERR_FROM_SERVER)
- exit(1); // child process: normal exit
- else
- program.exit_function(1); // main process: clean up stuff
- }
-}
-
-