• Paul Eggert's avatar
    More-compatible subsecond calendrical timestamps · 37257d6a
    Paul Eggert authored
    Instead of appending a subseconds member to the result of
    ‘decode-time’, this keeps the format unchanged unless you give
    a new optional argument to ‘decode-time’.  Also, the augmented
    format now puts the subsecond info in the SECONDS element, so
    the total number of elements is unchanged; this is more
    compatible with code that expects the traditional 9 elements,
    such as ‘(pcase decoded-time (`(,SEC ,MIN ,HOUR ,DAY ,MON
    ,YEAR ,DOW ,DST ,ZONE) ...) ...)’.
    * doc/lispref/os.texi, doc/misc/emacs-mime.texi, etc/NEWS:
    * lisp/net/soap-client.el (soap-decode-date-time):
    * lisp/simple.el (decoded-time):
    Document the new behavior.
    * 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 (decoded-time-add)
    (decoded-time--alter-second):
    * lisp/org/org.el (org-parse-time-string):
    * lisp/simple.el (decoded-time):
    * src/timefns.c (Fdecode_time, Fencode_time):
    * 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):
    Revert recent changes that added a SUBSECS member to
    calendrical timestamps, since that component is no longer
    present (the info, if any, is now in the SECONDS member).
    * lisp/calendar/time-date.el (decoded-time-add)
    (decoded-time--alter-second):
    Support fractional seconds in the new form.  Simplify.
    * src/timefns.c (Fdecode_time): Support new arg FORM.
    (Fencode_time): Support subsecond resolution.
    * test/src/timefns-tests.el (format-time-string-with-zone)
    (decode-then-encode-time): Test subsecond calendrical timestamps.
    37257d6a
simple.el 368 KB