From: Andreas Schwab Date: Sat, 25 Feb 2012 10:00:08 +0000 (+0100) Subject: * calendar/parse-time.el (parse-time-string): Allow extractor to X-Git-Tag: emacs-pretest-24.0.94~21 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f008086fd23420f0ea9d030b7efd827e6fe551b4;p=emacs.git * calendar/parse-time.el (parse-time-string): Allow extractor to return nil. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 764efc4d640..8c502a3affc 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-02-25 Andreas Schwab + + * calendar/parse-time.el (parse-time-string): Allow extractor to + return nil. + 2012-02-25 Michael Albinus * net/tramp.el (tramp-file-name-for-operation): Add diff --git a/lisp/calendar/parse-time.el b/lisp/calendar/parse-time.el index ab513517452..baf92065550 100644 --- a/lisp/calendar/parse-time.el +++ b/lisp/calendar/parse-time.el @@ -193,28 +193,29 @@ unknown are returned as nil." (predicate (pop rule)) (parse-time-val)) (when (and (not (nth (car slots) time)) ;not already set - (setq parse-time-val (cond ((and (consp predicate) - (not (eq (car predicate) - 'lambda))) - (and (numberp parse-time-elt) - (<= (car predicate) parse-time-elt) - (<= parse-time-elt (cadr predicate)) - parse-time-elt)) - ((symbolp predicate) - (cdr (assoc parse-time-elt - (symbol-value predicate)))) - ((funcall predicate))))) + (setq parse-time-val + (cond ((and (consp predicate) + (not (eq (car predicate) + 'lambda))) + (and (numberp parse-time-elt) + (<= (car predicate) parse-time-elt) + (<= parse-time-elt (cadr predicate)) + parse-time-elt)) + ((symbolp predicate) + (cdr (assoc parse-time-elt + (symbol-value predicate)))) + ((funcall predicate))))) (setq exit t) (while slots - (let ((new-val (and rule - (let ((this (pop rule))) - (if (vectorp this) - (parse-integer - parse-time-elt - (aref this 0) (aref this 1)) - (funcall this)))))) - (rplaca (nthcdr (pop slots) time) - (or new-val parse-time-val))))))))) + (let ((new-val (if rule + (let ((this (pop rule))) + (if (vectorp this) + (parse-integer + parse-time-elt + (aref this 0) (aref this 1)) + (funcall this))) + parse-time-val))) + (rplaca (nthcdr (pop slots) time) new-val)))))))) time)) (provide 'parse-time)