GNU bug report logs - #31388
27.0.50; message-mode hard-codes key bindings in docstring

Previous Next

Package: emacs;

Reported by: "Basil L. Contovounesios" <contovob <at> tcd.ie>

Date: Tue, 8 May 2018 19:07:02 UTC

Severity: minor

Tags: fixed, patch

Found in version 27.0.50

Done: "Basil L. Contovounesios" <contovob <at> tcd.ie>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31388 in the body.
You can then email your comments to 31388 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to larsi <at> gnus.org, bug-gnu-emacs <at> gnu.org:
bug#31388; Package emacs. (Tue, 08 May 2018 19:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Basil L. Contovounesios" <contovob <at> tcd.ie>:
New bug report received and forwarded. Copy sent to larsi <at> gnus.org, bug-gnu-emacs <at> gnu.org. (Tue, 08 May 2018 19:07:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; message-mode hard-codes key bindings in docstring
Date: Tue, 08 May 2018 20:06:26 +0100
The docstring of message-mode currently hard-codes the bindings provided
by message-mode-map.  For example:

1. emacs -Q
2. Evaluate:
   (with-eval-after-load 'message
     (define-key message-mode-map "\C-c\C-c" #'ignore))
3. C-x m
4. C-c ?

still reports "C-c C-c  ‘message-send-and-exit’".

Is this intentional?  I realise that this affords summary, custom
layout, and descriptions of the available bindings, but isn't it
confusing to report the wrong thing in the case that users customise
(or use packages which customise) their bindings?

One solution is to replace the hard-coded bindings with
\[command]-sequences; another to replace the whole listing with
\{message-mode-map}.  In both cases, the binding listed for
message-insert-or-toggle-importance will be C-c C-u instead of
C-c C-f C-i, due to the higher precedence of the former.  WDYT?

P.S. I have, over time, accumulated a set of 12 patches for message.el
     with refactors such as defining message-mode-map in a single
     (let ...)  calculation, replacing '-quotes with #'-quotes where
     applicable, removing calls to mapcar where the result is unused,
     adding tests, etc.  I also have a couple of minor and relevant
     questions to ask.  Would patches of this nature be welcome?  If so,
     should I send them here, submit a new bug report, or send mail to
     emacs-devel?

Thanks,

-- 
Basil




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31388; Package emacs. (Tue, 08 May 2018 19:13:01 GMT) Full text and rfc822 format available.

Message #8 received at 31388 <at> debbugs.gnu.org (full text, mbox):

From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
To: <31388 <at> debbugs.gnu.org>
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>
Subject: Re: bug#31388: 27.0.50;
 message-mode hard-codes key bindings in docstring
Date: Tue, 08 May 2018 20:11:58 +0100
[0001-Do-not-hard-code-message-mode-keys-in-docstring.patch (text/x-diff, attachment)]
[Message part 2 (text/plain, inline)]
"Basil L. Contovounesios" <contovob <at> tcd.ie> writes:

> One solution is to replace the hard-coded bindings with
> \[command]-sequences; another to replace the whole listing with
> \{message-mode-map}.  In both cases, the binding listed for
> message-insert-or-toggle-importance will be C-c C-u instead of
> C-c C-f C-i, due to the higher precedence of the former.  WDYT?

I attach a patch as an example of doing the former.
The latter would probably look as follows:

[0001-Do-not-hard-code-message-mode-keys-in-docstring.patch (text/x-diff, inline)]
From e1b28796dc2c6b6828d73740dd98f4fd83771caa Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
Date: Mon, 7 May 2018 16:42:41 +0100
Subject: [PATCH] Do not hard-code message-mode keys in docstring

* lisp/gnus/message.el (message-mode): Replace hard-coded bindings
in docstring with summary of message-mode-map.
---
 lisp/gnus/message.el | 39 +++------------------------------------
 1 file changed, 3 insertions(+), 36 deletions(-)

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 867c3d271b..a85925d94d 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2893,42 +2893,9 @@ message--syntax-propertize
 ;;;###autoload
 (define-derived-mode message-mode text-mode "Message"
   "Major mode for editing mail and news to be sent.
-Like Text Mode but with these additional commands:\\<message-mode-map>
-C-c C-s  `message-send' (send the message)  C-c C-c  `message-send-and-exit'
-C-c C-d  Postpone sending the message       C-c C-k  Kill the message
-C-c C-f  move to a header field (and create it if there isn't):
-	 C-c C-f C-t  move to To	C-c C-f C-s  move to Subject
-	 C-c C-f C-c  move to Cc	C-c C-f C-b  move to Bcc
-	 C-c C-f C-w  move to Fcc	C-c C-f C-r  move to Reply-To
-	 C-c C-f C-u  move to Summary	C-c C-f C-n  move to Newsgroups
-	 C-c C-f C-k  move to Keywords	C-c C-f C-d  move to Distribution
-	 C-c C-f C-o  move to From (\"Originator\")
-	 C-c C-f C-f  move to Followup-To
-	 C-c C-f C-m  move to Mail-Followup-To
-	 C-c C-f C-e  move to Expires
-	 C-c C-f C-i  cycle through Importance values
-	 C-c C-f s    change subject and append \"(was: <Old Subject>)\"
-	 C-c C-f x    crossposting with FollowUp-To header and note in body
-	 C-c C-f t    replace To: header with contents of Cc: or Bcc:
-	 C-c C-f a    Insert X-No-Archive: header and a note in the body
-C-c C-t  `message-insert-to' (add a To header to a news followup)
-C-c C-l  `message-to-list-only' (removes all but list address in to/cc)
-C-c C-n  `message-insert-newsgroups' (add a Newsgroup header to a news reply)
-C-c C-b  `message-goto-body' (move to beginning of message text).
-C-c C-i  `message-goto-signature' (move to the beginning of the signature).
-C-c C-w  `message-insert-signature' (insert `message-signature-file' file).
-C-c C-y  `message-yank-original' (insert current message, if any).
-C-c C-q  `message-fill-yanked-message' (fill what was yanked).
-C-c C-e  `message-elide-region' (elide the text between point and mark).
-C-c C-v  `message-delete-not-region' (remove the text outside the region).
-C-c C-z  `message-kill-to-signature' (kill the text up to the signature).
-C-c C-r  `message-caesar-buffer-body' (rot13 the message body).
-C-c C-a  `mml-attach-file' (attach a file as MIME).
-C-c C-u  `message-insert-or-toggle-importance'  (insert or cycle importance).
-C-c M-n  `message-insert-disposition-notification-to'  (request receipt).
-C-c M-m  `message-mark-inserted-region' (mark region with enclosing tags).
-C-c M-f  `message-mark-insert-file' (insert file marked with enclosing tags).
-M-RET    `message-newline-and-reformat' (break the line and reformat)."
+Like `text-mode', but with these additional commands:
+
+\\{message-mode-map}"
   (set (make-local-variable 'message-reply-buffer) nil)
   (set (make-local-variable 'message-inserted-headers) nil)
   (set (make-local-variable 'message-send-actions) nil)
-- 
2.17.0

[Message part 4 (text/plain, inline)]
-- 
Basil

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31388; Package emacs. (Mon, 13 May 2019 21:07:02 GMT) Full text and rfc822 format available.

Message #11 received at 31388 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: <31388 <at> debbugs.gnu.org>
Subject: Re: bug#31388: 27.0.50;
 message-mode hard-codes key bindings in docstring
Date: Mon, 13 May 2019 17:06:11 -0400
"Basil L. Contovounesios" <contovob <at> tcd.ie> writes:

> I attach a patch as an example of doing the former.
> The latter would probably look as follows:
>
>>From e1b28796dc2c6b6828d73740dd98f4fd83771caa Mon Sep 17 00:00:00 2001
> From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
> Date: Mon, 7 May 2018 16:42:41 +0100
> Subject: [PATCH] Do not hard-code message-mode keys in docstring
>
> * lisp/gnus/message.el (message-mode): Replace hard-coded bindings
> in docstring with summary of message-mode-map.

Looks OK to me.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Added tag(s) fixed. Request was from "Basil L. Contovounesios" <contovob <at> tcd.ie> to control <at> debbugs.gnu.org. (Mon, 13 May 2019 23:06:01 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 31388 <at> debbugs.gnu.org and "Basil L. Contovounesios" <contovob <at> tcd.ie> Request was from "Basil L. Contovounesios" <contovob <at> tcd.ie> to control <at> debbugs.gnu.org. (Mon, 13 May 2019 23:06:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31388; Package emacs. (Mon, 13 May 2019 23:06:02 GMT) Full text and rfc822 format available.

Message #18 received at 31388-done <at> debbugs.gnu.org (full text, mbox):

From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 31388-done <at> debbugs.gnu.org
Subject: Re: bug#31388: 27.0.50;
 message-mode hard-codes key bindings in docstring
Date: Tue, 14 May 2019 00:05:18 +0100
tags 31388 fixed
close 31388
quit

Lars Ingebrigtsen <larsi <at> gnus.org> writes:

>>>From e1b28796dc2c6b6828d73740dd98f4fd83771caa Mon Sep 17 00:00:00 2001
>> From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
>> Date: Mon, 7 May 2018 16:42:41 +0100
>> Subject: [PATCH] Do not hard-code message-mode keys in docstring
>>
>> * lisp/gnus/message.el (message-mode): Replace hard-coded bindings
>> in docstring with summary of message-mode-map.
>
> Looks OK to me.

Thanks, I pushed to master[1] and am therefore closing this report.

[1: 364d4e156d]: Do not hard-code message-mode keys in docstring
  2019-05-13 23:58:45 +0100
  https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=364d4e156d80bff711d000bdb2e0ac765726c953

-- 
Basil




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 11 Jun 2019 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 321 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.