From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stephen Berman via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#71429: Inconsistent y-or-n-p prompt behavior in Emacs Lisp Date: Sat, 08 Jun 2024 11:20:14 +0200 Message-ID: <87cyoreqpd.fsf@gmx.net> References: <0a72f9c4-3f1c-4fc8-a412-169dca892b57@medialab.sissa.it> <86bk4bet9p.fsf@gnu.org> Reply-To: Stephen Berman Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12430"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Gabriele Nicolardi , 71429@debbugs.gnu.org, Stefan Kangas To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jun 08 11:21:15 2024 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 1sFsGB-00031f-P5 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 08 Jun 2024 11:21:15 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sFsFl-0007pH-Cv; Sat, 08 Jun 2024 05:20:49 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sFsFj-0007oV-PS for bug-gnu-emacs@gnu.org; Sat, 08 Jun 2024 05:20:47 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sFsFj-0007gS-9d for bug-gnu-emacs@gnu.org; Sat, 08 Jun 2024 05:20:47 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sFsFy-0008FE-J4 for bug-gnu-emacs@gnu.org; Sat, 08 Jun 2024 05:21:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stephen Berman Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 08 Jun 2024 09:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71429 X-GNU-PR-Package: emacs Original-Received: via spool by 71429-submit@debbugs.gnu.org id=B71429.171783844531628 (code B ref 71429); Sat, 08 Jun 2024 09:21:02 +0000 Original-Received: (at 71429) by debbugs.gnu.org; 8 Jun 2024 09:20:45 +0000 Original-Received: from localhost ([127.0.0.1]:33331 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sFsFg-0008E3-HV for submit@debbugs.gnu.org; Sat, 08 Jun 2024 05:20:44 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:44301) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sFsFc-0008DY-KH for 71429@debbugs.gnu.org; Sat, 08 Jun 2024 05:20:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1717838415; x=1718443215; i=stephen.berman@gmx.net; bh=fCTh9cgvh9RAd+b9WBHWo8+jmsouKaTnCMrx452zEF4=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=K2ENijDxrM71J7ghGyifVkkUlWPS2LbQAP3XugQE+Q3GZe/KGrcx9nAqupedUM8s LQobeJT0FW/GjjCpEtJOX5eKWS7EXETcNqvRvgxTM2bJMJooHeKq4c9PDbzyPH3TE gRgXM3U0/mwX2ZZCOqptyq+COLafNkrjSQB4qD9zWU04bzRJGsFY2biL4j4tJJ2EM KbKM/Az/Ww8HSGIZtO5LDRO3VvOJWKzWTCr2TxnGohSBrPJXgy4Ttm7cpIW/NNaMF 6uiIRwI7Ls7+EsJSfF167uTqE25ZuvdoynMWlpwKXZFQMQ6DWpREVLaujzc9+bZy9 iCLYHFSelLA7lgsv9A== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Original-Received: from strobelfs ([94.134.94.137]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2mFi-1sPxTv1sTM-00x4G5; Sat, 08 Jun 2024 11:20:15 +0200 In-Reply-To: <86bk4bet9p.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 08 Jun 2024 11:24:50 +0300") X-Provags-ID: V03:K1:PQgxs6EK9bsYWf1bjO4+DxPKqclQMlnYTCG0ASSfyfls8DALTdk 8Q4Svm999iurafLQg12tAsRqu5bWRPik+ueOPv0frFRwDuBtLnKsoj/FnIyUDKCa3ivVRme qJXn4frQ1UIEDiZd7vPBPAGJiJKxg3q4ndulZmordKO3var5MTaYvBTRNCuTw7pd9A1HHdT AVXS346DRb58lVoYMbeOg== UI-OutboundReport: notjunk:1;M01:P0:HLn9dMJH8Uc=;+nrZnAARcw8eyPDCswY86OdiZfQ bG4GwmgsNheF0ATzTRtHr8xHyXPhL5ViLZabvUG+nUe0zZOtTagSzP5Ima5zS3NPlNWmmCa70 BhT6xgwlm91k0xKroE2H11+tTuYi1dkt8EpnNT7aP2n8067fJV9yqKVt+9ilF8mASY4P5grGE gSdBjUViBvNeNfNJlapxcLTnPDSvaFbvs+cxuT9k8Fi7Z46WMgOgpR6bkl+Rp4sEr+qpQD0Tk UKuxEpHjE2rBhLQ3NdGSuBZV4Qq030tT/3//pE/bc6S45NK7/xOzyr2dVpyPrrgeDUDW4qb+b 7tLaSC1YfqzR8VZTGFykdNGrcvuK8W6QHVqecY8t7S9DfZ6MbylQ8fjQEW8SZkDsdqQmwSZHj 5c0yEoVHxKTHgXGTmp7zn5218P8r5GBSrdIsd/Ka7DBEyRejERUalteP9gIfkUiPNP+mmsMTO v1+bFerisK5+Ituv89hL5NZHdxvSBsIdQkzLd/Lwu3N5tX4wrqJ8G93EUL0VcFjDepZ71H8Jz bIk1PtfGjQEh7xcpkcooLDb9hryDqlgfq87flyEYk8yytMluoLHLJo+rlowO/XFGQCPHUdLX9 JvhP1qFp2KQXx5/tibfJ6tMZoRHQIM3FufO0jyqv9pBrnVVY5eZ5rnoI793vJGB8txOEpKCsc qviLggIV8j4tRgczgDDoLHSa54TxcmYJLcuTo9wEczRJlhz9OS6DPxYiDz4Cx1RX6hB6fXSoO l9pjfu8HDODQ+P1HKwomYpkIAcPe4RosdVHa1IgVp82IPldKy4RMJ215PD5bcIpan6uvTXdA 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:286820 Archived-At: On Sat, 08 Jun 2024 11:24:50 +0300 Eli Zaretskii wrote: >> Date: Sat, 8 Jun 2024 09:03:37 +0200 >> From: Gabriele Nicolardi >>=20 >> I have the following Emacs Lisp code: >>=20 >> (progn >> (y-or-n-p "Test: ") >> (let ((search-spaces-regexp "\\(?:\\n?[\s\t]+\\|\n\\)?")) >> (y-or-n-p "Test: "))) >>=20 >> The first prompt from the y-or-n-p function appears as expected: >>=20 >> Test: (y or n) >>=20 >> However, the second prompt appears differently: >>=20 >> Test: (=E2=80=98y=E2=80=99 or =E2=80=98n=E2=80=99) >>=20 >> I=E2=80=99m trying to understand why the second prompt format changes. W= hat causes this inconsistency in the >> y-or-n-p prompt? >>=20 >> I suspect it might be related to the search-spaces-regexp variable or ho= w Emacs handles interactive >> prompts, but I=E2=80=99m not sure. Any insights or explanations would be= greatly appreciated! > > Stefan, can you please look into this? It sounds like some issue with > substitute-command-keys: > > (substitute-command-keys "(\\`y' or \\`n') ") > =3D> #("(y or n) " 1 2 (font-lock-face help-key-binding face help-key-= binding) 6 7 (font-lock-face help-key-binding face help-key-binding)) > > But > > (let ((search-spaces-regexp "\\(?:\\n?[\s\t]+\\|\n\\)?")) > (substitute-command-keys "(\\`y' or \\`n') ")) > =3D> "(\\=E2=80=98y=E2=80=99 or \\=E2=80=98n=E2=80=99) " > > I actually don't understand why we use \\`y' and \\`n' in y-or-n-p. > Why those backslashes, and not just `y' and `n'? That's your change > in commit a36ecc408a. If I remove the backslashes, the results are > identical whether or not search-spaces-regexp is let-bound. Removing the final '?' in the regexp, i.e. (let ((search-spaces-regexp "\\(?:\\n?[\s\t]+\\|\n\\)")) (y-or-n-p "Test: ")) results in the second prompt appearing like the first one. Likewise with '*', but not with '+': (let ((search-spaces-regexp " ?")) (y-or-n-p "Test: ")) =3D> Test: (\=E2=80=98y=E2=80=99 or \=E2=80=98n=E2=80=99) (let ((search-spaces-regexp " *")) (y-or-n-p "Test: ")) =3D> Test: (\=E2=80=98y=E2=80=99 or \=E2=80=98n=E2=80=99) (let ((search-spaces-regexp " +")) (y-or-n-p "Test: ")) =3D> Test: (y or n) (let ((search-spaces-regexp " ")) (y-or-n-p "Test: ")) =3D> Test: (y or n) Steve Berman