From 2bdd2d12801eada77945d4f6644248cf7952cc64 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 12 Feb 2020 12:23:46 -0500 Subject: parse: Work around missing `timezone` on FreeBSD FreeBSD has a function timezone() that conflicts with the global variable, despite that being specified by POSIX. Use tm_gmtoff instead. --- parse.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'parse.c') diff --git a/parse.c b/parse.c index 373f7c2..16d0c96 100644 --- a/parse.c +++ b/parse.c @@ -1787,8 +1787,13 @@ invalid: fprintf(stderr, " - %04d-%02d-%02d\n", year, month, tm.tm_mday); fprintf(stderr, " - %04d-%02d-%02dT%02d:%02d:%02d\n", year, month, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); +#if __FreeBSD__ + tz_hour = tm.tm_gmtoff/3600; + tz_min = (labs(tm.tm_gmtoff)/60)%60; +#else tz_hour = -timezone/3600; tz_min = (labs(timezone)/60)%60; +#endif fprintf(stderr, " - %04d-%02d-%02dT%02d:%02d:%02d%+03d:%02d\n", year, month, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, tz_hour, tz_min); -- cgit v1.2.3