static char buf[128];
wxString fmt(dt->Format("%Y-%m-%d (%a) %H:%M:%S"));
- wxStrncpy(buf, fmt + " (" + dt->GetValue().ToString() + " ticks)",
+ wxStrlcpy(buf,
+ (fmt + " (" + dt->GetValue().ToString() + " ticks)").ToAscii(),
WXSIZEOF(buf));
return buf;
if ( !wxStrftime(buf, WXSIZEOF(buf), format, tm) )
{
- // buffer is too small?
+ // if the format is valid, buffer must be too small?
wxFAIL_MSG(_T("strftime() failed"));
+
+ buf[0] = '\0';
}
s = buf;
Tm tm = tmDef;
// set the date
+ if ( haveMon )
+ {
+ tm.mon = mon;
+ }
+
if ( haveYear )
{
tm.year = year;
// TODO we don't check here that the values are consistent, if both year
// day and month/day were found, we just ignore the year day and we
// also always ignore the week day
- if ( haveMon && haveDay )
+ if ( haveDay )
{
- if ( mday > GetNumOfDaysInMonth(tm.year, mon) )
+ if ( mday > GetNumOfDaysInMonth(tm.year, tm.mon) )
{
wxLogDebug(_T("bad month day in wxDateTime::ParseFormat"));
return NULL;
}
- tm.mon = mon;
tm.mday = mday;
}
else if ( haveYDay )
wxDateTime& wxDateTime::SetFromMSWSysTime(const SYSTEMTIME& st)
{
return Set(st.wDay,
- wx_static_cast(wxDateTime::Month, wxDateTime::Jan + st.wMonth - 1),
+ static_cast<wxDateTime::Month>(wxDateTime::Jan + st.wMonth - 1),
st.wYear,
0, 0, 0);
}