diff options
-rw-r--r-- | .emacs.d/init.el | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 2713f8bb..990bd720 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -3076,18 +3076,17 @@ mutt's review view, after exiting EDITOR." (error "This group/range may contain articles from processing views")))) (advice-add 'gnus-summary-catchup :before #'spw/guard-gnus-summary-catchup) -(defun spw/gnus-summary-mark-as-read-forward () - (interactive) - (if (not (or (spw/gnus-summary-processing-view-p) - (spw/check-group-process-view-ids - (gnus-summary-header "message-id")))) - (call-interactively #'gnus-summary-mark-as-read-forward) - ;; We want an 'R' mark, not 'r'. +(defun spw/gnus-summary-mark-as-read-forward (n) + (interactive "p") + (let* ((processing-p (or (spw/gnus-summary-processing-view-p) + (spw/check-group-process-view-ids + (gnus-summary-header "message-id")))) + (mark (if processing-p gnus-read-mark gnus-del-mark))) + (when processing-p (setq n 1)) (gnus-set-global-variables) (if (not (get-buffer-window gnus-article-buffer t)) - (gnus-summary-mark-forward 1 gnus-read-mark - gnus-inhibit-user-auto-expire) - (save-excursion (gnus-summary-mark-forward 1 gnus-read-mark)) + (gnus-summary-mark-forward n mark gnus-inhibit-user-auto-expire) + (save-excursion (gnus-summary-mark-forward n mark)) (gnus-summary-next-unread-article)))) (with-eval-after-load 'gnus-sum (define-key gnus-summary-mode-map [remap gnus-summary-mark-as-read-forward] |