diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-08-05 17:38:53 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-08-05 18:37:29 -0700 |
commit | b06917a4912a60402025286d07d4a195749245c4 (patch) | |
tree | ae737916ce6c0296bfb88e3ba43df5c2b1ef0048 /test/src/timefns-tests.el | |
parent | 89c63b3522b62c0fd725f0b348927a2069238452 (diff) | |
download | emacs-b06917a4912a60402025286d07d4a195749245c4.tar.gz |
decode-time now returns subsec too
The list that decode-time returns now contains an extra
trailing component that counts the subseconds part of the
original timestamp (Bug#36549).
This builds on a suggestion by Lars Ingebrigtsen in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00734.html
* doc/lispref/os.texi (Time Conversion):
* doc/misc/emacs-mime.texi (time-date):
* etc/NEWS: Document this.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
* lisp/calendar/iso8601.el (iso8601-parse)
(iso8601-parse-time, iso8601-parse-duration)
(iso8601--decoded-time):
* lisp/calendar/parse-time.el (parse-time-string):
* lisp/calendar/time-date.el (make-decoded-time)
(decoded-time-set-defaults):
* lisp/org/org.el (org-fix-decoded-time)
(org-parse-time-string):
* src/timefns.c (Fdecode_time):
Generate subsec member for decoded time.
* lisp/calendar/time-date.el (decoded-time-add)
Add the decoded subsec too.
* lisp/simple.el (decoded-time): New subsec member.
* src/data.c (Frem): Simplify zero-check to match that of new Fmod.
(integer_mod): New function, with most of the guts of the old Fmod.
Remove redundant zero-check.
(Fmod): Use it.
* src/timefns.c (Fencode_time): Handle new subsec member
or (with the obsolescent calling convention) subsec arg.
It defaults to 0.
* test/lisp/calendar/icalendar-tests.el:
(icalendar--decode-isodatetime):
* test/lisp/calendar/iso8601-tests.el (test-iso8601-date-years)
(test-iso8601-date-dates, test-iso8601-date-obsolete)
(test-iso8601-date-weeks, test-iso8601-date-ordinals)
(test-iso8601-time, test-iso8601-combined)
(test-iso8601-duration, test-iso8601-intervals)
(standard-test-dates, standard-test-time-of-day-fractions)
(standard-test-time-of-day-beginning-of-day)
(standard-test-time-of-day-utc)
(standard-test-time-of-day-zone)
(standard-test-date-and-time-of-day, standard-test-interval):
* test/lisp/calendar/parse-time-tests.el (parse-time-tests):
* test/src/timefns-tests.el (format-time-string-with-zone)
(encode-time-dst-numeric-zone):
Adjust to match new behavior.
Diffstat (limited to 'test/src/timefns-tests.el')
-rw-r--r-- | test/src/timefns-tests.el | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/test/src/timefns-tests.el b/test/src/timefns-tests.el index fae058edf93..feb8fc7905e 100644 --- a/test/src/timefns-tests.el +++ b/test/src/timefns-tests.el @@ -40,23 +40,25 @@ (7879679999900 . 100000) (78796799999999999999 . 1000000000000))) ;; UTC. + (let ((subsec (time-subtract (time-convert look t) + (time-convert look 'integer)))) (should (string-equal (format-time-string "%Y-%m-%d %H:%M:%S.%3N %z" look t) "1972-06-30 23:59:59.999 +0000")) (should (equal (decode-time look t) - '(59 59 23 30 6 1972 5 nil 0))) + (list 59 59 23 30 6 1972 5 nil 0 subsec))) ;; "UTC0". (should (string-equal (format-time-string format look "UTC0") "1972-06-30 23:59:59.999 +0000 (UTC)")) (should (equal (decode-time look "UTC0") - '(59 59 23 30 6 1972 5 nil 0))) + (list 59 59 23 30 6 1972 5 nil 0 subsec))) ;; Negative UTC offset, as a Lisp list. (should (string-equal (format-time-string format look '(-28800 "PST")) "1972-06-30 15:59:59.999 -0800 (PST)")) (should (equal (decode-time look '(-28800 "PST")) - '(59 59 15 30 6 1972 5 nil -28800))) + (list 59 59 15 30 6 1972 5 nil -28800 subsec))) ;; Negative UTC offset, as a Lisp integer. (should (string-equal (format-time-string format look -28800) @@ -66,13 +68,13 @@ "1972-06-30 15:59:59.999 -0800 (ZZZ)" "1972-06-30 15:59:59.999 -0800 (-08)"))) (should (equal (decode-time look -28800) - '(59 59 15 30 6 1972 5 nil -28800))) + (list 59 59 15 30 6 1972 5 nil -28800 subsec))) ;; Positive UTC offset that is not an hour multiple, as a string. (should (string-equal (format-time-string format look "IST-5:30") "1972-07-01 05:29:59.999 +0530 (IST)")) (should (equal (decode-time look "IST-5:30") - '(59 29 5 1 7 1972 6 nil 19800)))))) + (list 59 29 5 1 7 1972 6 nil 19800 subsec))))))) (ert-deftest decode-then-encode-time () (let ((time-values (list 0 -2 1 0.0 -0.0 -2.0 1.0 @@ -146,5 +148,5 @@ (ert-deftest encode-time-dst-numeric-zone () "Check for Bug#35502." (should (time-equal-p - (encode-time '(29 31 17 30 4 2019 2 t 7200)) + (encode-time '(29 31 17 30 4 2019 2 t 7200 0)) '(23752 27217)))) |