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

Kazu Yamamoto ( 山本和彦 ) kazu at example.com
2002年 10月 30日 (水) 18:14:36 JST


From: NINOMIYA Hideyuki <nin at example.com>
Subject: [mew-dist 22117] Re: sorting folders by date

> こんな感じでどうでしょうか
> おかしな値であっても厳密な sort key 生成はあきらめるけど
> add-hoc な key を作る

こんなのでどうでしょう?

1970 にぶつかる確率は低いので、valid ととして処理しています。

--かず

Index: mew-func.el
===================================================================
RCS file: /cvsroot/mew/mew/mew-func.el,v
retrieving revision 1.100
diff -c -r1.100 mew-func.el
*** mew-func.el	2002/10/29 02:12:14	1.100
--- mew-func.el	2002/10/30 09:14:15
***************
*** 1308,1313 ****
--- 1308,1316 ----
    (let ((system-time-locale "C"))
      (format-time-string "%Y%m%d%H%M%S" time)))
  
+ (defsubst mew-time-ctz-to-sortkey-invalid (sec min hour day mon year)
+   (format "%04d%02d%02d%02d%02d%02d" year mon day hour min sec))
+ 
  ;; "20000726121835"
  (defsubst mew-time-rfc-to-sortkey (s)
    (if (string-match mew-time-rfc-regex s)
***************
*** 1322,1332 ****
  	 ((< 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)))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
--- 1325,1336 ----
  	 ((< year 50)
  	  (setq year (+ year 2000)))
  	 ((< year 100)
! 	  (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))
! 	  (mew-time-ctz-to-sortkey (encode-time sec min hour day mon year))))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;



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