X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/df05cdc578d20df7bdb0eb90869b72c9ed911664..6603907dea3324a55ea99608ee69e3b65634fe73:/src/common/datetime.cpp diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp index 5198a3773d..987c812183 100644 --- a/src/common/datetime.cpp +++ b/src/common/datetime.cpp @@ -194,7 +194,11 @@ static const wxDateTime::wxDateTime_t gs_cumulatedDays[2][MONTHS_IN_YEAR] = // in the fine tradition of ANSI C we use our equivalent of (time_t)-1 to // indicate an invalid wxDateTime object +#ifdef __WIN16__ +static const wxDateTime gs_dtDefault; +#else static const wxDateTime gs_dtDefault = wxLongLong((long)ULONG_MAX, ULONG_MAX); +#endif const wxDateTime& wxDefaultDateTime = gs_dtDefault; @@ -1249,7 +1253,7 @@ wxDateTime::Tm wxDateTime::GetTm(const TimeZone& tz) const else { time += (time_t)tz.GetOffset(); -#ifdef __VMS__ // time is unsigned so avoid warning +#if defined(__VMS__) || defined(__WATCOMC__) // time is unsigned so avoid warning int time2 = (int) time; if ( time2 >= 0 ) #else @@ -1816,7 +1820,7 @@ wxString wxDateTime::Format(const wxChar *format, const TimeZone& tz) const { time += (int)tz.GetOffset(); -#ifdef __VMS__ // time is unsigned so avoid the warning +#if defined(__VMS__) || defined(__WATCOMC__) // time is unsigned so avoid warning int time2 = (int) time; if ( time2 >= 0 ) #else @@ -3119,7 +3123,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) : 31; // can it be day? - if ( (val == 0) || (val > maxDays) ) + if ( (val == 0) || (val > (unsigned long)maxDays) ) // cast to shut up compiler warning in BCC { isYear = TRUE; } @@ -3166,7 +3170,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) // but we already have a month - maybe we guessed wrong? if ( !haveDay ) { - // no need to check in month range as always < 12, but + // no need to check in month range as always < 12, but // the days are counted from 1 unlike the months day = (wxDateTime_t)mon + 1; haveDay = TRUE; @@ -3176,7 +3180,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) // could possible be the year (doesn't the year come // before the month in the japanese format?) (FIXME) break; - } + } } mon = mon2; @@ -3251,7 +3255,7 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) haveDay = TRUE; - day = n + 1; + day = (wxDateTime_t)(n + 1); } } } @@ -3288,7 +3292,8 @@ const wxChar *wxDateTime::ParseDate(const wxChar *date) mon = (wxDateTime::Month)(day - 1); // we're in the current year then - if ( year <= GetNumOfDaysInMonth(Inv_Year, mon) ) + if ( (year > 0) && + (unsigned)year <= GetNumOfDaysInMonth(Inv_Year, mon) ) { day = year;