Give fuller support for obsolete ---12 dates in iso8601

* lisp/calendar/iso8601.el
(iso8601--outdated-reduced-precision-date-match): New constant.
(iso8601--date-match): Use it.
This commit is contained in:
Lars Ingebrigtsen 2020-01-30 03:02:48 +01:00
parent 7c7b91b9fe
commit 1ed7cd41db
2 changed files with 10 additions and 3 deletions

View 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)))

View file

@ -47,10 +47,14 @@
(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")