From 0440d1ac6e58a25943af40c82cf5135dc2ddbac7 Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Sat, 30 Dec 2006 23:21:32 +0000 Subject: [PATCH] (gnus-summary-limit-to-singletons): New command and keystroke. --- lisp/ChangeLog | 3 +++ lisp/gnus-sum.el | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 02812ef47..44c4a7af5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2006-12-30 Lars Magne Ingebrigtsen + * gnus-sum.el (gnus-summary-limit-to-singletons): New command and + keystroke. + * spam-report.el (spam-report-gmane-internal): Fall back on Xref if all else fails. diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index a28d97eee..f80d6008c 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1873,6 +1873,7 @@ increase the score of each group you read." "C" gnus-summary-limit-mark-excluded-as-read "o" gnus-summary-insert-old-articles "N" gnus-summary-insert-new-articles + "S" gnus-summary-limit-to-singletons "r" gnus-summary-limit-to-replied "R" gnus-summary-limit-to-recipient) @@ -2534,6 +2535,7 @@ gnus-summary-show-article-from-menu-as-charset-%s" cs)))) ["Display Predicate" gnus-summary-limit-to-display-predicate t] ["Unread" gnus-summary-limit-to-unread t] ["Unseen" gnus-summary-limit-to-unseen t] + ["Signletons" gnus-summary-limit-to-singletons t] ["Replied" gnus-summary-limit-to-replied t] ["Non-dormant" gnus-summary-limit-exclude-dormant t] ["Next or process marked articles" gnus-summary-limit-to-articles t] @@ -8111,6 +8113,30 @@ If REVERSE (the prefix), limit to articles that don't match." (gnus-summary-limit articles))) (gnus-summary-position-point)) +(defun gnus-summary-limit-to-singletons (&optional threadsp) + "Limit the summary buffer to articles that aren't part on any thread. +If THREADSP (the prefix), limit to articles that are in threads." + (interactive "P") + (let ((articles nil) + thead-articles + threads) + (dolist (thread gnus-newsgroup-threads) + (if (stringp (car thread)) + (dolist (thread (cdr thread)) + (push thread threads)) + (push thread threads))) + (dolist (thread threads) + (setq thread-articles (gnus-articles-in-thread thread)) + (when (or (and threadsp + (> (length thread-articles) 1)) + (and (not threadsp) + (= (length thread-articles) 1))) + (setq articles (nconc thread-articles articles)))) + (if (not articles) + (message "No messages matched") + (gnus-summary-limit articles)) + (gnus-summary-position-point))) + (defun gnus-summary-limit-to-replied (&optional unreplied) "Limit the summary buffer to replied articles. If UNREPLIED (the prefix), limit to unreplied articles." -- 2.25.1