emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 9ffbe12 1/4: * lisp/calendar/parse-time.el (parse-t


From: Stefan Monnier
Subject: [Emacs-diffs] master 9ffbe12 1/4: * lisp/calendar/parse-time.el (parse-time-string): Use functionp and setf
Date: Fri, 19 Apr 2019 23:32:11 -0400 (EDT)

branch: master
commit 9ffbe127c13803e1a949a18f8e84ed3eeb440b74
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    * lisp/calendar/parse-time.el (parse-time-string): Use functionp and setf
---
 lisp/calendar/parse-time.el | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el
index 93e7e53..68d6ce0 100644
--- a/lisp/calendar/parse-time.el
+++ b/lisp/calendar/parse-time.el
@@ -168,8 +168,7 @@ unknown DST value is returned as -1."
            (when (and (not (nth (car slots) time)) ;not already set
                       (setq parse-time-val
                             (cond ((and (consp predicate)
-                                        (not (eq (car predicate)
-                                                 'lambda)))
+                                        (not (functionp predicate)))
                                    (and (numberp parse-time-elt)
                                         (<= (car predicate) parse-time-elt)
                                         (or (not (cdr predicate))
@@ -191,7 +190,7 @@ unknown DST value is returned as -1."
                                          :end (aref this 1))
                                       (funcall this)))
                                 parse-time-val)))
-                 (rplaca (nthcdr (pop slots) time) new-val))))))))
+                 (setf (nth (pop slots) time) new-val))))))))
     time))
 
 (defconst parse-time-iso8601-regexp
@@ -244,16 +243,17 @@ If DATE-STRING cannot be parsed, it falls back to
              re-start (match-end 0))
        (when (string-match tz-re date-string re-start)
           (setq dst nil)
-          (if (string= "Z" (match-string 1 date-string))
-              (setq tz 0)  ;; UTC timezone indicated by Z
-            (setq tz (+
-                      (* 3600
-                         (string-to-number (match-string 3 date-string)))
-                      (* 60
-                         (string-to-number
-                          (or (match-string 4 date-string) "0")))))
-            (when (string= "-" (match-string 2 date-string))
-              (setq tz (- tz)))))
+          (setq tz (if (string= "Z" (match-string 1 date-string))
+                       0  ;; UTC timezone indicated by Z
+                     (let ((tz (+
+                                (* 3600
+                                   (string-to-number
+                                    (match-string 3 date-string)))
+                                (* 60
+                                   (string-to-number
+                                    (or (match-string 4 date-string) "0"))))))
+                       (if (string= "-" (match-string 2 date-string))
+                            (- tz) tz)))))
        (setq time (list seconds minute hour day month year day-of-week dst 
tz))))
 
     ;; Fall back to having `parse-time-string' do fancy things for us.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]