openbsd-ports/x11/wxWidgets/patches/patch-src_common_log_cpp
todd b25888b419 wxWidgets 2.4.2, C++ cross-platform GUI toolkit
www: http://www.wxwidgets.org/

from Andrew Dalgleish   < openbsd at ajd dot net dot au >
many thanks for much persistence!
2004-07-16 21:01:35 +00:00

64 lines
2.2 KiB
Plaintext

$OpenBSD: patch-src_common_log_cpp,v 1.1.1.1 2004/07/16 21:01:35 todd Exp $
--- src/common/log.cpp.orig 2003-09-20 20:24:25.000000000 +1000
+++ src/common/log.cpp 2003-10-04 13:24:11.000000000 +1000
@@ -248,22 +248,13 @@ void wxLogVerbose(const wxChar *szFormat
if ( IsLoggingEnabled() && wxLog::IsAllowedTraceMask(mask) ) {
wxCRIT_SECT_LOCKER(locker, gs_csLogBuf);
- wxChar *p = s_szBuf;
- size_t len = s_szBufSize;
- wxStrncpy(s_szBuf, _T("("), len);
- len -= 1; // strlen("(")
- p += 1;
- wxStrncat(p, mask, len);
- size_t lenMask = wxStrlen(mask);
- len -= lenMask;
- p += lenMask;
-
- wxStrncat(p, _T(") "), len);
- len -= 2;
- p += 2;
-
- wxVsnprintf(p, len, szFormat, argptr);
-
+ strlcpy(s_szBuf, _T("("), s_szBufSize);
+ strlcat(s_szBuf, mask, s_szBufSize);
+ strlcat(s_szBuf, _T(") "), s_szBufSize);
+
+ size_t len = strlen(s_szBuf);
+ wxVsnprintf(s_szBuf + len, s_szBufSize - len, szFormat, argptr);
+
wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL));
}
}
@@ -314,7 +305,7 @@ void wxLogSysErrorHelper(long lErrCode)
wxChar szErrMsg[LOG_BUFFER_SIZE / 2];
wxSnprintf(szErrMsg, WXSIZEOF(szErrMsg),
_(" (error %ld: %s)"), lErrCode, wxSysErrorMsg(lErrCode));
- wxStrncat(s_szBuf, szErrMsg, s_szBufSize - wxStrlen(s_szBuf));
+ strlcat(s_szBuf, szErrMsg, s_szBufSize);
wxLog::OnLog(wxLOG_Error, s_szBuf, time(NULL));
}
@@ -725,8 +716,8 @@ void wxLogStderr::DoLogString(const wxCh
#endif // MSW
#if defined(__WXMAC__) && !defined(__DARWIN__) && wxUSE_GUI
Str255 pstr ;
- strcpy( (char*) pstr , str.c_str() ) ;
- strcat( (char*) pstr , ";g" ) ;
+ strlcpy( (char*) pstr , str.c_str(), sizeof(pstr)) ;
+ strlcat( (char*) pstr , ";g", sizeof(pstr)) ;
c2pstr( (char*) pstr ) ;
Boolean running = false ;
@@ -946,8 +937,7 @@ const wxChar *wxSysErrorMsg(unsigned lon
// copy it to our buffer and free memory
if( lpMsgBuf != 0 ) {
- wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1);
- s_szBuf[WXSIZEOF(s_szBuf) - 1] = wxT('\0');
+ strlcpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf));
LocalFree(lpMsgBuf);