From: Jim Meyering <meyering@redhat.com>
Date: Wed, 31 Oct 2007 19:32:07 +0000 (+0100)
Subject: Treat an empty date string exactly like "0".
X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84005a980aeccf3c9ab68b01ac0964fa0b40212c;p=pspp

Treat an empty date string exactly like "0".

* lib/getdate.y (get_date): Once any isspace or TZ= prefix is consumed,
if the remaining date string (to be parsed) is empty, use "0".
Reported by Mischa Molhoek and discussed in this thread:
<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/11726>.
---

diff --git a/ChangeLog b/ChangeLog
index d3b165205d..c5348926b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-01  Jim Meyering  <meyering@redhat.com>
+
+	Treat an empty date string exactly like "0".
+	* lib/getdate.y (get_date): Once any isspace or TZ= prefix is consumed,
+	if the remaining date string (to be parsed) is empty, use "0".
+	Reported by Mischa Molhoek and discussed in this thread:
+	<http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/11726>.
+
 2007-10-31  Bruno Haible  <bruno@clisp.org>
 
 	* m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Use
diff --git a/lib/getdate.y b/lib/getdate.y
index 80e484d2fe..591c7f0fca 100644
--- a/lib/getdate.y
+++ b/lib/getdate.y
@@ -1238,6 +1238,12 @@ get_date (struct timespec *result, char const *p, struct timespec const *now)
 	  }
     }
 
+  /* As documented, be careful to treat the empty string just like
+     a date string of "0".  Without this, an empty string would be
+     declared invalid when parsed during a DST transition.  */
+  if (*p == '\0')
+    p = "0";
+
   pc.input = p;
   pc.year.value = tmp->tm_year;
   pc.year.value += TM_YEAR_BASE;