build fix (part of r59673, r59656)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
cac1cfce37
commit
48fd6e9dd7
@ -133,6 +133,40 @@ extern WXDLLIMPEXP_DATA_BASE(const wxDateTime) wxDefaultDateTime;
|
|||||||
|
|
||||||
#define wxInvalidDateTime wxDefaultDateTime
|
#define wxInvalidDateTime wxDefaultDateTime
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// conditional compilation
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#if defined(HAVE_STRPTIME) && defined(__GLIBC__) && \
|
||||||
|
((__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0))
|
||||||
|
// glibc 2.0.7 strptime() is broken - the following snippet causes it to
|
||||||
|
// crash (instead of just failing):
|
||||||
|
//
|
||||||
|
// strncpy(buf, "Tue Dec 21 20:25:40 1999", 128);
|
||||||
|
// strptime(buf, "%x", &tm);
|
||||||
|
//
|
||||||
|
// so don't use it
|
||||||
|
#undef HAVE_STRPTIME
|
||||||
|
#endif // broken strptime()
|
||||||
|
|
||||||
|
#if defined(HAVE_STRPTIME) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
|
||||||
|
// configure detects strptime as linkable because it's in the OS X
|
||||||
|
// System library but MSL headers don't declare it.
|
||||||
|
|
||||||
|
// char *strptime(const char *, const char *, struct tm *);
|
||||||
|
// However, we DON'T want to just provide it here because we would
|
||||||
|
// crash and/or overwrite data when strptime from OS X tries
|
||||||
|
// to fill in MW's struct tm which is two fields shorter (no TZ stuff)
|
||||||
|
// So for now let's just say we don't have strptime
|
||||||
|
#undef HAVE_STRPTIME
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// everyone has strftime except Win CE unless VC8 is used
|
||||||
|
#if !defined(__WXWINCE__) || defined(__VISUALC8__)
|
||||||
|
#define HAVE_STRFTIME
|
||||||
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxDateTime represents an absolute moment in the time
|
// wxDateTime represents an absolute moment in the time
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@ -233,7 +267,7 @@ public:
|
|||||||
// adoption of the Gregorian calendar (see IsGregorian())
|
// adoption of the Gregorian calendar (see IsGregorian())
|
||||||
//
|
//
|
||||||
// All data and comments taken verbatim from "The Calendar FAQ (v 2.0)"
|
// All data and comments taken verbatim from "The Calendar FAQ (v 2.0)"
|
||||||
// by Claus Tøndering, http://www.pip.dknet.dk/~c-t/calendar.html
|
// by Claus T<EFBFBD>ndering, http://www.pip.dknet.dk/~c-t/calendar.html
|
||||||
// except for the comments "we take".
|
// except for the comments "we take".
|
||||||
//
|
//
|
||||||
// Symbol "->" should be read as "was followed by" in the comments
|
// Symbol "->" should be read as "was followed by" in the comments
|
||||||
|
@ -88,7 +88,9 @@
|
|||||||
|
|
||||||
#include "wx/datetime.h"
|
#include "wx/datetime.h"
|
||||||
|
|
||||||
const long wxDateTime::TIME_T_FACTOR = 1000l;
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxXTI
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if wxUSE_EXTENDED_RTTI
|
#if wxUSE_EXTENDED_RTTI
|
||||||
|
|
||||||
@ -106,35 +108,11 @@ wxCUSTOM_TYPE_INFO(wxDateTime, wxToStringConverter<wxDateTime> , wxFromStringCon
|
|||||||
|
|
||||||
#endif // wxUSE_EXTENDED_RTTI
|
#endif // wxUSE_EXTENDED_RTTI
|
||||||
|
|
||||||
//
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// conditional compilation
|
// conditional compilation
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if defined(HAVE_STRPTIME) && defined(__GLIBC__) && \
|
|
||||||
((__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0))
|
|
||||||
// glibc 2.0.7 strptime() is broken - the following snippet causes it to
|
|
||||||
// crash (instead of just failing):
|
|
||||||
//
|
|
||||||
// strncpy(buf, "Tue Dec 21 20:25:40 1999", 128);
|
|
||||||
// strptime(buf, "%x", &tm);
|
|
||||||
//
|
|
||||||
// so don't use it
|
|
||||||
#undef HAVE_STRPTIME
|
|
||||||
#endif // broken strptime()
|
|
||||||
|
|
||||||
#if defined(HAVE_STRPTIME) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS
|
|
||||||
// configure detects strptime as linkable because it's in the OS X
|
|
||||||
// System library but MSL headers don't declare it.
|
|
||||||
|
|
||||||
// char *strptime(const char *, const char *, struct tm *);
|
|
||||||
// However, we DON'T want to just provide it here because we would
|
|
||||||
// crash and/or overwrite data when strptime from OS X tries
|
|
||||||
// to fill in MW's struct tm which is two fields shorter (no TZ stuff)
|
|
||||||
// So for now let's just say we don't have strptime
|
|
||||||
#undef HAVE_STRPTIME
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__MWERKS__) && wxUSE_UNICODE
|
#if defined(__MWERKS__) && wxUSE_UNICODE
|
||||||
#include <wtime.h>
|
#include <wtime.h>
|
||||||
#endif
|
#endif
|
||||||
@ -203,11 +181,6 @@ wxCUSTOM_TYPE_INFO(wxDateTime, wxToStringConverter<wxDateTime> , wxFromStringCon
|
|||||||
#endif
|
#endif
|
||||||
#endif // !WX_TIMEZONE && !WX_GMTOFF_IN_TM
|
#endif // !WX_TIMEZONE && !WX_GMTOFF_IN_TM
|
||||||
|
|
||||||
// everyone has strftime except Win CE unless VC8 is used
|
|
||||||
#if !defined(__WXWINCE__) || defined(__VISUALC8__)
|
|
||||||
#define HAVE_STRFTIME
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// NB: VC8 safe time functions could/should be used for wxMSW as well probably
|
// NB: VC8 safe time functions could/should be used for wxMSW as well probably
|
||||||
#if defined(__WXWINCE__) && defined(__VISUALC8__)
|
#if defined(__WXWINCE__) && defined(__VISUALC8__)
|
||||||
|
|
||||||
@ -358,6 +331,8 @@ static const wxDateTime::wxDateTime_t gs_cumulatedDays[2][MONTHS_IN_YEAR] =
|
|||||||
{ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }
|
{ 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const long wxDateTime::TIME_T_FACTOR = 1000l;
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// global data
|
// global data
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@ -1183,12 +1183,13 @@ wxDateTime::ParseFormat(const wxString& date,
|
|||||||
case _T('c'): // locale default date and time representation
|
case _T('c'): // locale default date and time representation
|
||||||
{
|
{
|
||||||
wxDateTime dt;
|
wxDateTime dt;
|
||||||
tm tm;
|
|
||||||
|
|
||||||
const wxString inc(input);
|
const wxString inc(input);
|
||||||
|
|
||||||
// NOTE: %c is locale-dependent; try strptime
|
// NOTE: %c is locale-dependent; try strptime
|
||||||
#ifdef HAVE_STRPTIME
|
#ifdef HAVE_STRPTIME
|
||||||
|
struct tm tm;
|
||||||
|
|
||||||
// try using strptime() -- it may fail even if the input is
|
// try using strptime() -- it may fail even if the input is
|
||||||
// correct but the date is out of range, so we will fall back
|
// correct but the date is out of range, so we will fall back
|
||||||
// to our generic code anyhow
|
// to our generic code anyhow
|
||||||
|
Loading…
Reference in New Issue
Block a user