X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dc6d5e38c0baab30018545f91cc0c698cb4bdd62..121fa06ab6af9129e776af13949fc251a3cafc49:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index 86a83f0954..8323595bde 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "log.h" #endif @@ -30,9 +30,10 @@ #if wxUSE_LOG -// wxWindows +// wxWidgets #ifndef WX_PRECOMP #include "wx/app.h" + #include "wx/arrstr.h" #include "wx/intl.h" #include "wx/string.h" #endif //WX_PRECOMP @@ -47,9 +48,17 @@ #include "wx/wxchar.h" // other standard headers +#ifndef __WXWINCE__ #include +#endif + #include + +#ifndef __WXWINCE__ #include +#else +#include "wx/msw/wince/time.h" +#endif #if defined(__WINDOWS__) #include "wx/msw/private.h" // includes windows.h @@ -178,7 +187,11 @@ void wxVLogFatalError(const wxChar *szFormat, va_list argptr) wxSafeShowMessage(_T("Fatal Error"), s_szBuf); +#ifdef __WXWINCE__ + ExitThread(3); +#else abort(); +#endif } void wxLogFatalError(const wxChar *szFormat, ...) @@ -186,7 +199,10 @@ void wxLogFatalError(const wxChar *szFormat, ...) va_list argptr; va_start(argptr, szFormat); wxVLogFatalError(szFormat, argptr); - va_end(argptr); + + // some compilers warn about unreachable code and it shouldn't matter + // for the others anyhow... + //va_end(argptr); } // same as info, but only if 'verbose' mode is on @@ -378,9 +394,9 @@ wxLog *wxLog::GetActiveTarget() if ( ms_bAutoCreate && ms_pLogger == NULL ) { // prevent infinite recursion if someone calls wxLogXXX() from // wxApp::CreateLogTarget() - static bool s_bInGetActiveTarget = FALSE; + static bool s_bInGetActiveTarget = false; if ( !s_bInGetActiveTarget ) { - s_bInGetActiveTarget = TRUE; + s_bInGetActiveTarget = true; // ask the application to create a log target for us if ( wxTheApp != NULL ) @@ -388,7 +404,7 @@ wxLog *wxLog::GetActiveTarget() else ms_pLogger = new wxLogStderr; - s_bInGetActiveTarget = FALSE; + s_bInGetActiveTarget = false; // do nothing if it fails - what can we do? } @@ -413,7 +429,7 @@ wxLog *wxLog::SetActiveTarget(wxLog *pLogger) void wxLog::DontCreateOnDemand() { - ms_bAutoCreate = FALSE; + ms_bAutoCreate = false; // this is usually called at the end of the program and we assume that it // is *always* called at the end - so we free memory here to avoid false @@ -454,7 +470,11 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t) DoLogString(wxString(_("Fatal error: ")) + szString, t); DoLogString(_("Program aborted."), t); Flush(); +#ifdef __WXWINCE__ + ExitThread(3); +#else abort(); +#endif break; case wxLOG_Error: @@ -497,6 +517,16 @@ void wxLog::Flush() // nothing to do here } +/*static*/ bool wxLog::IsAllowedTraceMask(const wxChar *mask) +{ + for ( wxArrayString::iterator it = ms_aTraceMasks.begin(), + en = ms_aTraceMasks.end(); + it != en; ++it ) + if ( *it == mask) + return true; + return false; +} + // ---------------------------------------------------------------------------- // wxLogStderr class implementation // ---------------------------------------------------------------------------- @@ -561,7 +591,7 @@ void wxLogStream::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) wxLogChain::wxLogChain(wxLog *logger) { - m_bPassMessages = TRUE; + m_bPassMessages = true; m_logNew = logger; m_logOld = wxLog::SetActiveTarget(this); @@ -636,9 +666,9 @@ wxLogPassThrough::wxLogPassThrough() // ---------------------------------------------------------------------------- wxLog *wxLog::ms_pLogger = (wxLog *)NULL; -bool wxLog::ms_doLog = TRUE; -bool wxLog::ms_bAutoCreate = TRUE; -bool wxLog::ms_bVerbose = FALSE; +bool wxLog::ms_doLog = true; +bool wxLog::ms_bAutoCreate = true; +bool wxLog::ms_bVerbose = false; wxLogLevel wxLog::ms_logLevel = wxLOG_Max; // log everything by default @@ -694,12 +724,7 @@ static void wxLogWrap(FILE *f, const char *pszPrefix, const char *psz) unsigned long wxSysErrorCode() { #if defined(__WXMSW__) && !defined(__WXMICROWIN__) -#ifdef __WIN32__ return ::GetLastError(); -#else //WIN16 - // TODO what to do on Windows 3.1? - return 0; -#endif //WIN16/32 #else //Unix return errno; #endif //Win/Unix @@ -712,7 +737,6 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) nErrCode = wxSysErrorCode(); #if defined(__WXMSW__) && !defined(__WXMICROWIN__) -#ifdef __WIN32__ static wxChar s_szBuf[LOG_BUFFER_SIZE / 2]; // get error message from system @@ -724,7 +748,9 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) 0, NULL); // copy it to our buffer and free memory - if( lpMsgBuf != 0 ) { + // Crashes on SmartPhone +#if !defined(__SMARTPHONE__) + if( lpMsgBuf != 0 ) { wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1); s_szBuf[WXSIZEOF(s_szBuf) - 1] = wxT('\0'); @@ -739,16 +765,14 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) s_szBuf[len - 2] = wxT('\0'); } } - else { + else +#endif + { s_szBuf[0] = wxT('\0'); } return s_szBuf; -#else //Win16 - // TODO - return NULL; -#endif // Win16/32 -#else // Unix +#else // Unix-WXMICROWIN #if wxUSE_UNICODE static wxChar s_szBuf[LOG_BUFFER_SIZE / 2]; wxConvCurrent->MB2WC(s_szBuf, strerror(nErrCode), WXSIZEOF(s_szBuf) -1); @@ -756,7 +780,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) #else return strerror((int)nErrCode); #endif -#endif // Win/Unix +#endif // Win/Unix-WXMICROWIN } #endif // wxUSE_LOG