emacs-diffs
[Top][All Lists]
Advanced

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

master 6640942: Use format-prompt for many more prompts


From: Stefan Kangas
Subject: master 6640942: Use format-prompt for many more prompts
Date: Mon, 4 Oct 2021 21:48:44 -0400 (EDT)

branch: master
commit 66409422214a0a90e1d2a12ef2c4ebf86f2c01a9
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Use format-prompt for many more prompts
    
    * lisp/bookmark.el (bookmark-completing-read):
    * lisp/calc/calc-prog.el (calc-user-define-formula):
    * lisp/calc/calc-store.el (calc-permanent-variable):
    * lisp/calc/calc-units.el (calc-convert-units)
    (calc-convert-exact-units, calc-convert-temperature):
    * lisp/cedet/semantic/complete.el
    (semantic-complete-read-tag-engine):
    * lisp/cus-edit.el (customize-read-group):
    * lisp/dired-aux.el (dired-do-chxxx):
    * lisp/dired-x.el (dired-mark-unmarked-files):
    * lisp/emacs-lisp/debug.el (cancel-debug-on-entry)
    (cancel-debug-on-variable-change):
    * lisp/emacs-lisp/edebug.el (edebug-cancel-on-entry)
    (edebug-remove-instrumentation):
    * lisp/epa.el (epa-read-file-name, epa-export-keys):
    * lisp/faces.el (read-face-name):
    * lisp/format.el (format-decode-buffer, format-decode-region):
    * lisp/gnus/gnus-art.el (gnus-read-save-file-name):
    * lisp/gnus/gnus-util.el (gnus-completing-read):
    * lisp/gnus/message.el (message-check-news-header-syntax):
    * lisp/info.el (Info-follow-reference):
    * lisp/international/mule-diag.el (describe-font)
    (describe-fontset):
    * lisp/international/quail.el (quail-show-keyboard-layout):
    * lisp/language/cyril-util.el
    (standard-display-cyrillic-translit):
    * lisp/mail/rmailkwd.el (rmail-read-label):
    * lisp/mail/rmailmm.el (rmail-mime-save):
    * lisp/mail/rmailout.el (rmail-output-read-file-name):
    * lisp/man.el (Man-goto-section, Man-follow-manual-reference):
    * lisp/menu-bar.el (emacs-index--prompt):
    * lisp/net/ange-ftp.el (ange-ftp-get-passwd):
    * lisp/proced.el (proced-send-signal):
    * lisp/progmodes/cpp.el (cpp-choose-face):
    * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
    * lisp/progmodes/etags.el (visit-tags-table)
    (visit-tags-table-buffer):
    * lisp/progmodes/grep.el (grep-read-files):
    * lisp/progmodes/hideif.el (hide-ifdef-define):
    * lisp/progmodes/pascal.el (pascal-goto-defun):
    * lisp/progmodes/prolog.el (prolog-read-predicate):
    * lisp/progmodes/sql.el (sql-get-login-ext):
    * lisp/ses.el (ses-define-local-printer):
    * lisp/textmodes/artist.el (artist-figlet-choose-font):
    * lisp/textmodes/tex-mode.el (tex-compile):
    * lisp/vc/diff.el (diff):
    * lisp/vc/ediff-ptch.el (ediff-prompt-for-patch-file):
    * lisp/vc/ediff-util.el (ediff-read-file-name):
    * lisp/vc/pcvs.el (cvs-mode-mark-on-state):
    * lisp/vc/vc.el (vc-diff-build-argument-list-internal)
    (vc-revision-other-window, vc-retrieve-tag):
    * lisp/wid-edit.el: Prefer format-prompt unconditionally.
    
    * lisp/org/org-capture.el (org-capture-fill-template):
    * lisp/org/org-refile.el (org-refile-get-location):
    * lisp/progmodes/python.el (python-eldoc-at-point):
    * lisp/progmodes/verilog-mode.el (verilog-surelint-off)
    (verilog-goto-defun):
    * lisp/progmodes/xref.el (xref--read-identifier): Prefer format-prompt
    when it is fboundp.
---
 lisp/bookmark.el                |  7 ++-----
 lisp/calc/calc-prog.el          |  9 ++++-----
 lisp/calc/calc-store.el         |  2 +-
 lisp/calc/calc-units.el         | 39 +++++++++++----------------------------
 lisp/cedet/semantic/complete.el |  9 ++++-----
 lisp/cus-edit.el                |  2 +-
 lisp/dired-aux.el               |  8 ++++----
 lisp/dired-x.el                 |  2 +-
 lisp/emacs-lisp/debug.el        |  6 ++++--
 lisp/emacs-lisp/edebug.el       |  6 ++++--
 lisp/epa.el                     |  6 ++----
 lisp/faces.el                   |  2 +-
 lisp/format.el                  |  4 ++--
 lisp/gnus/gnus-art.el           | 13 ++++++-------
 lisp/gnus/gnus-util.el          |  4 +---
 lisp/gnus/message.el            |  2 +-
 lisp/info.el                    |  9 +++------
 lisp/international/mule-diag.el |  4 ++--
 lisp/international/quail.el     |  2 +-
 lisp/language/cyril-util.el     |  2 +-
 lisp/mail/rmailkwd.el           |  9 +++------
 lisp/mail/rmailmm.el            |  2 +-
 lisp/mail/rmailout.el           |  5 ++---
 lisp/man.el                     |  4 ++--
 lisp/menu-bar.el                |  5 +----
 lisp/net/ange-ftp.el            |  5 +++--
 lisp/org/org-capture.el         | 11 +++++++----
 lisp/org/org-refile.el          | 12 +++++++-----
 lisp/proced.el                  |  8 ++++----
 lisp/progmodes/cpp.el           |  7 ++-----
 lisp/progmodes/ebrowse.el       |  6 +++---
 lisp/progmodes/etags.el         |  4 ++--
 lisp/progmodes/grep.el          |  8 +++-----
 lisp/progmodes/hideif.el        |  2 +-
 lisp/progmodes/pascal.el        |  4 +---
 lisp/progmodes/prolog.el        |  7 ++-----
 lisp/progmodes/python.el        | 12 ++++++++----
 lisp/progmodes/sql.el           | 17 +++++------------
 lisp/progmodes/verilog-mode.el  | 23 +++++++++++++----------
 lisp/progmodes/xref.el          | 17 +++++++++++------
 lisp/ses.el                     |  4 +++-
 lisp/textmodes/artist.el        |  5 ++---
 lisp/textmodes/tex-mode.el      |  2 +-
 lisp/vc/diff.el                 |  8 ++++----
 lisp/vc/ediff-ptch.el           | 14 +++++---------
 lisp/vc/ediff-util.el           |  6 +-----
 lisp/vc/pcvs.el                 |  3 +--
 lisp/vc/vc.el                   | 15 ++++++---------
 lisp/wid-edit.el                |  2 +-
 49 files changed, 161 insertions(+), 204 deletions(-)

diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index d64966d..5c4a980 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -498,11 +498,8 @@ If DEFAULT is nil then return empty string for empty 
input."
                                                'string-lessp)
                                        (bookmark-all-names)))
     (let* ((completion-ignore-case bookmark-completion-ignore-case)
-           (default (unless (equal "" default) default))
-          (prompt (concat prompt (if default
-                                      (format " (%s): " default)
-                                    ": "))))
-      (completing-read prompt
+           (default (unless (equal "" default) default)))
+      (completing-read (format-prompt prompt default)
                        (lambda (string pred action)
                          (if (eq action 'metadata)
                              '(metadata (category . bookmark))
diff --git a/lisp/calc/calc-prog.el b/lisp/calc/calc-prog.el
index f9dd9eb..77adf6b 100644
--- a/lisp/calc/calc-prog.el
+++ b/lisp/calc/calc-prog.el
@@ -205,9 +205,8 @@
         (progn
           (setq cmd-base-default (concat "User-" keyname))
            (setq cmd (completing-read
-                      (concat "Define M-x command name (default calc-"
-                              cmd-base-default
-                              "): ")
+                      (format-prompt "Define M-x command name"
+                                     (concat "calc-" cmd-base-default))
                       obarray 'commandp nil
                       (if (and odef (symbolp (cdr odef)))
                           (symbol-name (cdr odef))
@@ -241,8 +240,8 @@
           (setq func
                  (concat "calcFunc-"
                          (completing-read
-                          (concat "Define algebraic function name (default "
-                                  cmd-base-default "): ")
+                          (format-prompt "Define algebraic function name"
+                                         cmd-base-default)
                           (mapcar (lambda (x) (substring x 9))
                                   (all-completions "calcFunc-"
                                                    obarray))
diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el
index ee29c44..b396855 100644
--- a/lisp/calc/calc-store.el
+++ b/lisp/calc/calc-store.el
@@ -586,7 +586,7 @@
 (defun calc-permanent-variable (&optional var)
   (interactive)
   (calc-wrapper
-   (or var (setq var (calc-read-var-name "Save variable (default all): ")))
+   (or var (setq var (calc-read-var-name (format-prompt "Save variable" 
"all"))))
    (let (calc-pv-pos)
      (and var (or (and (boundp var) (symbol-value var))
                  (error "No such variable")))
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index fd6f3a7..f6d749d 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -486,18 +486,13 @@ If COMP or STD is non-nil, put that in the units table 
instead."
      (setq defunits (math-get-default-units expr))
      (unless new-units
        (setq new-units
-             (read-string (concat
+             (read-string (format-prompt
                            (if (and uoldname (not nouold))
                                (concat "Old units: "
                                        uoldname
                                        ", new units")
                              "New units")
-                           (if defunits
-                               (concat
-                                " (default "
-                                defunits
-                                "): ")
-                             ": "))))
+                           defunits)))
        (if (and
             (string= new-units "")
             defunits)
@@ -533,14 +528,7 @@ If COMP or STD is non-nil, put that in the units table 
instead."
      (let* ((old-units (math-extract-units expr))
             (defunits (math-get-default-units expr))
             units
-            (new-units
-             (read-string (concat "New units"
-                                  (if defunits
-                                     (concat
-                                      " (default "
-                                      defunits
-                                      "): ")
-                                   ": ")))))
+            (new-units (read-string (format-prompt "New units" defunits))))
        (if (and
             (string= new-units "")
             defunits)
@@ -596,19 +584,14 @@ If COMP or STD is non-nil, put that in the units table 
instead."
         (setq expr (math-mul expr uold)))
      (setq defunits (math-get-default-units expr))
      (setq unew (or new-units
-                    (completing-read
-                     (concat
-                      (if uoldname
-                          (concat "Old temperature units: "
-                                  uoldname
-                                  ", new units")
-                        "New temperature units")
-                      (if defunits
-                          (concat " (default "
-                                  defunits
-                                  "): ")
-                        ": "))
-                     tempunits)))
+                    (completing-read (format-prompt
+                                      (if uoldname
+                                          (concat "Old temperature units: "
+                                                  uoldname
+                                                  ", new units")
+                                        "New temperature units")
+                                      defunits)
+                                     tempunits)))
      (setq unew (math-read-expr (if (string= unew "") defunits unew)))
      (when (eq (car-safe unew) 'error)
        (error "Bad format in units expression: %s" (nth 2 unew)))
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index 6cfbdd5..375b97a 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -224,11 +224,10 @@ HISTORY is a symbol representing a variable to story the 
history in."
 
       ;; @todo - move from () to into the editable area
       (if (string-match ":" prompt)
-         (setq prompt (concat
-                       (substring prompt 0 (match-beginning 0))
-                       " (default " default-as-string ")"
-                       (substring prompt (match-beginning 0))))
-       (setq prompt (concat prompt " (" default-as-string "): "))))
+          (setq prompt (format-prompt
+                        (substring prompt 0 (match-beginning 0))
+                        default-as-string))
+        (setq prompt (format-prompt prompt default-as-string))))
     ;;
     ;; Perform the Completion
     ;;
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 8140035..34a6db5 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1133,7 +1133,7 @@ for the MODE to customize."
 
 (defun customize-read-group ()
   (let ((completion-ignore-case t))
-    (completing-read "Customize group (default emacs): "
+    (completing-read (format-prompt "Customize group" "emacs")
                      obarray
                      (lambda (symbol)
                        (or (and (get symbol 'custom-loads)
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 4b8d271..a1c6316 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -444,10 +444,10 @@ List has a form of (file-name full-file-name 
(attribute-list))."
                          ((eq op-symbol 'chgrp)
                           (file-attribute-group-id
                            (file-attributes default-file 'string))))))
-        (prompt (concat "Change " attribute-name " of %s to"
-                        (if (eq op-symbol 'touch)
-                            " (default now): "
-                          ": ")))
+         (prompt (format-prompt "Change %s of %%s to"
+                                (when (eq op-symbol 'touch)
+                                    "now")
+                                attribute-name))
         (new-attribute (dired-mark-read-string prompt nil op-symbol
                                                arg files default
                                                (cond ((eq op-symbol 'chown)
diff --git a/lisp/dired-x.el b/lisp/dired-x.el
index 7c6f49f..7f889a2 100644
--- a/lisp/dired-x.el
+++ b/lisp/dired-x.el
@@ -554,7 +554,7 @@ If the region is active in Transient Mark mode, operate 
only on
 files in the active region if `dired-mark-region' is non-nil."
   (interactive
    (list (read-regexp
-         "Mark unmarked files matching regexp (default all): "
+          (format-prompt "Mark unmarked files matching regexp" "all")
           nil 'dired-regexp-history)
         nil current-prefix-arg nil))
   (let ((dired-marker-char (if unflag-p ?\s dired-marker-char)))
diff --git a/lisp/emacs-lisp/debug.el b/lisp/emacs-lisp/debug.el
index 0592db8..163528a 100644
--- a/lisp/emacs-lisp/debug.el
+++ b/lisp/emacs-lisp/debug.el
@@ -701,7 +701,8 @@ To specify a nil argument interactively, exit with an empty 
minibuffer."
   (interactive
    (list (let ((name
                (completing-read
-                "Cancel debug on entry to function (default all functions): "
+                 (format-prompt "Cancel debug on entry to function"
+                                "all functions")
                 (mapcar #'symbol-name (debug--function-list)) nil t)))
           (when name
             (unless (string= name "")
@@ -804,7 +805,8 @@ To specify a nil argument interactively, exit with an empty 
minibuffer."
   (interactive
    (list (let ((name
                 (completing-read
-                 "Cancel debug on set for variable (default all variables): "
+                 (format-prompt "Cancel debug on set for variable"
+                                "all variables")
                  (mapcar #'symbol-name (debug--variable-list)) nil t)))
            (when name
              (unless (string= name "")
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 4f3c05b..a38c8bd 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3519,7 +3519,8 @@ The removes the effect of `edebug-on-entry'.  If FUNCTION 
is
 nil, remove `edebug-on-entry' on all functions."
   (interactive
    (list (let ((name (completing-read
-                      "Cancel edebug on entry to (default all functions): "
+                      (format-prompt "Cancel edebug on entry to"
+                                     "all functions")
                       (let ((functions (edebug--edebug-on-entry-functions)))
                         (unless functions
                           (user-error "No functions have `edebug-on-entry'"))
@@ -4548,7 +4549,8 @@ instrumentation for, defaulting to all functions."
         (user-error "Found no functions to remove instrumentation from"))
       (let ((name
              (completing-read
-              "Remove instrumentation from (default all functions): "
+              (format-prompt "Remove instrumentation from"
+                             "all functions")
               functions)))
         (if (and name
                  (not (equal name "")))
diff --git a/lisp/epa.el b/lisp/epa.el
index 57d355c..e4b89e9 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -648,7 +648,7 @@ If SECRET is non-nil, list secret keys instead of public 
keys."
   (setq input (file-name-sans-extension (expand-file-name input)))
   (expand-file-name
    (read-file-name
-    (concat "To file (default " (file-name-nondirectory input) ") ")
+    (format-prompt "To file" (file-name-nondirectory input))
     (file-name-directory input)
     input)))
 
@@ -1236,9 +1236,7 @@ If no one is selected, symmetric encryption will be 
performed.  ")
      (list keys
           (expand-file-name
            (read-file-name
-            (concat "To file (default "
-                    (file-name-nondirectory default-name)
-                    ") ")
+             (format-prompt "To file" (file-name-nondirectory default-name))
             (file-name-directory default-name)
             default-name)))))
   (let ((context (epg-make-context epa-protocol)))
diff --git a/lisp/faces.el b/lisp/faces.el
index 7b96d93..302bfa2 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -1100,7 +1100,7 @@ returned.  Otherwise, DEFAULT is returned verbatim."
   ;; prompt.  If so, remove it.
   (setq prompt (replace-regexp-in-string ": ?\\'" "" prompt))
   (let ((prompt (if default
-                    (format-message "%s (default `%s'): " prompt default)
+                    (format-prompt prompt default)
                   (format "%s: " prompt)))
         aliasfaces nonaliasfaces faces)
     ;; Build up the completion tables.
diff --git a/lisp/format.el b/lisp/format.el
index 71cf885..a2f378e 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -320,7 +320,7 @@ If the format is not specified, attempt a regexp-based 
guess.
 Set `buffer-file-format' to the format used, and call any
 format-specific mode functions."
   (interactive
-   (list (format-read "Translate buffer from format (default guess): ")))
+   (list (format-read (format-prompt "Translate buffer from format" "guess"))))
   (save-excursion
     (goto-char (point-min))
     (format-decode format (buffer-size) t)))
@@ -331,7 +331,7 @@ Arg FORMAT is optional; if omitted the format will be 
determined by looking
 for identifying regular expressions at the beginning of the region."
   (interactive
    (list (region-beginning) (region-end)
-        (format-read "Translate region from format (default guess): ")))
+         (format-read (format-prompt "Translate region from format" "guess"))))
   (save-excursion
     (goto-char from)
     (format-decode format (- to from) nil)))
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 7b6e15d..c2ec3f1 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -3933,8 +3933,8 @@ This format is defined by the `gnus-article-time-format' 
variable."
                      ;; No split name was found.
                      ((null split-name)
                       (read-file-name
-                       (concat prompt " (default "
-                               (file-name-nondirectory default-name) "): ")
+                        (format-prompt prompt
+                                       (file-name-nondirectory default-name))
                        (file-name-directory default-name)
                        default-name))
                      ;; A single group name is returned.
@@ -3943,8 +3943,8 @@ This format is defined by the `gnus-article-time-format' 
variable."
                             (funcall function split-name headers
                                      (symbol-value variable)))
                       (read-file-name
-                       (concat prompt " (default "
-                               (file-name-nondirectory default-name) "): ")
+                        (format-prompt prompt
+                                       (file-name-nondirectory default-name))
                        (file-name-directory default-name)
                        default-name))
                      ;; A single split name was found
@@ -3956,9 +3956,8 @@ This format is defined by the `gnus-article-time-format' 
variable."
                                          (file-name-as-directory name))
                                         ((file-exists-p name) name)
                                         (t gnus-article-save-directory))))
-                        (read-file-name
-                         (concat prompt " (default " name "): ")
-                         dir name)))
+                         (read-file-name (format-prompt prompt name)
+                                         dir name)))
                      ;; A list of splits was found.
                      (t
                       (setq split-name (nreverse split-name))
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index fb28596..5bf2869 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1310,9 +1310,7 @@ SPEC is a predicate specifier that contains stuff like 
`or', `and',
                                     initial-input history def)
   "Call `gnus-completing-read-function'."
   (funcall gnus-completing-read-function
-           (concat prompt (when def
-                            (concat " (default " def ")"))
-                   ": ")
+           (format-prompt prompt def)
            collection require-match initial-input history def))
 
 (defun gnus-emacs-completing-read (prompt collection &optional require-match
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index b08d8c2..7ca43d6 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -5349,7 +5349,7 @@ Otherwise, generate and save a value for 
`canlock-password' first."
                   (zerop
                    (length
                     (setq to (completing-read
-                              "Followups to (default no Followup-To header): "
+                               (format-prompt "Followups to" "no Followup-To 
header")
                               (mapcar #'list
                                       (cons "poster"
                                             (message-tokenize-header
diff --git a/lisp/info.el b/lisp/info.el
index 8c08eae..41889d6 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2604,12 +2604,9 @@ new buffer."
      (if (eq (length completions) 1)
          (setq default (car completions)))
      (if completions
-        (let ((input (completing-read (if default
-                                          (concat
-                                           "Follow reference named (default "
-                                           default "): ")
-                                        "Follow reference named: ")
-                                      completions nil t)))
+         (let ((input (completing-read (format-prompt "Follow reference named"
+                                                      default)
+                                       completions nil t)))
           (list (if (equal input "")
                     default input)
                  current-prefix-arg))
diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el
index 862c577..5cc73e4 100644
--- a/lisp/international/mule-diag.el
+++ b/lisp/international/mule-diag.el
@@ -833,7 +833,7 @@ The IGNORED argument is ignored."
   "Display information about a font whose name is FONTNAME."
   (interactive
    (list (completing-read
-          "Font name (default current choice for ASCII chars): "
+          (format-prompt "Font name" "current choice for ASCII chars")
           (and window-system
                ;; Implied by `window-system'.
                (fboundp 'x-list-fonts)
@@ -1004,7 +1004,7 @@ This shows which font is used for which character(s)."
                          (mapcar 'cdr fontset-alias-alist)))
           (completion-ignore-case t))
        (list (completing-read
-             "Fontset (default used by the current frame): "
+              (format-prompt "Fontset" "used by the current frame")
              fontset-list nil t)))))
   (if (= (length fontset) 0)
       (setq fontset (face-attribute 'default :fontset))
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 50ff307..89ab450 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -917,7 +917,7 @@ The format of KBD-LAYOUT is the same as 
`quail-keyboard-layout'."
 The variable `quail-keyboard-layout-type' holds the currently selected
 keyboard type."
   (interactive
-   (list (completing-read "Keyboard type (default current choice): "
+   (list (completing-read (format-prompt "Keyboard type" "current choice")
                          quail-keyboard-layout-alist
                          nil t)))
   (or (and keyboard-type (> (length keyboard-type) 0))
diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el
index 04e681d..e404288 100644
--- a/lisp/language/cyril-util.el
+++ b/lisp/language/cyril-util.el
@@ -60,7 +60,7 @@ If the argument is nil, we return the display table to its 
standard state."
    (list
     (let* ((completion-ignore-case t))
       (completing-read
-       "Cyrillic language (default nil): "
+       (format-prompt "Cyrillic language" "nil")
        cyrillic-language-alist nil t nil nil nil))))
 
   (or standard-display-table
diff --git a/lisp/mail/rmailkwd.el b/lisp/mail/rmailkwd.el
index 58a8eb7..d8fcc1c 100644
--- a/lisp/mail/rmailkwd.el
+++ b/lisp/mail/rmailkwd.el
@@ -74,12 +74,9 @@ according to the choice made, and returns a symbol."
                (rmail-summary-exists)
                (and (setq old (rmail-get-keywords))
                     (mapc #'rmail-make-label (split-string old ", "))))
-           (completing-read (concat prompt
-                                    (if rmail-last-label
-                                        (concat " (default "
-                                                (symbol-name rmail-last-label)
-                                                "): ")
-                                      ": "))
+            (completing-read (format-prompt prompt
+                                            (and rmail-last-label
+                                                 (symbol-name 
rmail-last-label)))
                             rmail-label-obarray
                             nil
                             nil))))
diff --git a/lisp/mail/rmailmm.el b/lisp/mail/rmailmm.el
index 99bff66..66a1e9a 100644
--- a/lisp/mail/rmailmm.el
+++ b/lisp/mail/rmailmm.el
@@ -254,7 +254,7 @@ TRUNCATED is non-nil if the text of this entity was 
truncated."))
        (unless (y-or-n-p "This entity is truncated; save anyway? ")
          (error "Aborted")))
     (setq filename (expand-file-name
-                   (read-file-name (format "Save as (default: %s): " filename)
+                    (read-file-name (format-prompt "Save as" filename)
                                    directory
                                    (expand-file-name filename directory))
                    directory))
diff --git a/lisp/mail/rmailout.el b/lisp/mail/rmailout.el
index 91f86a2..1f5bb2d 100644
--- a/lisp/mail/rmailout.el
+++ b/lisp/mail/rmailout.el
@@ -107,9 +107,8 @@ error: %S\n"
         (read-file
          (expand-file-name
           (read-file-name
-           (concat "Output message to mail file (default "
-                   (file-name-nondirectory default-file)
-                   "): ")
+            (format-prompt "Output message to mail file"
+                           (file-name-nondirectory default-file))
            (file-name-directory default-file)
            (abbreviate-file-name default-file))
           (file-name-directory default-file))))
diff --git a/lisp/man.el b/lisp/man.el
index 4ef2deac..2bde1fc 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -1786,7 +1786,7 @@ Returns t if section is found, nil otherwise."
                        Man--last-section
                      (car Man--sections)))
           (completion-ignore-case t)
-          (prompt (concat "Go to section (default " default "): "))
+          (prompt (format-prompt "Go to section" default))
           (chosen (completing-read prompt Man--sections
                                    nil nil nil nil default)))
      (list chosen))
@@ -1850,7 +1850,7 @@ Specify which REFERENCE to use; default is based on word 
at point."
             (defaults
               (mapcar 'substring-no-properties
                        (cons default Man--refpages)))
-            (prompt (concat "Refer to (default " default "): "))
+             (prompt (format-prompt "Refer to" default))
             (chosen (completing-read prompt Man--refpages
                                      nil nil nil nil defaults)))
         chosen)))
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index b2577c0..40a1730 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -1918,10 +1918,7 @@ key, a click, or a menu-item"))
   (let* ((default (thing-at-point 'sexp))
          (topic
           (read-from-minibuffer
-           (format "Subject to look up%s: "
-                   (if default
-                       (format " (default \"%s\")" default)
-                     ""))
+           (format-prompt "Subject to look up" default)
            nil nil nil nil default)))
     (list (if (zerop (length topic))
               default
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 56a1d76..876e138 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1230,8 +1230,9 @@ only return the directory part of FILE."
                            ;; found another machine with the same user.
                            ;; Try that account.
                            (read-passwd
-                            (format "passwd for %s@%s (default same as %s@%s): 
"
-                                    user host user other)
+                             (format-prompt "passwd for %s@%s"
+                                            (format "same as %s@%s" user other)
+                                            user host)
                             nil
                             (ange-ftp-lookup-passwd other user))
 
diff --git a/lisp/org/org-capture.el b/lisp/org/org-capture.el
index a9350c5..1756b34 100644
--- a/lisp/org/org-capture.el
+++ b/lisp/org/org-capture.el
@@ -1815,10 +1815,13 @@ by their respective `org-store-link-plist' properties 
if present."
                     ;; Load history list for current prompt.
                     (setq org-capture--prompt-history
                           (gethash prompt org-capture--prompt-history-table))
-                    (push (org-completing-read
-                           (concat (or prompt "Enter string")
-                                   (and default (format " [%s]" default))
-                                   ": ")
+                     (push (org-completing-read
+                            ;; `format-prompt' is new in Emacs 28.1.
+                            (if (fboundp 'format-prompt)
+                                (format-prompt (or prompt "Enter string") 
default)
+                              (concat (or prompt "Enter string")
+                                      (and default (format " [%s]" default))
+                                      ": "))
                            completions
                            nil nil nil 'org-capture--prompt-history default)
                           strings)
diff --git a/lisp/org/org-refile.el b/lisp/org/org-refile.el
index 678759e..73eaad6 100644
--- a/lisp/org/org-refile.el
+++ b/lisp/org/org-refile.el
@@ -640,11 +640,13 @@ this function appends the default value from
               org-refile-target-table))
         (completion-ignore-case t)
         cdef
-        (prompt (concat prompt
-                        (or (and (car org-refile-history)
-                                 (concat " (default " (car org-refile-history) 
")"))
-                            (and (assoc cbnex tbl) (setq cdef cbnex)
-                                 (concat " (default " cbnex ")"))) ": "))
+         (prompt (let ((default (or (car org-refile-history)
+                                    (and (assoc cbnex tbl) (setq cdef cbnex)
+                                         cbnex))))
+                   ;; `format-prompt' is new in Emacs 28.1.
+                   (if (fboundp 'format-prompt)
+                       (format-prompt prompt default)
+                     (concat prompt " (default " default ": "))))
         pa answ parent-target child parent old-hist)
     (setq old-hist org-refile-history)
     (setq answ (funcall cfunc prompt tbl nil (not new-nodes)
diff --git a/lisp/proced.el b/lisp/proced.el
index fec2a29..9a8eaf5 100644
--- a/lisp/proced.el
+++ b/lisp/proced.el
@@ -1772,8 +1772,8 @@ supported but discouraged.  It will be removed in a 
future version of Emacs."
            `(:annotation-function
              ,(lambda (s) (cdr (assoc s proced-signal-list))))))
      (proced-with-processes-buffer process-alist
-       (list (completing-read (concat "Send signal [" pnum
-                                      "] (default TERM): ")
+       (list (completing-read (format-prompt "Send signal [%s]"
+                                             "TERM" pnum)
                               proced-signal-list
                               nil nil nil nil "TERM")
              process-alist))))
@@ -1797,8 +1797,8 @@ supported but discouraged.  It will be removed in a 
future version of Emacs."
              `(:annotation-function
                ,(lambda (s) (cdr (assoc s proced-signal-list))))))
         (proced-with-processes-buffer process-alist
-          (setq signal (completing-read (concat "Send signal [" pnum
-                                                "] (default TERM): ")
+          (setq signal (completing-read (format-prompt "Send signal [%s]"
+                                                       "TERM" pnum)
                                         proced-signal-list
                                         nil nil nil nil "TERM"))))))
 
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index d800365..baee72b 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -702,11 +702,8 @@ BRANCH should be either nil (false branch), t (true 
branch) or `both'."
          (x-popup-menu cpp-button-event
                        (list prompt (cons prompt cpp-face-default-list)))
        (let ((name (car (rassq default cpp-face-default-list))))
-         (cdr (assoc (completing-read (if name
-                                          (concat prompt
-                                                  " (default " name "): ")
-                                        (concat prompt ": "))
-                                      cpp-face-default-list nil t)
+          (cdr (assoc (completing-read (format-prompt "%s" name prompt)
+                                       cpp-face-default-list nil t)
                      cpp-face-all-list))))
       default))
 
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index ab0329d..6e416d0 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -1330,9 +1330,9 @@ Pop to member buffer if no prefix ARG, to tree buffer 
otherwise."
   "Set the indentation width of the tree display."
   (interactive)
   (let ((width (string-to-number (read-string
-                                  (concat "Indentation (default "
-                                          (int-to-string ebrowse--indentation)
-                                          "): ")
+                                  (format-prompt
+                                   "Indentation"
+                                   (int-to-string ebrowse--indentation))
                                   nil nil ebrowse--indentation))))
     (when (cl-plusp width)
       (setq-local ebrowse--indentation width)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index f53b09d..d2ce813 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -292,7 +292,7 @@ file the tag was in."
            (or (locate-dominating-file default-directory "TAGS")
                default-directory)))
      (list (read-file-name
-            "Visit tags table (default TAGS): "
+            (format-prompt "Visit tags table" "TAGS")
             ;; default to TAGS from default-directory up to root.
             default-tag-dir
             (expand-file-name "TAGS" default-tag-dir)
@@ -625,7 +625,7 @@ Returns t if it visits a tags table, or nil if there are no 
more in the list."
                  (car list))
                ;; Finally, prompt the user for a file name.
                (expand-file-name
-                (read-file-name "Visit tags table (default TAGS): "
+                 (read-file-name (format-prompt "Visit tags table" "TAGS")
                                 default-directory
                                 "TAGS"
                                 t))))))
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index ec28507..001989e 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -1057,11 +1057,9 @@ REGEXP is used as a string in the prompt."
               default-extension
               (car grep-files-history)
               (car (car grep-files-aliases))))
-        (files (completing-read
-                (concat "Search for \"" regexp
-                        "\" in files matching wildcard"
-                        (if default (concat " (default " default ")"))
-                        ": ")
+         (files (completing-read
+                 (format-prompt "Search for \"%s\" in files matching wildcard"
+                                default regexp)
                 #'read-file-name-internal
                 nil nil nil 'grep-files-history
                 (delete-dups
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index a18a672..87732c1 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -2456,7 +2456,7 @@ This allows #ifdef VAR to be hidden."
                            (t
                             nil))))
           (var (read-minibuffer "Define what? " default))
-          (val (read-from-minibuffer (format "Set %s to? (default 1): " var)
+          (val (read-from-minibuffer (format-prompt "Set %s to?" "1" var)
                                      nil nil t nil "1")))
      (list var val)))
   (hif-set-var var (or val 1))
diff --git a/lisp/progmodes/pascal.el b/lisp/progmodes/pascal.el
index e6e6e40..5938da5 100644
--- a/lisp/progmodes/pascal.el
+++ b/lisp/progmodes/pascal.el
@@ -1357,9 +1357,7 @@ The default is a name found in the buffer around point."
                      default ""))
         (label
           ;; Do completion with default.
-          (completing-read (if (not (string= default ""))
-                               (concat "Label (default " default "): ")
-                             "Label: ")
+          (completing-read (format-prompt "Label" default)
                            ;; Complete with the defuns found in the
                            ;; current-buffer.
                            (let ((buf (current-buffer)))
diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el
index 74a0237..1181171 100644
--- a/lisp/progmodes/prolog.el
+++ b/lisp/progmodes/prolog.el
@@ -2484,11 +2484,8 @@ Interaction supports completion."
     (if (eq (try-completion default prolog-info-alist) nil)
         (setq default nil))
     ;; Read the PredSpec from the user
-    (completing-read
-     (if (zerop (length default))
-         "Help on predicate: "
-       (concat "Help on predicate (default " default "): "))
-     prolog-info-alist nil t nil nil default)))
+    (completing-read (format-prompt "Help on predicate" default)
+                     prolog-info-alist nil t nil nil default)))
 
 (defun prolog-build-info-alist (&optional verbose)
   "Build an alist of all builtins and library predicates.
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 43ee3c0..b1f61c8 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4773,10 +4773,14 @@ Interactively, prompt for symbol."
   (interactive
    (let ((symbol (python-eldoc--get-symbol-at-point))
          (enable-recursive-minibuffers t))
-     (list (read-string (if symbol
-                            (format "Describe symbol (default %s): " symbol)
-                          "Describe symbol: ")
-                        nil nil symbol))))
+     (list (read-string
+            ;; `format-prompt' is new in Emacs 28.1.
+            (if (fboundp 'format-prompt)
+                (format-prompt "Describe symbol" symbol)
+              (if symbol
+                  (format "Describe symbol (default %s): " symbol)
+                "Describe symbol: "))
+            nil nil symbol))))
   (message (python-eldoc--get-doc-at-point symbol)))
 
 (defun python-describe-at-point (symbol process)
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 02eccb3..283c057 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -3219,14 +3219,7 @@ For both `:file' and `:completion', there can also be a
    symbol
    (let* ((default (plist-get plist :default))
           (last-value (sql-default-value symbol))
-          (prompt-def
-           (if default
-               (if (string-match "\\(\\):[ \t]*\\'" prompt)
-                   (replace-match (format " (default \"%s\")" default) t t 
prompt 1)
-                 (replace-regexp-in-string "[ \t]*\\'"
-                                           (format " (default \"%s\") " 
default)
-                                           prompt t t))
-             prompt))
+          (prompt-def (format-prompt prompt default))
           (use-dialog-box nil))
      (cond
       ((plist-member plist :file)
@@ -3311,7 +3304,7 @@ function like this: (sql-get-login \\='user \\='password 
\\='database)."
     (let ((plist (cdr-safe w)))
       (pcase (or (car-safe w) w)
         ('user
-         (sql-get-login-ext 'sql-user "User: " 'sql-user-history plist))
+         (sql-get-login-ext 'sql-user "User" 'sql-user-history plist))
 
         ('password
          (setq-default sql-password
@@ -3330,14 +3323,14 @@ function like this: (sql-get-login \\='user 
\\='password \\='database)."
                          (read-passwd "Password: " nil (sql-default-value 
'sql-password)))))
 
         ('server
-         (sql-get-login-ext 'sql-server "Server: " 'sql-server-history plist))
+         (sql-get-login-ext 'sql-server "Server" 'sql-server-history plist))
 
         ('database
-         (sql-get-login-ext 'sql-database "Database: "
+         (sql-get-login-ext 'sql-database "Database"
                             'sql-database-history plist))
 
         ('port
-         (sql-get-login-ext 'sql-port "Port: "
+         (sql-get-login-ext 'sql-port "Port"
                             nil (append '(:number t) plist)))))))
 
 (defun sql-find-sqli-buffer (&optional product connection)
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index d98230d..5ef382b 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -5478,8 +5478,11 @@ becomes:
                     (let* ((pop-up-windows t))
                       (let ((name (expand-file-name
                                    (read-file-name
-                                    (format "Find this error in: (default %s) "
-                                            file)
+                                    ;; `format-prompt' is new in Emacs 28.1.
+                                    (if (fboundp 'format-prompt)
+                                        (format-prompt "Find this error in" 
file)
+                                      (format "Find this error in (default 
%s): "
+                                              file))
                                     nil ;; dir
                                     file t))))
                         (setq buffer
@@ -7863,14 +7866,14 @@ If search fails, other files are checked based on
   (let* ((default (verilog-get-default-symbol))
         ;; The following variable is used in verilog-comp-function
         (verilog-buffer-to-use (current-buffer))
-        (label (if (not (string= default ""))
-                   ;; Do completion with default
-                   (completing-read (concat "Goto-Label: (default "
-                                            default ") ")
-                                    #'verilog-comp-defun nil nil "")
-                 ;; There is no default value. Complete without it
-                 (completing-read "Goto-Label: "
-                                  #'verilog-comp-defun nil nil "")))
+         (label
+          (completing-read (cond ((fboundp 'format-prompt)
+                                  ;; `format-prompt' is new in Emacs 28.1.
+                                  (format-prompt "Goto-Label" default))
+                                 ((not (string= default ""))
+                                  (concat "Goto-Label (default " default "): 
"))
+                                 (t "Goto-Label: "))
+                           #'verilog-comp-defun nil nil ""))
         pt)
     ;; Make sure library paths are correct, in case need to resolve module
     (verilog-auto-reeval-locals)
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 267ee16..210fc2b 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1310,12 +1310,17 @@ definitions."
                (xref--prompt-p this-command))
            (let ((id
                   (completing-read
-                   (if def
-                       (format "%s (default %s): "
-                               (substring prompt 0 (string-match
-                                                    "[ :]+\\'" prompt))
-                               def)
-                     prompt)
+                   ;; `format-prompt' is new in Emacs 28.1
+                   (if (fboundp 'format-prompt)
+                       (format-prompt (substring prompt 0 (string-match
+                                                           "[ :]+\\'" prompt))
+                                      def)
+                     (if def
+                         (format "%s (default %s): "
+                                 (substring prompt 0 (string-match
+                                                      "[ :]+\\'" prompt))
+                                 def)
+                       prompt))
                    (xref-backend-identifier-completion-table backend)
                    nil nil nil
                    'xref--read-identifier-history def)))
diff --git a/lisp/ses.el b/lisp/ses.el
index ea96629..51843ea 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -3774,7 +3774,9 @@ function is redefined."
      (setq name (intern name))
      (let* ((cur-printer (gethash name ses--local-printer-hashmap))
             (default (and cur-printer (ses--locprn-def cur-printer))))
-            (setq def (ses-read-printer (format "Enter definition of printer 
%S" name)
+            (setq def (ses-read-printer (format-prompt
+                                         "Enter definition of printer %S"
+                                         default name)
                                         default)))
             (list name def)))
 
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index c42286e..25f0c35 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -2840,9 +2840,8 @@ Returns a list of strings."
           (if (memq system-type '(windows-nt ms-dos))
               (artist-figlet-get-font-list-windows)
             (artist-figlet-get-font-list)))
-        (font (completing-read (concat "Select font (default "
-                                       artist-figlet-default-font
-                                       "): ")
+         (font (completing-read (format-prompt "Select font"
+                                               artist-figlet-default-font)
                                (mapcar
                                 (lambda (font) (cons font font))
                                 avail-fonts))))
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index 6fd66b2..5fba93c 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -2457,7 +2457,7 @@ Only applies the FSPEC to the args part of FORMAT."
          (default (tex-compile-default fspec)))
      (list default-directory
           (completing-read
-           (format "Command [%s]: " (tex-summarize-command default))
+            (format-prompt "Command" (tex-summarize-command default))
            (mapcar (lambda (x)
                      (list (tex-format-cmd (eval (car x) t) fspec)))
                    tex-compile-commands)
diff --git a/lisp/vc/diff.el b/lisp/vc/diff.el
index 352fa69..4061fed 100644
--- a/lisp/vc/diff.el
+++ b/lisp/vc/diff.el
@@ -96,15 +96,15 @@ Non-interactively, OLD and NEW may each be a file or a 
buffer."
   (interactive
    (let* ((newf (if (and buffer-file-name (file-exists-p buffer-file-name))
                    (read-file-name
-                    (concat "Diff new file (default "
-                            (file-name-nondirectory buffer-file-name) "): ")
+                     (format-prompt "Diff new file"
+                                    (file-name-nondirectory buffer-file-name))
                     nil buffer-file-name t)
                  (read-file-name "Diff new file: " nil nil t)))
           (oldf (file-newest-backup newf)))
      (setq oldf (if (and oldf (file-exists-p oldf))
                    (read-file-name
-                    (concat "Diff original file (default "
-                            (file-name-nondirectory oldf) "): ")
+                     (format-prompt "Diff original file"
+                                    (file-name-nondirectory oldf))
                     (file-name-directory oldf) oldf t)
                  (read-file-name "Diff original file: "
                                  (file-name-directory newf) nil t)))
diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index 4135e8b..7622cf4 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -503,15 +503,11 @@ are two possible targets for this %spatch.  However, 
these files do not exist."
        patch-file-name)
     (setq patch-file-name
          (read-file-name
-          (format "Patch is in file%s: "
-                  (cond ((and buffer-file-name
-                              (equal (expand-file-name dir)
-                                     (file-name-directory buffer-file-name)))
-                         (concat
-                          " (default "
-                          (file-name-nondirectory buffer-file-name)
-                          ")"))
-                        (t "")))
+           (format-prompt "Patch is in file"
+                          (and buffer-file-name
+                               (equal (expand-file-name dir)
+                                      (file-name-directory buffer-file-name))
+                               (file-name-nondirectory buffer-file-name)))
           dir buffer-file-name 'must-match))
     (if (file-directory-p patch-file-name)
        (error "Patch file cannot be a directory: %s" patch-file-name)
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index 9016d1d..346c3c0 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -3103,11 +3103,7 @@ Hit \\[ediff-recenter] to reset the windows afterward."
                (lambda () (when defaults
                             (setq minibuffer-default defaults)))
              (read-file-name
-              (format "%s%s "
-                      prompt
-                      (cond (default-file
-                              (concat " (default " default-file "):"))
-                            (t (concat " (default " default-dir "):"))))
+               (format-prompt prompt (or default-file default-dir))
               default-dir
               (or default-file default-dir)
               t                        ; must match, no-confirm
diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el
index bbc81ef..8f662e8 100644
--- a/lisp/vc/pcvs.el
+++ b/lisp/vc/pcvs.el
@@ -1284,8 +1284,7 @@ marked instead.  A directory can never be marked."
       (intern
        (upcase
        (completing-read
-        (concat
-         "Mark files in state" (if default (concat " [" default "]")) ": ")
+         (format-prompt "Mark files in state" default)
         (mapcar (lambda (x)
                   (list (downcase (symbol-name (car x)))))
                 cvs-states)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 5b259fc..edc4169 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1863,13 +1863,10 @@ Return t if the buffer had changes, nil otherwise."
                                             (vc-working-revision first))))
       (when (string= rev1-default "") (setq rev1-default nil))))
     ;; construct argument list
-    (let* ((rev1-prompt (if rev1-default
-                            (concat "Older revision (default "
-                                    rev1-default "): ")
-                          "Older revision: "))
-           (rev2-prompt (concat "Newer revision (default "
-                                ;; (or rev2-default
-                                "current source): "))
+    (let* ((rev1-prompt (format-prompt "Older revision" rev1-default))
+           (rev2-prompt (format-prompt "Newer revision"
+                                       ;; (or rev2-default
+                                       "current source"))
            (rev1 (vc-read-revision rev1-prompt files backend rev1-default))
            (rev2 (vc-read-revision rev2-prompt files backend nil))) ;; 
rev2-default
       (when (string= rev1 "") (setq rev1 nil))
@@ -2082,7 +2079,7 @@ If `F.~REV~' already exists, use it instead of checking 
it out again."
    (with-current-buffer (or (buffer-base-buffer) (current-buffer))
      (vc-ensure-vc-buffer)
      (list
-      (vc-read-revision "Revision to visit (default is working revision): "
+      (vc-read-revision (format-prompt "Revision to visit" "working revision")
                         (list buffer-file-name)))))
   (set-buffer (or (buffer-base-buffer) (current-buffer)))
   (vc-ensure-vc-buffer)
@@ -2378,7 +2375,7 @@ This function runs the hook `vc-retrieve-tag-hook' when 
finished."
              (read-directory-name "Directory: " default-directory nil t))))
      (list
       dir
-      (vc-read-revision "Tag name to retrieve (default latest revisions): "
+      (vc-read-revision (format-prompt "Tag name to retrieve" "latest 
revisions")
                         (list dir)
                         (vc-responsible-backend dir)))))
   (let* ((backend (vc-responsible-backend dir))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 05606fb..fb06a95 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -3325,7 +3325,7 @@ It reads a file name from an editable text field."
 ;;;     (file (file-name-nondirectory value))
 ;;;     (menu-tag (widget-apply widget :menu-tag-get))
 ;;;     (must-match (widget-get widget :must-match))
-;;;     (answer (read-file-name (concat menu-tag " (default " value "): ")
+;;;     (answer (read-file-name (format-prompt menu-tag value)
 ;;;                             dir nil must-match file)))
 ;;;    (widget-value-set widget (abbreviate-file-name answer))
 ;;;    (widget-setup)



reply via email to

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