fixed broken wxCtime() implementation (wrong buffer size count, wrong conversion)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2005-03-23 23:45:45 +00:00
parent 0f00be4b33
commit 9348da2fc0

View File

@ -1520,10 +1520,14 @@ wxStrftime(wxChar *s, size_t maxsize, const wxChar *fmt, const struct tm *tm)
#ifndef wxCtime
WXDLLEXPORT wxChar *wxCtime(const time_t *timep)
{
static wxChar buf[128];
// normally the string is 26 chars but give one more in case some broken
// DOS compiler decides to use "\r\n" instead of "\n" at the end
static wxChar buf[27];
wxStrncpy( buf, wxConvertMB2WX( ctime( timep ) ), sizeof( buf ) );
buf[ sizeof( buf ) - 1 ] = _T('\0');
// ctime() is guaranteed to return a string containing only ASCII
// characters, as its format is always the same for any locale
wxStrncpy(buf, wxString::FromAscii(ctime(timep)), WXSIZEOF(buf));
buf[WXSIZEOF(buf) - 1] = _T('\0');
return buf;
}