X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsupport%2Fsyserror.cpp;h=0823ea2bbbeb609be1993fdd1051dfe7b9858231;hp=d50471ef4f1e504aac49fa806ca76d348fab8373;hb=512ebbafa4666521b5a8acef939e89dcec6e2643;hpb=cbcb02ba9b76a82c9a09ce1c7712431bb215575a diff --git a/libctsupport/syserror.cpp b/libctsupport/syserror.cpp index d50471e..0823ea2 100644 --- a/libctsupport/syserror.cpp +++ b/libctsupport/syserror.cpp @@ -2,7 +2,7 @@ ** 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 @@ -38,10 +38,9 @@ * 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, ...) @@ -55,14 +54,21 @@ 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); } @@ -78,7 +84,9 @@ void sys_verror (std::string& strOutput, int severity, const char *msg, va_list std::ostringstream os; - s_nErrorCount++; + if (severity > ERR_TRACE) + s_nErrorCount++; + if (severity != ERR_FATAL) { if (s_nErrorCount > MAX_ERROR_COUNT) return; @@ -120,11 +128,11 @@ void sys_verror (std::string& strOutput, int severity, const char *msg, va_list 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); }