Commit 0dd7e6e3 authored by Eric Abrahamsen's avatar Eric Abrahamsen
Browse files

Have gnus-summary-limit-to-age operate on calendar days

Reported and patched by Łukasz Stelmach <stlman@poczta.fm>.

* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-age): Rather than
24-hour blocks. Also use `read-number', and drop the confusing option
to reverse younger/older both with the prefix argument and with a
negative number.
parent 9ecb595d
Pipeline #26751 failed with stage
in 6 minutes and 24 seconds
......@@ -8331,39 +8331,29 @@ articles."
(defun gnus-summary-limit-to-age (age &optional younger-p)
"Limit the summary buffer to articles that are older than (or equal) AGE days.
If YOUNGER-P (the prefix) is non-nil, limit the summary buffer to
articles that are younger than AGE days."
Days are counted from midnight to midnight, and now to the
previous midnight counts as day one. If YOUNGER-P (the prefix)
is non-nil, limit the summary buffer to articles that are younger
than AGE days."
(interactive
(let ((younger current-prefix-arg)
(days-got nil)
days)
(while (not days-got)
(setq days (if younger
(read-string "Limit to articles younger than (in days, older when negative): ")
(read-string
"Limit to articles older than (in days, younger when negative): ")))
(when (> (length days) 0)
(setq days (read days)))
(if (numberp days)
(progn
(setq days-got t)
(when (< days 0)
(setq younger (not younger))
(setq days (* days -1))))
(message "Please enter a number.")
(sleep-for 1)))
(let* ((younger current-prefix-arg)
(days (read-number
(if younger "Limit to articles younger than days: "
"Limit to articles older than days: "))))
(list days younger))
gnus-summary-mode)
(prog1
(let ((data gnus-newsgroup-data)
(cutoff (days-to-time age))
articles d date is-younger)
(let* ((data gnus-newsgroup-data)
(now (append '(0 0 0) (cdddr (decode-time))))
(delta (make-decoded-time :day (* -1 (- age 1))))
(cutoff (encode-time (decoded-time-add now delta)))
articles d date is-younger)
(while (setq d (pop data))
(when (and (mail-header-p (gnus-data-header d))
(setq date (mail-header-date (gnus-data-header d))))
(setq is-younger (time-less-p
(time-since (gnus-date-get-time date))
cutoff))
cutoff
(gnus-date-get-time date)))
(when (if younger-p
is-younger
(not is-younger))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment