void wxVLogVerbose(const wxChar *szFormat, va_list argptr)
{
if ( IsLoggingEnabled() ) {
- wxLog *pLog = wxLog::GetActiveTarget();
- if ( pLog != NULL && pLog->GetVerbose() ) {
+ if ( wxLog::GetActiveTarget() != NULL && wxLog::GetVerbose() ) {
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
// wxLog class implementation
// ----------------------------------------------------------------------------
-wxLog::wxLog()
-{
-}
-
wxChar *wxLog::SetLogBuffer( wxChar *buf, size_t size)
{
wxChar *oldbuf = s_szBuf;
return false;
}
+// ----------------------------------------------------------------------------
+// wxLogBuffer implementation
+// ----------------------------------------------------------------------------
+
+void wxLogBuffer::Flush()
+{
+ if ( !m_str.empty() )
+ {
+ wxMessageOutputBest out;
+ out.Printf(_T("%s"), m_str.c_str());
+ m_str.clear();
+ }
+}
+
+void wxLogBuffer::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
+{
+ m_str << szString << _T("\n");
+}
+
// ----------------------------------------------------------------------------
// wxLogStderr class implementation
// ----------------------------------------------------------------------------
wxAppTraits *traits = wxTheApp ? wxTheApp->GetTraits() : NULL;
if ( traits && !traits->HasStderr() )
{
- wxMessageOutputDebug().Printf(_T("%s"), str.c_str());
+ wxMessageOutputDebug dbgout;
+ dbgout.Printf(_T("%s\n"), str.c_str());
}
}
}
// get error message from system
LPVOID lpMsgBuf;
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
- NULL, nErrCode,
+ if ( ::FormatMessage
+ (
+ FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL,
+ nErrCode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)&lpMsgBuf,
- 0, NULL);
+ 0,
+ NULL
+ ) == 0 )
+ {
+ // if this happens, something is seriously wrong, so don't use _() here
+ // for safety
+ wxSprintf(s_szBuf, _T("unknown error %lx"), nErrCode);
+ return s_szBuf;
+ }
+
// copy it to our buffer and free memory
- // Crashes on SmartPhone
-#if !defined(__SMARTPHONE__)
+ // Crashes on SmartPhone (FIXME)
+#if !defined(__SMARTPHONE__) /* of WinCE */
if( lpMsgBuf != 0 ) {
wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1);
s_szBuf[WXSIZEOF(s_szBuf) - 1] = wxT('\0');