Speed up date-to-time.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Wed, 22 Sep 2010 21:36:52 +0000 (23:36 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Wed, 22 Sep 2010 21:36:52 +0000 (23:36 +0200)
2010-09-22  Dan Christensen  <jdc@uwo.ca>

* time-date.el (date-to-time): Try using parse-time-string first before
using the slower timezone-make-date-arpa-standard.

lisp/ChangeLog
lisp/time-date.el

index 1537251..6919e70 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-22  Dan Christensen  <jdc@uwo.ca>
+
+       * time-date.el (date-to-time): Try using parse-time-string first before
+       using the slower timezone-make-date-arpa-standard.
+
 2010-09-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * nnimap.el (nnimap-request-expire-articles): If nnmail-expiry-wait is
index 5dbd08c..a30c9ba 100644 (file)
@@ -97,20 +97,20 @@ and type 2 is the list (HIGH LOW MICRO)."
 (autoload 'timezone-make-date-arpa-standard "timezone")
 
 ;;;###autoload
+;; `parse-time-string' isn't sufficiently general or robust.  It fails
+;; to grok some of the formats that timezone does (e.g. dodgy
+;; post-2000 stuff from some Elms) and either fails or returns bogus
+;; values.  timezone-make-date-arpa-standard should help.
 (defun date-to-time (date)
   "Parse a string DATE that represents a date-time and return a time value.
 If DATE lacks timezone information, GMT is assumed."
   (condition-case ()
-      (apply 'encode-time
-            (parse-time-string
-             ;; `parse-time-string' isn't sufficiently general or
-             ;; robust.  It fails to grok some of the formats that
-             ;; timezone does (e.g. dodgy post-2000 stuff from some
-             ;; Elms) and either fails or returns bogus values.  Lars
-             ;; reverted this change, but that loses non-trivially
-             ;; often for me.  -- fx
-             (timezone-make-date-arpa-standard date)))
-    (error (error "Invalid date: %s" date))))
+      (apply 'encode-time (parse-time-string date))
+    (error (condition-case ()
+              (apply 'encode-time
+                     (parse-time-string
+                      (timezone-make-date-arpa-standard date)))
+            (error (error "Invalid date: %s" date))))))
 
 ;; Bit of a mess.  Emacs has float-time since at least 21.1.
 ;; This file is synced to Gnus, and XEmacs packages may have been written