summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-01-30 03:02:48 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2020-01-30 03:02:48 +0100
commit1ed7cd41dba444da0b66427eb48852e896ca3742 (patch)
treee83a624096cabea9f483412788d41b2b1763ec19
parent7c7b91b9fe156b6af4643ca4aa8f4a5c4aeb915f (diff)
downloademacs-1ed7cd41dba444da0b66427eb48852e896ca3742.tar.gz
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.
-rw-r--r--lisp/calendar/iso8601.el3
-rw-r--r--test/lisp/calendar/iso8601-tests.el10
2 files changed, 10 insertions, 3 deletions
diff --git a/lisp/calendar/iso8601.el b/lisp/calendar/iso8601.el
index 858d561f188..906c29b15f4 100644
--- a/lisp/calendar/iso8601.el
+++ b/lisp/calendar/iso8601.el
@@ -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)))
diff --git a/test/lisp/calendar/iso8601-tests.el b/test/lisp/calendar/iso8601-tests.el
index c2994ef8b4d..e8b155a7aa7 100644
--- a/test/lisp/calendar/iso8601-tests.el
+++ b/test/lisp/calendar/iso8601-tests.el
@@ -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")