[mew-dist 22117] Re: sorting folders by date

NINOMIYA Hideyuki nin at example.com
2002年 10月 30日 (水) 11:34:28 JST


おはようございます	二宮@お四国 です

Ryuji Suzuki -- JF7WEX <RSuzuki at example.com> は Tue, 29 Oct 2002 13:47:19 -
0500 (EST) 頃に
    Subject: [mew-dist 22110] sorting folders by date
    Message-Id: <20021029.134719.18590036.jf7wex at example.com>
        に於いて以下のようにおっしゃっていました。
※都合により手を加えさせていただく事が有ります。御了承下さいマセヽ...
すずき> メールを日付でソートしたら、古い日付のメールが一番新しいと
すずき> みなされて整列されてしまいました。

すずき> やはり一番古いものとして整列してほしいところです。以前の
すずき> バージョンではこういうトラブルはありませんでした。

たぶんタイムゾーンを含め分単位で処理するようになってからだと
思いますが

すずき> Date は、こんな感じです。

すずき>  | Date: Mon, 27 Aug 1956 13:57:26 +0000
すずき>  | Date: Fri, 14 Oct 1904 02:52:56 +0900

-------------- next part --------------
Index: mew-func.el
===================================================================
RCS file: /ext/cvs/mew/mew-func.el,v
retrieving revision 1.49
diff -u -r1.49 mew-func.el
--- mew-func.el	29 Oct 2002 15:04:17 -0000	1.49
+++ mew-func.el	30 Oct 2002 02:13:15 -0000
@@ -1322,11 +1322,11 @@
 	 ((< year 50)
 	  (setq year (+ year 2000)))
 	 ((< year 100)
-	  (setq year (+ year 1900)))
-	 ((or (< year 1970) (>= year 2038)) ;; error data
-	  (setq year 2037)))
-	(setq sec (- sec tmzn))
-	(mew-time-ctz-to-sortkey (encode-time sec min hour day mon year)))))
+	  (setq year (+ year 1900))))
+	(if (or (<= year 1970) (>= year 2038)) ;; error data
+	    (format "%04d%02d%02d%02d%02d00" year mon day hour min)
+	  (setq sec (- sec tmzn))
+	  (mew-time-ctz-to-sortkey (encode-time sec min hour day mon year))))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
-------------- next part --------------
こんな感じでどうでしょうか
おかしな値であっても厳密な sort key 生成はあきらめるけど
add-hoc な key を作る
# 1970 以前を現行の関数の 1970 以前をチェックしてる部分をはずし
# 検証してみたところ XEmacs 21.4.9 では 1901 辺りまでは取り敢えず
# 使えるみたいっぽかったです。
# がっ 1970 1/1 00:00 でも hour 以下は変な値を返してました。
# 1901 〜 1970(の何時までだか判んない(調べてない))は hour 以下が
# 当てにならないので、1970 以前(1970 含む)は add-hoc にしてみました
--─
ICQ UIN:57442553                          二宮 秀幸@愛媛 鬼北 広見町
PGP-Fingerprint:  6C59 EC08 5B23 6490 44D0  7CD3 DA40 219F 7114 8553
PGP-Public-Key:    http://user.shikoku.ne.jp/~nin/pgp/public-key.txt
mailto:nin at example.com   http://user.shikoku.ne.jp/~nin/index.html
mailto:nin at example.com http://home.jp.freebsd.org/~nin/index.html


Mew-dist メーリングリストの案内