]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/log.cpp
virtualized m_row/col height/widths arrays
[wxWidgets.git] / src / common / log.cpp
index a4647eee3c027f20017ac1f47597a6d1f52a2ada..2179500499d5863daf550fa0c51e2f7e70da7313 100644 (file)
@@ -178,9 +178,23 @@ void wxLogVerbose(const wxChar *szFormat, ...)
     if ( pLog != NULL && wxLog::IsAllowedTraceMask(mask) ) {
       wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
 
+      wxChar *p = s_szBuf;
+      size_t len = WXSIZEOF(s_szBuf);
+      strncpy(s_szBuf, _T("Trace ("), len);
+      len -= 7; // strlen("Trace (")
+      p += 7;
+      strncat(p, mask, len);
+      size_t lenMask = wxStrlen(mask);
+      len -= lenMask;
+      p += lenMask;
+
+      strncat(p, _T("): "), len);
+      len -= 3;
+      p += 3;
+
       va_list argptr;
       va_start(argptr, szFormat);
-      wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
+      wxVsnprintf(p, len, szFormat, argptr);
       va_end(argptr);
 
       wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
@@ -398,6 +412,9 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
 #if defined(__WXMSW__) && wxUSE_GUI
     OutputDebugString(str + wxT("\r\n"));
 #endif // MSW
+#if defined(__WXMAC__) && wxUSE_GUI
+    debugstr(str + wxT("\r\n"));
+#endif // MSW
 }
 
 // ----------------------------------------------------------------------------
@@ -431,7 +448,11 @@ wxLog          *wxLog::ms_pLogger      = (wxLog *)NULL;
 bool            wxLog::ms_doLog        = TRUE;
 bool            wxLog::ms_bAutoCreate  = TRUE;
 
-const wxChar   *wxLog::ms_timestamp    = wxT("%X");  // time only, no date
+#if wxUSE_GUI
+    const wxChar *wxLog::ms_timestamp  = wxT("%X");  // time only, no date
+#else
+    const wxChar *wxLog::ms_timestamp  = NULL;       // save space
+#endif
 
 wxTraceMask     wxLog::ms_ulTraceMask  = (wxTraceMask)0;
 wxArrayString   wxLog::ms_aTraceMasks;
@@ -535,7 +556,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
     wxConvCurrent->MB2WC(s_szBuf, strerror(nErrCode), WXSIZEOF(s_szBuf) -1);
     return s_szBuf;
 #else
-    return strerror(nErrCode);
+    return strerror((int)nErrCode);
 #endif
 #endif  // Win/Unix
 }
@@ -607,15 +628,16 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg)
         // send it to the normal log destination
         wxLogDebug(szBuf);
 
-#if wxUSE_GUI
+#if wxUSE_GUI || defined(__WXMSW__)
         // this message is intentionally not translated - it is for
         // developpers only
         wxStrcat(szBuf, wxT("\nDo you want to stop the program?"
-                "\nYou can also choose [Cancel] to suppress "
-                "further warnings."));
+                            "\nYou can also choose [Cancel] to suppress "
+                            "further warnings."));
 
-        switch ( wxMessageBox(szBuf, _("Debug"),
-                    wxYES_NO | wxCANCEL | wxICON_STOP ) ) {
+#if wxUSE_GUI
+        switch ( wxMessageBox(szBuf, "Debug",
+                              wxYES_NO | wxCANCEL | wxICON_STOP ) ) {
             case wxYES:
                 Trap();
                 break;
@@ -624,8 +646,23 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg)
                 s_bNoAsserts = TRUE;
                 break;
 
-                //case wxNO: nothing to do
+            //case wxNO: nothing to do
         }
+#else // !GUI, but MSW
+        switch ( ::MessageBox(NULL, szBuf, "Debug",
+                              MB_YESNOCANCEL | MB_ICONSTOP ) ) {
+            case IDYES:
+                Trap();
+                break;
+
+            case IDCANCEL:
+                s_bNoAsserts = TRUE;
+                break;
+
+            //case IDNO: nothing to do
+        }
+#endif // GUI or MSW
+
 #else // !GUI
         Trap();
 #endif // GUI/!GUI