Added SetLogBuffer method.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -103,6 +103,12 @@ public:
|
|||||||
// ctor
|
// ctor
|
||||||
wxLog();
|
wxLog();
|
||||||
|
|
||||||
|
// Internal buffer.
|
||||||
|
// Allow replacement of the fixed size static buffer with
|
||||||
|
// a user allocated one. Pass in NULL to restore the
|
||||||
|
// built in static buffer.
|
||||||
|
static wxChar *SetLogBuffer( wxChar *buf, size_t size = 0 );
|
||||||
|
|
||||||
// these functions allow to completely disable all log messages
|
// these functions allow to completely disable all log messages
|
||||||
// is logging disabled now?
|
// is logging disabled now?
|
||||||
static bool IsEnabled() { return ms_doLog; }
|
static bool IsEnabled() { return ms_doLog; }
|
||||||
@@ -579,3 +585,5 @@ DECLARE_LOG_FUNCTION2(SysError, long lErrCode);
|
|||||||
#endif //debug/!debug
|
#endif //debug/!debug
|
||||||
|
|
||||||
#endif // _WX_LOG_H_
|
#endif // _WX_LOG_H_
|
||||||
|
|
||||||
|
// vi:sts=4:sw=4:et
|
||||||
|
@@ -65,7 +65,7 @@ void wxControlContainer::SetLastFocus(wxWindow *win)
|
|||||||
// like when detaching a menubar from a frame with a child which
|
// like when detaching a menubar from a frame with a child which
|
||||||
// has pushed itself as an event handler for the menubar. (wxGtk)
|
// has pushed itself as an event handler for the menubar. (wxGtk)
|
||||||
|
|
||||||
wxASSERT_MSG( winParent, _T("Setting last focus for a window that is not our child?") );
|
wxASSERT_MSG( winParent, _T("Setting last-focus for a window that is not our child?") );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -89,7 +89,10 @@
|
|||||||
#define LOG_BUFFER_SIZE (4096)
|
#define LOG_BUFFER_SIZE (4096)
|
||||||
|
|
||||||
// static buffer for error messages
|
// static buffer for error messages
|
||||||
static wxChar s_szBuf[LOG_BUFFER_SIZE];
|
static wxChar s_szBufStatic[LOG_BUFFER_SIZE];
|
||||||
|
|
||||||
|
static wxChar *s_szBuf = s_szBufStatic;
|
||||||
|
static size_t s_szBufSize = WXSIZEOF( s_szBufStatic );
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
|
|
||||||
@@ -117,7 +120,7 @@ void wxVLogGeneric(wxLogLevel level, const wxChar *szFormat, va_list argptr)
|
|||||||
if ( IsLoggingEnabled() ) {
|
if ( IsLoggingEnabled() ) {
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
wxLog::OnLog(level, s_szBuf, time(NULL));
|
wxLog::OnLog(level, s_szBuf, time(NULL));
|
||||||
}
|
}
|
||||||
@@ -137,7 +140,7 @@ void wxLogGeneric(wxLogLevel level, const wxChar *szFormat, ...)
|
|||||||
if ( IsLoggingEnabled() ) { \
|
if ( IsLoggingEnabled() ) { \
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
||||||
\
|
\
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr); \
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr); \
|
||||||
\
|
\
|
||||||
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
||||||
} \
|
} \
|
||||||
@@ -160,7 +163,7 @@ IMPLEMENT_LOG_FUNCTION(Status)
|
|||||||
// always terminate the program
|
// always terminate the program
|
||||||
void wxVLogFatalError(const wxChar *szFormat, va_list argptr)
|
void wxVLogFatalError(const wxChar *szFormat, va_list argptr)
|
||||||
{
|
{
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
#if wxUSE_GUI
|
#if wxUSE_GUI
|
||||||
wxMessageBox(s_szBuf, _("Fatal Error"), wxID_OK | wxICON_STOP);
|
wxMessageBox(s_szBuf, _("Fatal Error"), wxID_OK | wxICON_STOP);
|
||||||
@@ -187,7 +190,7 @@ void wxVLogVerbose(const wxChar *szFormat, va_list argptr)
|
|||||||
if ( pLog != NULL && pLog->GetVerbose() ) {
|
if ( pLog != NULL && pLog->GetVerbose() ) {
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
wxLog::OnLog(wxLOG_Info, s_szBuf, time(NULL));
|
wxLog::OnLog(wxLOG_Info, s_szBuf, time(NULL));
|
||||||
}
|
}
|
||||||
@@ -210,7 +213,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
|||||||
if ( IsLoggingEnabled() ) { \
|
if ( IsLoggingEnabled() ) { \
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); \
|
||||||
\
|
\
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr); \
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr); \
|
||||||
\
|
\
|
||||||
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \
|
||||||
} \
|
} \
|
||||||
@@ -229,7 +232,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
|||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxChar *p = s_szBuf;
|
wxChar *p = s_szBuf;
|
||||||
size_t len = WXSIZEOF(s_szBuf);
|
size_t len = s_szBufSize;
|
||||||
wxStrncpy(s_szBuf, _T("("), len);
|
wxStrncpy(s_szBuf, _T("("), len);
|
||||||
len -= 1; // strlen("(")
|
len -= 1; // strlen("(")
|
||||||
p += 1;
|
p += 1;
|
||||||
@@ -264,7 +267,7 @@ void wxLogVerbose(const wxChar *szFormat, ...)
|
|||||||
if ( IsLoggingEnabled() && ((wxLog::GetTraceMask() & mask) == mask) ) {
|
if ( IsLoggingEnabled() && ((wxLog::GetTraceMask() & mask) == mask) ) {
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
|
wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
|
||||||
}
|
}
|
||||||
@@ -294,7 +297,7 @@ void wxLogSysErrorHelper(long lErrCode)
|
|||||||
wxChar szErrMsg[LOG_BUFFER_SIZE / 2];
|
wxChar szErrMsg[LOG_BUFFER_SIZE / 2];
|
||||||
wxSnprintf(szErrMsg, WXSIZEOF(szErrMsg),
|
wxSnprintf(szErrMsg, WXSIZEOF(szErrMsg),
|
||||||
_(" (error %ld: %s)"), lErrCode, wxSysErrorMsg(lErrCode));
|
_(" (error %ld: %s)"), lErrCode, wxSysErrorMsg(lErrCode));
|
||||||
wxStrncat(s_szBuf, szErrMsg, WXSIZEOF(s_szBuf) - wxStrlen(s_szBuf));
|
wxStrncat(s_szBuf, szErrMsg, s_szBufSize - wxStrlen(s_szBuf));
|
||||||
|
|
||||||
wxLog::OnLog(wxLOG_Error, s_szBuf, time(NULL));
|
wxLog::OnLog(wxLOG_Error, s_szBuf, time(NULL));
|
||||||
}
|
}
|
||||||
@@ -304,7 +307,7 @@ void WXDLLEXPORT wxVLogSysError(const wxChar *szFormat, va_list argptr)
|
|||||||
if ( IsLoggingEnabled() ) {
|
if ( IsLoggingEnabled() ) {
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
wxLogSysErrorHelper(wxSysErrorCode());
|
wxLogSysErrorHelper(wxSysErrorCode());
|
||||||
}
|
}
|
||||||
@@ -323,7 +326,7 @@ void WXDLLEXPORT wxVLogSysError(long lErrCode, const wxChar *szFormat, va_list a
|
|||||||
if ( IsLoggingEnabled() ) {
|
if ( IsLoggingEnabled() ) {
|
||||||
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
|
||||||
|
|
||||||
wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr);
|
wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr);
|
||||||
|
|
||||||
wxLogSysErrorHelper(lErrCode);
|
wxLogSysErrorHelper(lErrCode);
|
||||||
}
|
}
|
||||||
@@ -346,6 +349,24 @@ wxLog::wxLog()
|
|||||||
m_bHasMessages = FALSE;
|
m_bHasMessages = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxChar *wxLog::SetLogBuffer( wxChar *buf, size_t size = 0 )
|
||||||
|
{
|
||||||
|
wxChar *oldbuf = s_szBuf;
|
||||||
|
|
||||||
|
if( buf == 0 )
|
||||||
|
{
|
||||||
|
s_szBuf = s_szBufStatic;
|
||||||
|
s_szBufSize = WXSIZEOF( s_szBufStatic );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
s_szBuf = buf;
|
||||||
|
s_szBufSize = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (oldbuf == s_szBufStatic ) ? 0 : oldbuf;
|
||||||
|
}
|
||||||
|
|
||||||
wxLog *wxLog::GetActiveTarget()
|
wxLog *wxLog::GetActiveTarget()
|
||||||
{
|
{
|
||||||
if ( ms_bAutoCreate && ms_pLogger == NULL ) {
|
if ( ms_bAutoCreate && ms_pLogger == NULL ) {
|
||||||
@@ -493,7 +514,7 @@ wxLogStderr::wxLogStderr(FILE *fp)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __GESTALT__
|
#ifndef __GESTALT__
|
||||||
@@ -510,163 +531,162 @@ wxLogStderr::wxLogStderr(FILE *fp)
|
|||||||
|
|
||||||
#if TARGET_API_MAC_CARBON
|
#if TARGET_API_MAC_CARBON
|
||||||
|
|
||||||
#include <CodeFragments.h>
|
#include <CodeFragments.h>
|
||||||
|
|
||||||
EXTERN_API_C( long )
|
EXTERN_API_C( long )
|
||||||
CallUniversalProc(UniversalProcPtr theProcPtr, ProcInfoType procInfo, ...);
|
CallUniversalProc(UniversalProcPtr theProcPtr, ProcInfoType procInfo, ...);
|
||||||
|
|
||||||
ProcPtr gCallUniversalProc_Proc = NULL;
|
ProcPtr gCallUniversalProc_Proc = NULL;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static MetroNubUserEntryBlock* gMetroNubEntry = NULL;
|
static MetroNubUserEntryBlock* gMetroNubEntry = NULL;
|
||||||
|
|
||||||
static long fRunOnce = false;
|
static long fRunOnce = false;
|
||||||
|
|
||||||
Boolean IsCompatibleVersion(short inVersion);
|
Boolean IsCompatibleVersion(short inVersion);
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
IsCompatibleVersion
|
IsCompatibleVersion
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
Boolean IsCompatibleVersion(short inVersion)
|
Boolean IsCompatibleVersion(short inVersion)
|
||||||
{
|
{
|
||||||
Boolean result = false;
|
Boolean result = false;
|
||||||
|
|
||||||
if (fRunOnce)
|
if (fRunOnce)
|
||||||
{
|
{
|
||||||
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
|
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
|
||||||
|
|
||||||
result = (inVersion <= block->apiHiVersion);
|
result = (inVersion <= block->apiHiVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
IsMetroNubInstalled
|
IsMetroNubInstalled
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
Boolean IsMetroNubInstalled()
|
Boolean IsMetroNubInstalled()
|
||||||
{
|
{
|
||||||
if (!fRunOnce)
|
if (!fRunOnce)
|
||||||
{
|
{
|
||||||
long result, value;
|
long result, value;
|
||||||
|
|
||||||
fRunOnce = true;
|
fRunOnce = true;
|
||||||
gMetroNubEntry = NULL;
|
gMetroNubEntry = NULL;
|
||||||
|
|
||||||
if (Gestalt(gestaltSystemVersion, &value) == noErr && value < 0x1000)
|
if (Gestalt(gestaltSystemVersion, &value) == noErr && value < 0x1000)
|
||||||
{
|
{
|
||||||
/* look for MetroNub's Gestalt selector */
|
/* look for MetroNub's Gestalt selector */
|
||||||
if (Gestalt(kMetroNubUserSignature, &result) == noErr)
|
if (Gestalt(kMetroNubUserSignature, &result) == noErr)
|
||||||
{
|
{
|
||||||
|
|
||||||
#if TARGET_API_MAC_CARBON
|
#if TARGET_API_MAC_CARBON
|
||||||
if (gCallUniversalProc_Proc == NULL)
|
if (gCallUniversalProc_Proc == NULL)
|
||||||
{
|
{
|
||||||
CFragConnectionID connectionID;
|
CFragConnectionID connectionID;
|
||||||
Ptr mainAddress;
|
Ptr mainAddress;
|
||||||
Str255 errorString;
|
Str255 errorString;
|
||||||
ProcPtr symbolAddress;
|
ProcPtr symbolAddress;
|
||||||
OSErr err;
|
OSErr err;
|
||||||
CFragSymbolClass symbolClass;
|
CFragSymbolClass symbolClass;
|
||||||
|
|
||||||
symbolAddress = NULL;
|
symbolAddress = NULL;
|
||||||
err = GetSharedLibrary("\pInterfaceLib", kPowerPCCFragArch, kFindCFrag,
|
err = GetSharedLibrary("\pInterfaceLib", kPowerPCCFragArch, kFindCFrag,
|
||||||
&connectionID, &mainAddress, errorString);
|
&connectionID, &mainAddress, errorString);
|
||||||
|
|
||||||
if (err != noErr)
|
if (err != noErr)
|
||||||
{
|
{
|
||||||
gCallUniversalProc_Proc = NULL;
|
gCallUniversalProc_Proc = NULL;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = FindSymbol(connectionID, "\pCallUniversalProc",
|
err = FindSymbol(connectionID, "\pCallUniversalProc",
|
||||||
(Ptr *) &gCallUniversalProc_Proc, &symbolClass);
|
(Ptr *) &gCallUniversalProc_Proc, &symbolClass);
|
||||||
|
|
||||||
if (err != noErr)
|
if (err != noErr)
|
||||||
{
|
{
|
||||||
gCallUniversalProc_Proc = NULL;
|
gCallUniversalProc_Proc = NULL;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
|
MetroNubUserEntryBlock* block = (MetroNubUserEntryBlock *)result;
|
||||||
|
|
||||||
/* make sure the version of the API is compatible */
|
/* make sure the version of the API is compatible */
|
||||||
if (block->apiLowVersion <= kMetroNubUserAPIVersion &&
|
if (block->apiLowVersion <= kMetroNubUserAPIVersion &&
|
||||||
kMetroNubUserAPIVersion <= block->apiHiVersion)
|
kMetroNubUserAPIVersion <= block->apiHiVersion)
|
||||||
gMetroNubEntry = block; /* success! */
|
gMetroNubEntry = block; /* success! */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
|
||||||
#if TARGET_API_MAC_CARBON
|
#if TARGET_API_MAC_CARBON
|
||||||
return (gMetroNubEntry != NULL && gCallUniversalProc_Proc != NULL);
|
return (gMetroNubEntry != NULL && gCallUniversalProc_Proc != NULL);
|
||||||
#else
|
#else
|
||||||
return (gMetroNubEntry != NULL);
|
return (gMetroNubEntry != NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
IsMWDebuggerRunning [v1 API]
|
IsMWDebuggerRunning [v1 API]
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
Boolean IsMWDebuggerRunning()
|
Boolean IsMWDebuggerRunning()
|
||||||
{
|
{
|
||||||
if (IsMetroNubInstalled())
|
if (IsMetroNubInstalled())
|
||||||
return CallIsDebuggerRunningProc(gMetroNubEntry->isDebuggerRunning);
|
return CallIsDebuggerRunningProc(gMetroNubEntry->isDebuggerRunning);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
AmIBeingMWDebugged [v1 API]
|
AmIBeingMWDebugged [v1 API]
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
Boolean AmIBeingMWDebugged()
|
Boolean AmIBeingMWDebugged()
|
||||||
{
|
{
|
||||||
if (IsMetroNubInstalled())
|
if (IsMetroNubInstalled())
|
||||||
return CallAmIBeingDebuggedProc(gMetroNubEntry->amIBeingDebugged);
|
return CallAmIBeingDebuggedProc(gMetroNubEntry->amIBeingDebugged);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
UserSetWatchPoint [v2 API]
|
UserSetWatchPoint [v2 API]
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
OSErr UserSetWatchPoint (Ptr address, long length, WatchPointIDT* watchPointID)
|
OSErr UserSetWatchPoint (Ptr address, long length, WatchPointIDT* watchPointID)
|
||||||
{
|
{
|
||||||
if (IsMetroNubInstalled() && IsCompatibleVersion(kMetroNubUserAPIVersion))
|
if (IsMetroNubInstalled() && IsCompatibleVersion(kMetroNubUserAPIVersion))
|
||||||
return CallUserSetWatchPointProc(gMetroNubEntry->userSetWatchPoint,
|
return CallUserSetWatchPointProc(gMetroNubEntry->userSetWatchPoint,
|
||||||
address, length, watchPointID);
|
address, length, watchPointID);
|
||||||
else
|
else
|
||||||
return errProcessIsNotClient;
|
return errProcessIsNotClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------
|
/* ---------------------------------------------------------------------------
|
||||||
ClearWatchPoint [v2 API]
|
ClearWatchPoint [v2 API]
|
||||||
--------------------------------------------------------------------------- */
|
--------------------------------------------------------------------------- */
|
||||||
|
|
||||||
OSErr ClearWatchPoint (WatchPointIDT watchPointID)
|
OSErr ClearWatchPoint (WatchPointIDT watchPointID)
|
||||||
{
|
{
|
||||||
if (IsMetroNubInstalled() && IsCompatibleVersion(kMetroNubUserAPIVersion))
|
if (IsMetroNubInstalled() && IsCompatibleVersion(kMetroNubUserAPIVersion))
|
||||||
return CallClearWatchPointProc(gMetroNubEntry->clearWatchPoint,
|
return CallClearWatchPointProc(gMetroNubEntry->clearWatchPoint, watchPointID);
|
||||||
watchPointID);
|
else
|
||||||
else
|
return errProcessIsNotClient;
|
||||||
return errProcessIsNotClient;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // !TARGET_API_MAC_CARBON
|
#endif // !TARGET_API_MAC_CARBON
|
||||||
@@ -937,3 +957,5 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif //wxUSE_LOG
|
#endif //wxUSE_LOG
|
||||||
|
|
||||||
|
// vi:sts=4:sw=4:et
|
||||||
|
Reference in New Issue
Block a user