Mercurial > gnulib
changeset 39962:bd7126276a36
nstrftime: simplify test for mktime failure
* lib/nstrftime.c (__strftime_internal): Simplify.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sat, 03 Nov 2018 21:51:33 -0700 |
parents | 4a9dba57ac9e |
children | dca2b5da2a36 |
files | ChangeLog lib/nstrftime.c |
diffstat | 2 files changed, 7 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Nov 02 14:09:35 2018 -0700 +++ b/ChangeLog Sat Nov 03 21:51:33 2018 -0700 @@ -1,3 +1,8 @@ +2018-11-03 Paul Eggert <eggert@cs.ucla.edu> + + nstrftime: simplify test for mktime failure + * lib/nstrftime.c (__strftime_internal): Simplify. + 2018-11-02 Paul Eggert <eggert@cs.ucla.edu> gnulib-common.m4: port _Noreturn to C++
--- a/lib/nstrftime.c Fri Nov 02 14:09:35 2018 -0700 +++ b/lib/nstrftime.c Sat Nov 03 21:51:33 2018 -0700 @@ -1438,28 +1438,10 @@ # 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