summaryrefslogtreecommitdiff
path: root/lib/nstrftime.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nstrftime.c')
-rw-r--r--lib/nstrftime.c22
1 files changed, 2 insertions, 20 deletions
diff --git a/lib/nstrftime.c b/lib/nstrftime.c
index 46e806e6049..1dd49c0f782 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, &ltm);
-
- 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, &lt, &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, &lt, &gtm))
+ if (ltm.tm_wday < 0 || ! localtime_rz (0, &lt, &gtm))
break;
-
diff = tm_diff (&ltm, &gtm);
}
#endif