J.T. Conklin wrote: > Quite a long time ago, I posted a proof of concept change to > parse-datetime.y to enable parsing of ISO 8601 "extended date and time > of day expressions" using a 'T' separator character. > > While waiting for my copyright assignment paperwork to clear, I found > and fixed some corner cases related to the 'T' characters use as both > a military zone token and the date/time separator; added some test > cases; and tweaked the documentation. > > Not content to leave well enough alone, I started adding support for > "basic date and time of day expressions", got stuck in grammar > conflict hell, and ran out of spare time. > > This change rolls things back to support extended format, the 'T' > corner case fixes, test cases, and doc changes. > > Many thanks to Jim Meyering who's been waiting very patiently and > gently nudging me to complete this patch. > > Subject: [PATCH] Parse ISO 8601 extended date and time of day format > > * doc/parse-datetime.texi (General date syntax): replace use of > deprecated --iso-8601 option with --rfc-3339 in example of date > command output formats that can be parsed. > > * tests/test-parse-datetime.c (tm_diff): New function, taken from > lib/parse-datetime.y. > (gmt_offset): New function. > (main): Add additional test cases to validate ISO8601 extended > date and time of day format parsing. > > * lib/parse-datetime.y: Parse ISO 8601 extended date and time > of day representation using the 'T' separator character.
Thanks for what looks a patch with impeccable code. It passed the basic gnulib-tool test: ./gnulib-tool --create-testdir --with-tests --test parse-datetime The above directory also passed coverity (though I had to comment out the two verify uses to make coverity succeed in analyzing parse-datetime.c). I would change two doc-related things: - adjust the one-line summary to include the module name and put all "* ..." lines in the same paragraph. (I've already adjusted that, as below) - I noticed that the new format <iso 8601 date> "T" <iso 8601 date> is not documented. There's already a sentence or two on the @sc{iso} 8601 date format. Dare I ask? ... Would you care to add a few words about the new one? If so, and if you send me a simple patch, I'll merge it into the existing commit. commit bf2f6889923b05dea312e58962997afe28ee27a3 Author: J.T. Conklin <j...@acorntoolworks.com> Date: Wed Aug 17 16:40:49 2011 -0700 parse-datetime: accept ISO 8601 date and time rep with "T" separator * doc/parse-datetime.texi (General date syntax): replace use of deprecated --iso-8601 option with --rfc-3339 in example of date command output formats that can be parsed. * tests/test-parse-datetime.c (tm_diff): New function, taken from lib/parse-datetime.y. (gmt_offset): New function. (main): Add additional test cases to validate ISO8601 extended date and time of day format parsing. * lib/parse-datetime.y: Parse ISO 8601 extended date and time of day representation using the 'T' separator character.