bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/2] nstrftime: simplify test for mktime failure


From: Paul Eggert
Subject: [PATCH 1/2] nstrftime: simplify test for mktime failure
Date: Sat, 3 Nov 2018 23:05:30 -0700

* lib/nstrftime.c (__strftime_internal): Simplify.
---
 ChangeLog       |  5 +++++
 lib/nstrftime.c | 22 ++--------------------
 2 files changed, 7 insertions(+), 20 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bbf379b8c..cd9d8b83b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-03  Paul Eggert  <address@hidden>
+
+       nstrftime: simplify test for mktime failure
+       * lib/nstrftime.c (__strftime_internal): Simplify.
+
 2018-11-02  Paul Eggert  <address@hidden>
 
        gnulib-common.m4: port _Noreturn to C++
diff --git a/lib/nstrftime.c b/lib/nstrftime.c
index e55cfda0a..61ac84b0d 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
-- 
2.17.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]