- (let* (
- (exp (url-cookie-expires cookie))
- (cur-date (and exp (timezone-parse-date (current-time-string))))
- (exp-date (and exp (timezone-parse-date exp)))
- (cur-greg (and cur-date (timezone-absolute-from-gregorian
- (string-to-number (aref cur-date 1))
- (string-to-number (aref cur-date 2))
- (string-to-number (aref cur-date 0)))))
- (exp-greg (and exp (timezone-absolute-from-gregorian
- (string-to-number (aref exp-date 1))
- (string-to-number (aref exp-date 2))
- (string-to-number (aref exp-date 0)))))
- (diff-in-days (and exp (- cur-greg exp-greg)))
- )
- (cond
- ((not exp) nil) ; No expiry == expires at browser quit
- ((< diff-in-days 0) nil) ; Expires sometime after today
- ((> diff-in-days 0) t) ; Expired before today
- (t ; Expires sometime today, check times
- (let* ((cur-time (timezone-parse-time (aref cur-date 3)))
- (exp-time (timezone-parse-time (aref exp-date 3)))
- (cur-norm (+ (* 360 (string-to-number (aref cur-time 2)))
- (* 60 (string-to-number (aref cur-time 1)))
- (* 1 (string-to-number (aref cur-time 0)))))
- (exp-norm (+ (* 360 (string-to-number (aref exp-time 2)))
- (* 60 (string-to-number (aref exp-time 1)))
- (* 1 (string-to-number (aref exp-time 0))))))
- (> (- cur-norm exp-norm) 1))))))
-
-(defun url-cookie-retrieve (host localpart &optional secure)
+ "Return non-nil if COOKIE is expired."
+ (let ((exp (url-cookie-expires cookie)))
+ (and exp (> (float-time) (float-time (date-to-time exp))))))
+
+(defun url-cookie-retrieve (host &optional localpart secure)