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));
#if defined(__WXMSW__) && wxUSE_GUI
OutputDebugString(str + wxT("\r\n"));
#endif // MSW
+#if defined(__WXMAC__) && wxUSE_GUI
+ debugstr(str + wxT("\r\n"));
+#endif // MSW
}
// ----------------------------------------------------------------------------
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;
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
}
// 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;
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