diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-05-13 16:37:49 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-05-13 16:37:49 +0100 |
commit | 1a3ee6090d2fdb81bef935929938af20279bc879 (patch) | |
tree | c3a0418511e29c9a245a3d87ae146d117d5e3591 /utils | |
parent | 6c466c985f3c39df995b886c2b95f307d1285045 (diff) | |
download | netsurf-1a3ee6090d2fdb81bef935929938af20279bc879.tar.gz netsurf-1a3ee6090d2fdb81bef935929938af20279bc879.tar.bz2 |
add strptime compatability
Diffstat (limited to 'utils')
-rw-r--r-- | utils/config.h | 8 | ||||
-rw-r--r-- | utils/utils.c | 27 |
2 files changed, 35 insertions, 0 deletions
diff --git a/utils/config.h b/utils/config.h index 543bafa1b..12b4b7fc0 100644 --- a/utils/config.h +++ b/utils/config.h @@ -38,6 +38,14 @@ char *strndup(const char *s, size_t n); char *strcasestr(const char *haystack, const char *needle); #endif +#if (defined(riscos) || defined(_WIN32)) +#undef HAVE_STRPTIME +#define strptime nsc_time_strptime +char *nsc_time_strptime(const char *s, const char *format, struct tm *tm); +#else +#define HAVE_STRPTIME +#endif + /* For some reason, UnixLib defines this unconditionally. * Assume we're using UnixLib if building for RISC OS. */ #if ((defined(_GNU_SOURCE) && !defined(__APPLE__)) || defined(riscos)) diff --git a/utils/utils.c b/utils/utils.c index c036ff2f7..9bccf2b90 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -561,3 +561,30 @@ int inet_pton(int af, const char *src, void *dst) #endif + +#ifndef HAVE_STRPTIME + +/** + * naff strptime implementation for risc os and windows. + * + * @warning only supports %s format + */ +char *nsc_time_strptime(const char *s, const char *format, struct tm *tm) +{ + time_t esecs; + struct tm *gtm; + char *endptr; + + if ((format[0] != '%') || (format[1] != 's')) { + return NULL + } + + esecs = (time_t)strtoll(a, &endptr, 10); + + gtm = gmtime(esecs); + *tm = *gtm; + + return endptr; +} + +#endif |