Received: (at submit) by debbugs.gnu.org; 11 Nov 2025 12:22:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 11 07:22:19 2025 Received: from localhost ([127.0.0.1]:43670 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vInO6-0003ye-BL for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 07:22:19 -0500 Received: from lists.gnu.org ([2001:470:142::17]:58372) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudolf@HIDDEN>) id 1vInO1-0003yA-VF for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 07:22:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <rudolf@HIDDEN>) id 1vInNs-0007s7-FM for bug-gnu-emacs@HIDDEN; Tue, 11 Nov 2025 07:22:04 -0500 Received: from fout-b1-smtp.messagingengine.com ([202.12.124.144]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <rudolf@HIDDEN>) id 1vInNq-0001mP-8W for bug-gnu-emacs@HIDDEN; Tue, 11 Nov 2025 07:22:04 -0500 Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51]) by mailfout.stl.internal (Postfix) with ESMTP id 9485A1D00125 for <bug-gnu-emacs@HIDDEN>; Tue, 11 Nov 2025 07:22:00 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-11.internal (MEProxy); Tue, 11 Nov 2025 07:22:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamkovic.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:subject:subject:to:to; s=fm1; t=1762863720; x=1762950120; bh=dJUVMpx36IxURsk4Az9Q7lK1ItYCpFbm YJpKVM0nMhs=; b=Bla1QAjBdwz9c5LLdZ4KlfFJXS4CrqTGnKtRLmtK/Jvifjxs DCeaJJfoERpBjeeoEx7ixT0BtL5F83lhXkFi0m7fYBczDdNZEAyY7560Er1DuRz4 72NbAsQd/DiLMwd2YsYbSsl7xhrTAXPJ+kpDg1SGZoTlAvrr/th7HEREqxTuC4iy GesBGDz6sl2zZNU6CacZu/usqBjlQehnhgUS6bm7Q1RjCkC/7yXJ4EECb0WuJPEa kGIZ0Rj16Av+3HoUOGXIb12WPWLdir5OvgPT7xCZ4zQPnsojcqa0hIcGC/kOHh+U ++52PbfFkJttM7myDnWSrN64rTRr+uuPy9YS3Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1762863720; x= 1762950120; bh=dJUVMpx36IxURsk4Az9Q7lK1ItYCpFbmYJpKVM0nMhs=; b=p VUc29apKQuV0InnZU9758U+XB+jhTOetW5cgkh5ct+qNWWKkNUVH1kYocF/u2KWN sQfP76foRCLb5t1U5S3p8vM4+IP3xNEN71sl7+4NThHP+1BsCdUNdY9SfRPW+duE C7r8tAI8C+ncu/X8c/I0kSCzQi8HjYF/F1GZ6JxYy9nNtBB1WCrfSKPxd5h99uvF AcAfVeMKzD50p1P8rBri7WYuz4MdfBnS8vrGZzxU1dGlAhJYEfpZVEIZHG6BJxuV +713oGdTiVKNBFPVtJ8zFriM8WZC/PSmMEF+dvTJQVOEdOiKDqHz6dri0B1MRES/ JwrZX3CfFmru9Ql9JdMLA== X-ME-Sender: <xms:aCoTaZ7kcFCdFA3afLsZOVDxfxh4_SrZ3KYwpiHpgbZazvv_iPuahw> <xme:aCoTaczcvOUjtBPZKwNlp54AMfS2sg7b611AA3It3JjJXu4XMaENqCWSPM1_lVAiQ gHinN60zOPvEGLytgriLTXD93ZFLqrhYKiW0LW4HIJSfz7PWYN6IA> X-ME-Received: <xmr:aCoTabgXivwUnxYtvFhBS98fgxdVGPadD-jCIrSYbMrH7MVvDmZvUXS1yxqG6vTV1CR45j_B_sPDxZvErD_HUEypoXj69Vk> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvtdduudekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkgggtsehmtderredttdejne cuhfhrohhmpeftuhguohhlfhcutegurghmkhhovhhitgcuoehruhguohhlfhesrggurghm khhovhhitgdrohhrgheqnecuggftrfgrthhtvghrnhepffekfeeuudeftdekveejjeevte ffudetjeetgedtffduuedvjeekvdejueeiveffnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomheprhhuugholhhfsegruggrmhhkohhvihgtrdhorh hgpdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegs uhhgqdhgnhhuqdgvmhgrtghssehgnhhurdhorhhg X-ME-Proxy: <xmx:aCoTae99W6yuQFnsQ82HIIZL2nIZdRzaJ46-r7K2kNkm-oBUkrIORQ> <xmx:aCoTaQvEj2x6g0NBQGkhjOHmOJFA6wMrbNcZhtSL5UuVoib7maiSAQ> <xmx:aCoTadbb8Q_o4Kmx6tSpBi5kCqX4Zw5cXv681pFM06CYMfULibwAwQ> <xmx:aCoTaYrT6fOjZQjWLEk7ZvHGGdOBLryrJmOlrj7IFlgKTCWNQPym6Q> <xmx:aCoTaSqoyQHl2fKgZLCwB4DCCpzjLQEJPqxtn75ldUinL2PU3Qh_lhlY> Feedback-ID: i88214938:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for <bug-gnu-emacs@HIDDEN>; Tue, 11 Nov 2025 07:21:59 -0500 (EST) From: =?utf-8?Q?Rudolf_Adamkovi=C4=8D?= <rudolf@HIDDEN> To: bug-gnu-emacs@HIDDEN Subject: [PATCH] Add current subject to future history in `message-change-subject' X-Debbugs-Cc: Lars Magne Ingebrigtsen <larsi@HIDDEN> Date: Tue, 11 Nov 2025 13:21:57 +0100 Message-ID: <m28qgcrc7u.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=202.12.124.144; envelope-from=rudolf@HIDDEN; helo=fout-b1-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.3 (/) --=-=-= Content-Type: text/plain Tags: patch Fellow Emacs hackers, When amending the subject header with `message-change-subject', the current value of the header is not available in the "future history", which is impractical if all one needs is to fix a word, or add a missing prefix or suffix. The attached patch improves the situation by putting the current subject into the future history. Rudy --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Add-current-subject-to-future-history-in-message-cha.patch From 2ce917c57eec7453b52be540f0c847ff2922af96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <rudolf@HIDDEN> Date: Tue, 11 Nov 2025 13:07:18 +0100 Subject: [PATCH] Add current subject to future history in `message-change-subject' * etc/NEWS (minutes): Announce the feature. * lisp/gnus/message.el (message-change-subject): Read the new subject with the old subject in the "future history". --- etc/NEWS | 3 ++ lisp/gnus/message.el | 67 ++++++++++++++++++++++++-------------------- 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 7168cc5bb92..c773f3a6d01 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1740,6 +1740,9 @@ honored if it was already set. +++ *** 'message-strip-subject-re' now matches case-insensitively. +--- +*** 'message-change-subject' inserts current subject to "future history". + ** Sendmail --- diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 18a3e0a9fde..0f90a098a3f 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2400,36 +2400,43 @@ message-strip-subject-trailing-was ;;; Suggested by Jonas Steverud @ www.dtek.chalmers.se/~d4jonas/ -(defun message-change-subject (new-subject) - "Ask for NEW-SUBJECT header, append (was: <Old Subject>)." - (interactive - (list - (read-from-minibuffer "New subject: ")) - message-mode) - (cond ((and (not (or (null new-subject) ; new subject not empty - (zerop (string-width new-subject)) - (string-match "^[ \t]*$" new-subject)))) - (save-excursion - (let ((old-subject - (save-restriction - (message-narrow-to-headers) - (message-fetch-field "Subject")))) - (cond ((not old-subject) - (error "No current subject")) - ((not (string-match - (concat "^[ \t]*" - (regexp-quote new-subject) - "[ \t]*$") - old-subject)) ; yes, it really is a new subject - ;; delete eventual Re: prefix - (setq old-subject - (message-strip-subject-re old-subject)) - (message-goto-subject) - (delete-line) - (insert (concat "Subject: " - new-subject - " (was: " - old-subject ")\n"))))))))) +(defun message-change-subject (&optional new-subject) + "Change subject to NEW-SUBJECT with \"(was: <Old Subject>)\" suffix. +If NEW-SUBJECT is nil, the user is prompted for the new subject, with +the old subject in \"future history\"." + (interactive nil message-mode) + (let ((old-subject (save-restriction + (message-narrow-to-headers) + (message-fetch-field "Subject")))) + (if (not old-subject) + (error "No current subject") + (let ((new-subject (or new-subject + (read-from-minibuffer "New subject: " + nil nil nil nil + old-subject)))) + (cond + ;; Abort on empty subject. + ((or (null new-subject) + (zerop (string-width new-subject)) + (string-match "^[ \t]*$" new-subject)) + (message "Subject empty")) + ;; Abort on unchanged subject. + ((string-match + (concat "^[ \t]*" + (regexp-quote new-subject) + "[ \t]*$") + old-subject) + (message "Subject unchanged")) + ;; Otherwise, proceed. + (t + (save-excursion + (message-goto-subject) + (delete-line) + (insert (concat "Subject: " + new-subject + " (was: " + (message-strip-subject-re old-subject) + ")\n"))))))))) (defun message-mark-inserted-region (beg end &optional verbatim) "Mark some region in the current article with enclosing tags. -- 2.39.5 (Apple Git-154) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 "It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures." --- Alan Perlis Rudolf Adamkovi=C4=8D <rudolf@HIDDEN> [he/him] http://adamkovic.org --=-=-=--
Rudolf Adamkovič <rudolf@HIDDEN>:larsi@HIDDEN, bug-gnu-emacs@HIDDEN.
Full text available.larsi@HIDDEN, bug-gnu-emacs@HIDDEN:bug#79815; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.