Synch with Gnus trunk.

2010-06-10  Dan Christensen  <jdc@uwo.ca>
 * gnus-util.el (gnus-user-date): Use gnus-date-get-time.
 (gnus-dd-mmm): Use gnus-date-get-time.
 * gnus-sum.el (gnus-thread-latest-date): Use gnus-date-get-time and
 simplify logic.
 (gnus-summary-limit-to-age): Use gnus-date-get-time.
 (gnus-sort-threads): emit message if gnus-sort-threads-loop used.
This commit is contained in:
Katsumi Yamaoka 2010-06-10 00:30:13 +00:00
parent 3c093c775f
commit 3d6e7a438c
3 changed files with 24 additions and 21 deletions

View file

@ -1,3 +1,12 @@
2010-06-10 Dan Christensen <jdc@uwo.ca>
* gnus-util.el (gnus-user-date): Use gnus-date-get-time.
(gnus-dd-mmm): Use gnus-date-get-time.
* gnus-sum.el (gnus-thread-latest-date): Use gnus-date-get-time and
simplify logic.
(gnus-summary-limit-to-age): Use gnus-date-get-time.
(gnus-sort-threads): emit message if gnus-sort-threads-loop used.
2010-06-08 Michael Albinus <michael.albinus@gmx.de>
* auth-source.el (top): Autoload `secrets-list-collections',

View file

@ -4819,7 +4819,8 @@ If LINE, insert the rebuilt thread starting on line LINE."
;; Even after binding max-lisp-eval-depth, the recursive
;; sorter might fail for very long threads. In that case,
;; try using a (less well-tested) non-recursive sorter.
(error (gnus-sort-threads-loop
(error (gnus-message 9 "Sorting threads with loop...")
(gnus-sort-threads-loop
threads (gnus-make-sort-function
gnus-thread-sort-functions))))
(gnus-message 8 "Sorting threads...done"))))
@ -4986,22 +4987,17 @@ Unscored articles will be counted as having a score of zero."
"Sort threads such that the thread with the most recently dated article comes first."
(> (gnus-thread-latest-date h1) (gnus-thread-latest-date h2)))
; Since this is called not only to sort the top-level threads, but
; also in recursive sorts to order the articles within a thread, each
; article will be processed many times. Thus it speeds things up
; quite a bit to use gnus-date-get-time, which caches the time value.
(defun gnus-thread-latest-date (thread)
"Return the highest article date in THREAD."
(let ((previous-time 0))
(apply 'max
(mapcar
(lambda (header)
(setq previous-time
(condition-case ()
(gnus-float-time (mail-header-parse-date
(mail-header-date header)))
(error previous-time))))
(sort
(message-flatten-list thread)
(lambda (h1 h2)
(< (mail-header-number h1)
(mail-header-number h2))))))))
(apply 'max
(mapcar (lambda (header) (gnus-float-time
(gnus-date-get-time
(mail-header-date header))))
(message-flatten-list thread))))
(defun gnus-thread-total-score-1 (root)
;; This function find the total score of the thread below ROOT.
@ -8236,9 +8232,7 @@ articles that are younger than AGE days."
(when (and (vectorp (gnus-data-header d))
(setq date (mail-header-date (gnus-data-header d))))
(setq is-younger (time-less-p
(time-since (condition-case ()
(date-to-time date)
(error '(0 0))))
(time-since (gnus-date-get-time date))
cutoff))
(when (if younger-p
is-younger

View file

@ -455,10 +455,10 @@ respectively.")
(defun gnus-user-date (messy-date)
"Format the messy-date according to gnus-user-date-format-alist.
Returns \" ? \" if there's bad input or if an other error occurs.
Returns \" ? \" if there's bad input or if another error occurs.
Input should look like this: \"Sun, 14 Oct 2001 13:34:39 +0200\"."
(condition-case ()
(let* ((messy-date (gnus-float-time (safe-date-to-time messy-date)))
(let* ((messy-date (gnus-float-time (gnus-date-get-time messy-date)))
(now (gnus-float-time))
;;If we don't find something suitable we'll use this one
(my-format "%b %d '%y"))
@ -477,7 +477,7 @@ Input should look like this: \"Sun, 14 Oct 2001 13:34:39 +0200\"."
(defun gnus-dd-mmm (messy-date)
"Return a string like DD-MMM from a big messy string."
(condition-case ()
(format-time-string "%d-%b" (safe-date-to-time messy-date))
(format-time-string "%d-%b" (gnus-date-get-time messy-date))
(error " - ")))
(defmacro gnus-date-get-time (date)