Subject: [PATCH] Have submit-emacs-patch prompt for patch file before subject

From: Philip Kaludercic <[email-masked]>
Date: Thu, 14 Apr 2022 10:16:11 +0000

Tags: patch

When sending patches using submit-emacs-patch, I usually want to reuse
the commit title for the message subject.  As a minor convenience, this
can be guessed when the patch file is prompted before the subject,
allowing for a default value to be provided by extracting the "Subject"
header from the patch file.

In GNU Emacs 29.0.50 (build 4, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
 of 2022-04-10 built on viero
Repository revision: 0023cfdc4e6d348519198cf75553d1afad0ed153
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Guix System

Configured using:
 'configure
 PKG_CONFIG_PATH=/home/philip/.guix-profile/lib/pkgconfig:/home/philip/.guix-profile/share/pkgconfig'

>From 5a0509166c184178f65506615db225eac9426e41 Mon Sep 17 00:00:00 2001
From: Philip Kaludercic <[email-masked]>
Date: Thu, 14 Apr 2022 12:13:27 +0200
Subject: [PATCH] Have submit-emacs-patch prompt for patch file before subject

* emacsbug.el (submit-emacs-patch): Prompt for patch file and use that
  to guess the subject.
---
 lisp/mail/emacsbug.el | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 1bda609d10..3cc727e6cf 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -488,7 +488,14 @@ submit-emacs-patch
 Interactively, you will be prompted for SUBJECT and a patch FILE
 name (which will be attached to the mail).  You will end up in a
 Message buffer where you can explain more about the patch."
-  (interactive "sThis patch is about: \nfPatch file name: ")
+  (interactive
+   (let* ((file (read-file-name "Patch file name: "))
+          (guess (with-temp-buffer
+                   (insert-file-contents file)
+                   (mail-fetch-field "Subject"))))
+     (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)
-- 
2.34.0

-- 
	Philip Kaludercic