From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 11 11:11:18 2019 Received: (at submit) by debbugs.gnu.org; 11 Apr 2019 15:11:18 +0000 Received: from localhost ([127.0.0.1]:55032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hEbME-00058K-26 for submit@debbugs.gnu.org; Thu, 11 Apr 2019 11:11:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:58296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hEbMC-000587-46 for submit@debbugs.gnu.org; Thu, 11 Apr 2019 11:11:17 -0400 Received: from lists.gnu.org ([209.51.188.17]:58330) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hEbM6-0004h8-UO for submit@debbugs.gnu.org; Thu, 11 Apr 2019 11:11:10 -0400 Received: from eggs.gnu.org ([209.51.188.92]:44431) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hEbM4-0001Fc-7q for bug-gnu-emacs@gnu.org; Thu, 11 Apr 2019 11:11:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_MED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hEbM3-0004eb-7z for bug-gnu-emacs@gnu.org; Thu, 11 Apr 2019 11:11:08 -0400 Received: from userp2130.oracle.com ([156.151.31.86]:48258) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hEbM2-0004dX-TV for bug-gnu-emacs@gnu.org; Thu, 11 Apr 2019 11:11:07 -0400 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3BF4ZpT107274 for ; Thu, 11 Apr 2019 15:11:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : subject : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=oBgr8gcL0K8oVXdPHizIvR8mtVu4MDlHHKfc+s2wfpI=; b=FJisjChbDzaccrLFxZU3AoYs3VZiH1AoBPFUCtjNt0E/TW10kq/gpkIQTxiYUchf7sie X9afPaMPbmK0+IyoW1WNIAMoz6REDC5dMm5BH/1H1KQEPmWH9HLydQmTGh7Ey5fBigYl PQoAfGKgITOiyjnvB2NEYjZJR0771PcQTZzmDdJ4/AUc14YpVJMK5f4u4Hlvcamix6fc Px4i5gBQqbu7mfBCUTCex7Z92reME2TZ/AG/mccJHWgEFZN10w3hTG1ErPHFDD8ykZYx NvGJ/HMS0YQHxU8/qE3xOOUhuByFWdQxFfhcXMNf4N0sqVmULFCxrUxlu3rQasYpPJH1 LQ== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by userp2130.oracle.com with ESMTP id 2rpkht9n2r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 Apr 2019 15:11:02 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x3BFAXuH125542 for ; Thu, 11 Apr 2019 15:11:01 GMT Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userp3030.oracle.com with ESMTP id 2rph7tssn2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 11 Apr 2019 15:11:01 +0000 Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x3BFB00q009799 for ; Thu, 11 Apr 2019 15:11:00 GMT MIME-Version: 1.0 Message-ID: <85ddecd9-7a66-4fbc-8297-b4419e45db05@default> Date: Thu, 11 Apr 2019 08:10:59 -0700 (PDT) From: Drew Adams To: bug-gnu-emacs@gnu.org Subject: 26.1; Redefine `read-command' behavior for empty input and DEFAULT not a command name X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4834.0 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9224 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904110103 X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9224 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904110103 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] X-Received-From: 156.151.31.86 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a followup to bug #35222 (and thanks for fixing that doc bug). As discussed in #35222, the current C-code definition of `read-command' seems not so desirable, when it comes to DEFAULT =3D nil or "". The behavior in that case is to return an uninterned symbol whose name is empty, which has the read/print syntax `##'. This is _not_ a symbol whose function definition is `commandp'. There is nothing about this symbol that qualifies for consideration as a command. It seems wrong (a bug) for `read-command' to ever return a symbol whose function definition is `commandp'. Function `read-command' is old, and it has always had this odd behavior. One question is whether there is code out there that depends on this odd null DEFAULT behavior. Another question is whether this behavior is good. I don't think so (see above), but perhaps there is an argument supporting it? Supposing that there is no sufficient argument supporting it, can we fix it, adjust any deliverable calling code as needed, and record in NEWS the change in this corner-case behavior? If so, what's the right fix? Here's one suggestion: 1. Define it in Lisp, not C (why should it ever have been in C?). 2. Use `completing-read' with REQUIRE-MATCH=3Dt and PREDICATE=3D`commandp'. 3. Because even with REQUIRE-MATCH=3Dt you can exit `completing-read' with empty input that does not satisfy PREDICATE, loop until the input is nonempty and satisfies PREDICATE. Something like this, for example: (defun read-command (prompt &optional default) "Read the name of a command and return a symbol with that name. \(A command is anything that satisfies predicate `commandp'.) Prompt with PROMPT. By default, return the command named DEFAULT (or its first element if DEFAULT is a list). (If DEFAULT does not name a command then it is ignored.)" (let ((name (completing-read prompt obarray #'commandp t nil 'extended-command-history default))) (while (string=3D "" name) (setq name (completing-read prompt obarray #'commandp t nil 'extended-command-history default))) (intern name))) In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32) of 2018-05-30 Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea Windowing system distributor `Microsoft Corp.', version 10.0.17134 Configured using: `configure --without-dbus --host=3Dx86_64-w64-mingw32 --without-compress-install 'CFLAGS=3D-O2 -static -g3'' From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 09 11:40:00 2019 Received: (at 35231) by debbugs.gnu.org; 9 Jul 2019 15:40:00 +0000 Received: from localhost ([127.0.0.1]:33826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksDn-0002cF-EV for submit@debbugs.gnu.org; Tue, 09 Jul 2019 11:40:00 -0400 Received: from quimby.gnus.org ([80.91.231.51]:48200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksDk-0002c4-RC for 35231@debbugs.gnu.org; Tue, 09 Jul 2019 11:39:57 -0400 Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hksDh-0006gi-3w; Tue, 09 Jul 2019 17:39:55 +0200 From: Lars Ingebrigtsen To: Drew Adams Subject: Re: bug#35231: 26.1; Redefine `read-command' behavior for empty input and DEFAULT not a command name References: <85ddecd9-7a66-4fbc-8297-b4419e45db05@default> Date: Tue, 09 Jul 2019 17:39:52 +0200 In-Reply-To: <85ddecd9-7a66-4fbc-8297-b4419e45db05@default> (Drew Adams's message of "Thu, 11 Apr 2019 08:10:59 -0700 (PDT)") Message-ID: <87ef2ztdx3.fsf@mouse.gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Drew Adams writes: > This is a followup to bug #35222 (and thanks for fixing that doc bug). > > As discussed in #35222, the current C-code definition of `read-command' > seems not so desirable, when it comes to DEFAULT [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 35231 Cc: 35231@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Drew Adams writes: > This is a followup to bug #35222 (and thanks for fixing that doc bug). > > As discussed in #35222, the current C-code definition of `read-command' > seems not so desirable, when it comes to DEFAULT = nil or "". > > The behavior in that case is to return an uninterned symbol whose name > is empty, which has the read/print syntax `##'. > > This is _not_ a symbol whose function definition is `commandp'. There > is nothing about this symbol that qualifies for consideration as a > command. It seems wrong (a bug) for `read-command' to ever return a > symbol whose function definition is `commandp'. That is, indeed, pretty odd. The function isn't used a lot in Emacs: ./lisp/subr.el1088: (read-command (format "Set key %s to command: " ./lisp/edmacro.el118: (setq cmd (read-command "Name of keyboard macro to edit: ")) ./lisp/emulation/edt.el1130: (setq edt-function (read-command "Enter command name: ")) ./lisp/info.el4526: (read-command "Find documentation for command: "))) ./lisp/strokes.el448: (read-command "Command to map stroke to: "))) But some of them expect this behaviour: (setq cmd (read-command "Name of keyboard macro to edit: ")) (if (string-equal cmd "") (error "No command name given")) (setq edt-function (read-command "Enter command name: ")) (if (string-equal "" edt-function) (message "Key not defined") So changing the behaviour is probably not a good idea -- there may be out-of-tree usages. So I think we'll have to live with it, and I'm closing this bug report. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 09 11:40:11 2019 Received: (at control) by debbugs.gnu.org; 9 Jul 2019 15:40:11 +0000 Received: from localhost ([127.0.0.1]:33831 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksDy-0002dH-TU for submit@debbugs.gnu.org; Tue, 09 Jul 2019 11:40:11 -0400 Received: from quimby.gnus.org ([80.91.231.51]:48218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksDx-0002d9-I9 for control@debbugs.gnu.org; Tue, 09 Jul 2019 11:40:09 -0400 Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=marnie) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hksDu-0006gv-UN for control@debbugs.gnu.org; Tue, 09 Jul 2019 17:40:08 +0200 Date: Tue, 09 Jul 2019 17:40:06 +0200 Message-Id: <87d0ijtdwp.fsf@mouse.gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #35231 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 35231 wontfix close 35231 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 35231 wontfix close 35231 quit From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 09 12:18:06 2019 Received: (at 35231) by debbugs.gnu.org; 9 Jul 2019 16:18:06 +0000 Received: from localhost ([127.0.0.1]:33964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksof-0007y8-RM for submit@debbugs.gnu.org; Tue, 09 Jul 2019 12:18:06 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:41796) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hksoe-0007tJ-KP for 35231@debbugs.gnu.org; Tue, 09 Jul 2019 12:18:05 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x69GE13E140339; Tue, 9 Jul 2019 16:17:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=mime-version : message-id : date : from : sender : to : cc : subject : references : in-reply-to : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=YJqG1Gunzh+Gt2pyHzHdvYXe0YNWWkuffR0eHcvTpAg=; b=Z3DAIluHowaCCdLceHfvyYT/pruhBP8gM3+Wviwxn9SPne54FngTe74E7xgP48wLZ9zC j4liW/IfUG3JOp/3OGRAQzVqTVWyMeZPwTcSN4u4q3itI/44syiEN4xl7X8GfImQjdTG lbPW+ZZAA66oNL1ONiuZwEA0ciZ+R0+PtCfQbZhqFu3LJfvF77YXStFvMEj3aG9JU8nM gjwNiK12MwUBfhE7bAIrhwXEjn6HPyhGM1U9swBD8KuVcEIwSkbxUI3gnnDr/E/fX8Bk tWZ6d3KT4cFwyikGJcZ4Z6f5DBnMXi2MpSUASygsWQjE3NeXGAYeRpPzZjnSWonPuYjk Kw== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 2tjkkpnc1a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Jul 2019 16:17:58 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x69GHYhV135376; Tue, 9 Jul 2019 16:17:57 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 2tmwgx0wg8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 09 Jul 2019 16:17:57 +0000 Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x69GHu2M007930; Tue, 9 Jul 2019 16:17:56 GMT MIME-Version: 1.0 Message-ID: Date: Tue, 9 Jul 2019 09:17:55 -0700 (PDT) From: Drew Adams To: Lars Ingebrigtsen Subject: RE: bug#35231: 26.1; Redefine `read-command' behavior for empty input and DEFAULT not a command name References: <85ddecd9-7a66-4fbc-8297-b4419e45db05@default> <87ef2ztdx3.fsf@mouse.gnus.org> In-Reply-To: <87ef2ztdx3.fsf@mouse.gnus.org> X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9.1 (1003210) [OL 16.0.4861.0 (x86)] Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9313 signatures=668688 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907090191 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9313 signatures=668688 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1907090190 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 35231 Cc: 35231@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > > This is a followup to bug #35222 (and thanks for fixing that doc bug). > > > > As discussed in #35222, the current C-code definition of `read-command' > > seems not so desirable, when it comes to DEFAULT =3D nil or "". > > > > The behavior in that case is to return an uninterned symbol whose name > > is empty, which has the read/print syntax `##'. > > > > This is _not_ a symbol whose function definition is `commandp'. There > > is nothing about this symbol that qualifies for consideration as a > > command. It seems wrong (a bug) for `read-command' to ever return a > > symbol whose function definition is `commandp'. >=20 > That is, indeed, pretty odd. The function isn't used a lot in Emacs: >=20 > ./lisp/subr.el1088: (read-command (format "Set key %s to comman= d: > " > ./lisp/edmacro.el118:=09 (setq cmd (read-command "Name of keyboard > macro to edit: ")) > ./lisp/emulation/edt.el1130:=09(setq edt-function (read-command "Enter > command name: ")) > ./lisp/info.el4526:=09 (read-command "Find documentation for command: > "))) > ./lisp/strokes.el448: (read-command "Command to map stroke to: "))) >=20 > But some of them expect this behaviour: >=20 > =09 (setq cmd (read-command "Name of keyboard macro to edit: ")) > =09 (if (string-equal cmd "") > =09=09 (error "No command name given")) >=20 > =09(setq edt-function (read-command "Enter command name: ")) > =09(if (string-equal "" edt-function) > =09 (message "Key not defined") >=20 > So changing the behaviour is probably not a good idea -- there may be > out-of-tree usages. So I think we'll have to live with it, and I'm > closing this bug report. Just for the record: I don't think this is the best way to handle this. It seems clear from those rare examples you show that they do what they do only to _work around_ the odd (bugged) behavior. It would be easy to fix them. Likewise, any 3rd-party code. And in fact, with a fixed `read-command' no change would really be needed to any such caller. The test for equality with "" would simply never succeed. The test would be superfluous, but if it were not removed there would be no loss. I made good suggestions for how this function can be better defined, and how to handle the (minor) incompatible change (fix) for returning a non command name. The function can be trivially defined in Lisp, in such a way that users can benefit from completion and no caller will need to test for a non-command name (whether odd, such as "", or not). That's the way to improve Emacs, here. Closing the bug because there may be callers that "depend" on the bugged behavior in the way you indicated (i.e., as a bug workaround, for the odd possibility that a non-command name would be read) doesn't make sense to me. This bug is simple to fix properly, and I see no downside to that being done. It's also possible (but it shouldn't be necessary) to define a new function, with a different name, and use that. And declare the old one, with the bug, defined in C, as obsolete. FWIW, I use this (in Dired+): (defun diredp-read-command (&optional prompt default) "Read the name of a command and return a symbol with that name. \(A command is anything that satisfies predicate `commandp'.) Prompt with PROMPT, which defaults to \"Command: \". By default, return the command named DEFAULT (or, with Emacs 23+, its first element if DEFAULT is a list). (If DEFAULT does not name a command then it is ignored.)" (setq prompt (or prompt "Command: ")) (let ((name (completing-read prompt obarray #'commandp t nil 'extended-command-history default))) (while (string=3D "" name) (setq name (completing-read prompt obarray #'commandp t nil 'extended-command-history default))) (intern name))) Any good reason why such a definition (or similar) should not be used as a replacement for the current, bugged, `read-command'? From unknown Wed Jun 18 23:13:43 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 07 Aug 2019 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator