GNU logs - #14097, boring messages


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Sat, 30 Mar 2013 19:22:02 +0000
Resent-Message-ID: <handler.14097.B.13646712925273 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: bug-gnulib@HIDDEN
Cc: 14097 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-coreutils@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.13646712925273
          (code B ref -1); Sat, 30 Mar 2013 19:22:02 +0000
Received: (at submit) by debbugs.gnu.org; 30 Mar 2013 19:21:32 +0000
Received: from localhost ([127.0.0.1]:53078 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UM1LH-0001N0-W8
	for submit <at> debbugs.gnu.org; Sat, 30 Mar 2013 15:21:32 -0400
Received: from eggs.gnu.org ([208.118.235.92]:39897)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <mihai@HIDDEN>) id 1UM1LE-0001Mq-4q
	for submit <at> debbugs.gnu.org; Sat, 30 Mar 2013 15:21:29 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <mihai@HIDDEN>) id 1UM1IX-0003dA-Ff
	for submit <at> debbugs.gnu.org; Sat, 30 Mar 2013 15:18:44 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-101.9 required=5.0 tests=BAYES_00, USER_IN_WHITELIST
	autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([208.118.235.17]:41355)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <mihai@HIDDEN>) id 1UM1IX-0003d6-Ca
	for submit <at> debbugs.gnu.org; Sat, 30 Mar 2013 15:18:41 -0400
Received: from eggs.gnu.org ([208.118.235.92]:51248)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <mihai@HIDDEN>) id 1UM1IT-0006IL-Hb
	for bug-coreutils@HIDDEN; Sat, 30 Mar 2013 15:18:41 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <mihai@HIDDEN>) id 1UM1IQ-0003cW-6d
	for bug-coreutils@HIDDEN; Sat, 30 Mar 2013 15:18:37 -0400
Received: from mail-wi0-x236.google.com ([2a00:1450:400c:c05::236]:45126)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <mihai@HIDDEN>) id 1UM1IP-0003cC-T9
	for bug-coreutils@HIDDEN; Sat, 30 Mar 2013 15:18:34 -0400
Received: by mail-wi0-f182.google.com with SMTP id hi18so652837wib.9
	for <bug-coreutils@HIDDEN>; Sat, 30 Mar 2013 12:18:32 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=google.com; s=20120113;
	h=x-received:from:to:cc:subject:date:message-id:x-mailer
	:x-gm-message-state;
	bh=1cWS3oeOHgScddIXcPlxsqS4FSuxZa/FwjlJaaABP/M=;
	b=d/Jv3zBXgTCWzj0+7PCl/J4sQD3vHsMht1oL+NlS0Wbj9Zr3GAmo4y0mlRhReQdXPi
	Vv0D/CYEpfgfnJcCiud1lo5h4fa3kDZ7dFr1dDjgr6nS703rKflG3g8yuQVZQZEts28a
	oGnciLPQe0Ri3QpXtGZ1Jh23+6aD/mHq9Qg2eIgyhEmvFZUP9Qr7PzF4XeDMexClrOjr
	79liRwFir03P5rpjgE7nD0ucoM8Lyg+6UmH50c7gFkbbr3XBaDxTWtKPiMAfzjkAUWut
	XeIa0gGsVwnTT9MB5dqRt3h0+zgh3+4Fknm0goczpPlNBDSZprixI6Y29IVRMfS3H4ZT
	+QLA==
X-Received: by 10.180.77.9 with SMTP id o9mr3523637wiw.16.1364671112406;
	Sat, 30 Mar 2013 12:18:32 -0700 (PDT)
Received: from dutier.st.ewi.tudelft.nl (dutier.st.ewi.tudelft.nl.
	[130.161.159.51])
	by mx.google.com with ESMTPS id bq19sm5355340wib.7.2013.03.30.12.18.30
	(version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
	Sat, 30 Mar 2013 12:18:31 -0700 (PDT)
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Date: Sat, 30 Mar 2013 20:18:13 +0100
Message-Id: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
X-Mailer: git-send-email 1.7.9.5
X-Gm-Message-State: ALoCoQmnCaim/JZs7d0G70DJ3pJmVKWIgxTI1WuPXwrKy0+yt2VWbgHB/2nfLej+oK1LeweoT2RU
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
	(bad octet value).
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 208.118.235.17
X-Spam-Score: -6.2 (------)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.2 (------)

The parser now accepts the basic format for combined date and time
representations, which ommits the date and time separators, "-" and ":".

See bug 23767 for GNU coreutils, <https://savannah.gnu.org/bugs/?23767>.

* lib/parse-datetime.y: Parse combined date and time representations in
ISO 8601 basic format.
(set_hhmmss_iso_8601_basic_time) New function.
* tests/test-parse-datetime.c: Add new tests for combined date and time
representations in ISO 8601 basic format.
---
 lib/parse-datetime.y        |   78 +++++++++++++++++++++++++++++++++++++++++--
 tests/test-parse-datetime.c |   61 +++++++++++++++++++++++++++++++++
 2 files changed, 137 insertions(+), 2 deletions(-)

diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y
index 77d95b7..20bf1ac 100644
--- a/lib/parse-datetime.y
+++ b/lib/parse-datetime.y
@@ -282,6 +282,60 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
   pc->seconds.tv_nsec = nsec;
 }
 
+/* Set PC-> hour, minutes, seconds and nanoseconds members from ISO 8601 basic
+   time.  */
+static void
+set_hhmmss_iso_8601_basic_time (parser_control *pc, long int integer_part,
+                                long int fractional_part)
+{
+  if (integer_part / 1000000 > 0)
+    {
+      /* not ISO 8601 time, forcing mktime error */
+      pc->hour = 90;
+      pc->minutes = 0;
+      pc->seconds.tv_sec = 0;
+      pc->seconds.tv_nsec = 0;
+    }
+  else
+    {
+      pc->hour = integer_part / 10000;
+      if (pc->hour > 0) /* HHMMSS */
+        {
+          pc->minutes = (integer_part % 10000) / 100;
+          pc->seconds.tv_sec = integer_part % 100;
+          pc->seconds.tv_nsec = fractional_part;
+        }
+      else
+        {
+          if (fractional_part != 0)
+            {
+              /* FIXME support fractional part for minutes and hours */
+              pc->hour = 90;
+              pc->minutes = 0;
+              pc->seconds.tv_sec = 0;
+              pc->seconds.tv_nsec = 0;
+            }
+          else
+            {
+              pc->hour = integer_part / 100;
+              if (pc->hour > 0) /* HHMM */
+                {
+                  pc->minutes = integer_part % 100;
+                  pc->seconds.tv_sec = 0;
+                  pc->seconds.tv_nsec = 0;
+                }
+              else /* HH */
+                {
+                  pc->hour = integer_part;
+                  pc->minutes = 0;
+                  pc->seconds.tv_sec = 0;
+                  pc->seconds.tv_nsec = 0;
+                }
+            }
+        }
+    }
+}
+
 %}
 
 /* We want a reentrant parser, even if the TZ manipulation and the calls to
@@ -290,8 +344,8 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 %parse-param { parser_control *pc }
 %lex-param { parser_control *pc }
 
-/* This grammar has 31 shift/reduce conflicts. */
-%expect 31
+/* This grammar has 34 shift/reduce conflicts. */
+%expect 34
 
 %union
 {
@@ -358,12 +412,18 @@ item:
 
 datetime:
     iso_8601_datetime
+  | iso_8601_basic_datetime
   ;
 
 iso_8601_datetime:
     iso_8601_date 'T' iso_8601_time
   ;
 
+iso_8601_basic_datetime:
+    number 'T' iso_8601_basic_time
+      { pc->dates_seen--; } /* already incremented in digits_to_date_time */
+  ;
+
 time:
     tUNUMBER tMERIDIAN
       {
@@ -401,6 +461,20 @@ iso_8601_time:
       }
   ;
 
+iso_8601_basic_time:
+    tUNUMBER o_zone_offset
+      {
+        set_hhmmss_iso_8601_basic_time (pc, $1.value, 0);
+        pc->meridian = MER24;
+      }
+  | tUDECIMAL_NUMBER o_zone_offset
+      {
+        /* FIXME avoid time_t to long int cast */
+        set_hhmmss_iso_8601_basic_time (pc, (long int)$1.tv_sec, $1.tv_nsec);
+        pc->meridian = MER24;
+      }
+  ;
+
 o_zone_offset:
   /* empty */
   | zone_offset
diff --git a/tests/test-parse-datetime.c b/tests/test-parse-datetime.c
index 7eba9ad..c620009 100644
--- a/tests/test-parse-datetime.c
+++ b/tests/test-parse-datetime.c
@@ -216,6 +216,67 @@ main (int argc _GL_UNUSED, char **argv)
           && expected.tv_nsec == result.tv_nsec);
 
 
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, local time zone */
+  p = "20110501T115518";
+  expected.tv_sec = ref_time - gmtoff;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, UTC */
+  p = "20110501T115518Z";
+  expected.tv_sec = ref_time;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/UTC offset */
+  p = "20110501T115518-0700";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/hour only UTC offset */
+  p = "20110501T115518-07";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/hour only UTC offset, with ns */
+  p = "20110501T115518,123456789-07";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 123456789;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* Invalid ISO 8601 basic date and time of day representation,
+     too many digits for time */
+  p = "20110501T11551800";
+  ASSERT (!parse_datetime (&result, p, 0));
+
+
   now.tv_sec = 4711;
   now.tv_nsec = 1267;
   p = "now";
-- 
1.7.9.5





Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.428 (Entity 5.428)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Subject: bug#14097: Acknowledgement ([PATCH] Add support for ISO 8601
 basic format)
Message-ID: <handler.14097.B.13646712925273.ack <at> debbugs.gnu.org>
References: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
X-Gnu-PR-Message: ack 14097
X-Gnu-PR-Package: coreutils
X-Gnu-PR-Keywords: patch
Reply-To: 14097 <at> debbugs.gnu.org
Date: Sat, 30 Mar 2013 19:22:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-coreutils@HIDDEN

If you wish to submit further information on this problem, please
send it to 14097 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
14097: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D14097
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH] Add support for ISO 8601 basic format
Resent-From: Eric Blake <eblake@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Mon, 01 Apr 2013 12:55:02 +0000
Resent-Message-ID: <handler.14097.B14097.136482085611628 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Cc: 14097 <at> debbugs.gnu.org, bug-gnulib@HIDDEN
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.136482085611628
          (code B ref 14097); Mon, 01 Apr 2013 12:55:02 +0000
Received: (at 14097) by debbugs.gnu.org; 1 Apr 2013 12:54:16 +0000
Received: from localhost ([127.0.0.1]:55670 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UMeFb-00031S-Eu
	for submit <at> debbugs.gnu.org; Mon, 01 Apr 2013 08:54:16 -0400
Received: from mx1.redhat.com ([209.132.183.28]:2834)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eblake@HIDDEN>) id 1UMeFX-00031H-8P
	for 14097 <at> debbugs.gnu.org; Mon, 01 Apr 2013 08:54:13 -0400
Received: from int-mx01.intmail.prod.int.phx2.redhat.com
	(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
	by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r31CpHE5023788
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
	Mon, 1 Apr 2013 08:51:17 -0400
Received: from [10.3.113.179] (ovpn-113-179.phx2.redhat.com [10.3.113.179])
	by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP
	id r31CpG7r001836; Mon, 1 Apr 2013 08:51:16 -0400
Message-ID: <515982C3.6000403@HIDDEN>
Date: Mon, 01 Apr 2013 06:51:15 -0600
From: Eric Blake <eblake@HIDDEN>
Organization: Red Hat, Inc.
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:17.0) Gecko/20130311 Thunderbird/17.0.4
MIME-Version: 1.0
References: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
In-Reply-To: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
X-Enigmail-Version: 1.5.1
OpenPGP: url=http://people.redhat.com/eblake/eblake.gpg
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature";
	boundary="----enig2ONEBXNICVMWFVUXEDIPM"
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
X-Spam-Score: -7.3 (-------)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -9.2 (---------)

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
------enig2ONEBXNICVMWFVUXEDIPM
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 03/30/2013 01:18 PM, Mihai Capot=C4=83 wrote:
> The parser now accepts the basic format for combined date and time
> representations, which ommits the date and time separators, "-" and ":"=
=2E

s/ommits/omits/

>=20
> See bug 23767 for GNU coreutils, <https://savannah.gnu.org/bugs/?23767>=
=2E
>=20
> * lib/parse-datetime.y: Parse combined date and time representations in=

> ISO 8601 basic format.
> (set_hhmmss_iso_8601_basic_time) New function.
> * tests/test-parse-datetime.c: Add new tests for combined date and time=

> representations in ISO 8601 basic format.
> ---
>  lib/parse-datetime.y        |   78 +++++++++++++++++++++++++++++++++++=
++++++--
>  tests/test-parse-datetime.c |   61 +++++++++++++++++++++++++++++++++

This patch is non-trivial in size.  I stopped reviewing here; we would
need to have copyright assignment on file to take this patch from you.
Is this still something you are interested in pursuing?

--=20
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


------enig2ONEBXNICVMWFVUXEDIPM
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.13 (GNU/Linux)
Comment: Public key at http://people.redhat.com/eblake/eblake.gpg
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCAAGBQJRWYLEAAoJEKeha0olJ0NqefcH/iFXAJnEwrisZXSCfyz+A5Jh
nZkWiZOZ6hMpk0i4qH3gn5p39gFI6pOkV8KwIUKWmbDT7eAj4XVE7mwyQGNnccPk
PdXrLXgo/SAqKFbRp6hnudMmpzlrlKaQIgA06nMB4b3pkI0xxq6iUcSzIhgL+q7Z
wy2ojK5/0z7Anxzfdkfz0EIhha8nEA86JP2JOzya4hRoHmagUOe878n5If1cTt9G
7KEsSDdWVEfayjPwY+XJWe5FhFRd8Ehtf9Qjpel+5ggYti9RB0vP5MNAcxL8oYaT
rvZ4nt2vidZb9Rz6EcArqSponPQwqO0hIEGROXtiei1x74YcnqgLoRJJgPTOsU4=
=RuYV
-----END PGP SIGNATURE-----

------enig2ONEBXNICVMWFVUXEDIPM--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Mon, 01 Apr 2013 13:20:01 +0000
Resent-Message-ID: <handler.14097.B14097.136482236913913 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: Eric Blake <eblake@HIDDEN>
Cc: 14097 <at> debbugs.gnu.org, bug-gnulib@HIDDEN
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.136482236913913
          (code B ref 14097); Mon, 01 Apr 2013 13:20:01 +0000
Received: (at 14097) by debbugs.gnu.org; 1 Apr 2013 13:19:29 +0000
Received: from localhost ([127.0.0.1]:55689 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UMee1-0003cL-44
	for submit <at> debbugs.gnu.org; Mon, 01 Apr 2013 09:19:29 -0400
Received: from mail-ia0-f179.google.com ([209.85.210.179]:47518)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <mihai@HIDDEN>) id 1UMedz-0003cD-5q
	for 14097 <at> debbugs.gnu.org; Mon, 01 Apr 2013 09:19:28 -0400
Received: by mail-ia0-f179.google.com with SMTP id x24so1872882iak.10
	for <14097 <at> debbugs.gnu.org>; Mon, 01 Apr 2013 06:16:33 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=google.com; s=20120113;
	h=mime-version:x-received:in-reply-to:references:date:message-id
	:subject:from:to:cc:content-type:x-gm-message-state;
	bh=m7XPZ+jjok1nRRQ7AiLe/JvriWuivQiUZ2IA5TjbL0I=;
	b=mc3R1OVPJVC52KlQvBrw06OlvRqCPdbDS/zKg9xp4/hKoR+FaasR+zKb42h5tQE50x
	uy+kN4Ra0xzE91D7I9o38MWAuCSe0qrMDy9MEwT1g1TFKypVfBP6BkHZ79x3yQDm+gyI
	TS3vdn0ZJSf8bRJj/dfHMHWOhgmRdmyMTtXXrufEpw5BKUDkeaaLvxlHG9oOYTuncFgT
	AymxF40XcsBtrfWycDUM7nhJmflKjO0MIUYZ98xY25TXT7aEssQIzk4MocdPNKfaeEj+
	Y0bwZvG+NFHD9eM4NSZAeotlD3MxCqeppd4C6E62HvjG85ie1qkdOHwbekgdU4IE7K8u
	Z+dQ==
MIME-Version: 1.0
X-Received: by 10.50.196.165 with SMTP id in5mr3323419igc.99.1364822193785;
	Mon, 01 Apr 2013 06:16:33 -0700 (PDT)
Received: by 10.64.7.75 with HTTP; Mon, 1 Apr 2013 06:16:33 -0700 (PDT)
In-Reply-To: <515982C3.6000403@HIDDEN>
References: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
	<515982C3.6000403@HIDDEN>
Date: Mon, 1 Apr 2013 15:16:33 +0200
Message-ID: <CADyhzG1WOQKcO2uUmgzraUDMRJvcU92qHF=c3fosLfe9=wgB8A@HIDDEN>
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
X-Gm-Message-State: ALoCoQlz1dr9ko2ckQhS1F6uSFGfZlhiUpZRBPBxo2LrSVJfbI1suOOupRYQF7enKb7Uxp0r2kJn
X-Spam-Score: 0.1 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -2.6 (--)

On Mon, Apr 1, 2013 at 2:51 PM, Eric Blake <eblake@HIDDEN> wrote:
> This patch is non-trivial in size.  I stopped reviewing here; we would
> need to have copyright assignment on file to take this patch from you.
> Is this still something you are interested in pursuing?

Yes, it is. I will take care of the copyright assignment ASAP.

Mihai




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Wed, 24 Apr 2013 12:11:01 +0000
Resent-Message-ID: <handler.14097.B14097.13668054558090 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: Eric Blake <eblake@HIDDEN>
Cc: 14097 <at> debbugs.gnu.org, bug-gnulib@HIDDEN
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.13668054558090
          (code B ref 14097); Wed, 24 Apr 2013 12:11:01 +0000
Received: (at 14097) by debbugs.gnu.org; 24 Apr 2013 12:10:55 +0000
Received: from localhost ([127.0.0.1]:40537 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UUyXG-00026O-D4
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2013 08:10:54 -0400
Received: from mail-ia0-f176.google.com ([209.85.210.176]:55583)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <mihai@HIDDEN>) id 1UUyXD-000263-MN
	for 14097 <at> debbugs.gnu.org; Wed, 24 Apr 2013 08:10:52 -0400
Received: by mail-ia0-f176.google.com with SMTP id l27so1043936iae.21
	for <14097 <at> debbugs.gnu.org>; Wed, 24 Apr 2013 05:05:49 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=google.com; s=20120113;
	h=mime-version:x-received:in-reply-to:references:date:message-id
	:subject:from:to:cc:content-type:x-gm-message-state;
	bh=4EXvKTFprsMMZL1wBdFgoPmJTUrdDhDnckQKIQLM8tE=;
	b=di/fVzHqtLHS2LUXfw2k5Sp0eDp3ttZiYQ041w4lXY2joERBvF/D5/gZvn3YbU90qU
	mY96i4YolhI7WfsejQrCgO2SzsQJ9LgQYpIGdvM0yFX2LAeLoVlqgVTbByNQ5QGAC5lV
	lIImlGL0lLvY06LhTcrvKhqyDjM8o+XN6O4EOdi2ja0stivwe6/0W2RUdXj5+OUt9C0X
	KHgl7Yx2mKOgSBvRxsdWfJNccLM7++2zk/5eHlsUsQZKdYxY6srFYs8QcVsaJfKlJYs0
	r6pNnxbB67tQXNkm8vYx4ZQA/nl4oejfWsugXYq+/+vNzbysymF1Der3yy7VuZAPIHXI
	yGQw==
MIME-Version: 1.0
X-Received: by 10.50.45.97 with SMTP id l1mr27035593igm.99.1366805149151; Wed,
	24 Apr 2013 05:05:49 -0700 (PDT)
Received: by 10.64.28.229 with HTTP; Wed, 24 Apr 2013 05:05:49 -0700 (PDT)
In-Reply-To: <515982C3.6000403@HIDDEN>
References: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
	<515982C3.6000403@HIDDEN>
Date: Wed, 24 Apr 2013 14:05:49 +0200
Message-ID: <CADyhzG0TeCWCvZ7cvN6nKD1xMHMzFF1Q+jSSnEaitEZft+1pBA@HIDDEN>
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
X-Gm-Message-State: ALoCoQlFdwJB4dvBFZKtWYZI+k0VIofIO+fKNwzO1rdk5UgQAFsJ4IuijZ4l4X4QBkFQb5cMeuXa
X-Spam-Score: 0.1 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -2.6 (--)

On Mon, Apr 1, 2013 at 2:51 PM, Eric Blake <eblake@HIDDEN> wrote:
> This patch is non-trivial in size.  I stopped reviewing here; we would
> need to have copyright assignment on file to take this patch from you.
> Is this still something you are interested in pursuing?

I completed the assignment process. Please continue the review.

Mihai




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH] Add support for ISO 8601 basic format
Resent-From: Paul Eggert <eggert@HIDDEN>
Original-Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Wed, 24 Apr 2013 22:08:02 +0000
Resent-Message-ID: <handler.14097.B.136684126022428 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Cc: 14097 <at> debbugs.gnu.org, bug-gnulib@HIDDEN
X-Debbugs-Original-Cc: bug-coreutils@HIDDEN, bug-gnulib@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.136684126022428
          (code B ref -1); Wed, 24 Apr 2013 22:08:02 +0000
Received: (at submit) by debbugs.gnu.org; 24 Apr 2013 22:07:40 +0000
Received: from localhost ([127.0.0.1]:41694 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1UV7ql-0005pd-Tn
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2013 18:07:40 -0400
Received: from eggs.gnu.org ([208.118.235.92]:59330)
	by debbugs.gnu.org with esmtp (Exim 4.72)
	(envelope-from <eggert@HIDDEN>) id 1UV7qj-0005pW-Cg
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2013 18:07:38 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <eggert@HIDDEN>) id 1UV7lm-0007Sm-SS
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2013 18:02:32 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=-102.3 required=5.0 tests=BAYES_20, RCVD_IN_DNSWL_MED,
	RP_MATCHES_RCVD,USER_IN_WHITELIST autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([208.118.235.17]:51272)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <eggert@HIDDEN>) id 1UV7lm-0007Se-Pn
	for submit <at> debbugs.gnu.org; Wed, 24 Apr 2013 18:02:30 -0400
Received: from eggs.gnu.org ([208.118.235.92]:42427)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <eggert@HIDDEN>) id 1UV7ll-0002fz-Jm
	for bug-coreutils@HIDDEN; Wed, 24 Apr 2013 18:02:30 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <eggert@HIDDEN>) id 1UV7lk-0007Ri-27
	for bug-coreutils@HIDDEN; Wed, 24 Apr 2013 18:02:29 -0400
Received: from smtp.cs.ucla.edu ([131.179.128.62]:56871)
	by eggs.gnu.org with esmtp (Exim 4.71)
	(envelope-from <eggert@HIDDEN>)
	id 1UV7lj-0007RI-SG; Wed, 24 Apr 2013 18:02:27 -0400
Received: from localhost (localhost.localdomain [127.0.0.1])
	by smtp.cs.ucla.edu (Postfix) with ESMTP id 5862139E8106;
	Wed, 24 Apr 2013 15:02:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu
Received: from smtp.cs.ucla.edu ([127.0.0.1])
	by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id tT7XXU6WO4VF; Wed, 24 Apr 2013 15:02:25 -0700 (PDT)
Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200])
	by smtp.cs.ucla.edu (Postfix) with ESMTPSA id E862939E8008;
	Wed, 24 Apr 2013 15:02:25 -0700 (PDT)
Message-ID: <51785671.1080300@HIDDEN>
Date: Wed, 24 Apr 2013 15:02:25 -0700
From: Paul Eggert <eggert@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:17.0) Gecko/20130311 Thunderbird/17.0.4
MIME-Version: 1.0
References: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
In-Reply-To: <1364671093-32496-1-git-send-email-mihai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Received-From: 208.118.235.17
X-Spam-Score: -3.5 (---)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
	<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Sender: debbugs-submit-bounces <at> debbugs.gnu.org
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
X-Spam-Score: -6.2 (------)

Thanks for taking this on.  Here is a brief review.
The most important thing is that the patch also needs
to update doc/parse-datetime.texi.  Also, some comments
about the code changes:

On 03/30/13 12:18, Mihai Capot=C4=83 wrote:
> +      /* not ISO 8601 time, forcing mktime error */
> +      pc->hour =3D 90;

How does this force a mktime error?  mktime allows tm_hour =3D=3D 90.

>  datetime:
>      iso_8601_datetime
> +  | iso_8601_basic_datetime
>    ;
> =20
>  iso_8601_datetime:
>      iso_8601_date 'T' iso_8601_time
>    ;
> =20
> +iso_8601_basic_datetime:
> +    number 'T' iso_8601_basic_time
> +      { pc->dates_seen--; } /* already incremented in digits_to_date_t=
ime */

This doesn't look right.  'number' accepts all sort of things that we
would rather not accept here.  Conversely, why require ":" in times to
correlate with "-" in dates?  Shouldn't we accept a "-"less date along
with a ":"ful time, and vice versa?  And that "dates_seen--" business
is a hack; can't we arrange things so that dates_seen is incremented
just once?

> +iso_8601_basic_time:
> +    tUNUMBER o_zone_offset
> +      {
> +        set_hhmmss_iso_8601_basic_time (pc, $1.value, 0);
> +        pc->meridian =3D MER24;
> +      }
> +  | tUDECIMAL_NUMBER o_zone_offset
> +      {
> +        /* FIXME avoid time_t to long int cast */

Why is the cast needed?  Also, can't the grammar be simplified
here, by using unsigned_seconds instead of using both
tUDECIMAL_NUMBER and tUNUMBER?






Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH v2] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Mon, 05 Aug 2013 16:52:02 +0000
Resent-Message-ID: <handler.14097.B14097.13757214954524 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: eggert@HIDDEN
Cc: 14097 <at> debbugs.gnu.org, bug-gnulib@HIDDEN
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.13757214954524
          (code B ref 14097); Mon, 05 Aug 2013 16:52:02 +0000
Received: (at 14097) by debbugs.gnu.org; 5 Aug 2013 16:51:35 +0000
Received: from localhost ([127.0.0.1]:41477 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1V6O0M-0001Ar-Hn
	for submit <at> debbugs.gnu.org; Mon, 05 Aug 2013 12:51:35 -0400
Received: from mail-wi0-f181.google.com ([209.85.212.181]:56979)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <mihai@HIDDEN>) id 1V6O0F-0001AD-Lb
 for 14097 <at> debbugs.gnu.org; Mon, 05 Aug 2013 12:51:31 -0400
Received: by mail-wi0-f181.google.com with SMTP id en1so1765882wid.2
 for <14097 <at> debbugs.gnu.org>; Mon, 05 Aug 2013 09:51:21 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references
 :mime-version:content-type:content-transfer-encoding
 :x-gm-message-state;
 bh=IUDPiwuBkEJYrTdF73YxYjzzAVjk7gj7J+955GGSHyg=;
 b=N597QHPSr7D+bmoKIw3gsVR1D3a0jdkfBVgrGByj8WcwkPZS5g/1Qynk6jRfZh3tnS
 jpNpcxkzakaVfN8dpNc6lV5P9osfifLemoTBTgkBwrUcX0N7szr47HVt0o80YQ1lzuZO
 hLn4Nx7u48lLg3oDOUaQ0HNjUc/+Hrc3riUwiGstYdId+sX0cH271qbVJQt+7v9GHNoS
 Qh8DCi1aKGOXIEDdKEDHBu89nUW7mzQuXsgZtfWlRC2dEhTHfKW6UJrWaAvNjttD0ehu
 nDQKX6IJziCKd3z8160XYstTV4Nf6EpZ4AcOqzO2Fup66n8yPIOlT60RxW+D945YNlTP
 7v2w==
X-Received: by 10.194.170.227 with SMTP id ap3mr13972174wjc.40.1375721481468; 
 Mon, 05 Aug 2013 09:51:21 -0700 (PDT)
Received: from dutier.st.ewi.tudelft.nl (dutier.st.ewi.tudelft.nl.
 [130.161.159.51])
 by mx.google.com with ESMTPSA id j20sm23324wie.7.2013.08.05.09.51.19
 for <multiple recipients>
 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
 Mon, 05 Aug 2013 09:51:20 -0700 (PDT)
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Date: Mon,  5 Aug 2013 18:51:13 +0200
Message-Id: <1375721473-14714-1-git-send-email-mihai@HIDDEN>
X-Mailer: git-send-email 1.7.9.5
In-Reply-To: <51785671.1080300@HIDDEN>
References: <51785671.1080300@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Gm-Message-State: ALoCoQmjNALuTHGdAfGbx0EMQfhaP+N6x+BfpReuWyZ1gakq47BUvn0WOflieQgEkc+JLwx9GSft
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

The parser now accepts the basic format for combined date and time
representations, which ommits the date and time separators, "-" and ":".

See bug 23767 for GNU coreutils, <https://savannah.gnu.org/bugs/?23767>.

* lib/parse-datetime.y: Parse combined date and time representations in
ISO 8601 basic format.
(set_hhmmss_iso_8601_basic_time) New function.
(digits_iso_8601_basic_to_date) New function.
* tests/test-parse-datetime.c: Add tests for combined date and time
representations in ISO 8601 basic format.
* doc/parse-datetime.texi Document support for combined date and time
representations in ISO 8601 basic format.

Signed-off-by: Mihai Capotă <mihai@HIDDEN>
---
On Thu, Apr 25, 2013 at 12:02 AM, Paul Eggert <eggert@HIDDEN> wrote:
> The most important thing is that the patch also needs
> to update doc/parse-datetime.texi.

Done.

> On 03/30/13 12:18, Mihai Capotă wrote:
>> +      /* not ISO 8601 time, forcing mktime error */
>> +      pc->hour = 90;
>
> How does this force a mktime error?  mktime allows tm_hour == 90.

I meant to say mktime_ok. I changed the code to reject input by incrementing times_seen, like time_zone_hhmm.

>>  datetime:
>>      iso_8601_datetime
>> +  | iso_8601_basic_datetime
>>    ;
>>
>>  iso_8601_datetime:
>>      iso_8601_date 'T' iso_8601_time
>>    ;
>>
>> +iso_8601_basic_datetime:
>> +    number 'T' iso_8601_basic_time
>> +      { pc->dates_seen--; } /* already incremented in digits_to_date_time */
>
> This doesn't look right.  'number' accepts all sort of things that we
> would rather not accept here.

I was trying to make use of the existing digits_to_date_time function. I replaced it with tUNUMBER and a new function.

> Conversely, why require ":" in times to
> correlate with "-" in dates?  Shouldn't we accept a "-"less date along
> with a ":"ful time, and vice versa?

No, that is not allowed by the standard.

> And that "dates_seen--" business
> is a hack; can't we arrange things so that dates_seen is incremented
> just once?

The hack is gone.

>> +iso_8601_basic_time:
>> +    tUNUMBER o_zone_offset
>> +      {
>> +        set_hhmmss_iso_8601_basic_time (pc, $1.value, 0);
>> +        pc->meridian = MER24;
>> +      }
>> +  | tUDECIMAL_NUMBER o_zone_offset
>> +      {
>> +        /* FIXME avoid time_t to long int cast */
>
> Why is the cast needed?  Also, can't the grammar be simplified
> here, by using unsigned_seconds instead of using both
> tUDECIMAL_NUMBER and tUNUMBER?

I switched to using unsigned_seconds.

 doc/parse-datetime.texi     |    9 +++++-
 lib/parse-datetime.y        |   68 +++++++++++++++++++++++++++++++++++++++++--
 tests/test-parse-datetime.c |   61 ++++++++++++++++++++++++++++++++++++++
 3 files changed, 135 insertions(+), 3 deletions(-)

diff --git a/doc/parse-datetime.texi b/doc/parse-datetime.texi
index 6b3e973..9aa87ed 100644
--- a/doc/parse-datetime.texi
+++ b/doc/parse-datetime.texi
@@ -327,7 +327,12 @@ The ISO 8601 date and time of day extended format consists of an ISO
 day.  This format is also recognized if the @samp{T} is replaced by a
 space.
 
-In this format, the time of day should use 24-hour notation.
+The ISO 8601 basic format is also recognized. It is identical to the ISO 8601
+extended format, except for omitting the @samp{-} separator in the date and the
+@samp{:} separator in the time. Only the HHMMSS format is supported for the
+time of day, the reduced accuracy HHMM and HH formats are not supported.
+
+In these formats, the time of day should use 24-hour notation.
 Fractional seconds are allowed, with either comma or period preceding
 the fraction.  ISO 8601 fractional minutes and hours are not
 supported.  Typically, hosts support nanosecond timestamp resolution;
@@ -339,6 +344,8 @@ Here are some examples:
 2012-09-24T20:02:00.052-0500
 2012-12-31T23:59:59,999999999+1100
 1970-01-01 00:00Z
+20120924T200200.052-0500
+20121231T235959,999999999+1100
 @end example
 
 @node Day of week items
diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y
index 4dce7fa..fa9719d 100644
--- a/lib/parse-datetime.y
+++ b/lib/parse-datetime.y
@@ -257,6 +257,38 @@ digits_to_date_time (parser_control *pc, textint text_int)
     }
 }
 
+/* Extract into *PC the date info from a string of digits in ISO 8601 basic
+   format, i.e., YYYYMMHH, YYYY, or YY meaning century. Note that YYYYMM is not
+   allowed to avoid confusion with YYMMHH  */
+static void
+digits_iso_8601_basic_to_date (parser_control *pc, textint text_int)
+{
+  switch (text_int.digits)
+    {
+    case 8:
+      pc->day = text_int.value % 100;
+      pc->month = (text_int.value / 100) % 100;
+      pc->year.value = text_int.value / 10000;
+      pc->year.digits = 4;
+      return;
+    case 4:
+      pc->day = 1;
+      pc->month = 1;
+      pc->year.value = text_int.value;
+      pc->year.digits = 4;
+      return;
+    case 2:
+      pc->day = 1;
+      pc->month = 1;
+      pc->year.value = text_int.value * 100;
+      pc->year.digits = 4;
+      return;
+    default:
+      pc->dates_seen++;
+      return;
+    }
+}
+
 /* Increment PC->rel by FACTOR * REL (FACTOR is 1 or -1).  */
 static void
 apply_relative_time (parser_control *pc, relative_time rel, int factor)
@@ -282,6 +314,28 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
   pc->seconds.tv_nsec = nsec;
 }
 
+/* Set PC-> hour, minutes, seconds and nanoseconds members from ISO 8601 basic
+   time.  */
+static void
+set_hhmmss_iso_8601_basic_time (parser_control *pc, time_t integer_part,
+                                long int fractional_part)
+{
+  if (integer_part / 1000000 > 0)
+    {
+      /* Not ISO 8601 time, arrange to reject it by incrementing
+         pc->times_seen.*/
+      pc->times_seen++;
+    }
+  else
+    {
+      /* FIXME support reduced accuracy times, i.e. HHMM and HH */
+      pc->hour = integer_part / 10000;
+      pc->minutes = (integer_part % 10000) / 100;
+      pc->seconds.tv_sec = integer_part % 100;
+      pc->seconds.tv_nsec = fractional_part;
+    }
+}
+
 %}
 
 /* We want a reentrant parser, even if the TZ manipulation and the calls to
@@ -290,8 +344,8 @@ set_hhmmss (parser_control *pc, long int hour, long int minutes,
 %parse-param { parser_control *pc }
 %lex-param { parser_control *pc }
 
-/* This grammar has 31 shift/reduce conflicts. */
-%expect 31
+/* This grammar has 33 shift/reduce conflicts. */
+%expect 33
 
 %union
 {
@@ -358,12 +412,22 @@ item:
 
 datetime:
     iso_8601_datetime
+  | iso_8601_basic_datetime
   ;
 
 iso_8601_datetime:
     iso_8601_date 'T' iso_8601_time
   ;
 
+iso_8601_basic_datetime:
+    tUNUMBER 'T' unsigned_seconds o_zone_offset
+      {
+        digits_iso_8601_basic_to_date (pc, $1);
+        set_hhmmss_iso_8601_basic_time (pc, $3.tv_sec, $3.tv_nsec);
+        pc->meridian = MER24;
+      }
+  ;
+
 time:
     tUNUMBER tMERIDIAN
       {
diff --git a/tests/test-parse-datetime.c b/tests/test-parse-datetime.c
index 7eba9ad..c620009 100644
--- a/tests/test-parse-datetime.c
+++ b/tests/test-parse-datetime.c
@@ -216,6 +216,67 @@ main (int argc _GL_UNUSED, char **argv)
           && expected.tv_nsec == result.tv_nsec);
 
 
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, local time zone */
+  p = "20110501T115518";
+  expected.tv_sec = ref_time - gmtoff;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, UTC */
+  p = "20110501T115518Z";
+  expected.tv_sec = ref_time;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/UTC offset */
+  p = "20110501T115518-0700";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/hour only UTC offset */
+  p = "20110501T115518-07";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 0;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* ISO 8601 basic date and time of day representation,
+     'T' separator, w/hour only UTC offset, with ns */
+  p = "20110501T115518,123456789-07";
+  expected.tv_sec = 1304276118;
+  expected.tv_nsec = 123456789;
+  ASSERT (parse_datetime (&result, p, 0));
+  LOG (p, expected, result);
+  ASSERT (expected.tv_sec == result.tv_sec
+          && expected.tv_nsec == result.tv_nsec);
+
+
+  /* Invalid ISO 8601 basic date and time of day representation,
+     too many digits for time */
+  p = "20110501T11551800";
+  ASSERT (!parse_datetime (&result, p, 0));
+
+
   now.tv_sec = 4711;
   now.tv_nsec = 1267;
   p = "now";
-- 
1.7.9.5





Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH v2] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Sat, 31 Aug 2013 15:32:01 +0000
Resent-Message-ID: <handler.14097.B14097.137796307819855 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: eggert@HIDDEN
Cc: 14097 <at> debbugs.gnu.org
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.137796307819855
          (code B ref 14097); Sat, 31 Aug 2013 15:32:01 +0000
Received: (at 14097) by debbugs.gnu.org; 31 Aug 2013 15:31:18 +0000
Received: from localhost ([127.0.0.1]:33330 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1VFn8v-0005A8-94
	for submit <at> debbugs.gnu.org; Sat, 31 Aug 2013 11:31:17 -0400
Received: from mail-wg0-f52.google.com ([74.125.82.52]:46960)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <mihai@HIDDEN>) id 1VFn8s-00059t-AX
 for 14097 <at> debbugs.gnu.org; Sat, 31 Aug 2013 11:31:15 -0400
Received: by mail-wg0-f52.google.com with SMTP id m14so608817wgh.31
 for <14097 <at> debbugs.gnu.org>; Sat, 31 Aug 2013 08:31:08 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:in-reply-to:references:date
 :message-id:subject:from:to:cc:content-type
 :content-transfer-encoding;
 bh=qPVQeUQOqGSRbcl5AJqZ0vRkCcooRouAk7StBljXNJE=;
 b=evB0ElaLamleys7MvZWPoFqsiVw/9lCLKDjyI8ibh1LIIIiuFgikiG+0yrgKeqd69E
 cyqNrJybno9uBaIuDfC32VWSLtuU5C0TyepcV90MbY9/z6areCYFcS9gh6AUakRQGHy1
 BDAP2CMRwx6Nr1EMSe6+TxCCrGJQqDC7oOFAEgaPRFvPE2kHdJhUkvKk11B4HFKkyK/o
 XAwIGQ9i8x98TrQbm5j8ol/e9bXxdiLoXlJOrtugCQOijTAlABoA8Lz5hITkHMtlRXOv
 9aW7/S61WVL4VFHNNgj+Jo7V3sEbtGn041F0bncofpExYH7q1jULArcHI4fxc2UYiDih
 N9RA==
X-Gm-Message-State: ALoCoQlhhy3GMUg/RNALOXya3nHdWOdZ0ty/KVOoEiNUO98lXEdQAiol68e/hCEuHmtaglfiYX88
MIME-Version: 1.0
X-Received: by 10.180.78.229 with SMTP id e5mr6647015wix.58.1377963068352;
 Sat, 31 Aug 2013 08:31:08 -0700 (PDT)
Received: by 10.216.196.72 with HTTP; Sat, 31 Aug 2013 08:31:08 -0700 (PDT)
In-Reply-To: <1375721473-14714-1-git-send-email-mihai@HIDDEN>
References: <51785671.1080300@HIDDEN>
 <1375721473-14714-1-git-send-email-mihai@HIDDEN>
Date: Sat, 31 Aug 2013 17:31:08 +0200
Message-ID: <CADyhzG2MZ6KYceTVscRrhi9zWWGkEFupxSCQhuvxHkMeWMk4qQ@HIDDEN>
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Could someone please review the new patch?

On Mon, Aug 5, 2013 at 6:51 PM, Mihai Capot=C4=83 <mihai@HIDDEN> wrote:
> The parser now accepts the basic format for combined date and time
> representations, which ommits the date and time separators, "-" and ":".
>
> See bug 23767 for GNU coreutils, <https://savannah.gnu.org/bugs/?23767>.
>
> * lib/parse-datetime.y: Parse combined date and time representations in
> ISO 8601 basic format.
> (set_hhmmss_iso_8601_basic_time) New function.
> (digits_iso_8601_basic_to_date) New function.
> * tests/test-parse-datetime.c: Add tests for combined date and time
> representations in ISO 8601 basic format.
> * doc/parse-datetime.texi Document support for combined date and time
> representations in ISO 8601 basic format.
>
> Signed-off-by: Mihai Capot=C4=83 <mihai@HIDDEN>
> ---
> On Thu, Apr 25, 2013 at 12:02 AM, Paul Eggert <eggert@HIDDEN> wrote:
>> The most important thing is that the patch also needs
>> to update doc/parse-datetime.texi.
>
> Done.
>
>> On 03/30/13 12:18, Mihai Capot=C4=83 wrote:
>>> +      /* not ISO 8601 time, forcing mktime error */
>>> +      pc->hour =3D 90;
>>
>> How does this force a mktime error?  mktime allows tm_hour =3D=3D 90.
>
> I meant to say mktime_ok. I changed the code to reject input by increment=
ing times_seen, like time_zone_hhmm.
>
>>>  datetime:
>>>      iso_8601_datetime
>>> +  | iso_8601_basic_datetime
>>>    ;
>>>
>>>  iso_8601_datetime:
>>>      iso_8601_date 'T' iso_8601_time
>>>    ;
>>>
>>> +iso_8601_basic_datetime:
>>> +    number 'T' iso_8601_basic_time
>>> +      { pc->dates_seen--; } /* already incremented in digits_to_date_t=
ime */
>>
>> This doesn't look right.  'number' accepts all sort of things that we
>> would rather not accept here.
>
> I was trying to make use of the existing digits_to_date_time function. I =
replaced it with tUNUMBER and a new function.
>
>> Conversely, why require ":" in times to
>> correlate with "-" in dates?  Shouldn't we accept a "-"less date along
>> with a ":"ful time, and vice versa?
>
> No, that is not allowed by the standard.
>
>> And that "dates_seen--" business
>> is a hack; can't we arrange things so that dates_seen is incremented
>> just once?
>
> The hack is gone.
>
>>> +iso_8601_basic_time:
>>> +    tUNUMBER o_zone_offset
>>> +      {
>>> +        set_hhmmss_iso_8601_basic_time (pc, $1.value, 0);
>>> +        pc->meridian =3D MER24;
>>> +      }
>>> +  | tUDECIMAL_NUMBER o_zone_offset
>>> +      {
>>> +        /* FIXME avoid time_t to long int cast */
>>
>> Why is the cast needed?  Also, can't the grammar be simplified
>> here, by using unsigned_seconds instead of using both
>> tUDECIMAL_NUMBER and tUNUMBER?
>
> I switched to using unsigned_seconds.
>
>  doc/parse-datetime.texi     |    9 +++++-
>  lib/parse-datetime.y        |   68 +++++++++++++++++++++++++++++++++++++=
++++--
>  tests/test-parse-datetime.c |   61 +++++++++++++++++++++++++++++++++++++=
+
>  3 files changed, 135 insertions(+), 3 deletions(-)
>
> diff --git a/doc/parse-datetime.texi b/doc/parse-datetime.texi
> index 6b3e973..9aa87ed 100644
> --- a/doc/parse-datetime.texi
> +++ b/doc/parse-datetime.texi
> @@ -327,7 +327,12 @@ The ISO 8601 date and time of day extended format co=
nsists of an ISO
>  day.  This format is also recognized if the @samp{T} is replaced by a
>  space.
>
> -In this format, the time of day should use 24-hour notation.
> +The ISO 8601 basic format is also recognized. It is identical to the ISO=
 8601
> +extended format, except for omitting the @samp{-} separator in the date =
and the
> +@samp{:} separator in the time. Only the HHMMSS format is supported for =
the
> +time of day, the reduced accuracy HHMM and HH formats are not supported.
> +
> +In these formats, the time of day should use 24-hour notation.
>  Fractional seconds are allowed, with either comma or period preceding
>  the fraction.  ISO 8601 fractional minutes and hours are not
>  supported.  Typically, hosts support nanosecond timestamp resolution;
> @@ -339,6 +344,8 @@ Here are some examples:
>  2012-09-24T20:02:00.052-0500
>  2012-12-31T23:59:59,999999999+1100
>  1970-01-01 00:00Z
> +20120924T200200.052-0500
> +20121231T235959,999999999+1100
>  @end example
>
>  @node Day of week items
> diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y
> index 4dce7fa..fa9719d 100644
> --- a/lib/parse-datetime.y
> +++ b/lib/parse-datetime.y
> @@ -257,6 +257,38 @@ digits_to_date_time (parser_control *pc, textint tex=
t_int)
>      }
>  }
>
> +/* Extract into *PC the date info from a string of digits in ISO 8601 ba=
sic
> +   format, i.e., YYYYMMHH, YYYY, or YY meaning century. Note that YYYYMM=
 is not
> +   allowed to avoid confusion with YYMMHH  */
> +static void
> +digits_iso_8601_basic_to_date (parser_control *pc, textint text_int)
> +{
> +  switch (text_int.digits)
> +    {
> +    case 8:
> +      pc->day =3D text_int.value % 100;
> +      pc->month =3D (text_int.value / 100) % 100;
> +      pc->year.value =3D text_int.value / 10000;
> +      pc->year.digits =3D 4;
> +      return;
> +    case 4:
> +      pc->day =3D 1;
> +      pc->month =3D 1;
> +      pc->year.value =3D text_int.value;
> +      pc->year.digits =3D 4;
> +      return;
> +    case 2:
> +      pc->day =3D 1;
> +      pc->month =3D 1;
> +      pc->year.value =3D text_int.value * 100;
> +      pc->year.digits =3D 4;
> +      return;
> +    default:
> +      pc->dates_seen++;
> +      return;
> +    }
> +}
> +
>  /* Increment PC->rel by FACTOR * REL (FACTOR is 1 or -1).  */
>  static void
>  apply_relative_time (parser_control *pc, relative_time rel, int factor)
> @@ -282,6 +314,28 @@ set_hhmmss (parser_control *pc, long int hour, long =
int minutes,
>    pc->seconds.tv_nsec =3D nsec;
>  }
>
> +/* Set PC-> hour, minutes, seconds and nanoseconds members from ISO 8601=
 basic
> +   time.  */
> +static void
> +set_hhmmss_iso_8601_basic_time (parser_control *pc, time_t integer_part,
> +                                long int fractional_part)
> +{
> +  if (integer_part / 1000000 > 0)
> +    {
> +      /* Not ISO 8601 time, arrange to reject it by incrementing
> +         pc->times_seen.*/
> +      pc->times_seen++;
> +    }
> +  else
> +    {
> +      /* FIXME support reduced accuracy times, i.e. HHMM and HH */
> +      pc->hour =3D integer_part / 10000;
> +      pc->minutes =3D (integer_part % 10000) / 100;
> +      pc->seconds.tv_sec =3D integer_part % 100;
> +      pc->seconds.tv_nsec =3D fractional_part;
> +    }
> +}
> +
>  %}
>
>  /* We want a reentrant parser, even if the TZ manipulation and the calls=
 to
> @@ -290,8 +344,8 @@ set_hhmmss (parser_control *pc, long int hour, long i=
nt minutes,
>  %parse-param { parser_control *pc }
>  %lex-param { parser_control *pc }
>
> -/* This grammar has 31 shift/reduce conflicts. */
> -%expect 31
> +/* This grammar has 33 shift/reduce conflicts. */
> +%expect 33
>
>  %union
>  {
> @@ -358,12 +412,22 @@ item:
>
>  datetime:
>      iso_8601_datetime
> +  | iso_8601_basic_datetime
>    ;
>
>  iso_8601_datetime:
>      iso_8601_date 'T' iso_8601_time
>    ;
>
> +iso_8601_basic_datetime:
> +    tUNUMBER 'T' unsigned_seconds o_zone_offset
> +      {
> +        digits_iso_8601_basic_to_date (pc, $1);
> +        set_hhmmss_iso_8601_basic_time (pc, $3.tv_sec, $3.tv_nsec);
> +        pc->meridian =3D MER24;
> +      }
> +  ;
> +
>  time:
>      tUNUMBER tMERIDIAN
>        {
> diff --git a/tests/test-parse-datetime.c b/tests/test-parse-datetime.c
> index 7eba9ad..c620009 100644
> --- a/tests/test-parse-datetime.c
> +++ b/tests/test-parse-datetime.c
> @@ -216,6 +216,67 @@ main (int argc _GL_UNUSED, char **argv)
>            && expected.tv_nsec =3D=3D result.tv_nsec);
>
>
> +  /* ISO 8601 basic date and time of day representation,
> +     'T' separator, local time zone */
> +  p =3D "20110501T115518";
> +  expected.tv_sec =3D ref_time - gmtoff;
> +  expected.tv_nsec =3D 0;
> +  ASSERT (parse_datetime (&result, p, 0));
> +  LOG (p, expected, result);
> +  ASSERT (expected.tv_sec =3D=3D result.tv_sec
> +          && expected.tv_nsec =3D=3D result.tv_nsec);
> +
> +
> +  /* ISO 8601 basic date and time of day representation,
> +     'T' separator, UTC */
> +  p =3D "20110501T115518Z";
> +  expected.tv_sec =3D ref_time;
> +  expected.tv_nsec =3D 0;
> +  ASSERT (parse_datetime (&result, p, 0));
> +  LOG (p, expected, result);
> +  ASSERT (expected.tv_sec =3D=3D result.tv_sec
> +          && expected.tv_nsec =3D=3D result.tv_nsec);
> +
> +
> +  /* ISO 8601 basic date and time of day representation,
> +     'T' separator, w/UTC offset */
> +  p =3D "20110501T115518-0700";
> +  expected.tv_sec =3D 1304276118;
> +  expected.tv_nsec =3D 0;
> +  ASSERT (parse_datetime (&result, p, 0));
> +  LOG (p, expected, result);
> +  ASSERT (expected.tv_sec =3D=3D result.tv_sec
> +          && expected.tv_nsec =3D=3D result.tv_nsec);
> +
> +
> +  /* ISO 8601 basic date and time of day representation,
> +     'T' separator, w/hour only UTC offset */
> +  p =3D "20110501T115518-07";
> +  expected.tv_sec =3D 1304276118;
> +  expected.tv_nsec =3D 0;
> +  ASSERT (parse_datetime (&result, p, 0));
> +  LOG (p, expected, result);
> +  ASSERT (expected.tv_sec =3D=3D result.tv_sec
> +          && expected.tv_nsec =3D=3D result.tv_nsec);
> +
> +
> +  /* ISO 8601 basic date and time of day representation,
> +     'T' separator, w/hour only UTC offset, with ns */
> +  p =3D "20110501T115518,123456789-07";
> +  expected.tv_sec =3D 1304276118;
> +  expected.tv_nsec =3D 123456789;
> +  ASSERT (parse_datetime (&result, p, 0));
> +  LOG (p, expected, result);
> +  ASSERT (expected.tv_sec =3D=3D result.tv_sec
> +          && expected.tv_nsec =3D=3D result.tv_nsec);
> +
> +
> +  /* Invalid ISO 8601 basic date and time of day representation,
> +     too many digits for time */
> +  p =3D "20110501T11551800";
> +  ASSERT (!parse_datetime (&result, p, 0));
> +
> +
>    now.tv_sec =3D 4711;
>    now.tv_nsec =3D 1267;
>    p =3D "now";
> --
> 1.7.9.5
>




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#14097: [PATCH v2] Add support for ISO 8601 basic format
Resent-From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Fri, 22 Nov 2013 08:51:02 +0000
Resent-Message-ID: <handler.14097.B14097.138511021914933 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 14097
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: patch
To: eggert@HIDDEN
Cc: 14097 <at> debbugs.gnu.org
Received: via spool by 14097-submit <at> debbugs.gnu.org id=B14097.138511021914933
          (code B ref 14097); Fri, 22 Nov 2013 08:51:02 +0000
Received: (at 14097) by debbugs.gnu.org; 22 Nov 2013 08:50:19 +0000
Received: from localhost ([127.0.0.1]:37947 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1VjmRO-0003sm-65
	for submit <at> debbugs.gnu.org; Fri, 22 Nov 2013 03:50:18 -0500
Received: from mail-ie0-f174.google.com ([209.85.223.174]:40492)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <mihai@HIDDEN>) id 1VjmRK-0003sT-Pq
 for 14097 <at> debbugs.gnu.org; Fri, 22 Nov 2013 03:50:15 -0500
Received: by mail-ie0-f174.google.com with SMTP id at1so1581370iec.5
 for <14097 <at> debbugs.gnu.org>; Fri, 22 Nov 2013 00:50:09 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:in-reply-to:references:date
 :message-id:subject:from:to:cc:content-type
 :content-transfer-encoding;
 bh=HVLRw4dy4VTa2YiMGLFFG/NcdTPNu3uxvqcHxIGnwuM=;
 b=BhrNo31gehdmTFhYQ9jr9AcF3Tw0nbmtXLVRfIshe8FIEXXufYaBXbSpScaJjEQWYk
 8lPfnjaORcA2l0FIKdQo2fq9XeSEok3QMCwnAyeRK9DnAg2BnrB34rMEu2VerK1k2WBP
 3mLuS/m2d50+gfpyJKZ++F/cjAKs+CeEnTMlqVJQWNsGJ6vy0lXL33TXgLL0PGoisw6d
 rEzfQwU2ioxV55eO3FQdBIyfn4ibYPx6NxN/5cW/F2QwAkkD3pRlfWXc4lXIeEua75DW
 2CaGTp3VwBMASFZqp6TXaN/9YMhqEcRyZqgLNwFzsKEJUaB2HraKbwPRS4Vo44hruks1
 zIbw==
X-Gm-Message-State: ALoCoQlL3P8nAkBJmVEHfWGKGAGpUlLQttSPajm2wCCvte64wgO/xmp2oMaD8FeNkjUmpbHJCnFU
MIME-Version: 1.0
X-Received: by 10.50.50.70 with SMTP id a6mr1499304igo.1.1385110209014; Fri,
 22 Nov 2013 00:50:09 -0800 (PST)
Received: by 10.64.238.66 with HTTP; Fri, 22 Nov 2013 00:50:08 -0800 (PST)
In-Reply-To: <CADyhzG2MZ6KYceTVscRrhi9zWWGkEFupxSCQhuvxHkMeWMk4qQ@HIDDEN>
References: <51785671.1080300@HIDDEN>
 <1375721473-14714-1-git-send-email-mihai@HIDDEN>
 <CADyhzG2MZ6KYceTVscRrhi9zWWGkEFupxSCQhuvxHkMeWMk4qQ@HIDDEN>
Date: Fri, 22 Nov 2013 09:50:08 +0100
Message-ID: <CADyhzG1UqgrXF79TN0+MDd79RdG5qhGhvFqN3rdBPf4+z5x9mw@HIDDEN>
From: Mihai =?UTF-8?Q?Capot=C4=83?= <mihai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On Sat, Aug 31, 2013 at 5:31 PM, Mihai Capot=C4=83 <mihai@HIDDEN> wrote:
> Could someone please review the new patch?

Anybody?




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 19 Oct 2018 01:28:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 18 21:28:50 2018
Received: from localhost ([127.0.0.1]:57912 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gDJar-0000nd-7D
	for submit <at> debbugs.gnu.org; Thu, 18 Oct 2018 21:28:50 -0400
Received: from mail-pf1-f171.google.com ([209.85.210.171]:38447)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <assafgordon@HIDDEN>) id 1gDJap-0000nP-Mz
 for control <at> debbugs.gnu.org; Thu, 18 Oct 2018 21:28:47 -0400
Received: by mail-pf1-f171.google.com with SMTP id f29-v6so15723445pff.5
 for <control <at> debbugs.gnu.org>; Thu, 18 Oct 2018 18:28:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=to:from:message-id:date:user-agent:mime-version:content-language
 :content-transfer-encoding;
 bh=jCL0xw7UgWNiCRyqgOYR0OWHPpnYVSKkt7h2fpkCYEU=;
 b=ClF2BFrtiWUZJKXWWPqSPCBd2lxh21PP4ZjmPJNJoF6kQNrIjqgguLYKOFfhvJ7vSL
 Atz2St7nuIo6S/Eg2ixV84Im561mJJqHCwjBXe+Bp6HuZoZqGrFM1CwO3ECi5DW/vzfL
 0mvnkSOnsnvQugEbFf4eOF0FGMMZo8+vl2tAbziiFnuyGTvywc49nGPI/agEfKKDnek0
 0ta+Bl6JPoHgkdVROOs7mFCFmmJD7k9zHrrv+IJZtz8Njnpmbmyz1qB2kxIubrnklpgr
 wA5XsJuHI5kbEplpbovpZ7EzrqESi0M9SQ26CG/AqFxiSbIV2TcLWqXWRj2vAky6t4kS
 Uu2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:to:from:message-id:date:user-agent:mime-version
 :content-language:content-transfer-encoding;
 bh=jCL0xw7UgWNiCRyqgOYR0OWHPpnYVSKkt7h2fpkCYEU=;
 b=n9nDA97SpRPBgpRwnuzZywmi9F5lMmagYt93s2cXkiDBZEA1JhEAD55J4T8uUyNChE
 8Vp7nkj1wWA9sPK0U9kMCqUN+tm1itZr/rkVtnmBQSElIeQIDi8tndN8BdDKwigayeEV
 dZzvEzgoPbcdLkQYzD5YsYzLkq3iAClq5bdUEZnGX/j1UcVaGm9bSmzwtIGp2CGQMBKk
 45IeMIFd6Dniyx/rnHFL7rUa/CqKhEhqV4tQVy2GC3127pejfrTh2R/g3Xz9CbWvt7fQ
 RmOOvEdOWlXgSaN6xxLrkrYTpJBk5Cz6RG0TZQEarLFtGnjYIKDH11Oaq+Rgj5DDiSv8
 BLqA==
X-Gm-Message-State: ABuFfojDMYGqf6luWt6ThQylKVkb4T6WNaSfOXCtAvjRWs/2lrBOoq0x
 YaxOOkiGufS2wGh7x0ki0yvdszELHhk=
X-Google-Smtp-Source: ACcGV61718xOf6QbBwF3mXK2KNOO5H957kqpkUZoTa4RgqK8NvN+DKw5KJ+mCdT4jQm+9cGANwXT+g==
X-Received: by 2002:a63:d048:: with SMTP id
 s8-v6mr30157339pgi.311.1539912521484; 
 Thu, 18 Oct 2018 18:28:41 -0700 (PDT)
Received: from tomato.housegordon.com (moose.housegordon.com. [184.68.105.38])
 by smtp.googlemail.com with ESMTPSA id
 t22-v6sm31013847pfk.141.2018.10.18.18.28.40
 for <control <at> debbugs.gnu.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 18 Oct 2018 18:28:40 -0700 (PDT)
To: control <at> debbugs.gnu.org
From: Assaf Gordon <assafgordon@HIDDEN>
Message-ID: <82ffa135-ce82-5000-f36d-4275dc80a4d3@HIDDEN>
Date: Thu, 18 Oct 2018 19:28:39 -0600
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.9.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: severity 14097 wishlist retitle 14097 date: add parsing
 support for ISO 8601 basic format [...] 
 Content analysis details:   (2.0 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
 (assafgordon[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [209.85.210.171 listed in wl.mailspike.net]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
 trust [209.85.210.171 listed in list.dnswl.org]
 1.8 MISSING_SUBJECT        Missing Subject: header
 0.2 NO_SUBJECT             Extra score for no subject
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

severity 14097 wishlist
retitle 14097 date: add parsing support for ISO 8601 basic format





Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 19 Oct 2018 01:28:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 18 21:28:50 2018
Received: from localhost ([127.0.0.1]:57912 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gDJar-0000nd-7D
	for submit <at> debbugs.gnu.org; Thu, 18 Oct 2018 21:28:50 -0400
Received: from mail-pf1-f171.google.com ([209.85.210.171]:38447)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <assafgordon@HIDDEN>) id 1gDJap-0000nP-Mz
 for control <at> debbugs.gnu.org; Thu, 18 Oct 2018 21:28:47 -0400
Received: by mail-pf1-f171.google.com with SMTP id f29-v6so15723445pff.5
 for <control <at> debbugs.gnu.org>; Thu, 18 Oct 2018 18:28:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=to:from:message-id:date:user-agent:mime-version:content-language
 :content-transfer-encoding;
 bh=jCL0xw7UgWNiCRyqgOYR0OWHPpnYVSKkt7h2fpkCYEU=;
 b=ClF2BFrtiWUZJKXWWPqSPCBd2lxh21PP4ZjmPJNJoF6kQNrIjqgguLYKOFfhvJ7vSL
 Atz2St7nuIo6S/Eg2ixV84Im561mJJqHCwjBXe+Bp6HuZoZqGrFM1CwO3ECi5DW/vzfL
 0mvnkSOnsnvQugEbFf4eOF0FGMMZo8+vl2tAbziiFnuyGTvywc49nGPI/agEfKKDnek0
 0ta+Bl6JPoHgkdVROOs7mFCFmmJD7k9zHrrv+IJZtz8Njnpmbmyz1qB2kxIubrnklpgr
 wA5XsJuHI5kbEplpbovpZ7EzrqESi0M9SQ26CG/AqFxiSbIV2TcLWqXWRj2vAky6t4kS
 Uu2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:to:from:message-id:date:user-agent:mime-version
 :content-language:content-transfer-encoding;
 bh=jCL0xw7UgWNiCRyqgOYR0OWHPpnYVSKkt7h2fpkCYEU=;
 b=n9nDA97SpRPBgpRwnuzZywmi9F5lMmagYt93s2cXkiDBZEA1JhEAD55J4T8uUyNChE
 8Vp7nkj1wWA9sPK0U9kMCqUN+tm1itZr/rkVtnmBQSElIeQIDi8tndN8BdDKwigayeEV
 dZzvEzgoPbcdLkQYzD5YsYzLkq3iAClq5bdUEZnGX/j1UcVaGm9bSmzwtIGp2CGQMBKk
 45IeMIFd6Dniyx/rnHFL7rUa/CqKhEhqV4tQVy2GC3127pejfrTh2R/g3Xz9CbWvt7fQ
 RmOOvEdOWlXgSaN6xxLrkrYTpJBk5Cz6RG0TZQEarLFtGnjYIKDH11Oaq+Rgj5DDiSv8
 BLqA==
X-Gm-Message-State: ABuFfojDMYGqf6luWt6ThQylKVkb4T6WNaSfOXCtAvjRWs/2lrBOoq0x
 YaxOOkiGufS2wGh7x0ki0yvdszELHhk=
X-Google-Smtp-Source: ACcGV61718xOf6QbBwF3mXK2KNOO5H957kqpkUZoTa4RgqK8NvN+DKw5KJ+mCdT4jQm+9cGANwXT+g==
X-Received: by 2002:a63:d048:: with SMTP id
 s8-v6mr30157339pgi.311.1539912521484; 
 Thu, 18 Oct 2018 18:28:41 -0700 (PDT)
Received: from tomato.housegordon.com (moose.housegordon.com. [184.68.105.38])
 by smtp.googlemail.com with ESMTPSA id
 t22-v6sm31013847pfk.141.2018.10.18.18.28.40
 for <control <at> debbugs.gnu.org>
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 18 Oct 2018 18:28:40 -0700 (PDT)
To: control <at> debbugs.gnu.org
From: Assaf Gordon <assafgordon@HIDDEN>
Message-ID: <82ffa135-ce82-5000-f36d-4275dc80a4d3@HIDDEN>
Date: Thu, 18 Oct 2018 19:28:39 -0600
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.9.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 2.0 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: severity 14097 wishlist retitle 14097 date: add parsing
 support for ISO 8601 basic format [...] 
 Content analysis details:   (2.0 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
 (assafgordon[at]gmail.com)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 RCVD_IN_MSPIKE_H2      RBL: Average reputation (+2)
 [209.85.210.171 listed in wl.mailspike.net]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no
 trust [209.85.210.171 listed in list.dnswl.org]
 1.8 MISSING_SUBJECT        Missing Subject: header
 0.2 NO_SUBJECT             Extra score for no subject
X-Debbugs-Envelope-To: control
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

severity 14097 wishlist
retitle 14097 date: add parsing support for ISO 8601 basic format






Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.