r557: no message
[ctsim.git] / libctsupport / syserror.cpp
index 1b9aff402c8513575e9492bb8f877b2eb48484a7..5b4e6315a3f993fe7f7b9af7adb73077554d3670 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
 **  This is part of the CTSim program
-**  Copyright (C) 1983-2000 Kevin Rosenberg
+**  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: syserror.cpp,v 1.14 2001/01/12 16:41:56 kevin Exp $
+**  $Id: syserror.cpp,v 1.21 2001/02/20 04:48:45 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
@@ -26,6 +26,9 @@
 #include <string>
 #include "ct.h"
 
+#ifdef HAVE_WXWINDOWS
+#include "../src/ctsim.h"
+#endif
 
 /* NAME
 *   sys_error                  System error handler
 *                              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 
 
-#ifdef HAVE_WXWINDOWS
-#include "../src/ctsim.h"
-bool g_bRunningWXWindows = false;
-#endif
 
 void sys_error (int severity, const char *msg, ...)
 {
@@ -55,11 +54,15 @@ void sys_error (int severity, const char *msg, ...)
   sys_verror (strOutput, severity, msg, arg);
  
 #ifdef HAVE_WXWINDOWS
-  if (g_bRunningWXWindows)
-    *theApp->getLog() << strOutput.c_str();
+  if (g_bRunningWXWindows) {
+    if (theApp)
+      *theApp->getLog() << strOutput.c_str() << "\n";
+    else
+      wxLog::OnLog (wxLOG_Message, strOutput.c_str(), time(NULL));
+  }
   else
 #endif
-    std::cout << strOutput;
+    std::cout << strOutput << "\n";
 
   va_end(arg);
 }
@@ -75,7 +78,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;
@@ -117,11 +122,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); 
   }