diff -r 90ae97bfab3f -r ece4746ba12e .emacs-my --- a/.emacs-my Sat Mar 08 15:34:45 2014 +0200 +++ b/.emacs-my Mon Mar 10 22:14:13 2014 +0200 @@ -1814,6 +1814,20 @@ (eval-after-load 'gnus-sum '(define-key gnus-summary-mode-map (kbd "C-k") #'my-gnus-summary-kill-same-subject)) +(defun my-gnus.mark-thread-as-read () + "Mark unmarked articles in current thread as read and move to +next thread without selecting article." + (interactive) + (gnus-summary-top-thread) + (catch 'exit + (while t + (when (eq (gnus-summary-article-mark (gnus-summary-article-number)) gnus-unread-mark) + (gnus-summary-mark-article (gnus-summary-article-number) gnus-del-mark)) + (when (or (not (gnus-summary-search-forward)) (eq (gnus-summary-thread-level) 0)) + (throw 'exit nil)) ))) +(eval-after-load 'gnus-sum + '(define-key gnus-summary-mode-map (kbd "H-k") #'my-gnus.mark-thread-as-read)) + (defun my-gnus-thread-score-function (&rest scores) "If any followup have positive score assign greater available score to thread, else assign lesser available score."