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
}