2010年6月25日

[mew-dist 29257]mew-time-rfc-to-sortkey() での year 補正

白井です。

古いフォルダのメールを整理して、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@xxxxx)


投稿者 xml-rpc : 2010年6月25日 13:34
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/96661
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。