[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.