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 | |
parent | 6c466c985f3c39df995b886c2b95f307d1285045 (diff) | |
download | netsurf-1a3ee6090d2fdb81bef935929938af20279bc879.tar.gz netsurf-1a3ee6090d2fdb81bef935929938af20279bc879.tar.bz2 |
add strptime compatability
-rw-r--r-- | content/llcache.c | 2 | ||||
-rw-r--r-- | utils/config.h | 8 | ||||
-rw-r--r-- | utils/utils.c | 27 |
3 files changed, 37 insertions, 0 deletions
diff --git a/content/llcache.c b/content/llcache.c index 653352d3f..5137b2240 100644 --- a/content/llcache.c +++ b/content/llcache.c @@ -38,6 +38,8 @@ #include <time.h> #include <curl/curl.h> +#include "utils/config.h" + #include "utils/corestrings.h" #include "utils/log.h" #include "utils/messages.h" 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 |