diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-08-09 13:47:41 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-08-09 13:57:07 -0700 |
commit | f1f10d47be8762e4ca17c8957a0520b08d28abfb (patch) | |
tree | b21c755d541d068be42d98debaa4958b4744924e /lib/parse-datetime.y | |
parent | b5e7a0deb7f9a3fc7f0206e39f6b032b1051d0cd (diff) | |
download | gnulib-f1f10d47be8762e4ca17c8957a0520b08d28abfb.tar.gz |
parse-datetime: fix military timezone letters
Problem and trivial fix reported by Neil Hoggarth in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00005.html
* lib/parse-datetime.y (military_table):
Do it the right way, not the RFC 822 way.
Diffstat (limited to 'lib/parse-datetime.y')
-rw-r--r-- | lib/parse-datetime.y | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/lib/parse-datetime.y b/lib/parse-datetime.y index 7805759195..d371b9cb19 100644 --- a/lib/parse-datetime.y +++ b/lib/parse-datetime.y @@ -1160,34 +1160,37 @@ static table const time_zone_table[] = /* Military time zone table. + RFC 822 got these backwards, but RFC 5322 makes the incorrect + treatment optional, so do them the right way here. + Note 'T' is a special case, as it is used as the separator in ISO 8601 date and time of day representation. */ static table const military_table[] = { - { "A", tZONE, -HOUR ( 1) }, - { "B", tZONE, -HOUR ( 2) }, - { "C", tZONE, -HOUR ( 3) }, - { "D", tZONE, -HOUR ( 4) }, - { "E", tZONE, -HOUR ( 5) }, - { "F", tZONE, -HOUR ( 6) }, - { "G", tZONE, -HOUR ( 7) }, - { "H", tZONE, -HOUR ( 8) }, - { "I", tZONE, -HOUR ( 9) }, - { "K", tZONE, -HOUR (10) }, - { "L", tZONE, -HOUR (11) }, - { "M", tZONE, -HOUR (12) }, - { "N", tZONE, HOUR ( 1) }, - { "O", tZONE, HOUR ( 2) }, - { "P", tZONE, HOUR ( 3) }, - { "Q", tZONE, HOUR ( 4) }, - { "R", tZONE, HOUR ( 5) }, - { "S", tZONE, HOUR ( 6) }, + { "A", tZONE, HOUR ( 1) }, + { "B", tZONE, HOUR ( 2) }, + { "C", tZONE, HOUR ( 3) }, + { "D", tZONE, HOUR ( 4) }, + { "E", tZONE, HOUR ( 5) }, + { "F", tZONE, HOUR ( 6) }, + { "G", tZONE, HOUR ( 7) }, + { "H", tZONE, HOUR ( 8) }, + { "I", tZONE, HOUR ( 9) }, + { "K", tZONE, HOUR (10) }, + { "L", tZONE, HOUR (11) }, + { "M", tZONE, HOUR (12) }, + { "N", tZONE, -HOUR ( 1) }, + { "O", tZONE, -HOUR ( 2) }, + { "P", tZONE, -HOUR ( 3) }, + { "Q", tZONE, -HOUR ( 4) }, + { "R", tZONE, -HOUR ( 5) }, + { "S", tZONE, -HOUR ( 6) }, { "T", 'T', 0 }, - { "U", tZONE, HOUR ( 8) }, - { "V", tZONE, HOUR ( 9) }, - { "W", tZONE, HOUR (10) }, - { "X", tZONE, HOUR (11) }, - { "Y", tZONE, HOUR (12) }, + { "U", tZONE, -HOUR ( 8) }, + { "V", tZONE, -HOUR ( 9) }, + { "W", tZONE, -HOUR (10) }, + { "X", tZONE, -HOUR (11) }, + { "Y", tZONE, -HOUR (12) }, { "Z", tZONE, HOUR ( 0) }, { NULL, 0, 0 } }; |