unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eshel Yaron via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: "Daniel Martín" <mardani29@yahoo.es>
Cc: Eli Zaretskii <eliz@gnu.org>, 65387@debbugs.gnu.org
Subject: bug#65387: [PATCH] New user option 'submit-emacs-patch-display-help'
Date: Sun, 20 Aug 2023 13:35:56 +0200	[thread overview]
Message-ID: <m1y1i66j4z.fsf@android-ac1a5c03321949f5.localdomain> (raw)
In-Reply-To: <m1il9ajap8.fsf@yahoo.es> ("Daniel Martín"'s message of "Sun, 20 Aug 2023 11:59:47 +0200")

[-- Attachment #1: Type: text/plain, Size: 483 bytes --]

Daniel Martín <mardani29@yahoo.es> writes:

> Instead of just a toggle, we could make the new option a tristate:
>
> - `nil`: Only displays the buffer to compose the email (what is proposed in
>   this bug report).
> - `help`: Displays instructions on how to send the patch (current
>   behavior).  
> - `patch`: Displays the patch that you want to submit in the split
>   window.

Good idea, thanks.  I've added something like that in the following
updated patch:



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: v2-0001-New-user-option-submit-emacs-patch-display-help.patch --]
[-- Type: text/x-patch, Size: 5529 bytes --]

From 10c943cbf340255d0577a03fe4b3d74af840a9e2 Mon Sep 17 00:00:00 2001
From: Eshel Yaron <me@eshelyaron.com>
Date: Sat, 19 Aug 2023 21:24:34 +0200
Subject: [PATCH v2] 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 |  9 +++++++
 etc/NEWS               |  7 ++++++
 lisp/mail/emacsbug.el  | 54 ++++++++++++++++++++++++++----------------
 3 files changed, 50 insertions(+), 20 deletions(-)

diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index d2e8ac3452a..042637ed8fc 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1336,6 +1336,15 @@ 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}.  If you set this
+option to @code{patch}, Emacs displays the patch you're about to
+submit instead of the instructions buffer.
+
 @node Contributing
 @section Contributing to Emacs Development
 @cindex contributing to Emacs
diff --git a/etc/NEWS b/etc/NEWS
index 6588299c532..5ea8a204522 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -99,6 +99,13 @@ 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.  If you set this option to 'patch', Emacs displays the patch
+you're about to submit instead of the instructions buffer.
+
 ---
 ** 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..b93aed47bac 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -50,6 +50,17 @@ 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
+  "Whether `submit-emacs-patch' displays help in another buffer.
+
+If nil, display only the message buffer without additional help.  If this is
+the symbol `patch', display the patch you are submitting in another buffer.
+Any other value says to display a buffer with instructions for submitting
+patches (this is the default for the sake of novice users)."
+  :type '(choice (const :tag "Do not display help" nil)
+		 (const :tag "Display instructions" t)
+		 (const :tag "Display patch" patch)))
+
 ;; User options end here.
 
 (defvar report-emacs-bug-orig-text nil
@@ -509,26 +520,29 @@ 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))
+  (pcase submit-emacs-patch-display-help
+    ('patch (find-file file))
+    ((pred (not null))
+     (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


  reply	other threads:[~2023-08-20 11:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-19 19:33 bug#65387: [PATCH] New user option 'submit-emacs-patch-display-help' Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-19 19:58 ` Eli Zaretskii
2023-08-19 20:56   ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20  6:07     ` Eli Zaretskii
2023-08-20  7:56       ` Visuwesh
2023-08-20  9:59       ` Daniel Martín via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-20 11:35         ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2023-08-20 16:37       ` Juri Linkov
2023-11-16  7:25         ` Juri Linkov
2023-12-15  1:12           ` Stefan Kangas
2023-09-06 17:47       ` Stefan Kangas
2023-09-06 18:31         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m1y1i66j4z.fsf@android-ac1a5c03321949f5.localdomain \
    --to=bug-gnu-emacs@gnu.org \
    --cc=65387@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=mardani29@yahoo.es \
    --cc=me@eshelyaron.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).