]> git.eshelyaron.com Git - emacs.git/commitdiff
Give fuller support for obsolete ---12 dates in iso8601
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 30 Jan 2020 02:02:48 +0000 (03:02 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 30 Jan 2020 02:02:48 +0000 (03:02 +0100)
* lisp/calendar/iso8601.el
(iso8601--outdated-reduced-precision-date-match): New constant.
(iso8601--date-match): Use it.

lisp/calendar/iso8601.el
test/lisp/calendar/iso8601-tests.el

index 858d561f188f180639de36513dd62f91bedf54b9..906c29b15f4999ed43118004346aa00f1018b4bd 100644 (file)
@@ -69,6 +69,8 @@
   "\\([+-]?[0-9][0-9][0-9][0-9]\\)-\\([0-9][0-9]\\)")
 (defconst iso8601--outdated-date-match
   "--\\([0-9][0-9]\\)-?\\([0-9][0-9]\\)")
+(defconst iso8601--outdated-reduced-precision-date-match
+  "---?\\([0-9][0-9]\\)")
 (defconst iso8601--week-date-match
   "\\([+-]?[0-9][0-9][0-9][0-9]\\)-?W\\([0-9][0-9]\\)-?\\([0-9]\\)?")
 (defconst iso8601--ordinal-date-match
@@ -79,6 +81,7 @@
          iso8601--full-date-match
          iso8601--without-day-match
          iso8601--outdated-date-match
+         iso8601--outdated-reduced-precision-date-match
          iso8601--week-date-match
          iso8601--ordinal-date-match)))
 
index c2994ef8b4d1cddd078312ecac10e33d9be4062d..e8b155a7aa7ae3a791372bf2111b3211ea1ec041 100644 (file)
 (ert-deftest test-iso8601-date-obsolete-2000 ()
   ;; These are forms in 5.2.1.3 of the 2000 version of the standard,
   ;; e) and f).
-  (should (equal (iso8601-parse-date "--02")
-                 '(nil nil nil nil 2 nil nil -1 nil)))
+  (should (equal (iso8601-parse-date "--12")
+                 '(nil nil nil nil 12 nil nil -1 nil)))
+  (should (equal (iso8601-parse "--12T14")
+                 '(0 0 14 nil 12 nil nil -1 nil)))
   (should (equal (iso8601-parse-date "---12")
-                 '(nil nil nil 12 nil nil nil -1 nil))))
+                 '(nil nil nil 12 nil nil nil -1 nil)))
+  (should (equal (iso8601-parse "---12T14:10:12")
+                 '(12 10 14 12 nil nil nil -1 nil))))
 
 (ert-deftest test-iso8601-date-weeks ()
   (should (equal (iso8601-parse-date "2008W39-6")