]> git.eshelyaron.com Git - emacs.git/commitdiff
time-convert): Deprecate calls without an explicit FORM arg
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Aug 2022 22:46:31 +0000 (18:46 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 5 Aug 2022 22:46:31 +0000 (18:46 -0400)
* lisp/subr.el (time-convert): Deprecate calls without an explicit FORM arg.

* doc/lispref/os.texi (Time Conversion): Adjust doc accordingly.

* lisp/calendar/time-date.el (days-to-time):
* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
* lisp/gnus/nnrss.el (nnrss-normalize-date):
* lisp/epa-ks.el (epa-ks--parse-buffer): Silence corresponding warnings.

doc/lispref/os.texi
etc/NEWS
lisp/calendar/time-date.el
lisp/emacs-lisp/timer.el
lisp/epa-ks.el
lisp/gnus/nnrss.el
lisp/subr.el

index 5fb34fb9b66e4da3094e6df3547ba6101a8749ff..d591b219cd0a8ba7c7ca0919dfbc4572ec3a5120 100644 (file)
@@ -1541,7 +1541,7 @@ Year numbers count since the year 1 BCE, and do not skip zero
 as traditional Gregorian years do; for example, the year number
 @minus{}37 represents the Gregorian year 38 BCE@.
 
-@defun time-convert time &optional form
+@defun time-convert time form
 This function converts a time value into a Lisp timestamp.
 
 The optional @var{form} argument specifies the timestamp form to be
@@ -1554,7 +1554,7 @@ representing the timestamp; for example, it is treated as 1000000000
 if @var{time} is @code{nil} and the platform timestamp has nanosecond
 resolution.  If @var{form} is @code{list}, this function returns an
 integer list @code{(@var{high} @var{low} @var{micro} @var{pico})}.
-Although an omitted or @code{nil} @var{form} currently acts like
+Although a @code{nil} @var{form} currently acts like
 @code{list}, this is planned to change in a future Emacs version, so
 callers requiring list timestamps should pass @code{list} explicitly.
 
index 7145a8861ebed952197033c7f15f4b297daba30e..dc8bd6ce24b43a43bb74b7c4e1d37c2309fa2f3b 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2525,6 +2525,10 @@ patcomp.el, pc-mode.el, pc-select.el, s-region.el, and sregex.el.
 \f
 * Lisp Changes in Emacs 29.1
 
+** The FORM arg of 'time-convert' is mandatory.
+'time-convert' can still be called without it, as before, but the
+compiler now emits a warning about this deprecated usage.
+
 +++
 ** Emacs now supports user-customizable and themable icons.
 These can be used for buttons in buffers and the like.  See
index 7c99d05dc3feb5d8105d9f409f6eb8ff7f307640..b80b47a33fa1123359234e0fb83de6a1e6157698 100644 (file)
@@ -179,7 +179,10 @@ If DATE lacks timezone information, GMT is assumed."
 ;;;###autoload
 (defun days-to-time (days)
   "Convert DAYS into a time value."
-  (let ((time (time-convert (* 86400 days))))
+  ;; FIXME: We should likely just pass `t' to `time-convert'.
+  ;; All uses I could find in Emacs, GNU ELPA, and NonGNU ELPA can handle
+  ;; any valid time representation as return value.
+  (let ((time (time-convert (* 86400 days) 'list)))
     ;; Traditionally, this returned a two-element list if DAYS was an integer.
     ;; Keep that tradition if time-convert outputs timestamps in list form.
     (if (and (integerp days) (consp (cdr time)))
index aafb2e684f447bc44c787635e60e629adaf74d27..b25a040a96c2e7c4b28942793dfc2a3f490ee691 100644 (file)
@@ -122,7 +122,7 @@ of SECS seconds since the epoch.  SECS may be a fraction."
       (setq ticks (ash ticks 1))
       (setq hz (ash hz 1)))
     (let ((more-ticks (+ ticks trunc-s-ticks)))
-      (time-convert (cons (- more-ticks (% more-ticks trunc-s-ticks)) hz)))))
+      (time-convert (cons (- more-ticks (% more-ticks trunc-s-ticks)) hz) t))))
 
 (defun timer-relative-time (time secs &optional usecs psecs)
   "Advance TIME by SECS seconds.
index f41429f7734d32a67690db8bce24be5b1fda2e2c..7c60b659f0abc90c9f0f63285d6644aabaa18a88 100644 (file)
@@ -295,13 +295,11 @@ enough, since keyservers have strict timeout settings."
                :created
                (and  (match-string 4)
                      (not (string-empty-p (match-string 4)))
-                    (time-convert
-                      (string-to-number (match-string 4))))
+                    (time-convert (string-to-number (match-string 4)) t))
                :expires
                (and (match-string 5)
                     (not (string-empty-p (match-string 5)))
-                   (time-convert
-                     (string-to-number (match-string 5))))
+                   (time-convert (string-to-number (match-string 5)) t))
                :flags
                (mapcar (lambda (flag)
                          (cdr (assq flag '((?r revoked)
index 5047be1a6a53bb8bcae6d921c39a5724b283d836..8c96d3e0678b099d672062fccf254f3559ff436d 100644 (file)
@@ -453,8 +453,8 @@ which RSS 2.0 allows."
   (let (case-fold-search vector year month day time zone given)
     (cond ((null date))                        ; do nothing for this case
          ;; if the date is just digits (unix time stamp):
-         ((string-match "^[0-9]+$" date)
-          (setq given (time-convert (string-to-number date))))
+         ((string-match "\\`[0-9]+\\'" date)
+          (setq given (time-convert (string-to-number date) t)))
          ;; RFC 822
          ((string-match " [0-9]+ " date)
           (setq vector (timezone-parse-date date)
index 2603b5ad251179f339f72413319c6725a2ebf392..4b1fc832da15cdbcdaed85bb8baa9c3980863443 100644 (file)
@@ -1857,6 +1857,7 @@ be a list of the form returned by `event-start' and `event-end'."
 (set-advertised-calling-convention 'redirect-frame-focus '(frame focus-frame) "24.3")
 (set-advertised-calling-convention 'libxml-parse-xml-region '(start end &optional base-url) "27.1")
 (set-advertised-calling-convention 'libxml-parse-html-region '(start end &optional base-url) "27.1")
+(set-advertised-calling-convention 'time-convert '(time form) "29.1")
 \f
 ;;;; Obsolescence declarations for variables, and aliases.