`elmo-time-to-datevec'.
* wl-expire.el (wl-expire-archive-date): Ditto.
(wl-expire-localdir-date): Ditto.
* elmo-date.el (elmo-time-less-p): Renamed from `elmo-time<'.
(elmo-time<): Define as alias of `elmo-time-less-p'.
(elmo-time-to-datevec): New function.
2005-04-09 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+ * elmo-date.el (elmo-time-less-p): Renamed from `elmo-time<'.
+ (elmo-time<): Define as alias of `elmo-time-less-p'.
+ (elmo-time-to-datevec): New function.
+
* elmo-date.el (elmo-time-to-days): New function.
2005-04-08 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
(let ((system-time-locale "C"))
(format-time-string "%a, %d %b %Y %T %z" time)))
-(defun elmo-time< (lhs rhs)
+(defun elmo-time-less-p (lhs rhs)
(while (and (car lhs) (car rhs))
(cond ((< (car lhs) (car rhs))
(setq lhs nil))
(setq rhs nil))))
(not (null rhs)))
+(defalias 'elmo-time< 'elmo-time-less-p)
+
(defun elmo-time-to-days (time)
(let ((date (decode-time time)))
(timezone-absolute-from-gregorian
(nth 4 date) (nth 3 date) (nth 5 date))))
+;; from timezone-fix-time in `timezone.el'
+(defun elmo-time-to-datevec (time &optional timezone)
+ (when time
+ (let* ((date (decode-time time))
+ (year (nth 5 date))
+ (month (nth 4 date))
+ (day (nth 3 date))
+ (hour (nth 2 date))
+ (minute (nth 1 date))
+ (second (nth 0 date))
+ (local (nth 8 date))
+ (timezone
+ (or timezone
+ (timezone-time-zone-from-absolute
+ (timezone-absolute-from-gregorian month day year)
+ (+ second (* 60 (+ minute (* 60 hour)))))))
+ (diff (- (timezone-zone-to-minute timezone) (/ local 60)))
+ (minute (+ minute diff))
+ (hour-fix (floor minute 60)))
+ (setq hour (+ hour hour-fix))
+ (setq minute (- minute (* 60 hour-fix)))
+ ;; HOUR may be larger than 24 or smaller than 0.
+ (cond ((<= 24 hour) ;24 -> 00
+ (setq hour (- hour 24))
+ (setq day (1+ day))
+ (when (< (timezone-last-day-of-month month year) day)
+ (setq month (1+ month))
+ (setq day 1)
+ (when (< 12 month)
+ (setq month 1)
+ (setq year (1+ year)))))
+ ((> 0 hour)
+ (setq hour (+ hour 24))
+ (setq day (1- day))
+ (when (> 1 day)
+ (setq month (1- month))
+ (when (> 1 month)
+ (setq month 12)
+ (setq year (1- year)))
+ (setq day (timezone-last-day-of-month month year)))))
+ (vector year month day hour minute second timezone))))
+
(require 'product)
(product-provide (provide 'elmo-date) (require 'elmo-version))
2005-04-09 Hiroya Murata <lapis-lazuli@pop06.odn.ne.jp>
+ * wl-summary.el (wl-summary-create-line): Use
+ `elmo-time-to-datevec'.
+
+ * wl-expire.el (wl-expire-archive-date): Ditto.
+ (wl-expire-localdir-date): Ditto.
+
* wl-util.el (wl-day-number): Abolish.
* wl-score.el (wl-score-headers): Use `elmo-time-to-days' instead
(wl-append deleted-list (car (wl-expire-delete folder dels))))
(setq delete-list (car tmp))
(while (setq msg (wl-pop delete-list))
- (setq date (elmo-time-make-date-string
- (elmo-message-field folder msg 'date)))
- (setq time
- (condition-case nil
- (timezone-fix-time date nil nil)
- (error [0 0 0 0 0 0 0])))
+ (setq time (or (elmo-time-to-datevec
+ (elmo-message-field folder msg 'date))
+ (make-vector 7 0)))
(if (= (aref time 1) 0) ;; if (month == 0)
(aset time 0 0)) ;; year = 0
(setq dst-folder (format dst-folder-fmt
msg arcmsg-alist arcmsg-list
deleted-list ret-val)
(while (setq msg (wl-pop delete-list))
- (setq date (elmo-time-make-date-string
- (elmo-message-field folder msg 'date)))
- (setq time
- (condition-case nil
- (timezone-fix-time date nil nil)
- (error [0 0 0 0 0 0 0])))
+ (setq time (or (elmo-time-to-datevec
+ (elmo-message-field folder msg 'date))
+ (make-vector 7 0)))
(if (= (aref time 1) 0) ;; if (month == 0)
(aset time 0 0)) ;; year = 0
(setq dst-folder (format dst-folder-fmt
wl-cached))
(elmo-mime-charset wl-summary-buffer-mime-charset)
(elmo-lang wl-summary-buffer-weekday-name-lang)
- (wl-datevec (or (ignore-errors
- (timezone-fix-time
- (elmo-time-make-date-string
- (elmo-message-entity-field wl-message-entity 'date))
- nil
- wl-summary-fix-timezone))
- (make-vector 5 0)))
+ (wl-datevec (or (elmo-time-to-datevec
+ (elmo-message-entity-field wl-message-entity 'date)
+ wl-summary-fix-timezone)
+ (make-vector 7 0)))
(entity wl-message-entity) ; backward compatibility.
line mark)
(if (and wl-thr-indent-string