emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/command 2c38605: Finish tagging gnus files


From: Lars Ingebrigtsen
Subject: scratch/command 2c38605: Finish tagging gnus files
Date: Thu, 11 Feb 2021 17:04:37 -0500 (EST)

branch: scratch/command
commit 2c38605a230db2038c58a9c563ec8b2d1ae2e33e
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Finish tagging gnus files
---
 lisp/gnus/gnus-picon.el    |  8 ++--
 lisp/gnus/gnus-registry.el | 11 ++++--
 lisp/gnus/gnus-salt.el     |  8 ++--
 lisp/gnus/gnus-score.el    | 65 +++++++++++++++++--------------
 lisp/gnus/gnus-sieve.el    |  2 +-
 lisp/gnus/gnus-srvr.el     | 60 +++++++++++++++--------------
 lisp/gnus/gnus-start.el    |  4 +-
 lisp/gnus/gnus-topic.el    | 96 ++++++++++++++++++++++++++--------------------
 lisp/gnus/gnus-uu.el       | 73 +++++++++++++++++++----------------
 lisp/gnus/gnus-vm.el       |  4 +-
 10 files changed, 182 insertions(+), 149 deletions(-)

diff --git a/lisp/gnus/gnus-picon.el b/lisp/gnus/gnus-picon.el
index 7927b88..a11b75e 100644
--- a/lisp/gnus/gnus-picon.el
+++ b/lisp/gnus/gnus-picon.el
@@ -244,7 +244,7 @@ replacement is added."
                     (gnus-picon-insert-glyph (pop spec) category))))))))))
 
 (defun gnus-picon-transform-newsgroups (header)
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-with-article-headers
    (gnus-article-goto-header header)
    (mail-header-narrow-to-field)
@@ -283,7 +283,7 @@ replacement is added."
 (defun gnus-treat-from-picon ()
   "Display picons in the From header.
 If picons are already displayed, remove them."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
      (if (and wash-picon-p (memq 'from-picon gnus-article-wash-types))
@@ -294,7 +294,7 @@ If picons are already displayed, remove them."
 (defun gnus-treat-mail-picon ()
   "Display picons in the Cc and To headers.
 If picons are already displayed, remove them."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
      (if (and wash-picon-p (memq 'mail-picon gnus-article-wash-types))
@@ -306,7 +306,7 @@ If picons are already displayed, remove them."
 (defun gnus-treat-newsgroups-picon ()
   "Display picons in the Newsgroups and Followup-To headers.
 If picons are already displayed, remove them."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((wash-picon-p buffer-read-only))
     (gnus-with-article-buffer
      (if (and wash-picon-p (memq 'newsgroups-picon gnus-article-wash-types))
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index 147550d..797a2c0 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -813,7 +813,7 @@ Consults `gnus-registry-ignored-groups' and
 (defun gnus-registry-wash-for-keywords (&optional force)
   "Get the keywords of the current article.
 Overrides existing keywords with FORCE set non-nil."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((id (gnus-registry-fetch-message-id-fast gnus-current-article))
         word words)
     (if (or (not (gnus-registry-get-id-key id 'keyword))
@@ -1039,13 +1039,15 @@ Uses `gnus-registry-marks' to find what shortcuts to 
install."
 
 (defun gnus-registry-set-article-mark (&rest articles)
   "Apply a mark to process-marked ARTICLES."
-  (interactive (gnus-summary-work-articles current-prefix-arg))
+  (command (gnus-article-mode gnus-summary-mode)
+          (gnus-summary-work-articles current-prefix-arg))
   (gnus-registry-set-article-mark-internal (gnus-registry-read-mark)
                                            articles nil t))
 
 (defun gnus-registry-remove-article-mark (&rest articles)
   "Remove a mark from process-marked ARTICLES."
-  (interactive (gnus-summary-work-articles current-prefix-arg))
+  (command (gnus-article-mode gnus-summary-mode)
+          (gnus-summary-work-articles current-prefix-arg))
   (gnus-registry-set-article-mark-internal (gnus-registry-read-mark)
                                            articles t t))
 
@@ -1069,7 +1071,8 @@ Uses `gnus-registry-marks' to find what shortcuts to 
install."
   "Get the Gnus registry marks for ARTICLES and show them if interactive.
 Uses process/prefix conventions.  For multiple articles,
 only the last one's marks are returned."
-  (interactive (gnus-summary-work-articles 1))
+  (command (gnus-article-mode gnus-summary-mode)
+          (gnus-summary-work-articles 1))
   (let* ((article (last articles))
          (id (gnus-registry-fetch-message-id-fast article))
          (marks (when id (gnus-registry-get-id-key id 'mark))))
diff --git a/lisp/gnus/gnus-salt.el b/lisp/gnus/gnus-salt.el
index e222d24..2c5cde1 100644
--- a/lisp/gnus/gnus-salt.el
+++ b/lisp/gnus/gnus-salt.el
@@ -462,7 +462,7 @@ Two predefined functions are available:
 
 (defun gnus-tree-read-summary-keys (&optional arg)
   "Read a summary buffer key sequence and execute it."
-  (interactive "P")
+  (command gnus-tree-mode "P")
   (unless gnus-tree-inhibit
     (let ((buf (current-buffer))
          (gnus-tree-inhibit t)
@@ -477,7 +477,7 @@ Two predefined functions are available:
 
 (defun gnus-tree-show-summary ()
   "Reconfigure windows to show summary buffer."
-  (interactive)
+  (command gnus-tree-mode)
   (if (not (gnus-buffer-live-p gnus-summary-buffer))
       (error "There is no summary buffer for this tree buffer")
     (gnus-configure-windows 'article)
@@ -485,7 +485,7 @@ Two predefined functions are available:
 
 (defun gnus-tree-select-article (article)
   "Select the article under point, if any."
-  (interactive (list (gnus-tree-article-number)))
+  (command gnus-tree-mode (list (gnus-tree-article-number)))
   (let ((buf (current-buffer)))
     (when article
       (with-current-buffer gnus-summary-buffer
@@ -494,7 +494,7 @@ Two predefined functions are available:
 
 (defun gnus-tree-pick-article (e)
   "Select the article under the mouse pointer."
-  (interactive "e")
+  (command gnus-tree-mode "e")
   (mouse-set-point e)
   (gnus-tree-select-article (gnus-tree-article-number)))
 
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index ade0897..fac4c09 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -528,7 +528,8 @@ permanence, and the string to be used.  The numerical 
prefix will
 be used as SCORE.  A symbolic prefix of `a' (the SYMP parameter)
 says to use the `all.SCORE' file for the command instead of the
 current score file."
-  (interactive (gnus-interactive "P\ny"))
+  (command (gnus-article-mode gnus-summary-mode)
+          (gnus-interactive "P\ny"))
   (gnus-summary-increase-score (- (gnus-score-delta-default score)) symp))
 
 (defun gnus-score-kill-help-buffer ()
@@ -544,7 +545,8 @@ permanence, and the string to be used.  The numerical 
prefix will
 be used as SCORE.  A symbolic prefix of `a' (the SYMP parameter)
 says to use the `all.SCORE' file for the command instead of the
 current score file."
-  (interactive (gnus-interactive "P\ny"))
+  (command (gnus-article-mode gnus-summary-mode)
+          (gnus-interactive "P\ny"))
   (let* ((nscore (gnus-score-delta-default score))
         (prefix (if (< nscore 0) ?L ?I))
         (increase (> nscore 0))
@@ -930,16 +932,17 @@ MATCH is the string we are looking for.
 TYPE is the score type.
 SCORE is the score to add.
 EXTRA is the possible non-standard header."
-  (interactive (list (gnus-completing-read "Header"
-                                           (mapcar
-                                            #'car
-                                            (seq-filter
-                                             (lambda (x) (fboundp (nth 2 x)))
-                                             gnus-header-index))
-                                           t)
-                    (read-string "Match: ")
-                    (if (y-or-n-p "Use regexp match? ") 'r 's)
-                    (string-to-number (read-string "Score: "))))
+  (command (gnus-article-mode gnus-summary-mode)
+          (list (gnus-completing-read "Header"
+                                       (mapcar
+                                        #'car
+                                        (seq-filter
+                                         (lambda (x) (fboundp (nth 2 x)))
+                                         gnus-header-index))
+                                       t)
+                (read-string "Match: ")
+                (if (y-or-n-p "Use regexp match? ") 'r 's)
+                (string-to-number (read-string "Score: "))))
   (save-excursion
     (unless (and (stringp match) (> (length match) 0))
       (error "No match"))
@@ -972,7 +975,8 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-score-set-mark-below (score)
   "Automatically mark articles with score below SCORE as read."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list (or (and current-prefix-arg (prefix-numeric-value current-prefix-arg))
             (string-to-number (read-string "Mark below: ")))))
   (setq score (or score gnus-summary-default-score 0))
@@ -1006,7 +1010,8 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-score-set-expunge-below (score)
   "Automatically expunge articles with score below SCORE."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list (or (and current-prefix-arg (prefix-numeric-value current-prefix-arg))
             (string-to-number (read-string "Set expunge below: ")))))
   (setq score (or score gnus-summary-default-score 0))
@@ -1015,7 +1020,7 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-score-followup-article (&optional score)
   "Add SCORE to all followups to the article in the current buffer."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (setq score (gnus-score-delta-default score))
   (when (gnus-buffer-live-p gnus-summary-buffer)
     (save-excursion
@@ -1030,7 +1035,7 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-score-followup-thread (&optional score)
   "Add SCORE to all later articles in the thread the current buffer is part 
of."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (setq score (gnus-score-delta-default score))
   (when (gnus-buffer-live-p gnus-summary-buffer)
     (save-excursion
@@ -1064,13 +1069,13 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-summary-raise-score (n)
   "Raise the score of the current article by N."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (gnus-summary-set-score (+ (gnus-summary-article-score)
                             (or n gnus-score-interactive-default-score ))))
 
 (defun gnus-summary-set-score (n)
   "Set the score of the current article to N."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (save-excursion
     (gnus-summary-show-thread)
     (let ((buffer-read-only nil))
@@ -1089,7 +1094,7 @@ EXTRA is the possible non-standard header."
 (defun gnus-summary-current-score (arg)
   "Return the score of the current article.
   With prefix ARG, return the total score of the current (sub)thread."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (message "%s" (if arg
                    (gnus-thread-total-score
                     (gnus-id-to-thread
@@ -1098,7 +1103,8 @@ EXTRA is the possible non-standard header."
 
 (defun gnus-score-change-score-file (file)
   "Change current score alist."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list (read-file-name "Change to score file: " gnus-kill-files-directory)))
   (gnus-score-load-file file)
   (gnus-set-mode-line 'summary))
@@ -1106,7 +1112,8 @@ EXTRA is the possible non-standard header."
 (defvar gnus-score-edit-exit-function)
 (defun gnus-score-edit-current-scores (file)
   "Edit the current score alist."
-  (interactive (list gnus-current-score-file))
+  (command (gnus-article-mode gnus-summary-mode)
+          (list gnus-current-score-file))
   (if (not gnus-current-score-file)
       (error "No current score file")
     (let ((winconf (current-window-configuration)))
@@ -2496,7 +2503,7 @@ score in `gnus-newsgroup-scored' by SCORE."
 
 (defun gnus-score-find-trace ()
   "Find all score rules that applies to the current article."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((old-scored gnus-newsgroup-scored))
     (let ((gnus-newsgroup-headers
           (list (gnus-summary-article-header)))
@@ -2611,7 +2618,7 @@ the score file and its full name, including the 
directory.")
 
 (defun gnus-summary-rescore ()
   "Redo the entire scoring process in the current summary."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-score-save)
   (setq gnus-score-cache nil)
   (setq gnus-newsgroup-scored nil)
@@ -2642,7 +2649,7 @@ the score file and its full name, including the 
directory.")
 
 (defun gnus-summary-raise-same-subject-and-select (score)
   "Raise articles which has the same subject with SCORE and select the next."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (let ((subject (gnus-summary-article-subject)))
     (gnus-summary-raise-score score)
     (while (gnus-summary-find-subject subject)
@@ -2651,7 +2658,7 @@ the score file and its full name, including the 
directory.")
 
 (defun gnus-summary-raise-same-subject (score)
   "Raise articles which has the same subject with SCORE."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (let ((subject (gnus-summary-article-subject)))
     (gnus-summary-raise-score score)
     (while (gnus-summary-find-subject subject)
@@ -2664,7 +2671,7 @@ the score file and its full name, including the 
directory.")
 
 (defun gnus-summary-raise-thread (&optional score)
   "Raise the score of the articles in the current thread with SCORE."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (setq score (gnus-score-delta-default score))
   (let (e)
     (save-excursion
@@ -2683,17 +2690,17 @@ the score file and its full name, including the 
directory.")
 
 (defun gnus-summary-lower-same-subject-and-select (score)
   "Raise articles which has the same subject with SCORE and select the next."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (gnus-summary-raise-same-subject-and-select (- score)))
 
 (defun gnus-summary-lower-same-subject (score)
   "Raise articles which has the same subject with SCORE."
-  (interactive "p")
+  (command (gnus-article-mode gnus-summary-mode) "p")
   (gnus-summary-raise-same-subject (- score)))
 
 (defun gnus-summary-lower-thread (&optional score)
   "Lower score of articles in the current thread with SCORE."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-summary-raise-thread (- (gnus-score-delta-default score))))
 
 ;;; Finding score files.
diff --git a/lisp/gnus/gnus-sieve.el b/lisp/gnus/gnus-sieve.el
index 5dcd079..fa2538f 100644
--- a/lisp/gnus/gnus-sieve.el
+++ b/lisp/gnus/gnus-sieve.el
@@ -113,7 +113,7 @@ Return nil if no rule could be guessed."
 
 ;;;###autoload
 (defun gnus-sieve-article-add-rule ()
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-summary-select-article nil 'force)
   (with-current-buffer gnus-original-article-buffer
     (let ((rule (gnus-sieve-guess-rule-for-article))
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index a305e34..f865724 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -409,7 +409,7 @@ The following commands are available:
 
 (defun gnus-server-kill-server (server)
   "Kill the server on the current line."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (unless (gnus-server-goto-server server)
     (if server (error "No such server: %s" server)
       (error "No server on the current line")))
@@ -438,7 +438,7 @@ The following commands are available:
 
 (defun gnus-server-yank-server ()
   "Yank the previously killed server."
-  (interactive)
+  (command gnus-server-mode)
   (unless gnus-server-killed-servers
     (error "No killed servers to be yanked"))
   (let ((alist gnus-server-alist)
@@ -460,14 +460,14 @@ The following commands are available:
 
 (defun gnus-server-exit ()
   "Return to the group buffer."
-  (interactive)
+  (command gnus-server-mode)
   (gnus-run-hooks 'gnus-server-exit-hook)
   (gnus-kill-buffer (current-buffer))
   (gnus-configure-windows 'group t))
 
 (defun gnus-server-list-servers ()
   "List all available servers."
-  (interactive)
+  (command gnus-server-mode)
   (let ((cur (gnus-server-server-name)))
     (gnus-server-prepare)
     (if cur (gnus-server-goto-server cur)
@@ -489,7 +489,7 @@ The following commands are available:
 
 (defun gnus-server-open-server (server)
   "Force an open of SERVER."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (let ((method (gnus-server-to-method server)))
     (unless method
       (error "No such server: %s" server))
@@ -501,13 +501,13 @@ The following commands are available:
 
 (defun gnus-server-open-all-servers ()
   "Open all servers."
-  (interactive)
+  (command gnus-server-mode)
   (dolist (server gnus-inserted-opened-servers)
     (gnus-server-open-server (car server))))
 
 (defun gnus-server-close-server (server)
   "Close SERVER."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (let ((method (gnus-server-to-method server)))
     (unless method
       (error "No such server: %s" server))
@@ -519,7 +519,7 @@ The following commands are available:
 
 (defun gnus-server-offline-server (server)
   "Set SERVER to offline."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (let ((method (gnus-server-to-method server)))
     (unless method
       (error "No such server: %s" server))
@@ -531,7 +531,7 @@ The following commands are available:
 
 (defun gnus-server-close-all-servers ()
   "Close all servers."
-  (interactive)
+  (command gnus-server-mode)
   (dolist (server gnus-inserted-opened-servers)
     (gnus-server-close-server (car server)))
   (dolist (server gnus-server-alist)
@@ -539,7 +539,7 @@ The following commands are available:
 
 (defun gnus-server-deny-server (server)
   "Make sure SERVER will never be attempted opened."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (let ((method (gnus-server-to-method server)))
     (unless method
       (error "No such server: %s" server))
@@ -550,7 +550,7 @@ The following commands are available:
 
 (defun gnus-server-remove-denials ()
   "Make all denied servers into closed servers."
-  (interactive)
+  (command gnus-server-mode)
   (dolist (server gnus-opened-servers)
     (when (eq (nth 1 server) 'denied)
       (setcar (nthcdr 1 server) 'closed)))
@@ -558,7 +558,7 @@ The following commands are available:
 
 (defun gnus-server-copy-server (from to)
   "Copy a server definition to a new name."
-  (interactive
+  (command gnus-server-mode
    (list
     (or (gnus-server-server-name)
        (error "No server on the current line"))
@@ -579,7 +579,8 @@ The following commands are available:
     (gnus-server-yank-server)))
 
 (defun gnus-server-add-server (how where)
-  (interactive
+  (command
+   gnus-server-mode
    (list (intern (gnus-completing-read "Server method"
                                        (mapcar #'car gnus-valid-select-methods)
                                        t))
@@ -591,7 +592,8 @@ The following commands are available:
 
 (defun gnus-server-goto-server (server)
   "Jump to a server line."
-  (interactive
+  (command
+   gnus-server-mode
    (list (gnus-completing-read "Goto server"
                                (mapcar #'car gnus-server-alist) t)))
   (let ((to (text-property-any (point-min) (point-max)
@@ -602,7 +604,7 @@ The following commands are available:
 
 (defun gnus-server-edit-server (server)
   "Edit the server on the current line."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (unless server
     (error "No server on current line"))
   (unless (assoc server gnus-server-alist)
@@ -620,7 +622,7 @@ The following commands are available:
 
 (defun gnus-server-show-server (server)
   "Show the definition of the server on the current line."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (unless server
     (error "No server on current line"))
   (let ((info (gnus-server-to-method server)))
@@ -632,7 +634,7 @@ The following commands are available:
 
 (defun gnus-server-scan-server (server)
   "Request a scan from the current server."
-  (interactive (list (gnus-server-server-name)))
+  (command gnus-server-mode (list (gnus-server-server-name)))
   (let ((method (gnus-server-to-method server)))
     (if (not (gnus-get-function method 'request-scan))
        (error "Server %s can't scan" (car method))
@@ -897,7 +899,7 @@ buffer.
 (defun gnus-browse-read-group (&optional no-article number)
   "Enter the group at the current line.
 If NUMBER, fetch this number of articles."
-  (interactive "P")
+  (command gnus-browse-mode "P")
   (let* ((full-name (gnus-browse-group-name))
         (group (if (gnus-native-method-p
                     (gnus-find-method-for-group full-name))
@@ -916,26 +918,26 @@ If NUMBER, fetch this number of articles."
 (defun gnus-browse-select-group (&optional number)
   "Select the current group.
 If NUMBER, fetch this number of articles."
-  (interactive "P")
+  (command gnus-browse-mode "P")
   (gnus-browse-read-group 'no number))
 
 (defun gnus-browse-next-group (n)
   "Go to the next group."
-  (interactive "p")
+  (command gnus-browse-mode "p")
   (prog1
       (forward-line n)
     (gnus-group-position-point)))
 
 (defun gnus-browse-prev-group (n)
   "Go to the next group."
-  (interactive "p")
+  (command gnus-browse-mode "p")
   (gnus-browse-next-group (- n)))
 
 (defun gnus-browse-unsubscribe-current-group (arg)
   "(Un)subscribe to the next ARG groups.
 The variable `gnus-browse-subscribe-newsgroup-method' determines
 how new groups will be entered into the group buffer."
-  (interactive "p")
+  (command gnus-browse-mode "p")
   (when (eobp)
     (error "No group at current line"))
   (let ((ward (if (< arg 0) -1 1))
@@ -961,7 +963,7 @@ how new groups will be entered into the group buffer."
 
 (defun gnus-browse-describe-group (group)
   "Describe the current group."
-  (interactive (list (gnus-browse-group-name)))
+  (command gnus-browse-mode (list (gnus-browse-group-name)))
   (gnus-group-describe-group nil group))
 
 (defun gnus-browse-delete-group (group force)
@@ -970,8 +972,8 @@ If FORCE (the prefix) is non-nil, all the articles in the 
group will
 be deleted.  This is \"deleted\" as in \"removed forever from the face
 of the Earth\".  There is no undo.  The user will be prompted before
 doing the deletion."
-  (interactive (list (gnus-browse-group-name)
-                    current-prefix-arg))
+  (command gnus-browse-mode
+          (list (gnus-browse-group-name) current-prefix-arg))
   (gnus-group-delete-group group force))
 
 (defun gnus-browse-unsubscribe-group ()
@@ -1020,7 +1022,7 @@ doing the deletion."
 
 (defun gnus-browse-exit ()
   "Quit browsing and return to the group buffer."
-  (interactive)
+  (command gnus-browse-mode)
   (when (derived-mode-p 'gnus-browse-mode)
     (gnus-kill-buffer (current-buffer)))
   ;; Insert the newly subscribed groups in the group buffer.
@@ -1032,7 +1034,7 @@ doing the deletion."
 
 (defun gnus-browse-describe-briefly ()
   "Give a one line description of the group mode commands."
-  (interactive)
+  (command gnus-browse-mode)
   (gnus-message 6 "%s"
                (substitute-command-keys 
"\\<gnus-browse-mode-map>\\[gnus-group-next-group]:Forward  
\\[gnus-group-prev-group]:Backward  \\[gnus-browse-exit]:Exit  
\\[gnus-info-find-node]:Run Info  \\[gnus-browse-describe-briefly]:This help")))
 
@@ -1089,7 +1091,7 @@ Requesting compaction of %s... (this may take a long 
time)"
 
 (defun gnus-server-toggle-cloud-server ()
   "Toggle whether the server under point is replicated in the Emacs Cloud."
-  (interactive)
+  (command gnus-server-mode)
   (let ((server (gnus-server-server-name)))
     (unless server
       (error "No server on the current line"))
@@ -1110,7 +1112,7 @@ Requesting compaction of %s... (this may take a long 
time)"
 
 (defun gnus-server-set-cloud-method-server ()
   "Set the server under point to host the Emacs Cloud."
-  (interactive)
+  (command gnus-server-mode)
   (let ((server (gnus-server-server-name)))
     (unless server
       (error "No server on the current line"))
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 1554635..a16a5f8 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1070,7 +1070,7 @@ With 1 C-u, use the `ask-server' method to query the 
server for new
 groups.
 With 2 C-u's, use most complete method possible to query the server
 for new groups, and subscribe the new groups as zombies."
-  (interactive "p")
+  (command gnus-group-mode "p")
   (let* ((gnus-subscribe-newsgroup-method
          gnus-subscribe-newsgroup-method)
         (check (cond
@@ -1405,7 +1405,7 @@ newsgroup."
 
 (defun gnus-check-duplicate-killed-groups ()
   "Remove duplicates from the list of killed groups."
-  (interactive)
+  (command gnus-group-mode)
   (let ((killed gnus-killed-list))
     (while killed
       (gnus-message 9 "%d" (length killed))
diff --git a/lisp/gnus/gnus-topic.el b/lisp/gnus/gnus-topic.el
index 3253b78..7882087 100644
--- a/lisp/gnus/gnus-topic.el
+++ b/lisp/gnus/gnus-topic.el
@@ -145,7 +145,8 @@ See Info node `(gnus)Formatting Variables'."
 
 (defun gnus-topic-jump-to-topic (topic)
   "Go to TOPIC."
-  (interactive
+  (command
+   gnus-group-mode
    (list (gnus-completing-read "Go to topic" (gnus-topic-list) t)))
   (let ((inhibit-read-only t))
     (dolist (topic (gnus-current-topics topic))
@@ -235,12 +236,12 @@ If RECURSIVE is t, return groups in its subtopics too."
 
 (defun gnus-topic-goto-previous-topic (n)
   "Go to the N'th previous topic."
-  (interactive "p")
+  (command gnus-group-mode "p")
   (gnus-topic-goto-next-topic (- n)))
 
 (defun gnus-topic-goto-next-topic (n)
   "Go to the N'th next topic."
-  (interactive "p")
+  (command gnus-group-mode "p")
   (let ((backward (< n 0))
        (n (abs n))
        (topic (gnus-current-topic)))
@@ -1172,7 +1173,7 @@ articles in the group.  If ALL is a negative number, 
fetch this
 number of the earliest articles in the group.
 
 If performed over a topic line, toggle folding the topic."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (when (and (eobp) (not (gnus-group-group-name)))
     (forward-line -1))
   (if (gnus-group-topic-p)
@@ -1184,13 +1185,13 @@ If performed over a topic line, toggle folding the 
topic."
 
 (defun gnus-mouse-pick-topic (e)
   "Select the group or topic under the mouse pointer."
-  (interactive "e")
+  (command gnus-group-mode "e")
   (mouse-set-point e)
   (gnus-topic-read-group nil))
 
 (defun gnus-topic-expire-articles (topic)
   "Expire articles in this topic or group."
-  (interactive (list (gnus-group-topic-name)))
+  (command gnus-group-mode (list (gnus-group-topic-name)))
   (if (not topic)
       (call-interactively 'gnus-group-expire-articles)
     (save-excursion
@@ -1205,7 +1206,7 @@ If performed over a topic line, toggle folding the topic."
 (defun gnus-topic-catchup-articles (topic)
   "Catchup this topic or group.
 Also see `gnus-group-catchup'."
-  (interactive (list (gnus-group-topic-name)))
+  (command gnus-group-mode (list (gnus-group-topic-name)))
   (if (not topic)
       (call-interactively 'gnus-group-catchup-current)
     (save-excursion
@@ -1232,7 +1233,7 @@ be auto-selected upon group entry.  If GROUP is non-nil, 
fetch
 that group.
 
 If performed over a topic line, toggle folding the topic."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (when (and (eobp) (not (gnus-group-group-name)))
     (forward-line -1))
   (if (gnus-group-topic-p)
@@ -1244,7 +1245,8 @@ If performed over a topic line, toggle folding the topic."
 (defun gnus-topic-create-topic (topic parent &optional previous full-topic)
   "Create a new TOPIC under PARENT.
 When used interactively, PARENT will be the topic under point."
-  (interactive
+  (command
+   gnus-group-mode
    (list
     (read-string "New topic: ")
     (gnus-current-topic)))
@@ -1281,7 +1283,8 @@ When used interactively, PARENT will be the topic under 
point."
 (defun gnus-topic-move-group (n topic &optional copyp)
   "Move the next N groups to TOPIC.
 If COPYP, copy the groups instead."
-  (interactive
+  (command
+   gnus-group-mode
    (list current-prefix-arg
         (gnus-completing-read "Move to topic" (mapcar #'car gnus-topic-alist) t
                               nil 'gnus-topic-history)))
@@ -1309,7 +1312,7 @@ If COPYP, copy the groups instead."
 
 (defun gnus-topic-remove-group (&optional n)
   "Remove the current group from the topic."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (let ((use-marked (and (not n) (not (and transient-mark-mode mark-active))
                         gnus-group-marked t))
        (groups (gnus-group-process-prefix n)))
@@ -1328,7 +1331,8 @@ If COPYP, copy the groups instead."
 
 (defun gnus-topic-copy-group (n topic)
   "Copy the current group to a topic."
-  (interactive
+  (command
+   gnus-group-mode
    (list current-prefix-arg
         (gnus-completing-read
          "Copy to topic" (mapcar #'car gnus-topic-alist) t)))
@@ -1336,7 +1340,7 @@ If COPYP, copy the groups instead."
 
 (defun gnus-topic-kill-group (&optional n discard)
   "Kill the next N groups."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (if (gnus-group-topic-p)
       (let ((topic (gnus-group-topic-name)))
        (push (cons
@@ -1356,7 +1360,7 @@ If COPYP, copy the groups instead."
 
 (defun gnus-topic-yank-group (&optional arg)
   "Yank the last topic."
-  (interactive "p")
+  (command gnus-group-mode "p")
   (if gnus-topic-killed-topics
       (let* ((previous
              (or (gnus-group-topic-name)
@@ -1405,7 +1409,7 @@ If COPYP, copy the groups instead."
 (defun gnus-topic-hide-topic (&optional permanent)
   "Hide the current topic.
 If PERMANENT, make it stay hidden in subsequent sessions as well."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (when (gnus-current-topic)
     (gnus-topic-goto-topic (gnus-current-topic))
     (if permanent
@@ -1418,7 +1422,7 @@ If PERMANENT, make it stay hidden in subsequent sessions 
as well."
 (defun gnus-topic-show-topic (&optional permanent)
   "Show the hidden topic.
 If PERMANENT, make it stay shown in subsequent sessions as well."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (when (gnus-group-topic-p)
     (if (not permanent)
        (gnus-topic-remove-topic t nil)
@@ -1433,9 +1437,11 @@ If PERMANENT, make it stay shown in subsequent sessions 
as well."
 (defun gnus-topic-mark-topic (topic &optional unmark non-recursive)
   "Mark all groups in the TOPIC with the process mark.
 If NON-RECURSIVE (which is the prefix) is t, don't mark its subtopics."
-  (interactive (list (gnus-group-topic-name)
-                    nil
-                    (and current-prefix-arg t)))
+  (command
+   gnus-group-mode
+   (list (gnus-group-topic-name)
+        nil
+        (and current-prefix-arg t)))
   (if (not topic)
       (call-interactively 'gnus-group-mark-group)
     (save-excursion
@@ -1448,16 +1454,17 @@ If NON-RECURSIVE (which is the prefix) is t, don't mark 
its subtopics."
 (defun gnus-topic-unmark-topic (topic &optional _dummy non-recursive)
   "Remove the process mark from all groups in the TOPIC.
 If NON-RECURSIVE (which is the prefix) is t, don't unmark its subtopics."
-  (interactive (list (gnus-group-topic-name)
-                    nil
-                    (and current-prefix-arg t)))
+  (command gnus-group-mode
+          (list (gnus-group-topic-name)
+                nil
+                (and current-prefix-arg t)))
   (if (not topic)
       (call-interactively 'gnus-group-unmark-group)
     (gnus-topic-mark-topic topic t non-recursive)))
 
 (defun gnus-topic-get-new-news-this-topic (&optional n)
   "Check for new news in the current topic."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (if (not (gnus-group-topic-p))
       (gnus-group-get-new-news-this-group n)
     (let* ((topic (gnus-group-topic-name))
@@ -1469,7 +1476,8 @@ If NON-RECURSIVE (which is the prefix) is t, don't unmark 
its subtopics."
 
 (defun gnus-topic-move-matching (regexp topic &optional copyp)
   "Move all groups that match REGEXP to some topic."
-  (interactive
+  (command
+   gnus-group-mode
    (let (topic)
      (nreverse
       (list
@@ -1481,7 +1489,8 @@ If NON-RECURSIVE (which is the prefix) is t, don't unmark 
its subtopics."
 
 (defun gnus-topic-copy-matching (regexp topic &optional _copyp)
   "Copy all groups that match REGEXP to some topic."
-  (interactive
+  (command
+   gnus-group-mode
    (let ((topic (gnus-completing-read "Copy to topic"
                                       (mapcar #'car gnus-topic-alist) t)))
      (nreverse
@@ -1491,7 +1500,7 @@ If NON-RECURSIVE (which is the prefix) is t, don't unmark 
its subtopics."
 
 (defun gnus-topic-delete (topic)
   "Delete a topic."
-  (interactive (list (gnus-group-topic-name)))
+  (command gnus-group-mode (list (gnus-group-topic-name)))
   (unless topic
     (error "No topic to be deleted"))
   (let ((entry (assoc topic gnus-topic-alist))
@@ -1509,7 +1518,8 @@ If NON-RECURSIVE (which is the prefix) is t, don't unmark 
its subtopics."
 
 (defun gnus-topic-rename (old-name new-name)
   "Rename a topic."
-  (interactive
+  (command
+   gnus-group-mode
    (let ((topic (gnus-current-topic)))
      (list topic
           (read-string (format "Rename %s to: " topic) topic))))
@@ -1535,7 +1545,7 @@ If NON-RECURSIVE (which is the prefix) is t, don't unmark 
its subtopics."
 (defun gnus-topic-indent (&optional unindent)
   "Indent a topic -- make it a sub-topic of the previous topic.
 If UNINDENT, remove an indentation."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (if unindent
       (gnus-topic-unindent)
     (let* ((topic (gnus-current-topic))
@@ -1555,7 +1565,7 @@ If UNINDENT, remove an indentation."
 
 (defun gnus-topic-unindent ()
   "Unindent a topic."
-  (interactive)
+  (command gnus-group-mode)
   (let* ((topic (gnus-current-topic))
         (parent (gnus-topic-parent-topic topic))
         (grandparent (gnus-topic-parent-topic parent)))
@@ -1574,7 +1584,7 @@ If UNINDENT, remove an indentation."
 (defun gnus-topic-list-active (&optional force)
   "List all groups that Gnus knows about in a topicsified fashion.
 If FORCE, always re-read the active file."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (when force
     (gnus-get-killed-groups))
   (gnus-topic-grok-active force)
@@ -1585,7 +1595,7 @@ If FORCE, always re-read the active file."
 
 (defun gnus-topic-toggle-display-empty-topics ()
   "Show/hide topics that have no unread articles."
-  (interactive)
+  (command gnus-group-mode)
   (setq gnus-topic-display-empty-topics
        (not gnus-topic-display-empty-topics))
   (gnus-group-list-groups)
@@ -1598,7 +1608,7 @@ If FORCE, always re-read the active file."
 (defun gnus-topic-edit-parameters (group)
   "Edit the group parameters of GROUP.
 If performed on a topic, edit the topic parameters instead."
-  (interactive (list (gnus-group-group-name)))
+  (command gnus-group-mode (list (gnus-group-group-name)))
   (if group
       (gnus-group-edit-group-parameters group)
     (if (not (gnus-group-topic-p))
@@ -1642,7 +1652,7 @@ If performed on a topic, edit the topic parameters 
instead."
 (defun gnus-topic-sort-groups (func &optional reverse)
   "Sort the current topic according to FUNC.
 If REVERSE, reverse the sorting order."
-  (interactive (list gnus-group-sort-function current-prefix-arg))
+  (command gnus-group-mode (list gnus-group-sort-function current-prefix-arg))
   (let ((topic (assoc (gnus-current-topic) gnus-topic-alist)))
     (gnus-topic-sort-topic
      topic (gnus-make-sort-function func) reverse)
@@ -1651,43 +1661,43 @@ If REVERSE, reverse the sorting order."
 (defun gnus-topic-sort-groups-by-alphabet (&optional reverse)
   "Sort the current topic alphabetically by group name.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-alphabet reverse))
 
 (defun gnus-topic-sort-groups-by-unread (&optional reverse)
   "Sort the current topic by number of unread articles.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-unread reverse))
 
 (defun gnus-topic-sort-groups-by-level (&optional reverse)
   "Sort the current topic by group level.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-level reverse))
 
 (defun gnus-topic-sort-groups-by-score (&optional reverse)
   "Sort the current topic by group score.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-score reverse))
 
 (defun gnus-topic-sort-groups-by-rank (&optional reverse)
   "Sort the current topic by group rank.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-rank reverse))
 
 (defun gnus-topic-sort-groups-by-method (&optional reverse)
   "Sort the current topic alphabetically by backend name.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-method reverse))
 
 (defun gnus-topic-sort-groups-by-server (&optional reverse)
   "Sort the current topic alphabetically by server name.
 If REVERSE, sort in reverse order."
-  (interactive "P")
+  (command gnus-group-mode "P")
   (gnus-topic-sort-groups 'gnus-group-sort-by-server reverse))
 
 (defun gnus-topic-sort-topics-1 (top reverse)
@@ -1704,7 +1714,8 @@ If REVERSE, sort in reverse order."
 (defun gnus-topic-sort-topics (&optional topic reverse)
   "Sort topics in TOPIC alphabetically by topic name.
 If REVERSE, reverse the sorting order."
-  (interactive
+  (command
+   gnus-group-mode
    (list (gnus-completing-read "Sort topics in"
                                (mapcar #'car gnus-topic-alist) t
                                (gnus-current-topic))
@@ -1718,7 +1729,8 @@ If REVERSE, reverse the sorting order."
 
 (defun gnus-topic-move (current to)
   "Move the CURRENT topic to TO."
-  (interactive
+  (command
+   gnus-group-mode
    (list
     (gnus-group-topic-name)
     (gnus-completing-read "Move to topic" (mapcar #'car gnus-topic-alist) t)))
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index 32a8785..cf1d90d 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -355,12 +355,13 @@ didn't work, and overwrite existing files.  Otherwise, 
ask each time."
 
 (defun gnus-uu-decode-uu (&optional n)
   "Uudecodes the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-uu-decode-with-method #'gnus-uu-uustrip-article n))
 
 (defun gnus-uu-decode-uu-and-save (n dir)
   "Decodes and saves the resulting file."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (file-name-as-directory
          (read-directory-name "Uudecode and save in dir: "
@@ -370,12 +371,13 @@ didn't work, and overwrite existing files.  Otherwise, 
ask each time."
 
 (defun gnus-uu-decode-unshar (&optional n)
   "Unshars the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-uu-decode-with-method #'gnus-uu-unshar-article n nil nil 'scan t))
 
 (defun gnus-uu-decode-unshar-and-save (n dir)
   "Unshars and saves the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (file-name-as-directory
          (read-directory-name "Unshar and save in dir: "
@@ -385,7 +387,8 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-decode-save (n file)
   "Saves the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (if gnus-uu-save-separate-articles
             (read-directory-name
@@ -397,7 +400,8 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-decode-binhex (n dir)
   "Unbinhexes the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (file-name-as-directory
          (read-directory-name "Unbinhex and save in dir: "
@@ -410,7 +414,8 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-decode-yenc (n dir)
   "Decode the yEnc-encoded current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (file-name-as-directory
          (read-directory-name "yEnc decode and save in dir: "
@@ -421,13 +426,14 @@ didn't work, and overwrite existing files.  Otherwise, 
ask each time."
 
 (defun gnus-uu-decode-uu-view (&optional n)
   "Uudecodes and views the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
     (gnus-uu-decode-uu n)))
 
 (defun gnus-uu-decode-uu-and-save-view (n dir)
   "Decodes, views and saves the resulting file."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (read-file-name "Uudecode, view and save in dir: "
                         gnus-uu-default-dir
@@ -437,13 +443,14 @@ didn't work, and overwrite existing files.  Otherwise, 
ask each time."
 
 (defun gnus-uu-decode-unshar-view (&optional n)
   "Unshars and views the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
     (gnus-uu-decode-unshar n)))
 
 (defun gnus-uu-decode-unshar-and-save-view (n dir)
   "Unshars and saves the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (read-file-name "Unshar, view and save in dir: "
                         gnus-uu-default-dir
@@ -453,7 +460,8 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-decode-save-view (n file)
   "Saves and views the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (if gnus-uu-save-separate-articles
             (read-directory-name "Save articles in dir: "
@@ -465,7 +473,8 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-decode-binhex-view (n file)
   "Unbinhexes and views the current article."
-  (interactive
+  (command
+   (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (read-file-name "Unbinhex, view and save in dir: "
                         gnus-uu-default-dir gnus-uu-default-dir)))
@@ -480,7 +489,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-digest-mail-forward (&optional n post)
   "Digests and forwards all articles in this series."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-uu-initialize)
   (let ((gnus-uu-save-in-digest t)
        (file (make-temp-file (nnheader-concat gnus-uu-work-dir "forward")))
@@ -546,7 +555,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
 
 (defun gnus-uu-digest-post-forward (&optional n)
   "Digest and forward to a newsgroup."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-uu-digest-mail-forward n t))
 
 ;; Process marking.
@@ -576,7 +585,7 @@ didn't work, and overwrite existing files.  Otherwise, ask 
each time."
   "Set the process mark on articles whose subjects match REGEXP.
 When called interactively, prompt for REGEXP.
 Optional UNMARK non-nil means unmark instead of mark."
-  (interactive "sMark (regexp): \nP")
+  (command (gnus-article-mode gnus-summary-mode) "sMark (regexp): \nP")
   (save-excursion
     (let* ((articles (gnus-uu-find-articles-matching regexp))
           (new-marked (gnus-new-processable unmark articles)))
@@ -590,12 +599,12 @@ Optional UNMARK non-nil means unmark instead of mark."
 (defun gnus-uu-unmark-by-regexp (regexp)
   "Remove the process mark from articles whose subjects match REGEXP.
 When called interactively, prompt for REGEXP."
-  (interactive "sUnmark (regexp): ")
+  (command (gnus-article-mode gnus-summary-mode) "sUnmark (regexp): ")
   (gnus-uu-mark-by-regexp regexp t))
 
 (defun gnus-uu-mark-series (&optional silent)
   "Mark the current series with the process mark."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let* ((articles (gnus-uu-find-articles-matching))
         (l (length articles)))
     (while articles
@@ -608,7 +617,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-mark-region (beg end &optional unmark)
   "Set the process mark on all articles between point and mark."
-  (interactive "r")
+  (command (gnus-article-mode gnus-summary-mode) "r")
   (save-excursion
     (goto-char beg)
     (while (< (point) end)
@@ -620,22 +629,22 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-unmark-region (beg end)
   "Remove the process mark from all articles between point and mark."
-  (interactive "r")
+  (command (gnus-article-mode gnus-summary-mode) "r")
   (gnus-uu-mark-region beg end t))
 
 (defun gnus-uu-mark-buffer ()
   "Set the process mark on all articles in the buffer."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-uu-mark-region (point-min) (point-max)))
 
 (defun gnus-uu-unmark-buffer ()
   "Remove the process mark on all articles in the buffer."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-uu-mark-region (point-min) (point-max) t))
 
 (defun gnus-uu-mark-thread ()
   "Marks all articles downwards in this thread."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (gnus-save-hidden-threads
     (let ((level (gnus-summary-thread-level)))
       (while (and (gnus-summary-set-process-mark (gnus-summary-article-number))
@@ -646,7 +655,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-unmark-thread ()
   "Unmarks all articles downwards in this thread."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((level (gnus-summary-thread-level)))
     (while (and (gnus-summary-remove-process-mark
                 (gnus-summary-article-number))
@@ -656,7 +665,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-invert-processable ()
   "Invert the list of process-marked articles."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((data gnus-newsgroup-data)
        number)
     (save-excursion
@@ -669,7 +678,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-mark-over (&optional score)
   "Mark all articles with a score over SCORE (the prefix)."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (let ((score (or score gnus-summary-default-score 0))
        (data gnus-newsgroup-data))
     (save-excursion
@@ -684,7 +693,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-mark-sparse ()
   "Mark all series that have some articles marked."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (let ((marked (nreverse gnus-newsgroup-processable))
        subject articles total headers)
     (unless marked
@@ -708,7 +717,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-mark-all ()
   "Mark all articles in \"series\" order."
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (setq gnus-newsgroup-processable nil)
   (save-excursion
     (let ((data gnus-newsgroup-data)
@@ -728,18 +737,18 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-decode-postscript (&optional n)
   "Gets PostScript of the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (gnus-uu-decode-with-method #'gnus-uu-decode-postscript-article n))
 
 (defun gnus-uu-decode-postscript-view (&optional n)
   "Gets and views the current article."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
     (gnus-uu-decode-postscript n)))
 
 (defun gnus-uu-decode-postscript-and-save (n dir)
   "Extracts PostScript and saves the current article."
-  (interactive
+  (command (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (file-name-as-directory
          (read-directory-name "Save in dir: "
@@ -750,7 +759,7 @@ When called interactively, prompt for REGEXP."
 
 (defun gnus-uu-decode-postscript-and-save-view (n dir)
   "Decodes, views and saves the resulting file."
-  (interactive
+  (command (gnus-article-mode gnus-summary-mode)
    (list current-prefix-arg
         (read-file-name "Where do you want to save the file(s)? "
                         gnus-uu-default-dir
diff --git a/lisp/gnus/gnus-vm.el b/lisp/gnus/gnus-vm.el
index b7e6b2a..23a879d 100644
--- a/lisp/gnus/gnus-vm.el
+++ b/lisp/gnus/gnus-vm.el
@@ -72,7 +72,7 @@ If N is a positive number, save the N next articles.
 If N is a negative number, save the N previous articles.
 If N is nil and any articles have been marked with the process mark,
 save those articles instead."
-  (interactive "P")
+  (command (gnus-article-mode gnus-summary-mode) "P")
   (require 'gnus-art)
   (let ((gnus-default-article-saver 'gnus-summary-save-in-vm))
     (gnus-summary-save-article arg)))
@@ -80,7 +80,7 @@ save those articles instead."
 (declare-function vm-save-message "ext:vm-save" (folder &optional count))
 
 (defun gnus-summary-save-in-vm (&optional folder)
-  (interactive)
+  (command (gnus-article-mode gnus-summary-mode))
   (require 'vm)
   (setq folder
        (gnus-read-save-file-name



reply via email to

[Prev in Thread] Current Thread [Next in Thread]