From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gabriel Newsgroups: gmane.emacs.bugs Subject: bug#47286: 28.0.50; [PATCH] Replace "(default %s)" with 'format-prompt' Date: Tue, 23 Mar 2021 00:47:55 -0300 Message-ID: References: <87o8fc1p1q.fsf@gmail.com> <8735wnhute.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8742"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: 47286@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Mar 23 04:49:13 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lOY2a-0002A7-RC for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 23 Mar 2021 04:49:13 +0100 Original-Received: from localhost ([::1]:45448 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lOY2Z-0002qd-F9 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 22 Mar 2021 23:49:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52310) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOY2R-0002qJ-7Y for bug-gnu-emacs@gnu.org; Mon, 22 Mar 2021 23:49:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47684) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lOY2Q-0000Ty-Ed for bug-gnu-emacs@gnu.org; Mon, 22 Mar 2021 23:49:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lOY2Q-0000aU-BR for bug-gnu-emacs@gnu.org; Mon, 22 Mar 2021 23:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Gabriel Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 23 Mar 2021 03:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47286 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.16164712972206 (code B ref -1); Tue, 23 Mar 2021 03:49:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 23 Mar 2021 03:48:17 +0000 Original-Received: from localhost ([127.0.0.1]:59230 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOY1f-0000ZT-Gv for submit@debbugs.gnu.org; Mon, 22 Mar 2021 23:48:16 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:47056) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lOY1b-0000ZK-KW for submit@debbugs.gnu.org; Mon, 22 Mar 2021 23:48:13 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOY1a-0002oY-Sa for bug-gnu-emacs@gnu.org; Mon, 22 Mar 2021 23:48:11 -0400 Original-Received: from mail-dm6nam10olkn2035.outbound.protection.outlook.com ([40.92.41.35]:12636 helo=NAM10-DM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lOY1V-0008Nz-Ku for bug-gnu-emacs@gnu.org; Mon, 22 Mar 2021 23:48:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W+Kl3t1WII2rMx1JTxKeIrhFVDIyyIPSGNJ4wwFRt6Jl93uAyIwaCqrw1Rt13VCTwSPVTe4E8+Cp86bAPevvOPotTWpgOJOso3DwMa9kLkbD3f4jpceLrgxTsSIHmlzIaxrn6AkEmGk9/HmeYb4z/9JIpEIlIPkR4gdFIYqbkGEjg7xFBdH+IMM3by2uVyfyFcfGoss7l4rhQ33JJZoCWI8FsU8focjRtMZcE6vxqPBIGiU/2bV/5Ex9JnVL8WKyiGAvKAKZBECkNYM7Ig81+7MDBkLz4clE6jbJ3f/M6kTnNmWWwFxoMggspmMD+UUIQ2qQp7LujTp9pGZ5JkurtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yM9oNTWrC8yWMTXoNuJOSndwe6rfH4Ml8I7zwLwPc3U=; b=lxTI5ML5OCiN1BespNwbA21GSl/kQJXR9R8SichFFNco1EibOgxlmGkOexeU927LWh+IU6hXYhIwMEk/Ln6Q066rbQrojG/AAqIgUHELOGEcFytoVbA9b0nHcq044MqY5wpLLsA9Vh6DinsxAudem3pFshIxfly55Z9mnu5ptoyJEjrkoXY4yd9QAucm4fX9kFpwfgDxXaco7App9HHoTzS7QafVVi37JimKEZ7zAqQ6zdgvUn2d2GzEhJ7abjZTNNUAfL/maKS/fRwZTcWAMuW5jmai+811dtTRFcXHHr7MJtrgdSizc9fCEC6VwlK08UrxzchFutHGxYqdW6HTJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yM9oNTWrC8yWMTXoNuJOSndwe6rfH4Ml8I7zwLwPc3U=; b=EUJUPzq1OkGcqmhci6KO1zofKV1wXU89E1X0jlgjFn26/ZNNUriGFNitbMqgx+8vcGWAgNA6il+6lX5wHisTXJ7FMRAutnVRH+xizAytkuzucyzeDCKBzGoFKA46JkkVPDGUgKbw/svtOHrR0Ybv1bea0AIf/maYp7qNQD2NZMt3z64VcBnjo2BegUxl61eHGbJ/fUOV1eFAc5LzPAQU2k2Aa/kOU05nLCFy7Pfu5U/+2ycVBP0aojJStiwz4vk4f7H0MPMup1b8y9ejsvY17L6tSGDIYca6rnIxnD3F9cVjhCYkFWiNk9GVa8jFLMWjRywB51KAACXcd6kw7jZBCA== Original-Received: from BN7NAM10FT020.eop-nam10.prod.protection.outlook.com (2a01:111:e400:7e8f::43) by BN7NAM10HT192.eop-nam10.prod.protection.outlook.com (2a01:111:e400:7e8f::468) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Tue, 23 Mar 2021 03:48:01 +0000 Original-Received: from CH2PR01MB5879.prod.exchangelabs.com (2a01:111:e400:7e8f::4e) by BN7NAM10FT020.mail.protection.outlook.com (2a01:111:e400:7e8f::111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Tue, 23 Mar 2021 03:48:01 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:9BCA299C0A2F3E2ED1399E3F42C960AF4DF9B30663B2443CCE5CABA13C4F8ED7; UpperCasedChecksum:7E8C1E76DCB39AE825A8DC3A3F1DC85F9DFF430546BFE7C50B56D43B0CF1C243; SizeAsReceived:7635; Count:45 Original-Received: from CH2PR01MB5879.prod.exchangelabs.com ([fe80::592f:9a58:d8cd:d9c9]) by CH2PR01MB5879.prod.exchangelabs.com ([fe80::592f:9a58:d8cd:d9c9%7]) with mapi id 15.20.3955.025; Tue, 23 Mar 2021 03:48:01 +0000 In-Reply-To: <8735wnhute.fsf@gnus.org> (Lars Ingebrigtsen's message of "Mon, 22 Mar 2021 20:06:37 +0100") X-TMN: [G8/wX3bvm0vNfJ1L+Jvlc0J61bIxzdwR+Q6+0p77/jWMyXZ5S3kthGqmKgBmF7Xb] X-ClientProxiedBy: CPYP284CA0050.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:81::19) To CH2PR01MB5879.prod.exchangelabs.com (2603:10b6:610:3c::12) X-Microsoft-Original-Message-ID: <87ft0msf84.fsf@hotmail.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from precision5540 (2804:431:c7f3:ee67:7c97:80e4:fd3:7915) by CPYP284CA0050.BRAP284.PROD.OUTLOOK.COM (2603:10d6:103:81::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Tue, 23 Mar 2021 03:47:58 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 45 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: e76493ee-69e9-4241-57ba-08d8edae7374 X-MS-TrafficTypeDiagnostic: BN7NAM10HT192: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L6GLkfzHciAxpkaXi8U8uPFAFZaEsQxwMfAaAl3oJLGO+pjL6Nwg71q98ZLJrIWtkIa5DpYU8s80PBuQsbOm66ISyFl6nNX0Q72TQz3hqj0Mq/gKc8zf9c8DsGB1ZPKeEE0DNtCYYf/vFz27rpwqIlKRSJYPtTDcNV5HDR0iBVJ4VWcFqwLLfO+7/vNsVRErVgWodx71Uv+MkwewSh6qfZ59Yhp86MiEf3Tmr9BhtlAc4Qn0dNrBsWnb9JMltcOAEARRzEOR/qkpbperyt7AE2lI6PvhSHFdmvznJzqZC48TtxhcewuBr8KMwoF40kOBKmut3+ggag2VqwzGXe9sbfa47uE9clcZ7g4DXzf2dNoQgFznVgtf97dL3xcEXoMrFmNNZmaBYCL4uGy0JkmvLw== X-MS-Exchange-AntiSpam-MessageData: 6yr9quIVT/gOs2UWvdORl+Ls84Y8p+/INGbyR9jdoD4ZFYHDKbYpzIxKJpD4jNiApuF8LEWTM0LFsDKq8+sr+NNrX4JCGPL7yieiZsZNq9N1HVcEGZH3GLe6QaZpR8VWMMJKr8xdyvxXrCpaBT2Bm6P49RNek6VZCKYOOkImwOJ7aPlySIUHDwDo07auqm2EGk/6CnmfYrS82ihX5sjx2w== X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: e76493ee-69e9-4241-57ba-08d8edae7374 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2021 03:48:01.6456 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: BN7NAM10FT020.eop-nam10.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7NAM10HT192 Received-SPF: pass client-ip=40.92.41.35; envelope-from=gabriel376@hotmail.com; helo=NAM10-DM6-obe.outbound.protection.outlook.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:202878 Archived-At: --=-=-= Content-Type: text/plain > > The files that have a line like > > ;; Package-Requires: ((emacs "26.1") (xref "1.0.2")) > > or similar should be handled with more care, yes -- they have to be > backwards-compatible, and `format-prompt' is new in Emacs 28. So if you > could re-spin the patch without changes to files like that, I'll get it > applied (it looks good otherwise). > > There are some packages that are maintained for older Emacs versions, > too, but we unfortunately have no markup to say that explicitly. > Looking over the list, I think this affects only these two files, and > should also be removed from the patch: > > lisp/progmodes/cc-styles.el > lisp/progmodes/verilog-mode.el Hi Lars, Thanks so much for your review. Here is an updated patch that removes the mentioned files (project.el, cc-styles.el and verilog-mode.el) and updates the 'format-prompt' function with the suggestion from Dmitry Gutov to consider an empty DEFAULT as nil. Let me know if something could be improved. --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Replace-default-s-with-format-prompt.patch >From 396112bddddbb27df17c812d0e5d211098a3638b Mon Sep 17 00:00:00 2001 From: Gabriel do Nascimento Ribeiro Date: Mon, 22 Mar 2021 20:46:02 -0300 Subject: [PATCH] Replace "(default %s)" with 'format-prompt' * lisp/cmuscheme.el (scheme-load-file, scheme-compile-file): * lisp/comint.el (comint-get-source): * lisp/emulation/viper-cmd.el (viper-quote-region, viper-kill-buffer) (viper-query-replace, viper-read-string-with-history): * lisp/eshell/esh-mode.el (eshell-find-tag): * lisp/gnus/gnus-sum.el (gnus-articles-to-read) (gnus-summary-search-article-forward) (gnus-summary-search-article-backward): * lisp/international/mule-cmds.el (set-input-method, toggle-input-method) (describe-input-method, set-language-environment) (describe-language-environment): * lisp/mh-e/mh-gnus.el (mh-mml-minibuffer-read-disposition): * lisp/mh-e/mh-letter.el (mh-insert-letter): * lisp/mh-e/mh-mime.el (mh-display-with-external-viewer) (mh-mime-save-parts, mh-mh-forward-message) (mh-mml-query-cryptographic-method, mh-minibuffer-read-type): * lisp/mh-e/mh-seq.el (mh-read-seq, mh-read-range): * lisp/mh-e/mh-utils.el (mh-prompt-for-folder): * lisp/progmodes/etags.el (find-tag-tag): (find-tag-noselect, find-tag, find-tag-other-window) (find-tag-other-frame, find-tag-regexp): * lisp/progmodes/idlwave.el (idlwave-find-module): * lisp/progmodes/inf-lisp.el (lisp-load-file, lisp-compile-file): * lisp/progmodes/tcl.el (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/xref.el (xref--read-identifier): (xref-find-definitions, xref-find-definitions-other-window) (xref-find-definitions-other-frame, xref-find-references): * lisp/ses.el (ses-read-printer): (ses-read-cell-printer, ses-read-column-printer) (ses-read-default-printer, ses-define-local-printer): * lisp/subr.el (read-number): * lisp/term.el (term-get-source): * src/minibuf.c (read-buffer): Remove prompt suffix and use 'format-prompt'. * lisp/minibuffer.el (format-prompt): Ignore DEFAULT empty strings. --- lisp/cmuscheme.el | 4 ++-- lisp/comint.el | 6 ++---- lisp/emulation/viper-cmd.el | 31 ++++++++++++------------------- lisp/eshell/esh-mode.el | 2 +- lisp/gnus/gnus-sum.el | 31 ++++++++++++++----------------- lisp/international/mule-cmds.el | 10 +++++----- lisp/mh-e/mh-gnus.el | 2 +- lisp/mh-e/mh-letter.el | 5 +---- lisp/mh-e/mh-mime.el | 20 +++++++------------- lisp/mh-e/mh-seq.el | 16 +++++----------- lisp/mh-e/mh-utils.el | 7 +++---- lisp/minibuffer.el | 5 +++-- lisp/progmodes/etags.el | 16 ++++++---------- lisp/progmodes/idlwave.el | 2 +- lisp/progmodes/inf-lisp.el | 4 ++-- lisp/progmodes/tcl.el | 4 ++-- lisp/progmodes/xref.el | 15 +++++---------- lisp/ses.el | 12 +++++------- lisp/subr.el | 4 ++-- lisp/term.el | 6 ++---- src/minibuf.c | 4 ++-- 21 files changed, 83 insertions(+), 123 deletions(-) diff --git a/lisp/cmuscheme.el b/lisp/cmuscheme.el index 772891d5d3..d43cdb15c0 100644 --- a/lisp/cmuscheme.el +++ b/lisp/cmuscheme.el @@ -421,7 +421,7 @@ scheme-prev-l/c-dir/file (defun scheme-load-file (file-name) "Load a Scheme file FILE-NAME into the inferior Scheme process." - (interactive (comint-get-source "Load Scheme file: " scheme-prev-l/c-dir/file + (interactive (comint-get-source "Load Scheme file" scheme-prev-l/c-dir/file scheme-source-modes t)) ; t because `load' ; needs an exact name (comint-check-source file-name) ; Check to see if buffer needs saved. @@ -433,7 +433,7 @@ scheme-load-file (defun scheme-compile-file (file-name) "Compile a Scheme file FILE-NAME in the inferior Scheme process." - (interactive (comint-get-source "Compile Scheme file: " + (interactive (comint-get-source "Compile Scheme file" scheme-prev-l/c-dir/file scheme-source-modes nil)) ; nil because COMPILE doesn't diff --git a/lisp/comint.el b/lisp/comint.el index 65072b0137..b04d404676 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -2946,7 +2946,7 @@ comint-get-source then the filename reader will only accept a file that exists. A typical use: - (interactive (comint-get-source \"Compile file: \" prev-lisp-dir/file + (interactive (comint-get-source \"Compile file\" prev-lisp-dir/file \\='(lisp-mode) t))" (let* ((def (comint-source-default prev-dir/file source-modes)) (stringfile (comint-extract-string)) @@ -2959,9 +2959,7 @@ comint-get-source (car def))) (deffile (if sfile-p (file-name-nondirectory stringfile) (cdr def))) - (ans (read-file-name (if deffile (format "%s(default %s) " - prompt deffile) - prompt) + (ans (read-file-name (format-prompt prompt deffile) defdir (concat defdir deffile) mustmatch-p))) diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el index 42d6c1eb19..728f790a96 100644 --- a/lisp/emulation/viper-cmd.el +++ b/lisp/emulation/viper-cmd.el @@ -1786,7 +1786,7 @@ viper-quote-region (do-not-change-default t)) (setq quote-str (viper-read-string-with-history - "Quote string: " + "Quote string" nil 'viper-quote-region-history ;; FIXME: Use comment-region. @@ -1995,24 +1995,17 @@ viper-read-string-with-history #'viper-minibuffer-standard-hook (if (or (not (listp old)) (eq (car old) 'lambda)) (list old) old)))) - (val "") - (padding "") - temp-msg) + (val "")) (setq keymap (or keymap minibuffer-local-map) initial (or initial "") - viper-initial initial - temp-msg (if default - (format "(default %s) " default) - "")) + viper-initial initial) (setq viper-incomplete-ex-cmd nil) - (setq val (read-from-minibuffer prompt - (concat temp-msg initial val padding) - keymap nil history-var)) - (setq minibuffer-setup-hook nil - padding (viper-array-to-string (this-command-keys)) - temp-msg "") + (setq val (read-from-minibuffer (format-prompt prompt default) + nil + keymap nil history-var default)) + (setq minibuffer-setup-hook nil) ;; the following tries to be smart about what to put in history (if (not (string= val (car (symbol-value history-var)))) (push val (symbol-value history-var))) @@ -3825,7 +3818,7 @@ viper-kill-buffer (let (buffer buffer-name) (setq buffer-name (funcall viper-read-buffer-function - (format "Kill buffer (%s): " + (format-prompt "Kill buffer" (buffer-name (current-buffer))))) (setq buffer (if (null buffer-name) @@ -4171,8 +4164,8 @@ viper-query-replace (interactive) (let (str) (setq str (viper-read-string-with-history - (if viper-re-query-replace "Query replace regexp: " - "Query replace: ") + (if viper-re-query-replace "Query replace regexp" + "Query replace") nil ; no initial 'viper-replace1-history (car viper-replace1-history) ; default @@ -4187,7 +4180,7 @@ viper-query-replace (query-replace-regexp str (viper-read-string-with-history - (format-message "Query replace regexp `%s' with: " str) + (format-message "Query replace regexp `%s' with" str) nil ; no initial 'viper-replace1-history (car viper-replace1-history) ; default @@ -4195,7 +4188,7 @@ viper-query-replace (query-replace str (viper-read-string-with-history - (format-message "Query replace `%s' with: " str) + (format-message "Query replace `%s' with" str) nil ; no initial 'viper-replace1-history (car viper-replace1-history) ; default diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index d29b010ea0..f9dbce9770 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -458,7 +458,7 @@ eshell-find-tag (let ((inhibit-read-only t) (no-default (eobp)) (find-tag-default-function 'ignore)) - (setq tagname (car (find-tag-interactive "Find tag: " no-default))) + (setq tagname (car (find-tag-interactive "Find tag" no-default))) (with-suppressed-warnings ((obsolete find-tag)) (find-tag tagname next-p regexp-p)))) diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 97da550353..c30f9a5f35 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el @@ -5977,14 +5977,15 @@ gnus-articles-to-read (input (read-string (if only-read-p - (format - "How many articles from %s (available %d, default %d): " - (gnus-group-real-name gnus-newsgroup-name) - number default) - (format - "How many articles from %s (%d default): " - (gnus-group-real-name gnus-newsgroup-name) - default)) + (format-prompt + "How many articles from %s (available %d)" + default + (gnus-group-real-name gnus-newsgroup-name) + number) + (format-prompt + "How many articles from %s" + default + (gnus-group-real-name gnus-newsgroup-name))) nil nil (number-to-string default)))) @@ -9514,11 +9515,9 @@ gnus-summary-search-article-forward (interactive (list (read-string - (format "Search article %s (regexp%s): " - (if current-prefix-arg "backward" "forward") - (if gnus-last-search-regexp - (concat ", default " gnus-last-search-regexp) - ""))) + (format-prompt "Search article %s (regexp)" + gnus-last-search-regexp + (if current-prefix-arg "backward" "forward"))) current-prefix-arg) gnus-summary-mode) (if (string-equal regexp "") @@ -9537,10 +9536,8 @@ gnus-summary-search-article-backward (interactive (list (read-string - (format "Search article backward (regexp%s): " - (if gnus-last-search-regexp - (concat ", default " gnus-last-search-regexp) - "")))) + (format-prompt "Search article backward (regexp)" + gnus-last-search-regexp))) gnus-summary-mode) (gnus-summary-search-article-forward regexp 'backward)) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index e4bdf50f52..743b638d06 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -1524,7 +1524,7 @@ set-input-method (interactive (let* ((default (or (car input-method-history) default-input-method))) (list (read-input-method-name - (if default "Select input method (default %s): " "Select input method: ") + (format-prompt "Select input method" default) default t) t))) (activate-input-method input-method) @@ -1569,7 +1569,7 @@ toggle-input-method (if (or arg (not default)) (progn (read-input-method-name - (if default "Input method (default %s): " "Input method: " ) + (format-prompt "Input method" default) default t)) default)) (unless default-input-method @@ -1620,7 +1620,7 @@ describe-input-method "Describe input method INPUT-METHOD." (interactive (list (read-input-method-name - "Describe input method (default current choice): "))) + (format-prompt "Describe input method" current-input-method)))) (if (and input-method (symbolp input-method)) (setq input-method (symbol-name input-method))) (help-setup-xref (list #'describe-input-method @@ -1929,7 +1929,7 @@ set-language-environment the new language environment, it runs `set-language-environment-hook'." (interactive (list (read-language-name nil - "Set language environment (default English): "))) + (format-prompt "Set language environment" "English")))) (if language-name (if (symbolp language-name) (setq language-name (symbol-name language-name))) @@ -2144,7 +2144,7 @@ describe-language-environment (interactive (list (read-language-name 'documentation - "Describe language environment (default current choice): "))) + (format-prompt "Describe language environment" current-language-environment)))) (if (null language-name) (setq language-name current-language-environment)) (if (or (null language-name) diff --git a/lisp/mh-e/mh-gnus.el b/lisp/mh-e/mh-gnus.el index 6a9851662a..7898d7eece 100644 --- a/lisp/mh-e/mh-gnus.el +++ b/lisp/mh-e/mh-gnus.el @@ -129,7 +129,7 @@ mh-mml-minibuffer-read-disposition (unless default (setq default (mml-content-disposition type filename))) (let ((disposition (completing-read - (format "Disposition (default %s): " default) + (format-prompt "Disposition" default) '(("attachment") ("inline") ("")) nil t nil nil default))) (if (not (equal disposition "")) diff --git a/lisp/mh-e/mh-letter.el b/lisp/mh-e/mh-letter.el index f5ad73d800..107a0ae5e4 100644 --- a/lisp/mh-e/mh-letter.el +++ b/lisp/mh-e/mh-letter.el @@ -390,10 +390,7 @@ mh-insert-letter (or mh-sent-from-msg (nth 0 (mh-translate-range folder "cur"))) (nth 0 (mh-translate-range folder "cur")))) (message - (read-string (concat "Message number" - (or (and default - (format " (default %d): " default)) - ": ")) + (read-string (format-prompt "Message number" default) nil nil (if (numberp default) (int-to-string default) diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el index 70df9e6b0f..df3c711e3d 100644 --- a/lisp/mh-e/mh-mime.el +++ b/lisp/mh-e/mh-mime.el @@ -259,9 +259,7 @@ mh-display-with-external-viewer (methods (mapcar (lambda (x) (list (cdr (assoc 'viewer x)))) (mailcap-mime-info type 'all))) (def (caar methods)) - (prompt (format "Viewer%s: " (if def - (format " (default %s)" def) - ""))) + (prompt (format-prompt "Viewer" def)) (method (completing-read prompt methods nil nil nil nil def)) (folder mh-show-folder-buffer) (buffer-read-only nil)) @@ -395,9 +393,9 @@ mh-mime-save-parts ((and (or prompt (equal t mh-mime-save-parts-default-directory)) mh-mime-save-parts-directory) - (read-directory-name (format - "Store in directory (default %s): " - mh-mime-save-parts-directory) + (read-directory-name (format-prompt + "Store in directory" + mh-mime-save-parts-directory) "" mh-mime-save-parts-directory t "")) ((stringp mh-mime-save-parts-default-directory) mh-mime-save-parts-default-directory) @@ -1258,11 +1256,7 @@ mh-mh-forward-message (interactive (list (mml-minibuffer-read-description) (mh-prompt-for-folder "Message from" mh-sent-from-folder nil) - (read-string (concat "Messages" - (if (numberp mh-sent-from-msg) - (format " (default %d): " - mh-sent-from-msg) - ": "))))) + (read-string (format-prompt "Messages" mh-sent-from-msg)))) (beginning-of-line) (insert "#forw [") (and description @@ -1596,7 +1590,7 @@ mh-mml-query-cryptographic-method (if current-prefix-arg (let ((def (or (car mh-mml-cryptographic-method-history) mh-mml-method-default))) - (completing-read (format "Method (default %s): " def) + (completing-read (format-prompt "Method" def) '(("pgp") ("pgpmime") ("smime")) nil t nil 'mh-mml-cryptographic-method-history def)) mh-mml-method-default)) @@ -1731,7 +1725,7 @@ mh-minibuffer-read-type (type (or (and (not (equal probed-type "application/octet-stream")) probed-type) (completing-read - (format "Content type (default %s): " default) + (format-prompt "Content type" default) (mapcar #'list (mailcap-mime-types)))))) (if (not (equal type "")) type diff --git a/lisp/mh-e/mh-seq.el b/lisp/mh-e/mh-seq.el index e8a03f6704..4a464a3f55 100644 --- a/lisp/mh-e/mh-seq.el +++ b/lisp/mh-e/mh-seq.el @@ -390,10 +390,7 @@ mh-read-seq the NOT-EMPTY flag is non-nil, and supply an optional DEFAULT sequence. A reply of `%' defaults to the first sequence containing the current message." - (let* ((input (completing-read (format "%s sequence%s: " prompt - (if default - (format " (default %s)" default) - "")) + (let* ((input (completing-read (format-prompt "%s sequence" default prompt) (mh-seq-names mh-seq-list) nil nil nil 'mh-sequence-history)) (seq (cond ((equal input "%") @@ -646,13 +643,10 @@ mh-read-range ((stringp default) default) ((symbolp default) (symbol-name default)))) (prompt (cond ((and guess large default) - (format "%s (folder has %s messages, default %s)" - prompt (car counts) default)) - ((and guess large) - (format "%s (folder has %s messages)" - prompt (car counts))) + (format-prompt "%s (folder has %s messages)" + default prompt (car counts))) (default - (format "%s (default %s)" prompt default)))) + (format-prompt prompt default)))) (minibuffer-local-completion-map mh-range-completion-map) (seq-list (if (eq folder mh-current-folder) mh-seq-list @@ -662,7 +656,7 @@ mh-read-range (mh-seq-names seq-list))) (input (cond ((and (not ask-flag) unseen) (symbol-name mh-unseen-seq)) ((and (not ask-flag) (not large)) "all") - (t (completing-read (format "%s: " prompt) + (t (completing-read prompt 'mh-range-completion-function nil nil nil 'mh-range-history default)))) msg-list) diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el index d7c607df5c..8cb68f5cf1 100644 --- a/lisp/mh-e/mh-utils.el +++ b/lisp/mh-e/mh-utils.el @@ -758,10 +758,9 @@ mh-prompt-for-folder used in searching." (if (null default) (setq default "")) - (let* ((default-string (cond (default-string (format " (default %s)" default-string)) - ((equal "" default) "") - (t (format " (default %s)" default)))) - (prompt (format "%s folder%s: " prompt default-string)) + (let* ((default-string (or default-string + (if (equal default "") nil default))) + (prompt (format-prompt "%s folder" default-string prompt)) (mh-current-folder-name mh-current-folder) read-name folder-name) (while (and (setq read-name (mh-folder-completing-read diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 55825e32fc..1c9b268942 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -3941,13 +3941,14 @@ format-prompt If DEFAULT is a list, the first element is used as the default. If not, the element is used as is. -If DEFAULT is nil, no \"default value\" string is included in the -return value." +If DEFAULT is nil or an empty string, no \"default value\" string +is included in the return value." (concat (if (null format-args) prompt (apply #'format prompt format-args)) (and default + (length> default 0) (format minibuffer-default-prompt-format (if (consp default) (car default) diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index 023c90cca5..13717b1b89 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -836,11 +836,7 @@ find-tag-tag "Read a tag name, with defaulting and completion." (let* ((completion-ignore-case (find-tag--completion-ignore-case)) (default (find-tag--default)) - (spec (completing-read (if default - (format "%s (default %s): " - (substring string 0 (string-match "[ :]+\\'" string)) - default) - string) + (spec (completing-read (format-prompt string default) (tags-lazy-completion-table) nil nil nil nil default))) (if (equal spec "") @@ -899,7 +895,7 @@ find-tag-noselect Contrast this with the ring of marks gone to by the command. See documentation of variable `tags-file-name'." - (interactive (find-tag-interactive "Find tag: ")) + (interactive (find-tag-interactive "Find tag")) (setq find-tag-history (cons tagname find-tag-history)) ;; Save the current buffer's value of `find-tag-hook' before @@ -971,7 +967,7 @@ find-tag See documentation of variable `tags-file-name'." (declare (obsolete xref-find-definitions "25.1")) - (interactive (find-tag-interactive "Find tag: ")) + (interactive (find-tag-interactive "Find tag")) (let* ((buf (find-tag-noselect tagname next-p regexp-p)) (pos (with-current-buffer buf (point)))) (condition-case nil @@ -1000,7 +996,7 @@ find-tag-other-window See documentation of variable `tags-file-name'." (declare (obsolete xref-find-definitions-other-window "25.1")) - (interactive (find-tag-interactive "Find tag other window: ")) + (interactive (find-tag-interactive "Find tag other window")) ;; This hair is to deal with the case where the tag is found in the ;; selected window's buffer; without the hair, point is moved in both @@ -1041,7 +1037,7 @@ find-tag-other-frame See documentation of variable `tags-file-name'." (declare (obsolete xref-find-definitions-other-frame "25.1")) - (interactive (find-tag-interactive "Find tag other frame: ")) + (interactive (find-tag-interactive "Find tag other frame")) (let ((pop-up-frames t)) (with-suppressed-warnings ((obsolete find-tag-other-window)) (find-tag-other-window tagname next-p)))) @@ -1065,7 +1061,7 @@ find-tag-regexp See documentation of variable `tags-file-name'." (declare (obsolete xref-find-apropos "25.1")) - (interactive (find-tag-interactive "Find tag regexp: " t)) + (interactive (find-tag-interactive "Find tag regexp" t)) ;; We go through find-tag-other-window to do all the display hair there. (funcall (if other-window 'find-tag-other-window 'find-tag) regexp next-p t)) diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index e8e55ae96d..b72d9da748 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -7820,7 +7820,7 @@ idlwave-find-module (name (idlwave-completing-read (if (or (not this-buffer) (assoc default list)) - (format "Module (Default %s): " default) + (format-prompt "Module" default) (format "Module in this file: ")) list)) type class) diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el index 146ed4dca4..af6ccce3d6 100644 --- a/lisp/progmodes/inf-lisp.el +++ b/lisp/progmodes/inf-lisp.el @@ -487,7 +487,7 @@ lisp-source-modes (defun lisp-load-file (file-name) "Load a Lisp file into the inferior Lisp process." - (interactive (comint-get-source "Load Lisp file: " lisp-prev-l/c-dir/file + (interactive (comint-get-source "Load Lisp file" lisp-prev-l/c-dir/file lisp-source-modes nil)) ; nil because LOAD ; doesn't need an exact name (comint-check-source file-name) ; Check to see if buffer needs saved. @@ -500,7 +500,7 @@ lisp-load-file (defun lisp-compile-file (file-name) "Compile a Lisp file in the inferior Lisp process." - (interactive (comint-get-source "Compile Lisp file: " lisp-prev-l/c-dir/file + (interactive (comint-get-source "Compile Lisp file" lisp-prev-l/c-dir/file lisp-source-modes nil)) ; nil = don't need ; suffix .lisp (comint-check-source file-name) ; Check to see if buffer needs saved. diff --git a/lisp/progmodes/tcl.el b/lisp/progmodes/tcl.el index 82e1343e05..f6a50bf1a8 100644 --- a/lisp/progmodes/tcl.el +++ b/lisp/progmodes/tcl.el @@ -1413,7 +1413,7 @@ tcl-load-file (list ;; car because comint-get-source returns a list holding the ;; filename. - (car (comint-get-source "Load Tcl file: " + (car (comint-get-source "Load Tcl file" (or (and (derived-mode-p 'tcl-mode) (buffer-file-name)) @@ -1433,7 +1433,7 @@ tcl-restart-with-file Prefix argument means switch to the Tcl buffer afterwards." (interactive (list - (car (comint-get-source "Restart with Tcl file: " + (car (comint-get-source "Restart with Tcl file" (or (and (derived-mode-p 'tcl-mode) (buffer-file-name)) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index ea52befec5..3cb4247b4b 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -1192,12 +1192,7 @@ xref--read-identifier (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 prompt def) (xref-backend-identifier-completion-table backend) nil nil nil 'xref--read-identifier-history def))) @@ -1257,19 +1252,19 @@ xref-find-definitions definition for IDENTIFIER, display it in the selected window. Otherwise, display the list of the possible definitions in a buffer where the user can select from the list." - (interactive (list (xref--read-identifier "Find definitions of: "))) + (interactive (list (xref--read-identifier "Find definitions of"))) (xref--find-definitions identifier nil)) ;;;###autoload (defun xref-find-definitions-other-window (identifier) "Like `xref-find-definitions' but switch to the other window." - (interactive (list (xref--read-identifier "Find definitions of: "))) + (interactive (list (xref--read-identifier "Find definitions of"))) (xref--find-definitions identifier 'window)) ;;;###autoload (defun xref-find-definitions-other-frame (identifier) "Like `xref-find-definitions' but switch to the other frame." - (interactive (list (xref--read-identifier "Find definitions of: "))) + (interactive (list (xref--read-identifier "Find definitions of"))) (xref--find-definitions identifier 'frame)) ;;;###autoload @@ -1280,7 +1275,7 @@ xref-find-references With prefix argument, or if `xref-prompt-for-identifier' is t, always prompt for the identifier. If `xref-prompt-for-identifier' is nil, prompt only if there's no usable symbol at point." - (interactive (list (xref--read-identifier "Find references of: "))) + (interactive (list (xref--read-identifier "Find references of"))) (xref--find-xrefs identifier 'references identifier nil)) ;;;###autoload diff --git a/lisp/ses.el b/lisp/ses.el index a11c754abc..6058d48ed1 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -2653,9 +2653,7 @@ ses-read-printer (barf-if-buffer-read-only) (if (eq default t) (setq default "") - (setq prompt (format "%s (default %S): " - (substring prompt 0 -2) - default))) + (setq prompt (format-prompt prompt default))) (dolist (key ses-completion-keys) (define-key ses-mode-edit-map key 'ses-read-printer-complete-symbol)) ;; make it globally visible, so that it can be visible from the minibuffer. @@ -2702,7 +2700,7 @@ ses-read-cell-printer ;;Range contains differing printer functions (setq default t) (throw 'ses-read-cell-printer t)))))) - (list (ses-read-printer (format "Cell %S printer: " ses--curcell) + (list (ses-read-printer (format "Cell %S printer" ses--curcell) default)))) (unless (eq newval t) (ses-begin-change) @@ -2716,7 +2714,7 @@ ses-read-column-printer (interactive (let ((col (cdr (ses-sym-rowcol ses--curcell)))) (ses-check-curcell) - (list col (ses-read-printer (format "Column %s printer: " + (list col (ses-read-printer (format "Column %s printer" (ses-column-letter col)) (ses-col-printer col))))) @@ -2731,7 +2729,7 @@ ses-read-default-printer "Set the default printer function for cells that have no other. See `ses-read-cell-printer' for input forms." (interactive - (list (ses-read-printer "Default printer: " ses--default-printer))) + (list (ses-read-printer "Default printer" ses--default-printer))) (unless (eq newval t) (ses-begin-change) (ses-set-parameter 'ses--default-printer newval) @@ -3773,7 +3771,7 @@ ses-define-local-printer (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 "Enter definition of printer %S" name) default))) (list name def))) diff --git a/lisp/subr.el b/lisp/subr.el index ef0e5e6f78..a2c1280fc1 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2806,9 +2806,9 @@ read-number (when default1 (setq prompt (if (string-match "\\(\\):[ \t]*\\'" prompt) - (replace-match (format " (default %s)" default1) t t prompt 1) + (replace-match (format minibuffer-default-prompt-format default1) t t prompt 1) (replace-regexp-in-string "[ \t]*\\'" - (format " (default %s) " default1) + (format minibuffer-default-prompt-format default1) prompt t t)))) (while (progn diff --git a/lisp/term.el b/lisp/term.el index 6beb17fb66..d41895ad3d 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -2535,7 +2535,7 @@ term-check-source ;; then the filename reader will only accept a file that exists. ;; ;; A typical use: -;; (interactive (term-get-source "Compile file: " prev-lisp-dir/file +;; (interactive (term-get-source "Compile file" prev-lisp-dir/file ;; '(lisp-mode) t)) ;; This is pretty stupid about strings. It decides we're in a string @@ -2566,9 +2566,7 @@ term-get-source (car def))) (deffile (if sfile-p (file-name-nondirectory stringfile) (cdr def))) - (ans (read-file-name (if deffile (format "%s(default %s) " - prompt deffile) - prompt) + (ans (read-file-name (format-prompt prompt deffile) defdir (concat defdir deffile) mustmatch-p))) diff --git a/src/minibuf.c b/src/minibuf.c index d58924ae52..c9831fd50f 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1490,8 +1490,8 @@ DEFUN ("read-buffer", Fread_buffer, Sread_buffer, 1, 4, 0, STRING_MULTIBYTE (prompt)); } - AUTO_STRING (format, "%s (default %s): "); - prompt = CALLN (Fformat, format, prompt, + prompt = CALLN (Ffuncall, intern("format-prompt"), + prompt, CONSP (def) ? XCAR (def) : def); } -- 2.27.0 --=-=-=--