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);
+ wxStrncpy(s_szBuf, _T("("), len);
+ len -= 1; // strlen("(")
+ p += 1;
+ wxStrncat(p, mask, len);
size_t lenMask = wxStrlen(mask);
len -= lenMask;
p += lenMask;
- strncat(p, _T("): "), len);
- len -= 3;
- p += 3;
+ wxStrncat(p, _T(") "), len);
+ len -= 2;
+ p += 2;
va_list argptr;
va_start(argptr, szFormat);
case wxLOG_Trace:
case wxLOG_Debug:
#ifdef __WXDEBUG__
- DoLogString(szString, t);
-#endif
+ {
+ wxString msg = level == wxLOG_Trace ? wxT("Trace: ")
+ : wxT("Debug: ");
+ msg << szString;
+ DoLogString(msg, t);
+ }
+#endif // Debug
break;
}
}
// under Windows, programs usually don't have stderr at all, so show the
// messages also under debugger - unless it's a console program
#if defined(__WXMSW__) && wxUSE_GUI
- OutputDebugString(str + wxT("\r\n"));
+ str += wxT("\r\n") ;
+ OutputDebugString(str.c_str());
#endif // MSW
#if defined(__WXMAC__) && wxUSE_GUI
debugstr(str + wxT("\r\n"));
bool wxLog::ms_doLog = TRUE;
bool wxLog::ms_bAutoCreate = TRUE;
+size_t wxLog::ms_suspendCount = 0;
+
#if wxUSE_GUI
const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date
#else
#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."));
+ wxStrcat(szBuf, wxT("\nDo you want to stop the program?\nYou can also choose [Cancel] to suppress further warnings."));
#if wxUSE_GUI
- switch ( wxMessageBox(szBuf, "Debug",
+ switch ( wxMessageBox(szBuf, wxT("Debug"),
wxYES_NO | wxCANCEL | wxICON_STOP ) ) {
case wxYES:
Trap();
//case wxNO: nothing to do
}
#else // !GUI, but MSW
- switch ( ::MessageBox(NULL, szBuf, "Debug",
+ switch ( ::MessageBox(NULL, szBuf, _T("Debug"),
MB_YESNOCANCEL | MB_ICONSTOP ) ) {
case IDYES:
Trap();