r10877: Automated commit for Debian build of ctsim upstream-version-4.4.3
[ctsim.git] / libctsupport / syserror.cpp
index b874f07d8ca334654115fccaf6acb76fbb910228..e24ec85511f3f2802c5e441430057839434abec6 100644 (file)
@@ -2,7 +2,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: syserror.cpp,v 1.22 2001/02/27 03:59:30 kevin Exp $
+**  $Id$
 **
 **  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
@@ -28,6 +28,7 @@
 
 #ifdef HAVE_WXWINDOWS
 #include "../src/ctsim.h"
+#include <wx/log.h>
 #endif
 
 /* NAME
@@ -38,7 +39,6 @@
 *   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_TRACE;     // Set error reporting level 
@@ -58,9 +58,11 @@ void sys_error (int severity, const char *msg, ...)
     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
+      if (msg.length() > 0) {
+       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));
@@ -68,14 +70,16 @@ void sys_error (int severity, const char *msg, ...)
     }
   }
   else
-#endif
     std::cout << strOutput << "\n";
+#else
+    std::cout << strOutput << "\n";
+#endif
 
   va_end(arg);
 }
 
-static int s_nErrorCount = 0;
-const static int MAX_ERROR_COUNT = 20;
+static unsigned long s_nErrorCount = 0;
+unsigned long int g_lSysErrorMaxCount = 2000;
 
 
 void sys_verror (std::string& strOutput, int severity, const char *msg, va_list arg)
@@ -89,9 +93,9 @@ void sys_verror (std::string& strOutput, int severity, const char *msg, va_list
     s_nErrorCount++;
 
   if (severity != ERR_FATAL) {
-    if (s_nErrorCount > MAX_ERROR_COUNT)
+    if (s_nErrorCount > g_lSysErrorMaxCount)
       return;
-    else if (s_nErrorCount == MAX_ERROR_COUNT) {
+    else if (s_nErrorCount == g_lSysErrorMaxCount) {
       os << "*****************************************************************\n";
       os << "***   M A X I M U M   E R R O R   C O U N T   R E A C H E D   ***\n";
       os << "***                                                           ***\n";