** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: syserror.cpp,v 1.20 2001/01/30 02:20:50 kevin Exp $
+** $Id: syserror.cpp,v 1.23 2002/05/05 10:54:34 kevin Exp $
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License (version 2) as
* int severity Severity of error
* char *msg Error message
* args Argument list, direct transfer to printf stack
-* Can take 24 byte transfer
*/
-static int s_reportErrorLevel = ERR_WARNING; // Set error reporting level
+static int s_reportErrorLevel = ERR_TRACE; // Set error reporting level
void sys_error (int severity, const char *msg, ...)
#ifdef HAVE_WXWINDOWS
if (g_bRunningWXWindows) {
- if (theApp)
- *theApp->getLog() << strOutput.c_str() << "\n";
- else
+ if (theApp) {
+ wxCommandEvent eventLog (wxEVT_COMMAND_MENU_SELECTED, MAINMENU_LOG_EVENT );
+ wxString msg (strOutput.c_str());
+ msg += "\n";
+ eventLog.SetString( msg );
+ // wxPostEvent( theApp->getMainFrame(), eventLog ); // send log event, thread safe
+ } else {
+ wxMutexGuiEnter();
wxLog::OnLog (wxLOG_Message, strOutput.c_str(), time(NULL));
+ wxMutexGuiLeave();
+ }
}
else
#endif
- std::cout << strOutput;
+ std::cout << strOutput << "\n";
va_end(arg);
}
std::ostringstream os;
- s_nErrorCount++;
+ if (severity > ERR_TRACE)
+ s_nErrorCount++;
+
if (severity != ERR_FATAL) {
if (s_nErrorCount > MAX_ERROR_COUNT)
return;
strncpy (errStr, sizeof(errStr), "Error message not available on this platform.");
#endif
- os << errStr << "\n";
+ os << errStr;
strOutput = os.str();
if (severity == ERR_FATAL) {
- std::cerr << strOutput;
+ std::cerr << strOutput << "\n";
throw std::runtime_error (strOutput);
}