]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/log.cpp
wxUniversal STL-ification.
[wxWidgets.git] / src / common / log.cpp
index 6e51ac79dda7b73031e23c6ae7c0960c858581cd..4da49d8fe959ee21f37fecf98ac655c5bba88c75 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "log.h"
 #endif
 
@@ -33,6 +33,7 @@
 // wxWindows
 #ifndef WX_PRECOMP
     #include "wx/app.h"
+    #include "wx/arrstr.h"
     #include "wx/intl.h"
     #include "wx/string.h"
 #endif //WX_PRECOMP
 #include "wx/wxchar.h"
 
 // other standard headers
+#ifndef __WXWINCE__
 #include <errno.h>
+#endif
+
 #include <stdlib.h>
+
+#ifndef __WXWINCE__
 #include <time.h>
+#else
+#include "wx/msw/wince/time.h"
+#endif
 
 #if defined(__WINDOWS__)
     #include "wx/msw/private.h" // includes windows.h
@@ -178,7 +187,11 @@ void wxVLogFatalError(const wxChar *szFormat, va_list argptr)
 
     wxSafeShowMessage(_T("Fatal Error"), s_szBuf);
 
+#ifdef __WXWINCE__
+    ExitThread(3);
+#else
     abort();
+#endif
 }
 
 void wxLogFatalError(const wxChar *szFormat, ...)
@@ -384,7 +397,7 @@ wxLog *wxLog::GetActiveTarget()
 
             // ask the application to create a log target for us
             if ( wxTheApp != NULL )
-                ms_pLogger = wxTheApp->CreateLogTarget();
+                ms_pLogger = wxTheApp->GetTraits()->CreateLogTarget();
             else
                 ms_pLogger = new wxLogStderr;
 
@@ -425,7 +438,7 @@ void wxLog::RemoveTraceMask(const wxString& str)
 {
     int index = ms_aTraceMasks.Index(str);
     if ( index != wxNOT_FOUND )
-        ms_aTraceMasks.Remove((size_t)index);
+        ms_aTraceMasks.RemoveAt((size_t)index);
 }
 
 void wxLog::ClearTraceMasks()
@@ -454,7 +467,11 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
             DoLogString(wxString(_("Fatal error: ")) + szString, t);
             DoLogString(_("Program aborted."), t);
             Flush();
+#ifdef __WXWINCE__
+            ExitThread(3);
+#else
             abort();
+#endif
             break;
 
         case wxLOG_Error:
@@ -497,6 +514,16 @@ void wxLog::Flush()
     // nothing to do here
 }
 
+/*static*/ bool wxLog::IsAllowedTraceMask(const wxChar *mask)
+{
+    for ( wxArrayString::iterator it = ms_aTraceMasks.begin(),
+                                  en = ms_aTraceMasks.end();
+         it != en; ++it )
+        if ( *it == mask)
+            return true;
+    return false;
+}
+
 // ----------------------------------------------------------------------------
 // wxLogStderr class implementation
 // ----------------------------------------------------------------------------