unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Basil L. Contovounesios" <contovob@tcd.ie>
To: <31388@debbugs.gnu.org>
Cc: Lars Ingebrigtsen <larsi@gnus.org>
Subject: bug#31388: 27.0.50; message-mode hard-codes key bindings in docstring
Date: Tue, 08 May 2018 20:11:58 +0100	[thread overview]
Message-ID: <87wowe55dt.fsf@tcd.ie> (raw)
In-Reply-To: <874lji6k7h.fsf@tcd.ie> (Basil L. Contovounesios's message of "Tue, 08 May 2018 20:06:26 +0100")

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-Do-not-hard-code-message-mode-keys-in-docstring.patch --]
[-- Type: text/x-diff, Size: 6414 bytes --]

From 0d0afd160b16decb77a9358a49efab5fdf307ba6 Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <contovob@tcd.ie>
Date: Mon, 7 May 2018 16:29:19 +0100
Subject: [PATCH] Do not hard-code message-mode keys in docstring

* lisp/gnus/message.el (message-mode): Replace hard-coded bindings
with \[command] sequences in docstring.
---
 lisp/gnus/message.el | 101 ++++++++++++++++++++++++++++---------------
 1 file changed, 65 insertions(+), 36 deletions(-)

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 867c3d271b..c407fb0a6a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -2893,42 +2893,71 @@ 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>
+\\[message-send]	 `message-send' (send the message)
+\\[message-send-and-exit]	 `message-send-and-exit'
+\\[message-dont-send]	 Postpone sending the message
+\\[message-kill-buffer]	 Kill the message
+Commands for moving to a header field, creating it as required:
+	 \\[message-goto-to]	Move to To
+	 \\[message-goto-subject]	Move to Subject
+	 \\[message-goto-cc]	Move to Cc
+	 \\[message-goto-bcc]	Move to Bcc
+	 \\[message-goto-fcc]	Move to Fcc
+	 \\[message-goto-reply-to]	Move to Reply-To
+	 \\[message-goto-summary]	Move to Summary
+	 \\[message-goto-newsgroups]	Move to Newsgroups
+	 \\[message-goto-keywords]	Move to Keywords
+	 \\[message-goto-distribution]	Move to Distribution
+	 \\[message-goto-from]	Move to From (\"Originator\")
+	 \\[message-goto-followup-to]	Move to Followup-To
+	 \\[message-goto-mail-followup-to]	Move to Mail-Followup-To
+	 \\[message-insert-expires]	Move to Expires
+         \\[message-insert-or-toggle-importance]\
+	Cycle through Importance values
+	 \\[message-change-subject]\
+	Change subject and append \"(was: <Old Subject>)\"
+	 \\[message-cross-post-followup-to]\
+	Crosspost with Followup-To header and note in body
+	 \\[message-reduce-to-to-cc]\
+	Replace To header with contents of Cc or Bcc
+	 \\[message-add-archive-header]\
+	Insert X-No-Archive header and note in body
+\\[message-insert-to]\
+	 `message-insert-to' (add To header to a news followup)
+\\[message-to-list-only]\
+	 `message-to-list-only' (remove all but list address in To/Cc)
+\\[message-insert-newsgroups]\
+	 `message-insert-newsgroups' (add Newsgroup header to a news reply)
+\\[message-goto-body]\
+	 `message-goto-body' (move to beginning of message text)
+\\[message-goto-signature]\
+	 `message-goto-signature' (move to beginning of the signature)
+\\[message-insert-signature]\
+	 `message-insert-signature' (insert `message-signature-file' file)
+\\[message-yank-original]\
+	 `message-yank-original' (insert current message, if any)
+\\[message-fill-yanked-message]\
+	 `message-fill-yanked-message' (fill what was yanked)
+\\[message-elide-region]\
+	 `message-elide-region' (elide text between point and mark)
+\\[message-delete-not-region]\
+	 `message-delete-not-region' (remove text outside the region)
+\\[message-kill-to-signature]\
+	 `message-kill-to-signature' (kill text up to the signature)
+\\[message-caesar-buffer-body]\
+	 `message-caesar-buffer-body' (rot13 the message body)
+\\[mml-attach-file]	 `mml-attach-file' (attach a file as MIME)
+\\[message-insert-or-toggle-importance]\
+	 `message-insert-or-toggle-importance'  (insert or cycle importance)
+\\[message-insert-disposition-notification-to]\
+	 `message-insert-disposition-notification-to'  (request receipt)
+\\[message-mark-inserted-region]\
+	 `message-mark-inserted-region' (mark region with enclosing tags)
+\\[message-mark-insert-file]\
+	 `message-mark-insert-file' (insert file marked with enclosing tags)
+\\[message-newline-and-reformat]\
+	 `message-newline-and-reformat' (break line and reformat)"
   (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


[-- Attachment #2: Type: text/plain, Size: 468 bytes --]


"Basil L. Contovounesios" <contovob@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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0001-Do-not-hard-code-message-mode-keys-in-docstring.patch --]
[-- Type: text/x-diff, Size: 3399 bytes --]

From e1b28796dc2c6b6828d73740dd98f4fd83771caa Mon Sep 17 00:00:00 2001
From: "Basil L. Contovounesios" <contovob@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


[-- Attachment #4: Type: text/plain, Size: 11 bytes --]


-- 
Basil

  reply	other threads:[~2018-05-08 19:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-08 19:06 bug#31388: 27.0.50; message-mode hard-codes key bindings in docstring Basil L. Contovounesios
2018-05-08 19:11 ` Basil L. Contovounesios [this message]
2019-05-13 21:06   ` Lars Ingebrigtsen
2019-05-13 23:05     ` Basil L. Contovounesios

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=87wowe55dt.fsf@tcd.ie \
    --to=contovob@tcd.ie \
    --cc=31388@debbugs.gnu.org \
    --cc=larsi@gnus.org \
    /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).