Subject: 27.0.50; message-mode hard-codes key bindings in docstring

From: "Basil L. Contovounesios" <[email-masked]>
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