GNU bug report logs - #79664
30.1.90; save-some-buffers doesn't use read-from-minibuffer

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Spencer Baugh <sbaugh@HIDDEN>; Done: Juri Linkov <juri@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
bug marked as fixed in version 31.0.50, send any further explanations to 79664 <at> debbugs.gnu.org and Spencer Baugh <sbaugh@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 5 Nov 2025 07:55:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 05 02:55:40 2025
Received: from localhost ([127.0.0.1]:55360 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGYMl-0001DT-O6
	for submit <at> debbugs.gnu.org; Wed, 05 Nov 2025 02:55:40 -0500
Received: from mout-p-102.mailbox.org ([2001:67c:2050:0:465::102]:44468)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>)
 id 1vGYMd-0001Cq-BP; Wed, 05 Nov 2025 02:55:32 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org
 [IPv6:2001:67c:2050:b231:465::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4d1d0S4ZCmz9v6v;
 Wed,  5 Nov 2025 08:55:20 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762329320;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=zXevLqjpHUvVvZwVtoOveFbC1yWjTu56o9ZwD37XjRI=;
 b=jzTmoyygiTxizx98D+4HS7gWDCli+bp/ci86JOTLnu3wfQUm+uhUzIqHddOYc4ePfsZ3Ac
 RQhZVJn9XNAYc7zigi0S2jQD3aPqZaW3gqOJAh+H01Cr8NoACf5rqVPhHF6E5whfXIQE9n
 fSXBmC7G1ZvJMq5Iab7ff6TdfoaZk6CZ/Lfbc31SDRHqIYY0QZ3htu0X52J6AFlvDuucIM
 g80s9iTjUwfrbTv1Z8dlGYGE37LQnsE9gLvnYpnNWFjyGO/iaI6AMVwajcB87Gf24zUAI/
 sm9CdesN0+A8pGi/3DN4xnYHIq7kl9P4GhEZw/iZKqIMnnZLeqqA6Ol9nlSRdA==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::2 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <jwvldklvdu2.fsf-monnier+emacs@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <87wm451xrt.fsf@HIDDEN>
 <jwvldklvdu2.fsf-monnier+emacs@HIDDEN>
Date: Wed, 05 Nov 2025 09:54:28 +0200
Message-ID: <87y0ol7x17.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4d1d0S4ZCmz9v6v
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 79664
Cc: Spencer Baugh <sbaugh@HIDDEN>, 67836 <at> debbugs.gnu.org,
 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN, 75886 <at> debbugs.gnu.org,
 58808 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

close 58808 31.0.50
close 67836 31.0.50
close 75886 31.0.50
close 79664 31.0.50
thanks

>> This is pushed as well.
>
> Yay!  Thanks, Juri,

So now closing this report, and also bug#58808, bug#67836, bug#75886.
(Hopefully I didn't miss other related open reports.)




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 4 Nov 2025 18:43:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 04 13:43:31 2025
Received: from localhost ([127.0.0.1]:49282 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGM0A-00019f-U6
	for submit <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:43:31 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:19541)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vGM07-00019M-Sq
 for 79664 <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:43:29 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 9AB4780729;
 Tue,  4 Nov 2025 13:43:21 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762281800;
 bh=iyG54fFDR5nS6n4ap0h3Nu0JVbuof6+K0GnYer0s3LQ=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=QGkljTrNtnMAeC60P861VIby6szsM2db2f86Mac3e42aHMc2ubOnbl5Rtc2Xk3NLe
 87GpxNjkPTWaiXI1H/IUT7Ck5zdq/MyAf02Cn6g6d6wYuRljcEXAdLhHTb5sNFZYbd
 G6p3THsZvHfjbynulCY+gHgfqQdHehHY/D1lpwSp53o2YsT6C9kQffa6YymA4X4RMT
 dGb5t3b+CvlOMtKFv7XzkyBBpBI4p3h5pLdUMiDA+nzdQV8B4ec9l4E4AvbWWn5bo2
 bR1vgOmZfAyW4M9aoMZX4/uXSv+VxPUiiwP92zoNNzzVSxj2Dw7KSKQar8ukLUUs96
 rpQOkx1cH0oYA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id BEF7E81626;
 Tue,  4 Nov 2025 13:43:20 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 4A491120099;
 Tue,  4 Nov 2025 13:43:19 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87wm451xrt.fsf@HIDDEN>
Message-ID: <jwvldklvdu2.fsf-monnier+emacs@HIDDEN>
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <87wm451xrt.fsf@HIDDEN>
Date: Tue, 04 Nov 2025 13:43:14 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.211 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: Spencer Baugh <sbaugh@HIDDEN>, 79664 <at> debbugs.gnu.org,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> And the remaining basic function that still uses 'read-char'
>> is 'ask-user-about-lock'.
> This is pushed as well.

Yay!  Thanks, Juri,


        Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 4 Nov 2025 18:04:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 04 13:04:34 2025
Received: from localhost ([127.0.0.1]:48967 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vGLOU-0006ph-F0
	for submit <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:04:34 -0500
Received: from mout-p-202.mailbox.org ([80.241.56.172]:44132)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vGLOR-0006pO-8D
 for 79664 <at> debbugs.gnu.org; Tue, 04 Nov 2025 13:04:32 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4d1GYd6Xx2z9tft;
 Tue,  4 Nov 2025 19:04:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762279462;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=iZ2ZP7NdTfCPqqANhyABNj+Ar2NnQPuza329meqpIfg=;
 b=RCM4A2GZcPpceydw5KXNGit0aLwvDMJBsfAEY0V/Utf4SgO6WTmilcNIt6xSwEYv9l+jP9
 hg1sMSH0NHgmEtjEf88A7KdcUWbBwz8avCdISysE4C2/zn24voIZhXyusiCEXpOAJ80u5R
 yFb5ysH1Ijf9LB0RoK9NN5ONs0RBYk2KpkhikaXMSV3HHWfWmThk+6/UHipqygyyICjNR6
 mOHGCzTF6B20KcGrWd4yB/xC+OIzCkNN9i8s9CUpqbaLw4GLTfQzqkYzLHybBnDUPEif3D
 Nzc/BAF84DDyD+0C0XQ2WucX/obbCWnd3Xz5rzRuHECFrBEmYrM4FVzJhCbbGg==
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87ldkppr41.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
Date: Tue, 04 Nov 2025 20:02:46 +0200
Message-ID: <87wm451xrt.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> And the remaining basic function that still uses 'read-char'
> is 'ask-user-about-lock'.

This is pushed as well.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 3 Nov 2025 12:12:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 03 07:12:25 2025
Received: from localhost ([127.0.0.1]:40168 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFtQ4-000591-Jw
	for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 07:12:25 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:38540)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vFtPv-00058n-Kg
 for 79664 <at> debbugs.gnu.org; Mon, 03 Nov 2025 07:12:15 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vFtPl-0003mO-8Y; Mon, 03 Nov 2025 07:12:01 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=O+4i5xLZWZ+2vV2H9ZyRJNAGlHPGeAL4R8izIKFrENk=; b=ZC/m+jxxqGOw
 MBblDUZ8/A0jTEJptXxJiXjulhkH00tctR82nla+icgDvJO/rpLZHyAAdGVRxzqYGc7I+Us182BjE
 ZxXQ/Q9nZZ3RhyVoWVYVGMcKGmc088TgTuxtAqTVuCsEw2VIX/XObATfAXjGlQ23aFDuwxCLIqjxy
 BsxB0FrXTZWa1kryWRh4HkT/Vw5f+adDiqixT+RIp42UC+LulVGGL/i+pajHGXt3MXHmo3MJThgxi
 OWsvIJfERYMiADIfa3iXxYJOXbDtDUhp3nfEV7MgujtWon2nz/n9kVNyqjVg9UQQFQ6qSC2Y+BRZ/
 ykrZ/e+m6zCk9vB/MUAwow==;
Date: Mon, 03 Nov 2025 14:11:57 +0200
Message-Id: <86qzufgvsi.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <jwv346w5hch.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Sun, 02 Nov 2025 15:19:32 -0500)
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
 <87ikfsb8uh.fsf@HIDDEN>
 <jwvjz085j62.fsf-monnier+emacs@HIDDEN> <86tszcgr2z.fsf@HIDDEN>
 <jwv346w5hch.fsf-monnier+emacs@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: juri@HIDDEN,  sbaugh@HIDDEN,  dgoldfarb@HIDDEN,
>   79664 <at> debbugs.gnu.org
> Date: Sun, 02 Nov 2025 15:19:32 -0500
> 
> >> -	 use-menus
> >> +	 (use-menus (and (listp last-nonmenu-event) use-dialog-box))
> >> +	 (mouse-event last-nonmenu-event) ;Used only if we `use-menus'.
> >
> > Please don't touch the use-menu and use-dialog-box stuff: it's
> > unrelated (AFAIU), took several iterations to get right in several
> > different use cases, and I wouldn't touch what we have with a 10-foot
> > pole.
> 
> It's unrelated, indeed.  It's a very minor cleanup that just moves the
> code around a tiny bit, thereby making the control flow ever so slightly
> less horrendous.
> 
> It just replaces
> 
>     (let* (... mouse-event ...  use-menus ...)
>       [...]
>       (if (and (listp last-nonmenu-event)
>                use-dialog-box)
>           (let (...)
>  	    (setq ...
> 	      use-menus t
> 	      mouse-event last-nonmenu-event))
> 
> with
> 
>     (let* ((mouse-event last-nonmenu-event)
>            (use-menus (and (listp last-nonmenu-event)
>                            use-dialog-box)))
>       [...]
>       (if use-menus
>           (let (...)
>  	    (setq ...))
> 
> where:
> - neither `mouse-event` nor `use-menus` are modified anywhere else
>   in that function.
> - `mouse-event` is used only after the `if` and only if
>   `use-menus` is non-nil, so the fact that we bind it to
>   `last-nonmenu-event` unconditionally does not modify the behavior.
> - `use-menus` is used only after the `if`, so the fact that we bind it
>   earlier has no impact, and it's used only as a boolean so the fact
>   that we set it to a non-nil value rather than to t has no
>   impact either.
> - all the functions used between the beginning of the `let` and the end of
>   the `if` are simple primitives that cannot affect the values of
>   `last-nonmenu-event` or `use-dialog-box`, so the fact that we evaluate
>   those a bit earlier does not affect the values we get.
> 
> The benefit is that it's now a bit more clear which of the two branches
> of this `if` are relevant for the various branches of the following
> `cond` where we test `use-menus`.

I understand, but would prefer to leave this alone nevertheless.  It's
a complicated function with several different use cases.  Why would we
even need to reason about which branches use or don't use the relevant
variables, when the original code works, and all it does is set
use-menus to a non-nil value under certain conditions, else leave it
at its original nil value?

Call me a coward, but I spent enough time on this convoluted code to
not want to touch it as long as I don't have to.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 3 Nov 2025 07:21:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 03 02:21:41 2025
Received: from localhost ([127.0.0.1]:38009 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFosm-0002IB-J6
	for submit <at> debbugs.gnu.org; Mon, 03 Nov 2025 02:21:41 -0500
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:39740)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vFosj-0002Hp-7e
 for 79664 <at> debbugs.gnu.org; Mon, 03 Nov 2025 02:21:38 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org
 [IPv6:2001:67c:2050:b231:465::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4d0NLH0jbhz9t13;
 Mon,  3 Nov 2025 08:21:27 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762154487;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=IoIJrEZttvQyOYVTgSghJc7gYstM4H1SL9qL3mUfl8Q=;
 b=1I2XQHNkPUtDcxDsVDafOcaywACwJ6mYF1giutXgR4tv5pCCV42qleHnrN4lJpUaZechzJ
 Lb9panW4bX23J66Ve9vkHOL+ZGEXeiCvlNKjcgVSRMgdBZ+E2nRdGTSClB+8qXuNiX3fGH
 AKtUTe7CSykCUgjXS6aAVIdwjweBRYg9FGUoJfjlhxbu/LLM2tRBarxZzAH5TUUvDIuvXP
 8EZNOOE15BvIrGUAZGodhzeH1wb0SjIxbC9RILFO96dyUtrAyrzW0UTwZtSL9oFuQ2lFEv
 VDVppKx3fFZLDrvn4GNnrO2VgkrJYY4hjeEkkS4cIoCtNAnmlvipAr2KAkImIA==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::2 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <jwvjz085j62.fsf-monnier+emacs@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
 <87ikfsb8uh.fsf@HIDDEN>
 <jwvjz085j62.fsf-monnier+emacs@HIDDEN>
Date: Mon, 03 Nov 2025 09:19:10 +0200
Message-ID: <87a513twk8.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4d0NLH0jbhz9t13
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, sbaugh@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

>>> Why do we need `cl--map-keymap-recursively` here?
>>
>> It's the only function that can handle keymaps deeper that one level.
>> 'map-y-or-n-p' uses 'query-replace-map' that has submaps:
>
> How 'bout something like the patch below instead?

After a brief testing I discovered several problems:

- Typing 'M-~' or 'C-r' or 'C-f' or 'd' for 'save-some-buffers'
  raises an error:

  Debugger entered--Lisp error: (error "KEY must be an integer, cons, symbol, or string")
    map-y-or-n-p(#f(compiled-function ... "view changes in this buffer")))
    save-some-buffers(nil)
    funcall-interactively(save-some-buffers nil)
    command-execute(save-some-buffers)

- Typing a help key 'C-h' or '?' doesn't show command help.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 20:19:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 15:19:48 2025
Received: from localhost ([127.0.0.1]:33468 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFeYG-0003ZM-Cs
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 15:19:48 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1268)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vFeYD-0003Ym-Ps
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 15:19:46 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id BD3EA1000BC;
 Sun,  2 Nov 2025 15:19:39 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762114778;
 bh=MxtPk7u6r7N1jfl6EFLPXz3heN2EnCFnHm3iOEoVJ7U=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=dnv6qbxQLkuNy0A7bm5+9XW0pSxelGWNPotWByKNdBbXCnDU0oSfpQGj5pDg4SdWo
 HZolbsVrqiTLm79DfWNXyK7ieBGfbAg6Wmr/601J4J6rTKkOqVzSL4bV8irCOhUVmq
 LmRYfuwuRfa7FlendmwebQBu5PUfBKbKBP65SS2JT5djzQnra2Em60QDGDF6KwqOO+
 lN2qoH4EO1rMi2zj15XE2isHBWmqb83/c1TBmDAoeBvPAev31c277nBPg51YCoOOB6
 nYro+Lv8+P2ja2+RMx6KBUVBCj21F9g34dKzDA3gXG8k+hWIL8Shm1WmfP7upgPRQO
 fDVW/fM3CvxpA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id DAC0F100029;
 Sun,  2 Nov 2025 15:19:38 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 1EDB212055D;
 Sun,  2 Nov 2025 15:19:35 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <86tszcgr2z.fsf@HIDDEN>
Message-ID: <jwv346w5hch.fsf-monnier+emacs@HIDDEN>
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
 <87ikfsb8uh.fsf@HIDDEN>
 <jwvjz085j62.fsf-monnier+emacs@HIDDEN> <86tszcgr2z.fsf@HIDDEN>
Date: Sun, 02 Nov 2025 15:19:32 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.046 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> -	 use-menus
>> +	 (use-menus (and (listp last-nonmenu-event) use-dialog-box))
>> +	 (mouse-event last-nonmenu-event) ;Used only if we `use-menus'.
>
> Please don't touch the use-menu and use-dialog-box stuff: it's
> unrelated (AFAIU), took several iterations to get right in several
> different use cases, and I wouldn't touch what we have with a 10-foot
> pole.

It's unrelated, indeed.  It's a very minor cleanup that just moves the
code around a tiny bit, thereby making the control flow ever so slightly
less horrendous.

It just replaces

    (let* (... mouse-event ...  use-menus ...)
      [...]
      (if (and (listp last-nonmenu-event)
               use-dialog-box)
          (let (...)
 	    (setq ...
	      use-menus t
	      mouse-event last-nonmenu-event))

with

    (let* ((mouse-event last-nonmenu-event)
           (use-menus (and (listp last-nonmenu-event)
                           use-dialog-box)))
      [...]
      (if use-menus
          (let (...)
 	    (setq ...))

where:
- neither `mouse-event` nor `use-menus` are modified anywhere else
  in that function.
- `mouse-event` is used only after the `if` and only if
  `use-menus` is non-nil, so the fact that we bind it to
  `last-nonmenu-event` unconditionally does not modify the behavior.
- `use-menus` is used only after the `if`, so the fact that we bind it
  earlier has no impact, and it's used only as a boolean so the fact
  that we set it to a non-nil value rather than to t has no
  impact either.
- all the functions used between the beginning of the `let` and the end of
  the `if` are simple primitives that cannot affect the values of
  `last-nonmenu-event` or `use-dialog-box`, so the fact that we evaluate
  those a bit earlier does not affect the values we get.

The benefit is that it's now a bit more clear which of the two branches
of this `if` are relevant for the various branches of the following
`cond` where we test `use-menus`.


        Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 19:41:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 14:41:39 2025
Received: from localhost ([127.0.0.1]:33253 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFdxL-0001NL-E8
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 14:41:39 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:38074)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vFdxI-0001Ms-5g
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 14:41:36 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vFdxA-0007ZV-3E; Sun, 02 Nov 2025 14:41:28 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=bapRK6GmCU77Bdvj/3nurVMGA4sClpY89vnl3URBXyY=; b=KVqAANCucr6y
 Q8TwC//NMYfsSFbfo8rzxYiljeoU06xUPDoJQPHspnjtUAnyJfyMyVzfkSEtUn9jMY333D3+v1oZl
 gIE9vQydstO3/JQQMIplvAdD5/761iZYmKcnWrPn60sa6E9w2xfK5PWksLysFcvjsxiNJLIE904Ax
 sxQxusrXtGf4tUvy58nquhD4Bw38Wd/sZQbjRcRWjBGHOxQxSzA5HP6W79T6RNNKGBQpVFjcNRiSL
 DI8v7DGqxMVrhP0DQXDSdgO9Nt90YpNqNQNZFt/ZGaC1h77OzGGlvkq4aSJQ5APviMsnJxzizanOY
 9ziS4mheRcR5GdJbyA3bfQ==;
Date: Sun, 02 Nov 2025 21:41:24 +0200
Message-Id: <86tszcgr2z.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <jwvjz085j62.fsf-monnier+emacs@HIDDEN> (message from Stefan
 Monnier on Sun, 02 Nov 2025 14:31:34 -0500)
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
 <87ikfsb8uh.fsf@HIDDEN> <jwvjz085j62.fsf-monnier+emacs@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 juri@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>,  sbaugh@HIDDEN,
>   dgoldfarb@HIDDEN,  79664 <at> debbugs.gnu.org
> Date: Sun, 02 Nov 2025 14:31:34 -0500
> 
> -	 use-menus
> +	 (use-menus (and (listp last-nonmenu-event) use-dialog-box))
> +	 (mouse-event last-nonmenu-event) ;Used only if we `use-menus'.

Please don't touch the use-menu and use-dialog-box stuff: it's
unrelated (AFAIU), took several iterations to get right in several
different use cases, and I wouldn't touch what we have with a 10-foot
pole.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 19:31:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 14:31:50 2025
Received: from localhost ([127.0.0.1]:33175 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFdnp-0000oi-PX
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 14:31:50 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:32402)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vFdnm-0000oa-RM
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 14:31:47 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id E565A8167D;
 Sun,  2 Nov 2025 14:31:40 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762111899;
 bh=jKsbHFGyYHVsNcK2nipZGWkGMRN4Mrs78wPWKUCBO24=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=a9ZTcLNBoek6stLv93Dp/BGYSxRum5qSdJKdGFrL6WDqkc+4hkqgdQbXmCOdFgrig
 HcoSsVQmnxiSXecPdc4FLXbtUDvDs4HJljFSr8US7UUpK2sqZAaYHTFiMz8SAYENmU
 9zaTiraZcWgTYJiKzmKsA1/sOj1NzrB6a7nGHKF9k2U+O1lQRsMfgQ8qDUiMz7Vxdx
 rgGBA5aiqv4WagxK1ONWivWvGlIGHakS9SW8ikbDnb9e6ayvRoSSMWla0rtuP3Rpfj
 aOu/qtNN/LijpEMcwMTnI6TFxtOBvONESIHVU7gOCHC23hDMWoXPaTS9DoQLdiX+I2
 13parbI2zQkwQ==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id A08358070E;
 Sun,  2 Nov 2025 14:31:39 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DE8A712012E;
 Sun,  2 Nov 2025 14:31:37 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87ikfsb8uh.fsf@HIDDEN>
Message-ID: <jwvjz085j62.fsf-monnier+emacs@HIDDEN>
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
 <87ikfsb8uh.fsf@HIDDEN>
Date: Sun, 02 Nov 2025 14:31:34 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.180 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, sbaugh@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

--=-=-=
Content-Type: text/plain

>> Also, IIRC, `cl--map-keymap-recursively` has various corner
>> case problems.  I can't remember the details, but buyer beware.
>> And the fact that it has a "--" indicates clearly that it's not meant
>> for general use: it's an internal detail of the `cl-loop` macro.
>>
>> Why do we need `cl--map-keymap-recursively` here?
>
> It's the only function that can handle keymaps deeper that one level.
> 'map-y-or-n-p' uses 'query-replace-map' that has submaps:

How 'bout something like the patch below instead?


        Stefan

--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=map-ynp.patch

diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 385bb6f752c..d5188f85f2c 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -34,13 +34,9 @@
 
 ;;; Code:
 
-(declare-function x-popup-dialog "menu.c" (position contents &optional header))
-(declare-function set-text-conversion-style "textconv.c")
-(autoload 'cl--map-keymap-recursively "cl-extra")
-
 (defvar overriding-text-conversion-style)
 
-(defun map-y-or-n-p (prompter actor list &optional help action-alist
+(defun my-map-y-or-n-p (prompter actor list &optional help action-alist
 			      no-cursor-in-echo-area)
   "Ask a boolean question per PROMPTER for each object in LIST, then call ACTOR.
 
@@ -75,7 +71,7 @@ map-y-or-n-p
 plural noun describing several elements of LIST, and ACTION is a
 transitive verb describing action by ACTOR on one or more elements
 of LIST.  If HELP is omitted or nil, it defaults
-to \(\"object\" \"objects\" \"act on\").
+to (\"object\" \"objects\" \"act on\").
 
 If ACTION-ALIST is given, it is an alist specifying additional keys
 that will be accepted as an answer to the questions.  Each element
@@ -105,9 +101,10 @@ map-y-or-n-p
 The function's value is the number of actions taken."
   (let* ((actions 0)
          (msg (current-message))
-	 user-keys mouse-event map prompt char elt def
+	 user-keys map prompt char elt def
 	 ;; Non-nil means we should use mouse menus to ask.
-	 use-menus
+	 (use-menus (and (listp last-nonmenu-event) use-dialog-box))
+	 (mouse-event last-nonmenu-event) ;Used only if we `use-menus'.
 	 delayed-switch-frame
          ;; Rebind other-window-scroll-buffer so that subfunctions can set
          ;; it temporarily, without risking affecting the caller.
@@ -120,8 +117,7 @@ map-y-or-n-p
 	 (try-again (lambda ()
 		      (let ((x next))
 			(setq next (lambda () (setq next x) elt))))))
-    (if (and (listp last-nonmenu-event)
-	     use-dialog-box)
+    (if use-menus
 	;; Make a list describing a dialog box.
 	(let ((objects (if help (capitalize (nth 1 help))))
 	      (action (if help (capitalize (nth 2 help)))))
@@ -133,12 +129,12 @@ map-y-or-n-p
 					(vector (nth 1 elt))))
 				action-alist)
 		      (,(if help (concat action " This But No More")
-			  "Do This But No More") . act-and-exit)
+			  "Do This But No More")
+		       . act-and-exit)
 		      (,(if help (concat action " All " objects)
-			  "Do All") . automatic)
-		      ("No For All" . exit))
-		use-menus t
-		mouse-event last-nonmenu-event))
+			  "Do All")
+		       . automatic)
+		      ("No For All" . exit))))
       (setq user-keys (if action-alist
 			  (concat (mapconcat (lambda (elt)
                                                (substitute-command-keys
@@ -192,7 +188,8 @@ map-y-or-n-p
                            ;; for the details.
                            (let ((overriding-text-conversion-style nil))
                              (when (fboundp 'set-text-conversion-style)
-                               (set-text-conversion-style text-conversion-style))
+                               (set-text-conversion-style
+                                text-conversion-style))
                              ;; Do NOT use read-event here.  That
                              ;; function does not consult
                              ;; input-decode-map (bug#75886).
@@ -220,12 +217,17 @@ map-y-or-n-p
                                       "%s(\\`y', \\`n', \\`!', \\`.', \\`q', %sor \\`%s') "
                                       minibuffer-prompt-properties)
                                prompt user-keys (help-key))))
-                            (remap (make-sparse-keymap))
-                            (cmd-char
+                            (remap (make-composed-keymap
+                                    map minibuffer-local-map))
+                            (precmd
                              (lambda ()
-                               (interactive)
-                               (setq char last-command-event)
-                               (exit-minibuffer)))
+                               ;; FIXME: `commandp' will misfire if one
+                               ;; of the special symbols like `exit' happens
+                               ;; to get a command definition.
+                               (unless (commandp this-command)
+                                 (setq def this-command)
+                                 (setq char last-command-event)
+                                 (exit-minibuffer))))
                             (cmd-help
                              (lambda ()
                                (interactive)
@@ -237,21 +239,18 @@ map-y-or-n-p
                             (real-this-command real-this-command)
                             (enable-recursive-minibuffers t)
                             (overriding-text-conversion-style nil))
-                       (set-keymap-parent remap minibuffer-local-map)
                        (define-key remap [remap self-insert-command] cmd-help)
-                       (cl--map-keymap-recursively
-                        (lambda (key _cmd)
-                          (define-key remap key cmd-char))
-                        map)
                        (if minibuffer-auto-raise
                            (raise-frame (window-frame (minibuffer-window))))
                        (when (fboundp 'set-text-conversion-style)
                          (set-text-conversion-style text-conversion-style))
-                       (read-from-minibuffer
-                        full-prompt nil remap nil
-                        (or y-or-n-p-history-variable t))
-                       (message "%s%s" full-prompt (single-key-description char)))
-                     (setq def (lookup-key map (vector char)))))
+                       (minibuffer-with-setup-hook
+                           (lambda ()
+                             (add-hook 'pre-command-hook precmd nil t))
+                         (read-from-minibuffer
+                          full-prompt nil remap nil
+                          (or y-or-n-p-history-variable t)))
+                       (message "%s%s" full-prompt (single-key-description char)))))
                    (cond ((eq def 'exit)
 			  (setq next (lambda () nil)))
 			 ((eq def 'act)

--=-=-=--





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 18:16:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 13:16:18 2025
Received: from localhost ([127.0.0.1]:60983 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFccj-00056q-SO
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 13:16:18 -0500
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:32962)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vFcci-00056E-0M
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 13:16:16 -0500
Received: from smtp1.mailbox.org (smtp1.mailbox.org
 [IPv6:2001:67c:2050:b231:465::1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4d02w35mvtz9sRx;
 Sun,  2 Nov 2025 19:16:03 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762107363;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=h2i2zdjaHi0sIfKR5gofGcfNOcbE4YHAC2IBpWdjyV4=;
 b=bRk7ZHJeyF9fmUvtlgWnJftO09mEtz1aDNWEgCz0HYKkDahkuij2tg/RqldUMf5eAEwia7
 8WIbA0DdmdZyOIoH59qYru+U2/IAvFsSysabddMPOJrN+fst3mnciurRCoJz+RbBDZjKC4
 LNzkoO/TGlq1e99u92YsOc8Mp+/dAdg1/swTCzSgqx6dIvnsKuDNlGjbdWe3HZhuoibzOG
 KDi5qkvp3PsR9GcwOVDcNnHF1llzdLpHjiBhwb4lGjYjq9BgzrrbYaELZuF+xthT/Hjn7t
 IIQboPC1KLM4BpvQ4vkLHf6S2v++2hQicvTcq7YEm/nvKK12rfK/1l9bayWhdQ==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::1 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
Date: Sun, 02 Nov 2025 20:14:14 +0200
Message-ID: <87ikfsb8uh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4d02w35mvtz9sRx
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, sbaugh@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Also, IIRC, `cl--map-keymap-recursively` has various corner
> case problems.  I can't remember the details, but buyer beware.
> And the fact that it has a "--" indicates clearly that it's not meant
> for general use: it's an internal detail of the `cl-loop` macro.
>
> Why do we need `cl--map-keymap-recursively` here?

It's the only function that can handle keymaps deeper that one level.
'map-y-or-n-p' uses 'query-replace-map' that has submaps:

  (keymap
   (27 keymap
       (33554454 . scroll-other-window-down)
       (22 . scroll-other-window)
       (118 . scroll-down)))

Maybe `cl--map-keymap-recursively` should be
promoted from its current internal status
and documented in the manual?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 16:26:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 11:26:02 2025
Received: from localhost ([127.0.0.1]:60026 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFau1-0001gG-TM
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 11:26:02 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:32050)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vFatz-0001fc-9U
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 11:25:59 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 2F8831000BC;
 Sun,  2 Nov 2025 11:25:53 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762100747;
 bh=HS52XL8GRimnyfvNst6n6M+U+UoPQtAF1FUeLNfDddo=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=kCozi+3j1zrK6N0ZQY5UKTtV6IqmrRkJ66vh+sbIZ7sxrJFzkA/Bo/7YdmJKik08D
 oQuKRCBSEFN7SDY+TG7BBQFyomQSyVkbgfJTcuBrt9GjfTs4CvEne1EDyeKihi9aMZ
 +qenA50G/ZPCjUtoAZ0CYODjaswZT/HiAGPXbtB0vSVcxT1BZjsOwTurphYSUPl1YY
 hKrFtRXSzg2vRMl+rsLuMYWka/r9KSWfcgueXb9ZTZXsA8yC5xgvU0N9ZcvwefF6np
 34wgH3+RJkg0yRRoPiTNw0p2C6oTrhAzVWpdFIRjXKn2rpGQyqJCeMkILo56N5gGzC
 JV/ANaH5I1ohA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id E23E9100029;
 Sun,  2 Nov 2025 11:25:47 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 29D681204B4;
 Sun,  2 Nov 2025 11:25:45 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
Message-ID: <jwvldko76an.fsf-monnier+emacs@HIDDEN>
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
 <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
Date: Sun, 02 Nov 2025 11:25:42 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.047 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, sbaugh@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

I also have vague memories that `map-ynp.el` is preloaded because we
want to try and avoid (auto)loading a file right when we're exiting
Emacs (in `save-buffers-kill-emacs`).  I can't see any comment
confirming it, so maybe I dreamt it or I'm confusing it with
something else.


        Stefan


Stefan Monnier [2025-11-02 10:02:46] wrote:

>>> This evidently causes
>>>
>>>     ELC      ../lisp/emacs-lisp/map-ynp.elc
>>>   Reloading stale map-ynp.el
>>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>>>   Reloading stale rmc.el
>>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>>>
>>>   In end of data:
>>>   emacs-lisp/map-ynp.el:241:25: Warning: the function `cl--map-keymap-r=
ecursively' is not known to be defined.
>>>     ELC      ../lisp/emacs-lisp/rmc.elc
>>>   Reloading stale map-ynp.el
>>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>>>   Reloading stale rmc.el
>>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>>>
>>>   In read-multiple-choice--from-minibuffer:
>>>   emacs-lisp/rmc.el:365:11: Warning: Unused lexical variable `overridin=
g-text-conversion-style'
>>
>> Strange, I don't see these warnings during compilation.
>
> `cl-lib` can get loaded for all kinds of reasons (e.g. until a recent
> patch of mine, compilation of the a call to a defstruct accessor would
> (auto)load `cl-lib`).  So it's common for such warnings to "come and
> go". =F0=9F=99=81
>
> Also, IIRC, `cl--map-keymap-recursively` has various corner
> case problems.  I can't remember the details, but buyer beware.
> And the fact that it has a "--" indicates clearly that it's not meant
> for general use: it's an internal detail of the `cl-loop` macro.
>
> Why do we need `cl--map-keymap-recursively` here?
>
>
>         Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 15:03:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 10:03:04 2025
Received: from localhost ([127.0.0.1]:59259 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFZbj-0001MN-Pn
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 10:03:04 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:6222)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vFZbg-0001LY-VY
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 10:03:01 -0500
Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id ED3AE1000BC;
 Sun,  2 Nov 2025 10:02:54 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1762095774;
 bh=qr94OMHvoaJL52IVqVkTLjaDGRFKlIP66sOIr+1DSm0=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=dH1rkyQQCyhRfIRbkrNH4+examVb7z8XoDKAXROAjzyTTbv5/CLe2upFCUm2J17wZ
 yZFAR7nhamV1lW7P4Vj7lfb/86mWqDo3GKuBZE16Z5zeOT/TDPprR8UQI28nKpXrtm
 pnS8btHYQmzqS978Lf5dH3uuf4uJIsLNtQeSthjVES/nS3ISeFQl04RJaFITsugnYh
 LFw2St+KOyJ708Bvr4+Je2df6ackg9EXWNkeOnFN+91ooBRcV3l7s4bckEInNbqEM+
 c7nUJDP0OlfCRbeRxGu5rwtwNrftEIP7h6Rl9ei8Nz3c/2o0olflJqzfnDlRX5Ww97
 NtFEV4Ca0vzug==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 1F984100029;
 Sun,  2 Nov 2025 10:02:54 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C6C1D12045A;
 Sun,  2 Nov 2025 10:02:51 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87seewyjvb.fsf@HIDDEN>
Message-ID: <jwvwm487avh.fsf-monnier+emacs@HIDDEN>
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
Date: Sun, 02 Nov 2025 10:02:46 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.048 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, sbaugh@HIDDEN, Eli Zaretskii <eliz@HIDDEN>,
 dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> This evidently causes
>>
>>     ELC      ../lisp/emacs-lisp/map-ynp.elc
>>   Reloading stale map-ynp.el
>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>>   Reloading stale rmc.el
>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>>
>>   In end of data:
>>   emacs-lisp/map-ynp.el:241:25: Warning: the function `cl--map-keymap-re=
cursively' is not known to be defined.
>>     ELC      ../lisp/emacs-lisp/rmc.elc
>>   Reloading stale map-ynp.el
>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>>   Reloading stale rmc.el
>>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>>
>>   In read-multiple-choice--from-minibuffer:
>>   emacs-lisp/rmc.el:365:11: Warning: Unused lexical variable `overriding=
-text-conversion-style'
>
> Strange, I don't see these warnings during compilation.

`cl-lib` can get loaded for all kinds of reasons (e.g. until a recent
patch of mine, compilation of the a call to a defstruct accessor would
(auto)load `cl-lib`).  So it's common for such warnings to "come and
go". =F0=9F=99=81

Also, IIRC, `cl--map-keymap-recursively` has various corner
case problems.  I can't remember the details, but buyer beware.
And the fact that it has a "--" indicates clearly that it's not meant
for general use: it's an internal detail of the `cl-loop` macro.

Why do we need `cl--map-keymap-recursively` here?


        Stefan





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 08:30:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 03:30:34 2025
Received: from localhost ([127.0.0.1]:57666 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFTTu-0005fa-6H
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 03:30:34 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:53772)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vFTTr-0005eb-3c
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 03:30:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vFTTk-0004Da-NU; Sun, 02 Nov 2025 03:30:24 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Vo5U0PkUroqgbStOFOO6LxXVIE63Sf5sps+Y8CS35c8=; b=VvFRsrHROdIt
 Um7Yj9mhh/D00hkK9ipMcfBK5UUhMY7mOINJJzUKc4gM6OSUBeoi5PyORcb0007XFb66l8f63rkBS
 uCRCx3l56S6ejae/T6W7oeaQn4s0IKh8N/aiuVFwkHJElyFcUSUbl5jABRRnJ2K4GHEmK9s6RrXai
 sfhC19cNy51+yYyGWfGcEyOV8Ywvs46g4mDSmWVa0fRExrAMqhpY8I+8F9jc9rFK552ZWjEafkskE
 icrcm2m5XOGryrdBY2RmVBvY1FC36O38VhJWu3f2kt7YhVfwP1zOya9WvmKfCEmMikLMMmVKQKFtp
 v9HSMeswY0/Xo9PRBVC24Q==;
Date: Sun, 02 Nov 2025 10:30:20 +0200
Message-Id: <86cy60j0pv.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <87seewyjvb.fsf@HIDDEN> (message from Juri Linkov on
 Sun, 02 Nov 2025 09:37:36 +0200)
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN> <87seewyjvb.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: sbaugh@HIDDEN,  dgoldfarb@HIDDEN,
>   79664 <at> debbugs.gnu.org,  monnier@HIDDEN
> Date: Sun, 02 Nov 2025 09:37:36 +0200
> 
> > This evidently causes
> >
> >     ELC      ../lisp/emacs-lisp/map-ynp.elc
> >   Reloading stale map-ynp.el
> >   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
> >   Reloading stale rmc.el
> >   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
> >
> >   In end of data:
> >   emacs-lisp/map-ynp.el:241:25: Warning: the function `cl--map-keymap-recursively' is not known to be defined.
> >     ELC      ../lisp/emacs-lisp/rmc.elc
> >   Reloading stale map-ynp.el
> >   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
> >   Reloading stale rmc.el
> >   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
> >
> >   In read-multiple-choice--from-minibuffer:
> >   emacs-lisp/rmc.el:365:11: Warning: Unused lexical variable `overriding-text-conversion-style'
> 
> Strange, I don't see these warnings during compilation.

cl--map-keymap-recursively needs an explicit autoload form, and
overriding-text-conversion-style is only known in builds that compile
textconv.c.

Should be fixed now.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 07:40:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 02:40:58 2025
Received: from localhost ([127.0.0.1]:57548 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFSht-0000Ti-W4
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 02:40:58 -0500
Received: from mout-p-102.mailbox.org ([2001:67c:2050:0:465::102]:45012)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vFShr-0000St-ER
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 02:40:56 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4czmq35C84z9sZh;
 Sun,  2 Nov 2025 08:40:47 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762069247;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=AeAfJJw/e+AMetder+QrKfZ5VFIZeYxCrRunvJn4RBM=;
 b=SGIgAUg8Z+s8zOTo6XHleFFLCiS3enW/HvriHIL4eYmthNlZuVAHqqCL4udS3ko750mwAb
 7LojHKClL3qJ/GMLsmHoszR5WAtaglV9p0lEjq3bmzhUYTlcFRPx0XeXouk/yNm2ZyDK8U
 W9PPjuD8fGjCjyNuaGNcK98YB5wbEs5VlcN4Eli7UtJx7rdlJWAfGm7rh/EgoMmA7kmTqq
 HXFddAbIt3fcCIpA7Q7y4YMExar9zoqP/sAR1r3FC4s6rqKdaKYskmRWqsSCViCfDyDEBz
 TbnTIDu75QODkLqVoQiQH60bx6c85/FWATaJx4j7QM/FEFhsJlUc5on7hsDxQg==
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <86ms55huqe.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
 <86ms55huqe.fsf@HIDDEN>
Date: Sun, 02 Nov 2025 09:37:36 +0200
Message-ID: <87seewyjvb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> This evidently causes
>
>     ELC      ../lisp/emacs-lisp/map-ynp.elc
>   Reloading stale map-ynp.el
>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>   Reloading stale rmc.el
>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>
>   In end of data:
>   emacs-lisp/map-ynp.el:241:25: Warning: the function `cl--map-keymap-recursively' is not known to be defined.
>     ELC      ../lisp/emacs-lisp/rmc.elc
>   Reloading stale map-ynp.el
>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
>   Reloading stale rmc.el
>   Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...
>
>   In read-multiple-choice--from-minibuffer:
>   emacs-lisp/rmc.el:365:11: Warning: Unused lexical variable `overriding-text-conversion-style'

Strange, I don't see these warnings during compilation.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 2 Nov 2025 05:25:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 02 01:25:14 2025
Received: from localhost ([127.0.0.1]:57034 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFQaX-0001m9-Gf
	for submit <at> debbugs.gnu.org; Sun, 02 Nov 2025 01:25:14 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:42768)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vFQaU-0001jV-E0
 for 79664 <at> debbugs.gnu.org; Sun, 02 Nov 2025 01:25:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1vFQaL-00077i-O3; Sun, 02 Nov 2025 01:25:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=NHum0b81jwrakP1IBlTNq6LpEWtn3NUhJSXo/d8huiw=; b=Q0q35Lp6PAQg
 KbnJ86VpHhWB/lclYtt2bOai/BTepr7lw+nM9u9UhOD7UVloxQ7fSOA596qh2RQlcvVqzuqJ7Mf43
 97w/sM4bybLILV9e1Oq+9WTFikC44lCu9Dn/0NtZMRTVtTxI2DKCkcU/+3p/tOxI+e9BNkPH7PDcz
 i/iq/A+2XKnvJq9+tAJoQtmLdtEHEf3b+lrKFCeU7RXqFx9gtbrSmFDxLdA1YEKwINkyi5wMaNswu
 RJOE3K1/BoIrINjF7eh78bOnVKbRPW2/uvWghIbMnsk1RDq9eFYLuNk6sm0wm5g0rtnyU6G9kmoOA
 AN5TDiB3JtETQMD+QAgVpQ==;
Date: Sun, 02 Nov 2025 07:24:57 +0200
Message-Id: <86ms55huqe.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <87ldkppr41.fsf@HIDDEN> (message from Juri Linkov on
 Sat, 01 Nov 2025 20:28:42 +0200)
Subject: Re: bug#79664: 30.1.90;
 save-some-buffers doesn't use read-from-minibuffer
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN> <87ldkppr41.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: sbaugh@HIDDEN, 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Cc: dgoldfarb@HIDDEN, 79664 <at> debbugs.gnu.org,
>  Stefan Monnier <monnier@HIDDEN>
> From: Juri Linkov <juri@HIDDEN>
> Date: Sat, 01 Nov 2025 20:28:42 +0200
> 
> > So here are the patches for 'map-y-or-n-p' and 'read-multiple-choice'
> > without adding any general function:
> 
> Now pushed.

This evidently causes

    ELC      ../lisp/emacs-lisp/map-ynp.elc
  Reloading stale map-ynp.el
  Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
  Reloading stale rmc.el
  Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...

  In end of data:
  emacs-lisp/map-ynp.el:241:25: Warning: the function `cl--map-keymap-recursively' is not known to be defined.
    ELC      ../lisp/emacs-lisp/rmc.elc
  Reloading stale map-ynp.el
  Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/map-ynp.el (source)...
  Reloading stale rmc.el
  Loading d:/gnu/git/emacs/trunk/lisp/emacs-lisp/rmc.el (source)...

  In read-multiple-choice--from-minibuffer:
  emacs-lisp/rmc.el:365:11: Warning: Unused lexical variable `overriding-text-conversion-style'




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 1 Nov 2025 18:30:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 01 14:30:40 2025
Received: from localhost ([127.0.0.1]:52434 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vFGN5-00031X-E4
	for submit <at> debbugs.gnu.org; Sat, 01 Nov 2025 14:30:40 -0400
Received: from mout-p-103.mailbox.org ([2001:67c:2050:0:465::103]:43228)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vFGN0-00030H-V3
 for 79664 <at> debbugs.gnu.org; Sat, 01 Nov 2025 14:30:37 -0400
Received: from smtp102.mailbox.org (smtp102.mailbox.org
 [IPv6:2001:67c:2050:b231:465::102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4czRH16pz1z9ths;
 Sat,  1 Nov 2025 19:30:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762021822;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=opQbVxYklcBkwIsos7MgEM1JQme4ZFSvmCSTVPmDD2w=;
 b=Z/+Z1Gnd3Gasd/1eGT7YAg+/7UKgsGiIBTfIiCR5LWV/tDEJwX2HJq3AVuZZoLAeJWbWdD
 X/gu7dUZBIvZw6PSyz8xWQp+am4vgTcNXK2KTcPB7Tizt/vJu40U6E0H7TomHTjWaIS7HI
 eSXh1AprC8AQxqKa9QrI3EDllYJ3hG5B3jgzCLCwjgu/EYEc030dAKfaJXMkCb9MY91FKZ
 /i4OC7rsJAwB3zUU9c/B0SebyaUh7r2rASBI+DZdxcVn4iCrRrrZmP7fDMClnE9H2h6ZdK
 ZSjDlLQb+2SbjqqBH4nvgaGzUnw8v08Kd1vaq1VyTvHeSklcMYl76fWTjrGQRg==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::102 as permitted sender)
 smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87h5vpk44n.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN>
Date: Sat, 01 Nov 2025 20:28:42 +0200
Message-ID: <87ldkppr41.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Rspamd-Queue-Id: 4czRH16pz1z9ths
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: dgoldfarb@HIDDEN, 79664 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain

> So here are the patches for 'map-y-or-n-p' and 'read-multiple-choice'
> without adding any general function:

Now pushed.

And the remaining basic function that still uses 'read-char'
is 'ask-user-about-lock'.

However, there is one difference when using the function 'read-char-choice'.
On typing a wrong key, 'ask-user-about-lock' used to show

  Please type \\`q', \\`s', or \\`p'; or \\`?' for help

Now with 'read-char-choice' it will show

  %s locked by %s: (\\`s', \\`q', \\`p', \\`?')? [Wrong answer]

This looks ok since the keys are still visible,
and there is a message about a wrong key.

But when 'read-char-choice-use-read-key' is t,
there is no message about a wrong key.

Then 'read-char-choice-with-read-key' could be improved
to list valid keys in the message:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline;
 filename=ask-user-about-lock-read-char-choice.patch

diff --git a/lisp/subr.el b/lisp/subr.el
index ef08618f467..6ee18f537ba 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3745,7 +3745,14 @@ read-char-choice-with-read-key
 	     ((and (null esc-flag) (eq char ?\e))
 	      (setq esc-flag t))
 	     ((memq char '(?\C-g ?\e))
-	      (keyboard-quit))))))))
+	      (keyboard-quit))))
+	   (t
+	    (beep)
+	    (message "Please type %s"
+		     (substitute-command-keys
+		      (mapconcat (lambda (c) (format "\\`%c'" c))
+				 chars ", ")))
+	    (sit-for 3))))))
     ;; Display the question with the answer.  But without cursor-in-echo-area.
     (message "%s%s" prompt (char-to-string char))
     char))
diff --git a/lisp/userlock.el b/lisp/userlock.el
index 583e13e8b2f..9c1c73cbc8c 100644
--- a/lisp/userlock.el
+++ b/lisp/userlock.el
@@ -51,7 +51,8 @@ ask-user-about-lock
 in any way you like."
   (discard-input)
   (save-window-excursion
-    (let (answer short-opponent short-file)
+    (let ((choices `(?s ?q ?p ?S ?Q ?P ?\C-g ?? ,help-char))
+          prompt short-opponent short-file answer)
       (setq short-file
 	    (if (> (length file) 22)
 		(concat "..." (substring file (- (length file) 22)))
@@ -63,16 +64,15 @@ ask-user-about-lock
 		  (concat (substring opponent 0 13) "..."
 			  (match-string 0 opponent)))
 	      opponent))
+      (setq prompt (format-message
+                    (substitute-command-keys
+                     "%s locked by %s: (\\`s', \\`q', \\`p', \\`?')? ")
+                    short-file short-opponent))
       (while (null answer)
 	(when noninteractive
           (signal 'file-locked (list file opponent "Cannot resolve lock conflict in batch mode")))
-        (message (substitute-command-keys
-                  "%s locked by %s: (\\`s', \\`q', \\`p', \\`?')? ")
-                 short-file short-opponent)
-	(let ((tem (let ((inhibit-quit t)
-			 (cursor-in-echo-area t))
-		     (prog1 (downcase (read-char))
-		            (setq quit-flag nil)))))
+        (let ((tem (prog1 (downcase (read-char-choice prompt choices t))
+		     (setq quit-flag nil))))
 	  (if (= tem help-char)
 	      (ask-user-about-lock-help)
 	    (setq answer (assoc tem '((?s . t)

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 27 Oct 2025 17:15:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 27 13:15:41 2025
Received: from localhost ([127.0.0.1]:49798 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vDQom-0005Gz-Vd
	for submit <at> debbugs.gnu.org; Mon, 27 Oct 2025 13:15:41 -0400
Received: from mout-p-102.mailbox.org ([80.241.56.152]:57564)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vDQoc-0005GI-FL
 for 79664 <at> debbugs.gnu.org; Mon, 27 Oct 2025 13:15:34 -0400
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4cwKrm6YFQz9v4j;
 Mon, 27 Oct 2025 18:15:20 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1761585320;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=9G3n924d0WzKlBTVdIU9NBHkNyrELL6hAnylYosFqmE=;
 b=Bmvcc4VyKyFqoS734rr5o6/Ar30rI1/7Ktot/UUpMDHr6W83i7ZmpD8WQ1rkoEXW/oOwui
 i7bFHVTogciUg9NDlZtN02WkjL5LMw5DduoKxJMr2UNfi2yOaSIeuGF4Kj8POLrc8USs5O
 A58W23Yj0539sJmzhq8R6Hfqe9WNrDM2MTq1wGZ9O5jyhxcVEh6e8iU9cyLtuChcGokEDp
 T9G5Qk8QeLVrw1d9NXz3z6+L38rnfJrTtFCTEst723qdxRDTDbUgx7myrLCHc8X/nSoHwE
 RbVKOyyVHlo8Y5+TdFLwl46RTMUu/BZsrgeaT2r50w7V0S6OdlhXFX857nfKEg==
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87h5vpk44n.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
 <87h5vpk44n.fsf@HIDDEN>
Date: Mon, 27 Oct 2025 19:11:48 +0200
Message-ID: <87h5vktgkr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: dgoldfarb@HIDDEN, 79664 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> The new function 'read-key-from-minibuffer' was intended to be used
> in other packages such as 'read-multiple-choice'.  But now I see
> that every package provides its own specific behavior that is not
> straightforward to generalize in a common function.

Here is a short summary of various idiosyncrasies peculiar to
existing character-reading functions:

1. y-or-n-p depending on y-or-n-p-use-read-key

Reads a self-inserting char from 'query-replace-map' and 'y-or-n-p-map'.
Signals an error until reading a valid char.
Shows the value of let-bound 'help-form' after pressing 'help-char'.

2. map-y-or-n-p PROMPT ACTOR LIST HELP ACTION-ALIST
   depending on y-or-n-p-use-read-key

Reads a character with possible modifiers such as e.g.
'?\M-~', '?\C-r', '?\C-f' in 'save-some-buffers-action-alist'.
For standard chars uses 'query-replace-map'.
Shows the value of the HELP arg after pressing the '(help-key)' char.

3. read-char-choice PROMPT CHARS
   read-char-choice-with-read-key when read-char-choice-use-read-key is t
   read-char-from-minibuffer when read-char-choice-use-read-key is nil

Reads a self-inserting char among the list of chars, or any char for empty list.
Signals an error until reading a valid char.
Shows the value of let-bound 'help-form' after pressing 'help-char'.
Examples:
(read-char-choice prompt '(?y ?\s ?n ?\177 ?! ?q ?\e))
(read-char-choice prompt '(?y ?n ?r ?? ?\C-h))
(read-char-from-minibuffer prompt nil 'read-char-history)

4. read-multiple-choice PROMPT CHOICES HELP-STRING
   depending on read-char-choice-use-read-key

Reads a self-inserting char from cars of CHOICES.
Shows HELP-STRING upon typing an invalid char, 'help-char' or '?'.
Example:
(read-multiple-choice
 "Continue connecting?"
 '((?a "always" "Accept certificate for this and future sessions.")
   (?s "session only" "Accept certificate this session only.")
   (?n "no" "Refuse to use certificate, close connection.")))

5. read-answer PROMPT ANSWERS depending on read-answer-short

Reads a self-inserting char from cdrs of ANSWERS.
Signals an error until reading a valid char.
Shows the help buffer after pressing a char from "help" entry.
Example:
(read-answer "prompt"
   '(("yes"  ?y "perform the action")
     ("no"   ?n "skip to the next")
     ("all"  ?! "perform for the rest without more questions")
     ("help" ?h "show help")
     ("quit" ?q "exit")))

> Therefore we need to adapt every package separately, retaining
> their current behavior as much as possible, while allowing them
> switching to other windows in the middle of the querying.

This should be the right thing to do, because otherwise trying to invent
a new function like 'read-key-from-minibuffer' to unify existing ones
will only create a new competing standard in the sense of
https://xkcd.com/927/ with own peculiarities.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 23 Oct 2025 16:18:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 23 12:18:53 2025
Received: from localhost ([127.0.0.1]:33424 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vBy1c-0004Gj-D6
	for submit <at> debbugs.gnu.org; Thu, 23 Oct 2025 12:18:53 -0400
Received: from mout-p-102.mailbox.org ([2001:67c:2050:0:465::102]:58768)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vBy1a-0004GR-35
 for 79664 <at> debbugs.gnu.org; Thu, 23 Oct 2025 12:18:50 -0400
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4csrnD6MfYz9tSM;
 Thu, 23 Oct 2025 18:18:40 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1761236320;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=Y1S13QRQSINiuR3mPO3M+FPEUiO3ijYbWSpfQyCUfR0=;
 b=u/hM9xnS6lCQt+soy3w0x2e3gObwx9yR4gXagg2jn7s1nebHdY7Vuxe/aQW8z3frxoakAG
 5jNLmnjTOBn6hWDDaTjj49UJlG/RseZYZ+ZVACFiM3Cqyq53mK60vnM0LEHby5nmXlRbJy
 Rq8k70hu1Caxc0M+0h37UBZBQ3KyliR6JBqEJRLDlW2wioD3Iz3StWXjACf5C1uZAKQC3l
 HtKgtBSw9YwjfxiYi8CyHKQJmcQ+VPjpM1RntGqBeV3wSScXeAKhFkhliWzkptXoaTDroE
 UQu4YuVoovbTIgfHmCa7a0diCBKSaIEDVQvT5RcehzN6nlhuaHNFghMom/+0Hg==
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87h5vq6gnc.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN> <87h5vq6gnc.fsf@HIDDEN>
Date: Thu, 23 Oct 2025 19:12:52 +0300
Message-ID: <87h5vpk44n.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain

>> Most commands which query the user use read-from-minibuffer, meaning
>> they allow e.g. switching to other windows in the middle of the
>> querying, and then switching back.
>>
>> save-some-buffers uses map-y-or-n-p, which (unlike y-or-n-p itself)
>> still uses read-key, and therefore doesn't allow this.
>
> Here is an initial patch that adds 'read-key-from-minibuffer'
> and uses it in 'map-y-or-n-p' when 'y-or-n-p-use-read-key' is nil.

The new function 'read-key-from-minibuffer' was intended to be used
in other packages such as 'read-multiple-choice'.  But now I see
that every package provides its own specific behavior that is not
straightforward to generalize in a common function.

Therefore we need to adapt every package separately, retaining
their current behavior as much as possible, while allowing them
switching to other windows in the middle of the querying.

So here are the patches for 'map-y-or-n-p' and 'read-multiple-choice'
without adding any general function:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=use-read-key.patch

diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 9c08f8dc2eb..34fdde08b57 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -161,11 +161,13 @@ map-y-or-n-p
 	    (cond ((stringp prompt)
 		   ;; Prompt the user about this object.
 		   (setq quit-flag nil)
-		   (if use-menus
-		       (setq def (or (x-popup-dialog (or mouse-event use-menus)
-						     (cons prompt map))
-				     'quit))
-		     ;; Prompt in the echo area.
+		   (cond
+		    (use-menus
+		     (setq def (or (x-popup-dialog (or mouse-event use-menus)
+						   (cons prompt map))
+				   'quit)))
+		    (y-or-n-p-use-read-key
+		     ;; Prompt in the echo area with `read-key'.
 		     (let ((cursor-in-echo-area (not no-cursor-in-echo-area)))
                        (message "%s" (substitute-command-keys
                                      (format
@@ -203,6 +205,39 @@ map-y-or-n-p
                                            "[end-of-keyboard-macro]"
                                          (single-key-description char))))))
 		     (setq def (lookup-key map (vector char))))
+                    (t
+                     ;; Read from the minibuffer.
+                     (let ((full-prompt
+                            (substitute-command-keys
+                             (format
+                              (apply #'propertize
+                                     "%s(\\`y', \\`n', \\`!', \\`.', \\`q', %sor \\`%s') "
+                                     minibuffer-prompt-properties)
+                              prompt user-keys (help-key))))
+                           (remap (make-sparse-keymap))
+                           (cmd-char
+                            (lambda ()
+                              (interactive)
+                              (setq char last-command-event)
+                              (exit-minibuffer)))
+                           (cmd-help
+                            (lambda ()
+                              (interactive)
+                              (message "%s" (substitute-command-keys
+                                             (format
+                                              "Type \\`%s' for help"
+                                              (help-key)))))))
+                       (set-keymap-parent remap minibuffer-local-map)
+                       (define-key remap [remap self-insert-command] cmd-help)
+                       (cl--map-keymap-recursively
+                        (lambda (key _cmd)
+                          (define-key remap key cmd-char))
+                        map)
+                       (read-from-minibuffer
+                        full-prompt nil remap nil
+                        (or y-or-n-p-history-variable t))
+                       (message "%s%s" full-prompt (single-key-description char)))
+                     (setq def (lookup-key map (vector char)))))
 		   (cond ((eq def 'exit)
 			  (setq next (lambda () nil)))
 			 ((eq def 'act)
diff --git a/lisp/emacs-lisp/rmc.el b/lisp/emacs-lisp/rmc.el
index 158c1e857cc..9a157132f90 100644
--- a/lisp/emacs-lisp/rmc.el
+++ b/lisp/emacs-lisp/rmc.el
@@ -174,10 +181,14 @@ read-multiple-choice
                       \\='((?a \"always\")
                         (?s \"session only\")
                         (?n \"no\")))"
-  (if long-form
-      (read-multiple-choice--long-answers prompt choices)
-    (read-multiple-choice--short-answers
-     prompt choices help-string show-help)))
+  (cond (long-form
+         (read-multiple-choice--long-answers prompt choices))
+        ((or read-char-choice-use-read-key (use-dialog-box-p))
+         (read-multiple-choice--short-answers
+          prompt choices help-string show-help))
+        (t
+         (read-multiple-choice--from-minibuffer
+          prompt choices help-string show-help))))
 
 (declare-function touch-screen-scroll "touch-screen.el")
 (declare-function touch-screen-pinch "touch-screen.el")
@@ -313,6 +324,61 @@ read-multiple-choice--long-answers
                 (equal (cadr elem) answer))
               choices)))
 
+(defun read-multiple-choice--from-minibuffer (prompt choices help-string show-help)
+  ;; Read short answers from the minibuffer.
+  (let* ((prompt-choices
+          (if show-help choices (append choices '((?? "?")))))
+         (altered-names (mapcar #'rmc--add-key-description prompt-choices))
+         (full-prompt
+          (format
+           "%s (%s): "
+           prompt
+           (mapconcat #'cdr altered-names ", ")))
+         tchar buf
+         (map (make-sparse-keymap))
+         (cmd-char
+          (lambda ()
+            (interactive)
+            (delete-minibuffer-contents)
+            (setq tchar last-command-event)
+            (exit-minibuffer)))
+         (cmd-help
+          (lambda ()
+            (interactive)
+            (setq buf (rmc--show-help prompt help-string show-help
+                                      choices altered-names))))
+         (cmd-wrong
+          (lambda ()
+            (interactive)
+            (delete-minibuffer-contents)
+            (ding)
+            (discard-input)
+            (setq buf (rmc--show-help prompt help-string show-help
+                                      choices altered-names))
+            (minibuffer-message "Invalid choice")
+            (sit-for 2))))
+
+    (unwind-protect
+        (progn
+          (when show-help
+            (setq buf (rmc--show-help prompt help-string show-help
+                                      choices altered-names)))
+
+          (set-keymap-parent map minibuffer-local-map)
+          (dolist (char choices)
+            (define-key map `[,(car char)] cmd-char))
+          (define-key map [help-char] cmd-help)
+          (unless show-help (define-key map [??] cmd-help))
+          (define-key map [remap self-insert-command] cmd-wrong)
+
+          (read-from-minibuffer full-prompt nil map))
+
+      (when (buffer-live-p buf)
+        (let ((kill-buffer-quit-windows t))
+          (kill-buffer buf))))
+
+    (assq tchar choices)))
+
 (provide 'rmc)
 
 ;;; rmc.el ends here

--=-=-=
Content-Type: text/plain


Also this patch fixes window handling for 'read-multiple-choice':


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=rmc--show-help.patch

diff --git a/lisp/emacs-lisp/rmc.el b/lisp/emacs-lisp/rmc.el
index 158c1e857cc..9a157132f90 100644
--- a/lisp/emacs-lisp/rmc.el
+++ b/lisp/emacs-lisp/rmc.el
@@ -63,7 +63,15 @@ rmc--show-help
   (let* ((buf-name (if (stringp show-help)
                        show-help
                      "*Multiple Choice Help*"))
-         (buf (get-buffer-create buf-name)))
+         (buf (get-buffer-create buf-name))
+         ;; Show non-selected resized Help window at bottom.
+         (help-window-select nil)
+         (display-buffer-base-action
+          `(display-buffer--maybe-at-bottom
+            . ((window-height . ,#'fit-window-to-buffer))))
+         ;; Inhibit useless message "Type q in help window to delete it".
+         (set-message-functions (cons 'inhibit-message set-message-functions))
+         (inhibit-message-regexps (cons "^Type " inhibit-message-regexps)))
     (if (stringp help-string)
         (with-help-window buf
           (with-current-buffer buf
@@ -71,7 +79,6 @@ rmc--show-help
       (with-help-window buf
         (with-current-buffer buf
           (erase-buffer)
-          (pop-to-buffer buf)
           (insert prompt "\n\n")
           (let* ((columns (/ (window-width) 25))
                  (fill-column 21)

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 22 Oct 2025 16:36:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Oct 22 12:36:35 2025
Received: from localhost ([127.0.0.1]:57586 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vBbpC-0001Gh-W0
	for submit <at> debbugs.gnu.org; Wed, 22 Oct 2025 12:36:35 -0400
Received: from mout-p-202.mailbox.org ([2001:67c:2050:0:465::202]:50296)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vBbpA-0001GP-2Z
 for 79664 <at> debbugs.gnu.org; Wed, 22 Oct 2025 12:36:33 -0400
Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4csFD63DKhz9spG;
 Wed, 22 Oct 2025 18:36:22 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1761150982;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=/vTVSyMf1rzGN9OnHsGM0R6tpJZ9V7xT52VTOSw3Lyg=;
 b=G8kZseuz7D10FLq41SUnAlrD/o7H9PgTLAnuk3ALNKLg4scDtRVGHD49U2IHZ+rtIGZonX
 pyDDPa0fHqBUKtMo4mwjETZCtUfkWRnVenUv38XhRNBrDSjHJXQmkD2CHJQkoN3pDeMgJi
 SaLkEld31Su9BjF8Htdf6r/3+bUdG/Dy3h7RXH8byoNFMbeEHwAz8mMPlxcq63VHva/A/s
 lCMAfFiaX66AC5m/CHueuEqj4FlCOzokbZFXqqV7AHpU8i7sRJHhM2OwWLtdwI28KUzu4C
 hPfrr5IBxJXEILMU5RCBH/1m9qqMFVOxHsPIFkKFfQsvdjx3cq3oEi6E9TKjhA==
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <ier347dv1br.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN>
Date: Wed, 22 Oct 2025 19:32:55 +0300
Message-ID: <87h5vq6gnc.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: dgoldfarb@HIDDEN, 79664 <at> debbugs.gnu.org,
 Stefan Monnier <monnier@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain

> Most commands which query the user use read-from-minibuffer, meaning
> they allow e.g. switching to other windows in the middle of the
> querying, and then switching back.
>
> save-some-buffers uses map-y-or-n-p, which (unlike y-or-n-p itself)
> still uses read-key, and therefore doesn't allow this.

Here is an initial patch that adds 'read-key-from-minibuffer'
and uses it in 'map-y-or-n-p' when 'y-or-n-p-use-read-key' is nil.

'read-key-from-minibuffer' returns a key from the provided keymap
that is a required argument.  Probably it makes no sense to make
the keymap optional, since returning any key from any map makes it
impossible to switch to other windows in the middle of the querying.


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=read-key-from-minibuffer.patch

diff --git a/lisp/subr.el b/lisp/subr.el
index 216ad5eb4ab..0b548627145 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3946,6 +3946,25 @@ read-char-from-minibuffer
     (message "%s%s" prompt (char-to-string char))
     char))
 
+
+(defun read-key-from-minibuffer (prompt keymap &optional hist)
+  "Read a key from the minibuffer, prompting for it with PROMPT.
+Like `read-key', but uses the minibuffer to read and return a key
+from KEYMAP."
+  (let* (char
+         (remap (make-sparse-keymap))
+         (recmd (lambda ()
+                  (interactive)
+                  (setq char last-command-event)
+                  (exit-minibuffer))))
+    (set-keymap-parent remap minibuffer-local-map)
+    (cl--map-keymap-recursively
+     (lambda (key _cmd)
+       (define-key remap key recmd))
+     keymap)
+    (read-from-minibuffer prompt nil remap nil hist)
+    char))
+
 
 ;; Behind display-popup-menus-p test.
 (declare-function x-popup-dialog "menu.c" (position contents &optional header))
diff --git a/lisp/emacs-lisp/map-ynp.el b/lisp/emacs-lisp/map-ynp.el
index 9c08f8dc2eb..b0b2f88a1d5 100644
--- a/lisp/emacs-lisp/map-ynp.el
+++ b/lisp/emacs-lisp/map-ynp.el
@@ -161,11 +161,13 @@ map-y-or-n-p
 	    (cond ((stringp prompt)
 		   ;; Prompt the user about this object.
 		   (setq quit-flag nil)
-		   (if use-menus
-		       (setq def (or (x-popup-dialog (or mouse-event use-menus)
-						     (cons prompt map))
-				     'quit))
-		     ;; Prompt in the echo area.
+		   (cond
+		    (use-menus
+		     (setq def (or (x-popup-dialog (or mouse-event use-menus)
+						   (cons prompt map))
+				   'quit)))
+		    (y-or-n-p-use-read-key
+		     ;; Prompt in the echo area with `read-key'.
 		     (let ((cursor-in-echo-area (not no-cursor-in-echo-area)))
                        (message "%s" (substitute-command-keys
                                      (format
@@ -203,6 +205,17 @@ map-y-or-n-p
                                            "[end-of-keyboard-macro]"
                                          (single-key-description char))))))
 		     (setq def (lookup-key map (vector char))))
+                    (t
+                     ;; Read from the minibuffer.
+                     (setq char (read-key-from-minibuffer
+                                 (substitute-command-keys
+                                  (format
+                                   (apply #'propertize
+                                          "%s(\\`y', \\`n', \\`!', \\`.', \\`q', %sor \\`%s') "
+                                          minibuffer-prompt-properties)
+                                   prompt user-keys (help-key)))
+                                 map (or y-or-n-p-history-variable t)))
+                     (setq def (lookup-key map (vector char)))))
 		   (cond ((eq def 'exit)
 			  (setq next (lambda () nil)))
 			 ((eq def 'act)

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 21 Oct 2025 14:02:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 21 10:02:42 2025
Received: from localhost ([127.0.0.1]:52186 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vBCwj-0008PV-Ix
	for submit <at> debbugs.gnu.org; Tue, 21 Oct 2025 10:02:42 -0400
Received: from mxout5.mail.janestreet.com ([64.215.233.18]:54597)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <sbaugh@HIDDEN>)
 id 1vBCwg-0008Of-EB
 for 79664 <at> debbugs.gnu.org; Tue, 21 Oct 2025 10:02:40 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <87ms5kn5s2.fsf@HIDDEN> (Juri Linkov's message of "Tue, 
 21 Oct 2025 09:12:09 +0300")
References: <ier347dv1br.fsf@HIDDEN> <87ms5kn5s2.fsf@HIDDEN>
Date: Tue, 21 Oct 2025 10:02:32 -0400
Message-ID: <ierwm4otksn.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1761055352;
 bh=kIe63jTKCV5I7OPa3udKRpn6WoUdumk7h0DEbn1gP9I=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date;
 b=eBw+hUzT5Dg7NpIENSOM47QaD49LqP4yTtvCnX31XeXf2wWh+Cs9dWZxsh5s9YuvN
 tEdcZF53jplpUdOAFZo/Xxj9EkhLWA8IOCHhwB+Ws99MaAb5roQBpUBDQ+8wsttGwU
 wyKV2u82yjeaNaGT7zaDlK9j6kFPnqPSS3TP/zdCiIxAsABEKgO4pPp+2zqIJgY6oL
 k9OF1M7JBxHYJ24fPi56B4Kl7EuUH4jxQ9wsf+ujDngejPkOe/bOuTo5Z2WO93Ge9Y
 +8FZSf1FRl9e18ZaoBKkwdQU/gWiDVoHTXoiyhtH7TKtZwcxtwSRBNcyBypYqlP0w3
 a0NxZ1CeFfpbA==
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79664
Cc: 79664 <at> debbugs.gnu.org, dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Juri Linkov <juri@HIDDEN> writes:

>> Most commands which query the user use read-from-minibuffer, meaning
>> they allow e.g. switching to other windows in the middle of the
>> querying, and then switching back.
>>
>> save-some-buffers uses map-y-or-n-p, which (unlike y-or-n-p itself)
>> still uses read-key, and therefore doesn't allow this.
>>
>> save-some-buffers should use read-from-minibuffer instead, by default.
>
> Many times I promised to improve map-y-or-n-p to use the minibuffer
> like y-or-n-p does when y-or-n-p-use-read-key is nil:
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17272#186
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19064#211
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42829#10
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48254#40
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58808#8
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75886#39
>
> But I never got around to doing that because
> rewriting map-y-or-n-p is a big undertaking.
>
> I could do this now.

That would be great.

map-y-or-n-p has caused other trouble, for example in bug#67836.
Hopefully we could fix that too.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at 79664 <at> debbugs.gnu.org:


Received: (at 79664) by debbugs.gnu.org; 21 Oct 2025 06:13:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 21 02:13:50 2025
Received: from localhost ([127.0.0.1]:49449 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vB5cz-0006hY-KY
	for submit <at> debbugs.gnu.org; Tue, 21 Oct 2025 02:13:49 -0400
Received: from mout-p-102.mailbox.org ([80.241.56.152]:46276)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vB5cw-0006gx-4i
 for 79664 <at> debbugs.gnu.org; Tue, 21 Oct 2025 02:13:47 -0400
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4crMS00L78z9t3f;
 Tue, 21 Oct 2025 08:13:36 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1761027216;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=FnHg3Qp04rRcYPQVR96vE8t3rNMNsnqbsctCnb+GRTQ=;
 b=dNscfgdLHgEyvSmowU0LTJvhNF9bROpWar9Xl0rdaBN9RvsrFXTz1F1OGva9kJWdC8RXQ3
 D6gx0UuQYkwSA19vj0nBKJ9F4mB/VUmW4nXImZpY8HcdG/KIX/lCwGAgcxkHg/cYCwW7ua
 YMldATvAHmt9CyQSXCHncXPdExWS0ov4X4zu3Tq5HAU5lxOWBwR8au83qIYrQzZuRc6rDX
 AEW9mQl7yXDiymPBP8hGJhvxeYRIrKHpjuanZTj+SVL7qFUGqVgjdtoohSBwe1B0igXElO
 sHeZ6Zhnzktwc4CZTNt3b/7x3VC0iUENreWlkd1YcyJ1iCt8f5payb2GiwLL/g==
From: Juri Linkov <juri@HIDDEN>
To: Spencer Baugh <sbaugh@HIDDEN>
Subject: Re: bug#79664: 30.1.90; save-some-buffers doesn't use
 read-from-minibuffer
In-Reply-To: <ier347dv1br.fsf@HIDDEN>
Organization: LINKOV.NET
References: <ier347dv1br.fsf@HIDDEN>
Date: Tue, 21 Oct 2025 09:12:09 +0300
Message-ID: <87ms5kn5s2.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79664
Cc: dgoldfarb@HIDDEN, 79664 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> Most commands which query the user use read-from-minibuffer, meaning
> they allow e.g. switching to other windows in the middle of the
> querying, and then switching back.
>
> save-some-buffers uses map-y-or-n-p, which (unlike y-or-n-p itself)
> still uses read-key, and therefore doesn't allow this.
>
> save-some-buffers should use read-from-minibuffer instead, by default.

Many times I promised to improve map-y-or-n-p to use the minibuffer
like y-or-n-p does when y-or-n-p-use-read-key is nil:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=17272#186
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19064#211
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=42829#10
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48254#40
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58808#8
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75886#39

But I never got around to doing that because
rewriting map-y-or-n-p is a big undertaking.

I could do this now.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 20 Oct 2025 19:08:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 20 15:08:07 2025
Received: from localhost ([127.0.0.1]:47529 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vAvEk-0002QT-RV
	for submit <at> debbugs.gnu.org; Mon, 20 Oct 2025 15:08:07 -0400
Received: from lists.gnu.org ([2001:470:142::17]:34814)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <sbaugh@HIDDEN>)
 id 1vAvEh-0002Pg-6e
 for submit <at> debbugs.gnu.org; Mon, 20 Oct 2025 15:08:04 -0400
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 <sbaugh@HIDDEN>)
 id 1vAvEb-0008JK-M2
 for bug-gnu-emacs@HIDDEN; Mon, 20 Oct 2025 15:07:57 -0400
Received: from mxout5.mail.janestreet.com ([64.215.233.18])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <sbaugh@HIDDEN>)
 id 1vAvEY-0003II-Ix
 for bug-gnu-emacs@HIDDEN; Mon, 20 Oct 2025 15:07:57 -0400
From: Spencer Baugh <sbaugh@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 30.1.90; save-some-buffers doesn't use read-from-minibuffer
X-Debbugs-Cc: 
Date: Mon, 20 Oct 2025 15:07:52 -0400
Message-ID: <ier347dv1br.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com;
 s=waixah; t=1760987272;
 bh=Okec+IgeVwCBfZJSe5XMWzNV9x2wBnAxf8A2JhdxFPA=;
 h=From:To:Cc:Subject:Date;
 b=dnGvg+sUosPqjOJs3eQRJyt3KPu7kpSi1zmh7V1ylAcKocWThiO6qdB23oYtzkdoS
 2QLviIw93zAQ9C3TJorULRe+1L8jESzH5q7rN9SCV+oQ7DR7sM7U8QdQSzl+cosD7v
 r+vz8R3a21tf1wA8giW5QtFJEK7sbGUokLNjJoRmOqcq0mkrEBad189l7ovrLnpRQH
 O4jBC1/QfguZ5nnxdewH8hlOuuN87iijDgS5mVaFMMFe5vUKtqOtUk1bizCeQj1GsX
 dZjmMFQrvogQd9TCDh94vZO8pwJhu0TN3bJXOxTgJo2/0NdMTOKl9frr2/r6H/SzUD
 ruTON/EOQ9arA==
Received-SPF: pass client-ip=64.215.233.18; envelope-from=sbaugh@HIDDEN;
 helo=mxout5.mail.janestreet.com
X-Spam_score_int: -43
X-Spam_score: -4.4
X-Spam_bar: ----
X-Spam_report: (-4.4 / 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,
 RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
X-Debbugs-Envelope-To: submit
Cc: dgoldfarb@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.1 (/)


Most commands which query the user use read-from-minibuffer, meaning
they allow e.g. switching to other windows in the middle of the
querying, and then switching back.

save-some-buffers uses map-y-or-n-p, which (unlike y-or-n-p itself)
still uses read-key, and therefore doesn't allow this.

save-some-buffers should use read-from-minibuffer instead, by default.


In GNU Emacs 30.1.90 (build 63, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.15.12, Xaw scroll bars) of 2025-10-10 built on
 igm-qws-u22796a
Repository revision: 7ba3acf0f3247156c291be2e7f2b7f25daeb53ef
Repository branch: emacs-30
Windowing system distributor 'The X.Org Foundation', version 11.0.12011000
System Description: Rocky Linux 8.10 (Green Obsidian)

Configured using:
 'configure --with-x-toolkit=lucid --without-gpm --without-gconf
 --without-selinux --without-imagemagick --with-modules --with-gif=no
 --with-cairo --with-rsvg --without-compress-install --with-tree-sitter
 --with-native-compilation=aot
 PKG_CONFIG_PATH=/usr/local/home/garnish/libtree-sitter/0.22.6-1/lib/pkgconfig/'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LIBSYSTEMD
LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER X11 XDBE XIM
XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix





Acknowledgement sent to Spencer Baugh <sbaugh@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#79664; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 5 Nov 2025 08:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.