X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Ftime-date.el;h=52727d7b0aa4044275479f8adfe158bc1bdc3030;hp=5dbd08cc9806760a60e62d262d7b6e0c3d635e88;hb=76b6b2b0a969b427bb993110f6d8c05060cf5f64;hpb=bac70efeabe5271b83a79792a655146a4c71af49 diff --git a/lisp/time-date.el b/lisp/time-date.el index 5dbd08cc9..52727d7b0 100644 --- a/lisp/time-date.el +++ b/lisp/time-date.el @@ -39,9 +39,6 @@ ;;; Code: -;; Only necessary for `declare' when compiling Gnus with Emacs 21. -(eval-when-compile (require 'cl)) - (defmacro with-decoded-time-value (varlist &rest body) "Decode a time value and bind it according to VARLIST, then eval BODY. @@ -97,20 +94,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