From: Paul Eggert Date: Sun, 4 Nov 2018 04:51:33 +0000 (-0700) Subject: nstrftime: simplify test for mktime failure X-Git-Tag: v1.0~5301 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c8bc4bf97dc982ba88f33ccf829a579425dfb9ac;p=thirdparty%2Fgnulib.git nstrftime: simplify test for mktime failure * lib/nstrftime.c (__strftime_internal): Simplify. --- diff --git a/ChangeLog b/ChangeLog index bbf379b8c7..cd9d8b83b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-11-03 Paul Eggert + + nstrftime: simplify test for mktime failure + * lib/nstrftime.c (__strftime_internal): Simplify. + 2018-11-02 Paul Eggert gnulib-common.m4: port _Noreturn to C++ diff --git a/lib/nstrftime.c b/lib/nstrftime.c index e55cfda0a3..61ac84b0dd 100644 --- a/lib/nstrftime.c +++ b/lib/nstrftime.c @@ -1438,28 +1438,10 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) # endif ltm = *tp; + ltm.tm_wday = -1; lt = mktime_z (tz, <m); - - if (lt == (time_t) -1) - { - /* mktime returns -1 for errors, but -1 is also a - valid time_t value. Check whether an error really - occurred. */ - struct tm tm; - - if (! localtime_rz (tz, <, &tm) - || ((ltm.tm_sec ^ tm.tm_sec) - | (ltm.tm_min ^ tm.tm_min) - | (ltm.tm_hour ^ tm.tm_hour) - | (ltm.tm_mday ^ tm.tm_mday) - | (ltm.tm_mon ^ tm.tm_mon) - | (ltm.tm_year ^ tm.tm_year))) - break; - } - - if (! localtime_rz (0, <, >m)) + if (ltm.tm_wday < 0 || ! localtime_rz (0, <, >m)) break; - diff = tm_diff (<m, >m); } #endif