Subject: bug#65387: [PATCH] New user option 'submit-emacs-patch-display-help'

From: Eshel Yaron <[email-masked]>
Date: Sat, 19 Aug 2023 21:33:14 +0200

Tags: patch

Hi,

This patch adds a user option for disabling the *Patch Help* buffer that
`submit-emacs-patch` displays.

In GNU Emacs 30.0.50 (build 23, x86_64-apple-darwin22.5.0, NS
 appkit-2299.60 Version 13.4 (Build 22F66)) of 2023-08-19 built on
 Dazzs-MacBook-Pro.local
Repository revision: 44697457c6048464a68b6d58a1c4cf967fd5be06
Repository branch: submit-emacs-patch-display-help
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.4

Configured using:
 'configure 'CFLAGS=-g0 -O3' --with-native-compilation --with-json
 --with-imagemagick --with-tree-sitter --enable-link-time-optimization'

>From 28bf05cdafa8b9d00a47a932d20569097289b6d4 Mon Sep 17 00:00:00 2001
From: Eshel Yaron <[email-masked]>
Date: Sat, 19 Aug 2023 21:24:34 +0200
Subject: [PATCH] New user option 'submit-emacs-patch-display-help'

This lets users prevent 'submit-emacs-patch' from displaying a buffer
with instructions about submitting patches when they no longer need it.

* lisp/mail/emacsbug.el (submit-emacs-patch-display-help): New user
option.
(submit-emacs-patch): Use it.
* doc/emacs/trouble.texi (Sending Patches): Document it.
* etc/NEWS: Announce it.
---
 doc/emacs/trouble.texi |  7 +++++++
 etc/NEWS               |  6 ++++++
 lisp/mail/emacsbug.el  | 45 +++++++++++++++++++++++-------------------
 3 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index d2e8ac3452a..279b17dca2d 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1336,6 +1336,13 @@ Sending Patches
 form that is clearly safe to install.
 @end itemize
 
+@vindex submit-emacs-patch-display-help
+By default, @kbd{M-x submit-emacs-patch} displays a buffer with some
+instructions alongside the Message mode buffer.  If you're already
+familiar with these instructions after submitting a patch or two, you
+can disable this help by customizing the user option
+@code{submit-emacs-patch-display-help} to @code{nil}.
+
 @node Contributing
 @section Contributing to Emacs Development
 @cindex contributing to Emacs
diff --git a/etc/NEWS b/etc/NEWS
index 6588299c532..ab868b9f3a4 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -99,6 +99,12 @@ This allows the user to customize the prompt that is appended by
 'yes-or-no-p' when asking questions.  The default value is
 "(yes or no) ".
 
++++
+** New user option 'submit-emacs-patch-display-help'.
+You can set this user option to nil to prevent 'submit-emacs-patch'
+from displaying a help buffer with instructions for submitting
+patches.
+
 ---
 ** New face 'display-time-date-and-time'.
 This is used for displaying the time and date components of
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index bebaad720db..9c2120530a6 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -50,6 +50,10 @@ report-emacs-bug-no-explanations
   "If non-nil, suppress the explanations given for the sake of novice users."
   :type 'boolean)
 
+(defcustom submit-emacs-patch-display-help t
+  "If non-nil, `submit-emacs-patch' displays some help in another buffer."
+  :type 'boolean)
+
 ;; User options end here.
 
 (defvar report-emacs-bug-orig-text nil
@@ -509,26 +513,27 @@ submit-emacs-patch
      (list (read-string (format-prompt "This patch is about" guess)
                         nil nil guess)
            file)))
-  (switch-to-buffer "*Patch Help*")
-  (let ((inhibit-read-only t))
-    (erase-buffer)
-    (insert "Thank you for considering submitting a patch to the Emacs project.\n\n"
-            "Please describe what the patch fixes (or, if it's a new feature, what it\n"
-            "implements) in the mail buffer below.  When done, use the "
-            (substitute-command-keys "\\<message-mode-map>\\[message-send-and-exit] command\n")
-            "to send the patch as an email to the Emacs issue tracker.\n\n"
-            "If this is the first time you're submitting an Emacs patch, please\n"
-            "read the ")
-    (insert-text-button
-     "CONTRIBUTE"
-     'action (lambda (_)
-               (view-buffer
-                (find-file-noselect
-                 (expand-file-name "CONTRIBUTE" installation-directory)))))
-    (insert " file first.\n")
-    (goto-char (point-min))
-    (view-mode 1)
-    (button-mode 1))
+  (when submit-emacs-patch-display-help
+    (switch-to-buffer "*Patch Help*")
+    (let ((inhibit-read-only t))
+      (erase-buffer)
+      (insert "Thank you for considering submitting a patch to the Emacs project.\n\n"
+              "Please describe what the patch fixes (or, if it's a new feature, what it\n"
+              "implements) in the mail buffer below.  When done, use the "
+              (substitute-command-keys "\\<message-mode-map>\\[message-send-and-exit] command\n")
+              "to send the patch as an email to the Emacs issue tracker.\n\n"
+              "If this is the first time you're submitting an Emacs patch, please\n"
+              "read the ")
+      (insert-text-button
+       "CONTRIBUTE"
+       'action (lambda (_)
+                 (view-buffer
+                  (find-file-noselect
+                   (expand-file-name "CONTRIBUTE" installation-directory)))))
+      (insert " file first.\n")
+      (goto-char (point-min))
+      (view-mode 1)
+      (button-mode 1)))
   (compose-mail-other-window report-emacs-bug-address subject)
   (message-goto-body)
   (insert "\n\n\n")
-- 
2.41.0