diff options
Diffstat (limited to 'lib/getdate.y')
-rw-r--r-- | lib/getdate.y | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/getdate.y b/lib/getdate.y index 80f10120c..bdcf9d91e 100644 --- a/lib/getdate.y +++ b/lib/getdate.y @@ -9,10 +9,13 @@ */ #ifdef HAVE_CONFIG_H -# include <config.h> +# include "config.h" # ifdef HAVE_ALLOCA_H # include <alloca.h> # endif +# ifdef HAVE_TIME_H +# include <time.h> +# endif #endif /* Since the code of getdate.y is not included in the Emacs executable @@ -468,6 +471,7 @@ o_merid : /* NULL */ extern struct tm *gmtime (); extern struct tm *localtime (); +extern struct tm *localtime_r (time_t *, struct tm *); extern time_t mktime (); /* Month and day table. */ @@ -918,10 +922,16 @@ curl_getdate (const char *p, const time_t *now) { struct tm tm, tm0, *tmp; time_t Start; - +#ifdef HAVE_LOCALTIME_R + struct tm keeptime; +#endif yyInput = p; Start = now ? *now : time ((time_t *) NULL); +#ifdef HAVE_LOCALTIME_R + tmp = localtime_r(&Start, &keeptime); +#else tmp = localtime (&Start); +#endif if (!tmp) return -1; yyYear = tmp->tm_year + TM_YEAR_ORIGIN; |