[mew-dist 29257] mew-time-rfc-to-sortkey() での year 補正
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2010年 6月 25日 (金) 13:34:22 JST
白井です。
古いフォルダのメールを整理して、Date で sort していたら
Date: Sat, 1 Jan 100 12:07:56 +0900
なメールを発見しました。本当は 2000年です。
どうせ(?) mew-time-rfc-to-sortkey() である程度は救っているので、
こんな感じにしてはどうでしょうでしょうか?
(defun mew-time-rfc-to-sortkey (s &optional tzadj)
(if (string-match mew-time-rfc-regex s)
(let ((year (mew-time-rfc-year))
(mon (mew-time-mon-str-to-int (mew-time-rfc-mon)))
(day (mew-time-rfc-day))
(hour (mew-time-rfc-hour))
(min (mew-time-rfc-min))
(sec (mew-time-rfc-sec))
(tmzn (mew-time-rfc-tmzn)))
(cond
((< year 50)
(setq year (+ year 2000)))
((< year 150) ;; ここね
(setq year (+ year 1900))))
(if (or (< year 1970) (>= year 2038))
;; invalid data
(mew-time-ctz-to-sortkey-invalid sec min hour day mon year)
(setq sec (- sec tmzn))
(if tzadj (setq sec (+ sec (car (current-time-zone)))))
(mew-time-ctz-to-sortkey (encode-time sec min hour day mon year))))))
修正前:
(mew-time-rfc-to-sortkey "Sat, 1 Jan 100 12:07:56 +0900")
"01000101120756"
修正後:
(mew-time-rfc-to-sortkey "Sat, 1 Jan 100 12:07:56 +0900")
"20000101030756"
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内