emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 4a3ba85 2/3: Use substitute-command-keys for literal key sequence


From: Stefan Kangas
Subject: master 4a3ba85 2/3: Use substitute-command-keys for literal key sequences
Date: Mon, 22 Nov 2021 06:04:46 -0500 (EST)

branch: master
commit 4a3ba8528bc8b8f083251cbebe46e5978e9ec816
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Use substitute-command-keys for literal key sequences
    
    * lisp/abbrev.el (expand-region-abbrevs):
    * lisp/calc/calc-graph.el (calc-graph-show-dumb):
    * lisp/calc/calc-help.el (calc-help-for-help):
    * lisp/calc/calc-mode.el (calc-auto-why):
    * lisp/calc/calc.el (calc-do):
    * lisp/calculator.el (calculator-mode):
    * lisp/dired-aux.el (dired-create-files)
    (dired-do-create-files-regexp, dired-create-files-non-directory):
    * lisp/dired-x.el (dired-virtual):
    * lisp/dired.el (dired-mark-region, dired-unmark-all-files):
    * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
    * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
    * lisp/epa-ks.el (epa-ks--display-keys):
    * lisp/erc/erc.el (erc-toggle-debug-irc-protocol):
    * lisp/files.el (save-some-buffers):
    * lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap)
    (gnus-dired-print):
    * lisp/gnus/gnus-group.el (gnus-keep-same-level):
    * lisp/gnus/gnus-score.el (gnus-score-find-trace):
    * lisp/gnus/gnus.el (to-list):
    * lisp/gnus/message.el (message--send-mail-maybe-partially):
    * lisp/mail/supercite.el (sc-set-variable):
    * lisp/minibuffer.el (minibuffer-inactive-mode):
    * lisp/progmodes/etags.el (select-tags-table):
    * lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
    (idlwave-shell-char-mode-loop):
    * lisp/replace.el (query-replace-help):
    * lisp/simple.el (set-variable):
    * lisp/subr.el (read-char-from-minibuffer):
    * lisp/textmodes/ispell.el (ispell-help, ispell-message):
    * lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels):
    * lisp/textmodes/reftex-vars.el
    (reftex-toc-include-file-boundaries)
    (reftex-toc-include-labels, reftex-toc-include-index-entries)
    (reftex-toc-include-context, reftex-toc-follow-mode)
    (reftex-index-include-context, reftex-index-follow-mode)
    (reftex-enable-partial-scans)
    (reftex-auto-update-selection-buffers)
    (reftex-highlight-selection):
    * lisp/time.el (display-time-update):
    * lisp/vc/ediff-help.el (ediff-help-for-quick-help):
    * lisp/vc/ediff-init.el (ediff-keep-variants):
    * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map)
    (ediff-patch-file-internal):
    * lisp/windmove.el (windmove-delete-default-keybindings): Use
    'substitute-command-keys' for literal key sequences.
    
    * lisp/userlock.el (userlock--fontify-key): Remove function.
    (ask-user-about-lock, ask-user-about-lock-help)
    (ask-user-about-supersession-threat)
    (ask-user-about-supersession-help): Use 'substitute-command-keys' for
    literal key sequences.
    
    * lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys'
    for command.
---
 lisp/abbrev.el                  |  2 +-
 lisp/calc/calc-graph.el         |  3 +-
 lisp/calc/calc-help.el          | 28 +++++++--------
 lisp/calc/calc-misc.el          | 42 +++++++++++-----------
 lisp/calc/calc-mode.el          |  9 +++--
 lisp/calc/calc.el               |  3 +-
 lisp/calculator.el              | 42 +++++++++++-----------
 lisp/dired-aux.el               | 33 +++++++++--------
 lisp/dired-x.el                 |  2 +-
 lisp/dired.el                   | 12 +++----
 lisp/emacs-lisp/map-ynp.el      | 12 +++----
 lisp/emacs-lisp/re-builder.el   |  3 +-
 lisp/epa-ks.el                  |  3 +-
 lisp/erc/erc.el                 |  3 +-
 lisp/files.el                   | 12 +++----
 lisp/gnus/gnus-dired.el         | 10 +++---
 lisp/gnus/gnus-group.el         |  2 +-
 lisp/gnus/gnus-score.el         | 15 ++++----
 lisp/gnus/gnus.el               |  4 +--
 lisp/gnus/message.el            | 14 ++++----
 lisp/ibuffer.el                 |  4 ++-
 lisp/mail/supercite.el          |  2 +-
 lisp/minibuffer.el              |  2 +-
 lisp/progmodes/etags.el         |  3 +-
 lisp/progmodes/idlw-shell.el    |  7 ++--
 lisp/replace.el                 | 26 +++++++-------
 lisp/simple.el                  |  2 +-
 lisp/subr.el                    |  2 +-
 lisp/textmodes/ispell.el        | 80 +++++++++++++++++++++--------------------
 lisp/textmodes/reftex-global.el |  6 ++--
 lisp/textmodes/reftex-vars.el   | 23 ++++++------
 lisp/time.el                    |  2 +-
 lisp/userlock.el                | 64 ++++++++++++---------------------
 lisp/vc/ediff-help.el           |  4 ++-
 lisp/vc/ediff-init.el           |  4 +--
 lisp/vc/ediff-ptch.el           | 15 ++++----
 lisp/windmove.el                |  2 +-
 37 files changed, 257 insertions(+), 245 deletions(-)

diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index d3daf63..386aff1 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -403,7 +403,7 @@ argument."
 
 (defun expand-region-abbrevs (start end &optional noquery)
   "For abbrev occurrence in the region, offer to expand it.
-The user is asked to type `y' or `n' for each occurrence.
+The user is asked to type \\`y' or \\`n' for each occurrence.
 A prefix argument means don't query; expand all abbrevs."
   (interactive "r\nP")
   (save-excursion
diff --git a/lisp/calc/calc-graph.el b/lisp/calc/calc-graph.el
index 7891e35..b6ee124 100644
--- a/lisp/calc/calc-graph.el
+++ b/lisp/calc/calc-graph.el
@@ -969,7 +969,8 @@ This \"dumb\" driver will be present in Gnuplot 3.0."
          (define-key calc-dumb-map "\C-c\C-c" 'exit-recursive-edit)))
     (use-local-map calc-dumb-map)
     (setq truncate-lines t)
-    (message "Type `q' or `C-c C-c' to return to Calc")
+    (message (substitute-command-keys
+              "Type \\`q' or \\`C-c C-c' to return to Calc"))
     (recursive-edit)
     (bury-buffer "*Gnuplot Trail*")))
 
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index 8481d0b..2633d64 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -50,25 +50,25 @@
       (beep))))
 
 (defun calc-help-for-help (arg)
-  "You have typed `h', the Calc help character.  Type a Help option:
+  "You have typed \\`h', the Calc help character.  Type a Help option:
 
-B  calc-describe-bindings.  Display a table of all key bindings.
-H  calc-full-help.  Display all `?' key messages at once.
+\\`B'  calc-describe-bindings.  Display a table of all key bindings.
+\\`H'  calc-full-help.  Display all \\`?' key messages at once.
 
-I  calc-info.  Read the Calc manual using the Info system.
-T  calc-tutorial.  Read the Calc tutorial using the Info system.
-S  calc-info-summary.  Read the Calc summary using the Info system.
+\\`I'  calc-info.  Read the Calc manual using the Info system.
+\\`T'  calc-tutorial.  Read the Calc tutorial using the Info system.
+\\`S'  calc-info-summary.  Read the Calc summary using the Info system.
 
-C  calc-describe-key-briefly.  Look up the command name for a given key.
-K  calc-describe-key.  Look up a key's documentation in the manual.
-F  calc-describe-function.  Look up a function's documentation in the manual.
-V  calc-describe-variable.  Look up a variable's documentation in the manual.
+\\`C'  calc-describe-key-briefly.  Look up the command name for a given key.
+\\`K'  calc-describe-key.  Look up a key's documentation in the manual.
+\\`F'  calc-describe-function.  Look up a function's documentation in the 
manual.
+\\`V'  calc-describe-variable.  Look up a variable's documentation in the 
manual.
 
-N  calc-view-news.  Display Calc history of changes.
+\\`N'  calc-view-news.  Display Calc history of changes.
 
-C-c  Describe conditions for copying Calc.
-C-d  Describe how you can get a new copy of Calc or report a bug.
-C-w  Describe how there is no warranty for Calc."
+\\`C-c'  Describe conditions for copying Calc.
+\\`C-d'  Describe how you can get a new copy of Calc or report a bug.
+\\`C-w'  Describe how there is no warranty for Calc."
   (interactive "P")
   (if calc-dispatch-help
       (let (key)
diff --git a/lisp/calc/calc-misc.el b/lisp/calc/calc-misc.el
index c8394e8..1c4438e 100644
--- a/lisp/calc/calc-misc.el
+++ b/lisp/calc/calc-misc.el
@@ -216,26 +216,28 @@ Calc user interface as before (either C-x * C or C-x * K; 
initially C-x * C)."
 (defun calc-help ()
   (interactive)
   (let ((msgs
-        '("Press `h' for complete help; press `?' repeatedly for a summary"
-          "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
-          "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
-          "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
-          "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi"
-          "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; Keep-args"
-          "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
-          "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
-          "Other keys: \\=' (alg-entry), = (eval), \\=` (edit); M-RET 
(last-args)"
-          "Other keys: SPC/RET (enter/dup), LFD (over); < > (scroll horiz)"
-          "Other keys: DEL (drop), M-DEL (drop-above); { } (scroll vert)"
-          "Other keys: TAB (swap/roll-dn), M-TAB (roll-up)"
-          "Other keys: [ , ; ] (vector), ( , ) (complex), ( ; ) (polar)"
-          "Prefix keys: Algebra, Binary/business, Convert, Display"
-          "Prefix keys: Functions, Graphics, Help, J (select)"
-          "Prefix keys: Kombinatorics/statistics, Modes, Store/recall"
-          "Prefix keys: Trail/time, Units/statistics, Vector/matrix"
-          "Prefix keys: Z (user), SHIFT + Z (define)"
-          "Prefix keys: prefix + ? gives further help for that prefix"
-           "  Calc by Dave Gillespie, daveg@synaptics.com")))
+         ;; FIXME: Change these to `substitute-command-keys' syntax.
+         (mapcar #'substitute-command-keys
+          '("Press \\`h' for complete help; press \\`?' repeatedly for a 
summary"
+            "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit"
+            "Letter keys: SHIFT + Undo, reDo; Inverse, Hyperbolic, Option"
+            "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB"
+            "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi"
+            "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro; 
Keep-args"
+            "Other keys: +, -, *, /, ^, \\ (int div), : (frac div)"
+            "Other keys: & (1/x), | (concat), % (modulo), ! (factorial)"
+            "Other keys: \\=' (alg-entry), = (eval), \\=` (edit); M-RET 
(last-args)"
+            "Other keys: \\`SPC'/\\`RET' (enter/dup), LFD (over); < > (scroll 
horiz)"
+            "Other keys: \\`DEL' (drop), \\`M-DEL' (drop-above); { } (scroll 
vert)"
+            "Other keys: \\`TAB' (swap/roll-dn), \\`M-TAB' (roll-up)"
+            "Other keys: [ , ; ] (vector), ( , ) (complex), ( ; ) (polar)"
+            "Prefix keys: Algebra, Binary/business, Convert, Display"
+            "Prefix keys: Functions, Graphics, Help, J (select)"
+            "Prefix keys: Kombinatorics/statistics, Modes, Store/recall"
+            "Prefix keys: Trail/time, Units/statistics, Vector/matrix"
+            "Prefix keys: Z (user), SHIFT + Z (define)"
+            "Prefix keys: prefix + ? gives further help for that prefix"
+            "  Calc by Dave Gillespie, daveg@synaptics.com"))))
     (if calc-full-help-flag
        msgs
       (if (or calc-inverse-flag calc-hyperbolic-flag)
diff --git a/lisp/calc/calc-mode.el b/lisp/calc/calc-mode.el
index 68c8b90..211b8e6 100644
--- a/lisp/calc/calc-mode.el
+++ b/lisp/calc/calc-mode.el
@@ -109,11 +109,14 @@
      (setq n (and (not (eq calc-auto-why t)) (if calc-auto-why t 1))))
    (calc-change-mode 'calc-auto-why n nil)
    (cond ((null n)
-         (message "User must press `w' to explain unsimplified results"))
+         (message (substitute-command-keys
+                    "User must press \\`w' to explain unsimplified results")))
         ((eq n t)
-         (message "Automatically doing `w' to explain unsimplified results"))
+          (message (substitute-command-keys
+                    "Automatically doing \\`w' to explain unsimplified 
results")))
         (t
-         (message "Automatically doing `w' only for unusual messages")))))
+          (message (substitute-command-keys
+                    "Automatically doing \\`w' only for unusual messages"))))))
 
 (defun calc-group-digits (n)
   (interactive "P")
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index bd4ec4f..9774ddf 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -1621,7 +1621,8 @@ See calc-keypad for details."
                    (stringp (nth 1 err))
                    (string-match "max-specpdl-size\\|max-lisp-eval-depth"
                                  (nth 1 err)))
-              (error "Computation got stuck or ran too long.  Type `M' to 
increase the limit")
+               (error (substitute-command-keys
+                       "Computation got stuck or ran too long.  Type \\`M' to 
increase the limit"))
             (setq calc-aborted-prefix nil)
             (signal (car err) (cdr err)))))
       (when calc-aborted-prefix
diff --git a/lisp/calculator.el b/lisp/calculator.el
index 6bcea2d..0c255c0 100644
--- a/lisp/calculator.el
+++ b/lisp/calculator.el
@@ -593,15 +593,15 @@ except when using a non-decimal radix mode for input (in 
this case `e'
 will be the hexadecimal digit).
 
 Here are the editing keys:
-* `RET' `='      evaluate the current expression
-* `C-insert'     copy the whole current expression to the `kill-ring'
-* `C-return'     evaluate, save result the `kill-ring' and exit
-* `insert'       paste a number if the one was copied (normally)
-* `delete' `C-d' clear last argument or whole expression (hit twice)
-* `backspace'    delete a digit or a previous expression element
-* `h' `?'        pop-up a quick reference help
-* `ESC' `q'      exit (`ESC' can be used if `calculator-bind-escape' is
-                 non-nil, otherwise use three consecutive `ESC's)
+* \\`RET' \\`='          evaluate the current expression
+* \\`C-<insert>'     copy the whole current expression to the `kill-ring'
+* \\`C-<return>'     evaluate, save result the `kill-ring' and exit
+* \\`<insert>'       paste a number if the one was copied (normally)
+* \\`<delete>' \\`C-d'   clear last argument or whole expression (hit twice)
+* \\`<backspace>'    delete a digit or a previous expression element
+* \\`h' \\`?'            pop-up a quick reference help
+* \\`ESC' \\`q'          exit (\\`ESC' can be used if `calculator-bind-escape' 
is
+                 non-nil, otherwise use three consecutive \\`ESC's)
 
 These operators are pre-defined:
 * `+' `-' `*' `/' the common binary operators
@@ -623,10 +623,10 @@ argument.
 hex/oct/bin modes can be set for input and for display separately.
 Another toggle-able mode is for using degrees instead of radians for
 trigonometric functions.
-The keys to switch modes are (both `H' and `X' are for hex):
-* `D'             switch to all-decimal mode, or toggle degrees/radians
-* `B' `O' `H' `X' binary/octal/hexadecimal modes for input & display
-* `i' `o'         followed by one of `D' `B' `O' `H' `X' (case
+The keys to switch modes are (both \\`H' and \\`X' are for hex):
+* \\`D'             switch to all-decimal mode, or toggle degrees/radians
+* \\`B' \\`O' \\`H' \\`X'       binary/octal/hexadecimal modes for input & 
display
+* \\`i' \\`o'         followed by one of \\`D' \\`B' \\`O' \\`H' \\`X' (case
                   insensitive) sets only the input or display radix mode
 The prompt indicates the current modes:
 * \"==\": decimal mode (using radians);
@@ -649,17 +649,17 @@ collected data.  It is possible to navigate in this list, 
and if the
 value shown is the current one on the list, an indication is displayed
 as \"[N]\" if this is the last number and there are N numbers, or
 \"[M/N]\" if the M-th value is shown.
-* `SPC'            evaluate the current value as usual, but also adds
+* \\`SPC'            evaluate the current value as usual, but also adds
                    the result to the list of saved values
-* `l' `v'          computes total / average of saved values
-* `up' `C-p'       browse to the previous value in the list
-* `down' `C-n'     browse to the next value in the list
-* `delete' `C-d'   remove current value from the list (if it is on it)
-* `C-delete' `C-c' delete the whole list
+* \\`l' \\`v'            computes total / average of saved values
+* \\`<up>' \\`C-p'       browse to the previous value in the list
+* \\`<down>' \\`C-n'     browse to the next value in the list
+* \\`<delete>' \\`C-d'   remove current value from the list (if it is on it)
+* \\`C-<delete>' \\`C-c' delete the whole list
 
 Registers are variable-like place-holders for values:
-* `s' followed by a character attach the current value to that character
-* `g' followed by a character fetches the attached value
+* \\`s' followed by a character attach the current value to that character
+* \\`g' followed by a character fetches the attached value
 
 There are many variables that can be used to customize the calculator.
 Some interesting customization variables are:
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 92409db..588551a 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1989,11 +1989,12 @@ or with the current marker character if MARKER-CHAR is 
t."
           (let* ((overwrite (file-exists-p to))
                  (dired-overwrite-confirmed ; for dired-handle-overwrite
                   (and overwrite
-                       (let ((help-form (format-message "\
-Type SPC or `y' to overwrite file `%s',
-DEL or `n' to skip to next,
-ESC or `q' to not overwrite any of the remaining files,
-`!' to overwrite all remaining files with no more questions." to)))
+                       (let ((help-form (format-message
+                                         (substitute-command-keys "\
+Type \\`SPC' or \\`y' to overwrite file `%s',
+\\`DEL' or \\`n' to skip to next,
+\\`ESC' or \\`q' to not overwrite any of the remaining files,
+\\`!' to overwrite all remaining files with no more questions.") to)))
                          (dired-query 'overwrite-query
                                       "Overwrite `%s'?" to))))
                  ;; must determine if FROM is marked before file-creator
@@ -2486,11 +2487,12 @@ Also see `dired-do-revert-buffer'."
   ;; Optional arg MARKER-CHAR as in dired-create-files.
   (let* ((fn-list (dired-get-marked-files nil arg))
         (operation-prompt (concat operation " `%s' to `%s'?"))
-        (rename-regexp-help-form (format-message "\
-Type SPC or `y' to %s one match, DEL or `n' to skip to next,
-`!' to %s all remaining matches with no more questions."
-                                                 (downcase operation)
-                                                 (downcase operation)))
+         (rename-regexp-help-form (format-message
+                                   (substitute-command-keys "\
+Type \\`SPC' or \\`y' to %s one match, \\`DEL' or \\`n' to skip to next,
+\\`!' to %s all remaining matches with no more questions.")
+                                   (downcase operation)
+                                   (downcase operation)))
         (regexp-name-constructor
          ;; Function to construct new filename using REGEXP and NEWNAME:
          (if whole-name                ; easy (but rare) case
@@ -2611,11 +2613,12 @@ See function `dired-do-rename-regexp' for more info."
        (let ((to (concat (file-name-directory from)
                         (funcall basename-constructor
                                  (file-name-nondirectory from)))))
-        (and (let ((help-form (format-message "\
-Type SPC or `y' to %s one file, DEL or `n' to skip to next,
-`!' to %s all remaining matches with no more questions."
-                                              (downcase operation)
-                                              (downcase operation))))
+         (and (let ((help-form (format-message
+                                (substitute-command-keys "\
+Type \\`SPC' or \\`y' to %s one file, \\`DEL' or \\`n' to skip to next,
+\\`!' to %s all remaining matches with no more questions.")
+                                (downcase operation)
+                                (downcase operation))))
                (dired-query 'rename-non-directory-query
                             (concat operation " `%s' to `%s'")
                             (dired-make-relative from)
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index fc626aa..de21dcf 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -596,7 +596,7 @@ If you have saved a Dired buffer in a file you can use 
\\[dired-virtual] to
 resume it in a later session.
 
 Type \\<dired-mode-map>\\[revert-buffer] \
-in the Virtual Dired buffer and answer `y' to convert
+in the Virtual Dired buffer and answer \\`y' to convert
 the virtual to a real Dired buffer again.  You don't have to do this, though:
 you can relist single subdirs using \\[dired-do-redisplay]."
 
diff --git a/lisp/dired.el b/lisp/dired.el
index a0fa917..9280c08 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -345,11 +345,11 @@ When `file', the region marking is based on the file name.
 This means don't mark the file if the end of the region is
 before the file name displayed on the Dired line, so the file name
 is visually outside the region.  This behavior is consistent with
-marking files without the region using the key `m' that advances
+marking files without the region using the key \\`m' that advances
 point to the next line after marking the file.  Thus the number
 of keys used to mark files is the same as the number of keys
-used to select the region, e.g. `M-2 m' marks 2 files, and
-`C-SPC M-2 n m' marks 2 files, and `M-2 S-down m' marks 2 files.
+used to select the region, for example \\`M-2 m' marks 2 files, and
+\\`C-SPC M-2 n m' marks 2 files, and \\`M-2 S-<down> m' marks 2 files.
 
 When `line', the region marking is based on Dired lines,
 so include the file into marking if the end of the region
@@ -4102,9 +4102,9 @@ Type \\[help-command] at that time for help."
           (inhibit-read-only t) case-fold-search
            dired-unmark-all-files-query
           (string (format "\n%c" mark))
-          (help-form "\
-Type SPC or `y' to unmark one file, DEL or `n' to skip to next,
-`!' to unmark all remaining files with no more questions."))
+           (help-form (substitute-command-keys "\
+Type \\`SPC' or \\`y' to unmark one file, \\`DEL' or \\`n' to skip to next,
+\\`!' to unmark all remaining files with no more questions.")))
       (goto-char (point-min))
       (while (if (eq mark ?\r)
                 (re-search-forward dired-re-mark nil t)
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index b95f11e..2f2f96c 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -215,12 +215,12 @@ The function's value is the number of actions taken."
                                    (action  (or (nth 2 help) "act on")))
                               (concat
                                 (format-message
-                                 "\
-Type SPC or `y' to %s the current %s;
-DEL or `n' to skip the current %s;
-RET or `q' to skip the current and all remaining %s;
-C-g to quit (cancel the whole command);
-! to %s all remaining %s;\n"
+                                 (substitute-command-keys "\
+Type \\`SPC' or \\`y' to %s the current %s;
+\\`DEL' or \\`n' to skip the current %s;
+\\`RET' or \\`q' to skip the current and all remaining %s;
+\\`C-g' to quit (cancel the whole command);
+\\`!' to %s all remaining %s;\n")
                                  action object object objects action objects)
                                 (mapconcat (lambda (elt)
                                              (format "%s to %s;\n"
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el
index aec438e..5516b2a 100644
--- a/lisp/emacs-lisp/re-builder.el
+++ b/lisp/emacs-lisp/re-builder.el
@@ -448,7 +448,8 @@ provided in the Commentary section of this library."
   (setq reb-subexp-mode t)
   (reb-update-modestring)
   (use-local-map reb-subexp-mode-map)
-  (message "`0'-`9' to display subexpressions  `q' to quit subexp mode"))
+  (message (substitute-command-keys
+            "\\`0'-\\`9' to display subexpressions  \\`q' to quit subexp 
mode")))
 
 (defun reb-show-subexp (subexp &optional pause)
   "Visually show limit of subexpression SUBEXP of recent search.
diff --git a/lisp/epa-ks.el b/lisp/epa-ks.el
index 35caa1a..5dd6ad34 100644
--- a/lisp/epa-ks.el
+++ b/lisp/epa-ks.el
@@ -210,7 +210,8 @@ KEYS is a list of `epa-ks-key' structures, as parsed by
       (with-current-buffer buf
         (setq tabulated-list-entries entries)
         (tabulated-list-print t t))
-      (message "Press `f' to mark a key, `x' to fetch all marked keys."))))
+      (message (substitute-command-keys
+                "Press \\`f' to mark a key, \\`x' to fetch all marked 
keys.")))))
 
 (defun epa-ks--restart-search ()
   (when epa-ks-last-query
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index c5a4fbe..df6c3c0 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -2405,7 +2405,8 @@ If ARG is non-nil, show the *erc-protocol* buffer."
                      (concat "This buffer displays all IRC protocol "
                              "traffic exchanged with servers."))
                     (erc-make-notice "Kill it to disable logging.")
-                    (erc-make-notice "Press `t' to toggle."))))
+                    (erc-make-notice (substitute-command-keys
+                                      "Press \\`t' to toggle.")))))
           (insert (string-join msg "\r\n")))
         (use-local-map (make-sparse-keymap))
         (local-set-key (kbd "t") 'erc-toggle-debug-irc-protocol))
diff --git a/lisp/files.el b/lisp/files.el
index 1979f1b..f72723a 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -5806,13 +5806,13 @@ of the directory that was default during command 
invocation."
 
 (defun save-some-buffers (&optional arg pred)
   "Save some modified file-visiting buffers.  Asks user about each one.
-You can answer `y' or SPC to save, `n' or DEL not to save, `C-r'
+You can answer \\`y' or \\`SPC' to save, \\`n' or \\`DEL' not to save, \\`C-r'
 to look at the buffer in question with `view-buffer' before
-deciding, `d' to view the differences using
-`diff-buffer-with-file', `!' to save the buffer and all remaining
-buffers without any further querying, `.' to save only the
-current buffer and skip the remaining ones and `q' or RET to exit
-the function without saving any more buffers.  `C-h' displays a
+deciding, \\`d' to view the differences using
+`diff-buffer-with-file', \\`!' to save the buffer and all remaining
+buffers without any further querying, \\`.' to save only the
+current buffer and skip the remaining ones and \\`q' or \\`RET' to exit
+the function without saving any more buffers.  \\`C-h' displays a
 help message describing these options.
 
 This command first saves any buffers where `buffer-save-without-query' is
diff --git a/lisp/gnus/gnus-dired.el b/lisp/gnus/gnus-dired.el
index 1d16e00..00769a5 100644
--- a/lisp/gnus/gnus-dired.el
+++ b/lisp/gnus/gnus-dired.el
@@ -204,7 +204,8 @@ If ARG is non-nil, open it in a new buffer."
          (find-file file-name)))
     (if (file-symlink-p file-name)
        (error "File is a symlink to a nonexistent target")
-      (error "File no longer exists; type `g' to update Dired buffer"))))
+      (error (substitute-command-keys
+              "File no longer exists; type \\`g' to update Dired buffer")))))
 
 (defun gnus-dired-print (&optional file-name print-to)
   "In dired, print FILE-NAME according to the mailcap file.
@@ -244,9 +245,10 @@ of the file to save in."
            (error "MIME print only implemented via Gnus")))
        (ps-despool print-to))))
    ((file-symlink-p file-name)
-     (error "File is a symlink to a nonexistent target"))
-    (t
-     (error "File no longer exists; type `g' to update Dired buffer"))))
+    (error "File is a symlink to a nonexistent target"))
+   (t
+    (error (substitute-command-keys
+            "File no longer exists; type \\`g' to update Dired buffer")))))
 
 (provide 'gnus-dired)
 
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index f0b0ca5..2ec001f 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -62,7 +62,7 @@
 
 (defcustom gnus-keep-same-level nil
   "Non-nil means that the newsgroup after this one will be on the same level.
-When you type, for instance, `n' after reading the last article in the
+When you type, for instance, \\`n' after reading the last article in the
 current newsgroup, you will go to the next newsgroup.  If this variable
 is nil, the next newsgroup will be the next from the group
 buffer.
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el
index 2ca2580..d031047 100644
--- a/lisp/gnus/gnus-score.el
+++ b/lisp/gnus/gnus-score.el
@@ -2562,16 +2562,17 @@ score in `gnus-newsgroup-scored' by SCORE."
                               (or (caddr s)
                                   gnus-score-interactive-default-score))
                             trace))))
-       (insert
-        "\n\nQuick help:
+        (insert
+         (substitute-command-keys
+          "\n\nQuick help:
 
-Type `e' to edit score file corresponding to the score rule on current line,
-`f' to format (pretty print) the score file and edit it,
-`t' toggle to truncate long lines in this buffer,
-`q' to quit, `k' to kill score trace buffer.
+Type \\`e' to edit score file corresponding to the score rule on current line,
+\\`f' to format (pretty print) the score file and edit it,
+\\`t' toggle to truncate long lines in this buffer,
+\\`q' to quit, \\`k' to kill score trace buffer.
 
 The first sexp on each line is the score rule, followed by the file name of
-the score file and its full name, including the directory.")
+the score file and its full name, including the directory."))
        (goto-char (point-min))
        (gnus-configure-windows 'score-trace)))
     (set-buffer gnus-summary-buffer)
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 4519d65..56934df 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -1467,11 +1467,11 @@ address was listed in gnus-group-split Addresses (see 
below).")
  :variable-group gnus-group-parameter
  :parameter-type '(gnus-email-address :tag "To List")
  :parameter-document "\
-This address will be used when doing a `a' in the group.
+This address will be used when doing a \\`a' in the group.
 
 It is totally ignored when doing a followup--except that if it is
 present in a news group, you'll get mail group semantics when doing
-`f'.
+\\`f'.
 
 The gnus-group-split mail splitting mechanism will behave as if this
 address was listed in gnus-group-split Addresses (see below).")
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 4a0ea59..562bc64 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4763,23 +4763,25 @@ Valid types are `send', `return', `exit', `kill' and 
`postpone'."
                 t
                 "\
 The message size, "
-                (/ (buffer-size) 1000) "KB, is too large.
+                (/ (buffer-size) 1000)
+                (substitute-command-keys "KB, is too large.
 
 Some mail gateways (MTA's) bounce large messages.  To avoid the
-problem, answer `y', and the message will be split into several
-smaller pieces, the size of each is about "
+problem, answer \\`y', and the message will be split into several
+smaller pieces, the size of each is about ")
                 (/ message-send-mail-partially-limit 1000)
-                "KB except the last
+                (substitute-command-keys
+                 "KB except the last
 one.
 
 However, some mail readers (MUA's) can't read split messages, i.e.,
-mails in message/partially format.  Answer `n', and the message
+mails in message/partially format.  Answer \\`n', and the message
 will be sent in one piece.
 
 The size limit is controlled by `message-send-mail-partially-limit'.
 If you always want Gnus to send messages in one piece, set
 `message-send-mail-partially-limit' to nil.
-")))
+"))))
       (progn
         (message "Sending via mail...")
         (if message-send-mail-real-function
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 233127b..b461197 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1257,7 +1257,9 @@ Otherwise, toggle lock status."
   "Unmark all buffers with mark MARK."
   (interactive "cRemove marks (RET means all):")
   (if (= (ibuffer-count-marked-lines t) 0)
-      (message "No buffers marked; use `m' to mark a buffer")
+      (message (substitute-command-keys
+                "No buffers marked; use \\<ibuffer-mode-map>\
+\\[ibuffer-mark-forward] to mark a buffer"))
     (let ((fn (lambda (_buf mk)
                 (unless (eq mk ?\s)
                   (ibuffer-set-mark-1 ?\s)) t)))
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index f393ac7..b3080ac 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -1767,7 +1767,7 @@ is determined non-interactively.  The value is queried 
for in the
 minibuffer exactly the same way that `set-variable' does it.
 
 You can see the current value of the variable when the minibuffer is
-querying you by typing `C-h'.  Note that the format is changed
+querying you by typing \\`C-h'.  Note that the format is changed
 slightly from that used by `set-variable' -- the current value is
 printed just after the variable's name instead of at the bottom of the
 help window."
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 0fea057..c2a6b01 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -2734,7 +2734,7 @@ not active.")
 This is only used when the minibuffer area has no active minibuffer.
 
 Note that the minibuffer may change to this mode more often than
-you might expect.  For instance, typing `M-x' may change the
+you might expect.  For instance, typing \\`M-x' may change the
 buffer to this mode, then to a different mode, and then back
 again to this mode upon exit.  Code running from
 `minibuffer-inactive-mode-hook' has to be prepared to run
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index d833612..d7dbaa0 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1992,7 +1992,8 @@ see the doc of that variable if you want to add names to 
the list."
       (setq set-list (delete (car set-list) set-list)))
     (goto-char (point-min))
     (insert-before-markers
-     "Type `t' to select a tags table or set of tags tables:\n\n")
+     (substitute-command-keys
+      "Type \\`t' to select a tags table or set of tags tables:\n\n"))
     (if desired-point
        (goto-char desired-point))
     (set-window-start (selected-window) 1 t))
diff --git a/lisp/progmodes/idlw-shell.el b/lisp/progmodes/idlw-shell.el
index 5a31ad3..ded3a9c 100644
--- a/lisp/progmodes/idlw-shell.el
+++ b/lisp/progmodes/idlw-shell.el
@@ -817,7 +817,7 @@ IDL has currently stepped.")
 
    Command history, searching of previous commands, command line
    editing are available via the comint-mode key bindings, by default
-   mostly on the key `C-c'.  Command history is also available with
+   mostly on the key \\`C-c'.  Command history is also available with
    the arrow keys UP and DOWN.
 
 2. Completion
@@ -1327,7 +1327,7 @@ See also the variable `idlwave-shell-input-mode-spells'."
 Characters are sent one by one, without newlines.  The loop is blocking
 and intercepts all input events to Emacs.  You can use this command
 to interact with the IDL command GET_KBRD.
-The loop can be aborted by typing `C-g'.  The loop also exits automatically
+The loop can be aborted by typing \\[keyboard-quit].  The loop also exits 
automatically
 when the IDL prompt gets displayed again after the current IDL command."
   (interactive)
 
@@ -1342,7 +1342,8 @@ when the IDL prompt gets displayed again after the 
current IDL command."
        (funcall errf "No IDL program seems to be waiting for input"))
 
     ;; OK, start the loop
-    (message "Character mode on:  Sending single chars (`C-g' to exit)")
+    (message (substitute-command-keys
+              "Character mode on:  Sending single chars (\\[keyboard-quit] to 
exit)"))
     (message
      (catch 'exit
        (while t
diff --git a/lisp/replace.el b/lisp/replace.el
index 5287be2..0e81b15 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2402,20 +2402,20 @@ To be added to `context-menu-functions'."
 ;; It would be nice to use \\[...], but there is no reasonable way
 ;; to make that display both SPC and Y.
 (defconst query-replace-help
-  "Type Space or `y' to replace one match, Delete or `n' to skip to next,
-RET or `q' to exit, Period to replace one match and exit,
-Comma to replace but not move point immediately,
-C-r to enter recursive edit (\\[exit-recursive-edit] to get out again),
-C-w to delete match and recursive edit,
-C-l to clear the screen, redisplay, and offer same replacement again,
-! to replace all remaining matches in this buffer with no more questions,
-^ to move point back to previous match,
-u to undo previous replacement,
-U to undo all replacements,
-E to edit the replacement string.
-In multi-buffer replacements type `Y' to replace all remaining
+  "Type \\`SPC' or \\`y' to replace one match, Delete or \\`n' to skip to next,
+\\`RET' or \\`q' to exit, Period to replace one match and exit,
+\\`,' to replace but not move point immediately,
+\\`C-r' to enter recursive edit (\\[exit-recursive-edit] to get out again),
+\\`C-w' to delete match and recursive edit,
+\\`C-l' to clear the screen, redisplay, and offer same replacement again,
+\\`!' to replace all remaining matches in this buffer with no more questions,
+\\`^' to move point back to previous match,
+\\`u' to undo previous replacement,
+\\`U' to undo all replacements,
+\\`E' to edit the replacement string.
+In multi-buffer replacements type \\`Y' to replace all remaining
 matches in all remaining buffers with no more questions,
-`N' to skip to the next buffer without replacing remaining matches
+\\`N' to skip to the next buffer without replacing remaining matches
 in the current buffer."
   "Help message while in `query-replace'.")
 
diff --git a/lisp/simple.el b/lisp/simple.el
index 58283e7..84928ca 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -8912,7 +8912,7 @@ With a prefix argument, set VARIABLE to VALUE 
buffer-locally.
 
 When called interactively, the user is prompted for VARIABLE and
 then VALUE.  The current value of VARIABLE will be put in the
-minibuffer history so that it can be accessed with `M-n', which
+minibuffer history so that it can be accessed with \\`M-n', which
 makes it easier to edit it."
   (interactive
    (let* ((default-var (variable-at-point))
diff --git a/lisp/subr.el b/lisp/subr.el
index 7ba7648..867db47 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3120,7 +3120,7 @@ Optional argument CHARS, if non-nil, should be a list of 
characters;
 the function will ignore any input that is not one of CHARS.
 Optional argument HISTORY, if non-nil, should be a symbol that
 specifies the history list variable to use for navigating in input
-history using `M-p' and `M-n', with `RET' to select a character from
+history using \\`M-p' and \\`M-n', with \\`RET' to select a character from
 history.
 If you bind the variable `help-form' to a non-nil value
 while calling this function, then pressing `help-char'
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 0a3a49d..4087f7e 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2398,24 +2398,24 @@ Global `ispell-quit' set to start location to continue 
spell session."
 
 Selections are:
 
-DIGIT: Replace the word with a digit offered in the *Choices* buffer.
-SPC:   Accept word this time.
-`i':   Accept word and insert into private dictionary.
-`a':   Accept word for this session.
-`A':   Accept word and place in `buffer-local dictionary'.
-`r':   Replace word with typed-in value.  Rechecked.
-`R':   Replace word with typed-in value.  Query-replaced in buffer.  Rechecked.
-`?':   Show these commands.
-`x':   Exit spelling buffer.  Move cursor to original point.
-`X':   Exit spelling buffer.  Leaves cursor at the current point, and permits
+\\`0'..\\`9'  Replace the word with a digit offered in the *Choices* buffer.
+\\`SPC'   Accept word this time.
+\\`i'     Accept word and insert into private dictionary.
+\\`a'     Accept word for this session.
+\\`A'     Accept word and place in `buffer-local dictionary'.
+\\`r'     Replace word with typed-in value.  Rechecked.
+\\`R'     Replace word with typed-in value.  Query-replaced in buffer.  
Rechecked.
+\\`?'     Show these commands.
+\\`x'     Exit spelling buffer.  Move cursor to original point.
+\\`X'     Exit spelling buffer.  Leaves cursor at the current point, and 
permits
         the aborted check to be completed later.
-`q':   Quit spelling session (Kills ispell process).
-`l':   Look up typed-in replacement in alternate dictionary.  Wildcards okay.
-`u':   Like `i', but the word is lower-cased first.
-`m':   Place typed-in value in personal dictionary, then recheck current word.
-`C-l':  Redraw screen.
-`C-r':  Recursive edit.
-`C-z':  Suspend Emacs or iconify frame."
+\\`q'     Quit spelling session (Kills ispell process).
+\\`l'     Look up typed-in replacement in alternate dictionary.  Wildcards 
okay.
+\\`u'     Like \\`i', but the word is lower-cased first.
+\\`m'     Place typed-in value in personal dictionary, then recheck current 
word.
+\\`C-l'   Redraw screen.
+\\`C-r'   Recursive edit.
+\\`C-z'   Suspend Emacs or iconify frame."
 
   (if (equal ispell-help-in-bufferp 'electric)
       (progn
@@ -2428,26 +2428,28 @@ SPC:   Accept word this time.
            ;;(if (< (window-height) 15)
            ;;   (enlarge-window
            ;;    (- 15 (ispell-adjusted-window-height))))
-           (princ "Selections are:
-
-DIGIT: Replace the word with a digit offered in the *Choices* buffer.
-SPC:   Accept word this time.
-`i':   Accept word and insert into private dictionary.
-`a':   Accept word for this session.
-`A':   Accept word and place in `buffer-local dictionary'.
-`r':   Replace word with typed-in value.  Rechecked.
-`R':   Replace word with typed-in value.  Query-replaced in buffer.  Rechecked.
-`?':   Show these commands.
-`x':   Exit spelling buffer.  Move cursor to original point.
-`X':   Exit spelling buffer.  Leaves cursor at the current point, and permits
-        the aborted check to be completed later.
-`q':   Quit spelling session (Kills ispell process).
-`l':   Look up typed-in replacement in alternate dictionary.  Wildcards okay.
-`u':   Like `i', but the word is lower-cased first.
-`m':   Place typed-in value in personal dictionary, then recheck current word.
-`C-l':  Redraw screen.
-`C-r':  Recursive edit.
-`C-z':  Suspend Emacs or iconify frame.")
+           (princ
+            (substitute-command-keys
+             "Selections are:
+
+\\`0'..\\`9'  Replace the word with a digit offered in the *Choices* buffer.
+\\`SPC'   Accept word this time.
+\\`i'     Accept word and insert into private dictionary.
+\\`a'     Accept word for this session.
+\\`A'     Accept word and place in `buffer-local dictionary'.
+\\`r'     Replace word with typed-in value.  Rechecked.
+\\`R'     Replace word with typed-in value.  Query-replaced in buffer.  
Rechecked.
+\\`?'     Show these commands.
+\\`x'     Exit spelling buffer.  Move cursor to original point.
+\\`X'     Exit spelling buffer.  Leaves cursor at the current point, and 
permits
+          the aborted check to be completed later.
+\\`q'     Quit spelling session (Kills ispell process).
+\\`l'     Look up typed-in replacement in alternate dictionary.  Wildcards 
okay.
+\\`u'     Like \\`i', but the word is lower-cased first.
+\\`m'     Place typed-in value in personal dictionary, then recheck current 
word.
+\\`C-l'   Redraw screen.
+\\`C-r'   Recursive edit.
+\\`C-z'   Suspend Emacs or iconify frame."))
            nil)))
 
 
@@ -3883,8 +3885,8 @@ Don't check spelling of message headers except the 
Subject field.
 Don't check included messages.
 
 To abort spell checking of a message region and send the message anyway,
-use the `x' command.  (Any subsequent regions will be checked.)
-The `X' command aborts sending the message so that you can edit the buffer.
+use the \\`x' command.  (Any subsequent regions will be checked.)
+The \\`X' command aborts sending the message so that you can edit the buffer.
 
 To spell-check whenever a message is sent, include the appropriate lines
 in your init file:
diff --git a/lisp/textmodes/reftex-global.el b/lisp/textmodes/reftex-global.el
index b90c213..f787f5f 100644
--- a/lisp/textmodes/reftex-global.el
+++ b/lisp/textmodes/reftex-global.el
@@ -148,8 +148,10 @@ No active TAGS table is required."
     (erase-buffer)
     (insert "                MULTIPLE LABELS IN CURRENT DOCUMENT:\n")
     (insert
-     " Move point to label and type `r' to run a query-replace on the label\n"
-     " and its references.  Type `q' to exit this buffer.\n\n")
+     (substitute-command-keys
+      " Move point to label and type \\`r' to run a query-replace on the 
label\n")
+     (substitute-command-keys
+      " and its references.  Type \\`q' to exit this buffer.\n\n"))
     (insert " LABEL               FILE\n")
     (insert " -------------------------------------------------------------\n")
     (use-local-map (make-sparse-keymap))
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index d57a767..eedc067 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -392,19 +392,19 @@ that the *toc* window fills half the frame."
 
 (defcustom reftex-toc-include-file-boundaries nil
   "Non-nil means, include file boundaries in *toc* buffer.
-This flag can be toggled from within the *toc* buffer with the `F' key."
+This flag can be toggled from within the *toc* buffer with the \\`F' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
 (defcustom reftex-toc-include-labels nil
   "Non-nil means, include labels in *toc* buffer.
-This flag can be toggled from within the *toc* buffer with the `l' key."
+This flag can be toggled from within the *toc* buffer with the \\`l' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
 (defcustom reftex-toc-include-index-entries nil
   "Non-nil means, include index entries in *toc* buffer.
-This flag can be toggled from within the *toc* buffer with the `i' key."
+This flag can be toggled from within the *toc* buffer with the \\`i' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
@@ -422,14 +422,14 @@ changed."
 (defcustom reftex-toc-include-context nil
   "Non-nil means, include context with labels in the *toc* buffer.
 Context will only be shown when labels are visible as well.
-This flag can be toggled from within the *toc* buffer with the `c' key."
+This flag can be toggled from within the *toc* buffer with the \\`c' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
 (defcustom reftex-toc-follow-mode nil
   "Non-nil means, point in *toc* buffer will cause other window to follow.
 The other window will show the corresponding part of the document.
-This flag can be toggled from within the *toc* buffer with the `f' key."
+This flag can be toggled from within the *toc* buffer with the \\`f' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
@@ -1627,14 +1627,14 @@ to that section."
 
 (defcustom reftex-index-include-context nil
   "Non-nil means, display the index definition context in the index buffer.
-This flag may also be toggled from the index buffer with the `c' key."
+This flag may also be toggled from the index buffer with the \\`c' key."
   :group 'reftex-index-support
   :type 'boolean)
 
 (defcustom reftex-index-follow-mode nil
   "Non-nil means, point in *Index* buffer will cause other window to follow.
 The other window will show the corresponding part of the document.
-This flag can be toggled from within the *Index* buffer with the `f' key."
+This flag can be toggled from within the *Index* buffer with the \\`f' key."
   :group 'reftex-table-of-contents-browser
   :type 'boolean)
 
@@ -1863,10 +1863,11 @@ of the regular expressions in this list, that file is 
not parsed by RefTeX."
 (defcustom reftex-enable-partial-scans nil
   "Non-nil means, re-parse only 1 file when asked to re-parse.
 Re-parsing is normally requested with a \\[universal-argument] prefix to many 
RefTeX commands,
-or with the `r' key in menus.  When this option is t in a multifile document,
+or with the \\`r' key in menus.  When this option is t in a multifile document,
 we will only parse the current buffer, or the file associated with the label
 or section heading near point in a menu.  Requesting re-parsing of an entire
-multifile document then requires a \\[universal-argument] 
\\[universal-argument] prefix or the capital `R' key
+multifile document then requires a \\[universal-argument] \
+\\[universal-argument] prefix or the capital \\`R' key
 in menus."
   :group 'reftex-optimizations-for-large-documents
   :type 'boolean)
@@ -1912,7 +1913,7 @@ when new labels in its category are added.  See the 
variable
 When a new label is defined with `reftex-label', all selection buffers
 associated with that label category are emptied, in order to force an
 update upon next use.  When nil, the buffers are left alone and have to be
-updated by hand, with the `g' key from the label selection process.
+updated by hand, with the \\`g' key from the label selection process.
 The value of this variable will only have any effect when
 `reftex-use-multiple-selection-buffers' is non-nil."
   :group 'reftex-optimizations-for-large-documents
@@ -1964,7 +1965,7 @@ instead or as well.  The variable may have one of these 
values:
    both     Both cursor and mouse trigger highlighting.
 
 Changing this variable requires rebuilding the selection and *toc* buffers
-to become effective (keys `g' or `r')."
+to become effective (keys \\`g' or \\`r')."
   :group 'reftex-fontification-configurations
   :type '(choice
           (const :tag "Never" nil)
diff --git a/lisp/time.el b/lisp/time.el
index 8496ade..4f302ca 100644
--- a/lisp/time.el
+++ b/lisp/time.el
@@ -343,7 +343,7 @@ Switches from the 1 to 5 to 15 minute load average, and 
then back to 1."
   "Update the `display-time' info for the mode line.
 However, don't redisplay right now.
 
-This is used for things like Rmail `g' that want to force an
+This is used for things like Rmail \\`g' that want to force an
 update which can wait for the next redisplay."
   (let* ((now (current-time))
          (time (current-time-string now))
diff --git a/lisp/userlock.el b/lisp/userlock.el
index 348ccc6..9a2d45a 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -39,10 +39,6 @@
 
 (define-error 'file-locked "File is locked" 'file-error)
 
-(defun userlock--fontify-key (key)
-  "Add the `help-key-binding' face to string KEY."
-  (propertize key 'face 'help-key-binding))
-
 ;;;###autoload
 (defun ask-user-about-lock (file opponent)
   "Ask user what to do when he wants to edit FILE but it is locked by OPPONENT.
@@ -68,12 +64,9 @@ in any way you like."
                          (match-string 0 opponent)))
              opponent))
       (while (null answer)
-        (message "%s locked by %s: (%s, %s, %s, %s)? "
-                 short-file short-opponent
-                 (userlock--fontify-key "s")
-                 (userlock--fontify-key "q")
-                 (userlock--fontify-key "p")
-                 (userlock--fontify-key "?"))
+        (message (substitute-command-keys
+                  "%s locked by %s: (\\`s', \\`q', \\`p', \\`?'? ")
+                 short-file short-opponent)
        (if noninteractive (error "Cannot resolve lock conflict in batch mode"))
        (let ((tem (let ((inhibit-quit t)
                         (cursor-in-echo-area t))
@@ -88,12 +81,9 @@ in any way you like."
                                      (?? . help))))
            (cond ((null answer)
                   (beep)
-                   (message "Please type %s, %s, or %s; or %s for help"
-                            (userlock--fontify-key "q")
-                            (userlock--fontify-key "s")
-                            (userlock--fontify-key "p")
-                            ;; FIXME: Why do we use "?" here and "C-h" below?
-                            (userlock--fontify-key "?"))
+                   ;; FIXME: Why do we use "?" here and "C-h" below?
+                   (message (substitute-command-keys
+                             "Please type \\`q', \\`s', or \\`p'; or \\`?' for 
help"))
                   (sit-for 3))
                  ((eq (cdr answer) 'help)
                   (ask-user-about-lock-help)
@@ -106,17 +96,14 @@ in any way you like."
   (with-output-to-temp-buffer "*Help*"
     (with-current-buffer standard-output
       (insert
-       (format
+       (substitute-command-keys
         "It has been detected that you want to modify a file that someone else 
has
 already started modifying in Emacs.
 
-You can <%s>teal the file; the other user becomes the
+You can <\\`s'>teal the file; the other user becomes the
   intruder if (s)he ever unmodifies the file and then changes it again.
-You can <%s>roceed; you edit at your own (and the other user's) risk.
-You can <%s>uit; don't modify this file."
-        (userlock--fontify-key "s")
-        (userlock--fontify-key "p")
-        (userlock--fontify-key "q")))
+You can <\\`p'>roceed; you edit at your own (and the other user's) risk.
+You can <\\`q'>uit; don't modify this file."))
       (help-mode))))
 
 (define-error 'file-supersession nil 'file-error)
@@ -169,14 +156,11 @@ The buffer in question is current when this function is 
called."
   (discard-input)
   (save-window-excursion
     (let ((prompt
-          (format "%s changed on disk; \
-really edit the buffer? (%s, %s, %s or %s) "
-                   (file-name-nondirectory filename)
-                   (userlock--fontify-key "y")
-                   (userlock--fontify-key "n")
-                   (userlock--fontify-key "r")
-                   ;; FIXME: Why do we use "C-h" here and "?" above?
-                   (userlock--fontify-key "C-h")))
+           ;; FIXME: Why do we use "C-h" here and "?" above?
+           (format (substitute-command-keys
+                    "%s changed on disk; \
+really edit the buffer? (\\`y', \\`n', \\`r' or \\`C-h') ")
+                   (file-name-nondirectory filename)))
          (choices '(?y ?n ?r ?? ?\C-h))
          answer)
       (when noninteractive
@@ -205,22 +189,18 @@ really edit the buffer? (%s, %s, %s or %s) "
   (with-output-to-temp-buffer "*Help*"
     (with-current-buffer standard-output
       (insert
-       (format
+       (substitute-command-keys
         "You want to modify a buffer whose disk file has changed
 since you last read it in or saved it with this buffer.
 
-If you say %s to go ahead and modify this buffer,
+If you say \\`y' to go ahead and modify this buffer,
 you risk ruining the work of whoever rewrote the file.
-If you say %s to revert, the contents of the buffer are refreshed
+If you say \\`r' to revert, the contents of the buffer are refreshed
 from the file on disk.
-If you say %s, the change you started to make will be aborted.
-
-Usually, you should type %s to get the latest version of the
-file, then make the change again."
-        (userlock--fontify-key "y")
-        (userlock--fontify-key "r")
-        (userlock--fontify-key "n")
-        (userlock--fontify-key "r")))
+If you say \\`n', the change you started to make will be aborted.
+
+Usually, you should type \\`r' to get the latest version of the
+file, then make the change again."))
       (help-mode))))
 
 ;;;###autoload
diff --git a/lisp/vc/ediff-help.el b/lisp/vc/ediff-help.el
index 0450cd7..48e1f15 100644
--- a/lisp/vc/ediff-help.el
+++ b/lisp/vc/ediff-help.el
@@ -227,7 +227,9 @@ the value of this variable and the variables 
`ediff-help-message-*' in
            ((string= cmd "s") (re-search-forward "^['`‘]s['’]"))
            ((string= cmd "+") (re-search-forward "^['`‘]\\+['’]"))
            ((string= cmd "=") (re-search-forward "^['`‘]=['’]"))
-           (t (user-error "Undocumented command! Type `G' in Ediff Control 
Panel to drop a note to the Ediff maintainer")))
+            (t (user-error (substitute-command-keys
+                            "Undocumented command! Type \\`G' in Ediff Control 
\
+Panel to drop a note to the Ediff maintainer"))))
       ) ; let case-fold-search
     ))
 
diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el
index eaccb7a..4b352bd 100644
--- a/lisp/vc/ediff-init.el
+++ b/lisp/vc/ediff-init.el
@@ -615,8 +615,8 @@ Actually, Ediff restores the scope of visibility that 
existed at startup.")
 
 (defcustom ediff-keep-variants t
   "Nil means prompt to remove unmodified buffers A/B/C at session end.
-Supplying a prefix argument to the quit command `q' temporarily reverses the
-meaning of this variable."
+Supplying a prefix argument to the quit command \\`q' temporarily
+reverses the meaning of this variable."
   :type 'boolean
   :group 'ediff)
 
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index 7622cf4..a03c6a5 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -415,7 +415,9 @@ other files, enter `/dev/null'.
                  (with-output-to-temp-buffer ediff-msg-buffer
                    (ediff-with-current-buffer standard-output
                      (fundamental-mode))
-                   (princ (format-message "
+                    (with-current-buffer standard-output
+                      (insert (format-message
+                              (substitute-command-keys "
 Ediff has inferred that
        %s
        %s
@@ -423,10 +425,10 @@ are two possible targets for applying the patch.
 Both files seem to be plausible alternatives.
 
 Please advise:
-    Type `y' to use %s as the target;
-    Type `n' to use %s as the target.
-"
-                                  file1 file2 file1 file2)))
+    Type \\`y' to use %s as the target;
+    Type \\`n' to use %s as the target.
+")
+                                            file1 file2 file1 file2))))
                  (setcar session-file-object
                          (if (y-or-n-p (format "Use %s ? " file1))
                              (progn
@@ -823,7 +825,8 @@ you can still examine the changes via M-x ediff-files"
            ediff-patch-diagnostics patch-diagnostics))
 
     (bury-buffer patch-diagnostics)
-    (message "Type `P', if you need to see patch diagnostics")
+    (message (substitute-command-keys
+              "Type \\`P', if you need to see patch diagnostics"))
     ctl-buf))
 
 (defun ediff-multi-patch-internal (patch-buf &optional startup-hooks)
diff --git a/lisp/windmove.el b/lisp/windmove.el
index 658e59a..8904f5c 100644
--- a/lisp/windmove.el
+++ b/lisp/windmove.el
@@ -700,7 +700,7 @@ where PREFIX is a prefix key and MODIFIERS is either a list 
of modifiers or
 a single modifier.
 If PREFIX is `none', no prefix is used.  If MODIFIERS is `none',
 the keybindings are directly bound to the arrow keys.
-Default value of PREFIX is `C-x' and MODIFIERS is `shift'."
+Default value of PREFIX is \\`C-x' and MODIFIERS is `shift'."
   (interactive)
   (unless prefix (setq prefix '(?\C-x)))
   (when (eq prefix 'none) (setq prefix nil))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]