GNU bug report logs - #70576
[PATCH] `repeat-echo-message-string': support repeat keymap "hints"

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: JD Smith <jdtsmith@HIDDEN>; Keywords: patch; dated Thu, 25 Apr 2024 22:33:05 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
bug Marked as found in versions 30.0.5. Request was from Manuel Giraud <manuel@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
bug No longer marked as fixed in versions 30.0.50 and reopened. Request was from Debbugs Internal Request <help-debbugs@HIDDEN> to internal_control <at> debbugs.gnu.org. Full text available.
bug marked as fixed in version 30.0.50, send any further explanations to 70576 <at> debbugs.gnu.org and JD Smith <jdtsmith@HIDDEN> Request was from Manuel Giraud <manuel@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 70576) by debbugs.gnu.org; 3 May 2024 07:15:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 03 03:15:38 2024
Received: from localhost ([127.0.0.1]:46198 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2n8s-00033n-7R
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 03:15:38 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:58242)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2n8o-00033f-Tz
 for 70576 <at> debbugs.gnu.org; Fri, 03 May 2024 03:15:36 -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 1s2n8M-00006W-Ne; Fri, 03 May 2024 03:15:06 -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=jK/oTol6jhIQL7dYPd0seJrRX/enMZzbVJEoO6+Hx10=; b=CW5d67H3KsA0
 K6+A2NW/7HmjxKvtNQ7LfGPuGbqYHBYswvt06zbMHG1iIucJ7KDZwR3esGDPAQfRTqKQfvnIJyz8+
 ILbaiRWhzCtQkdghoJbvS3d+/si50FnGv4xtB5U3yrQR58123OFKIRELSXGKDSrdgpWyZXrh/fsGz
 2LvhqCn3yLVcPctEVoaS/ecTkFGd2lncoiHVKQ4jWRfotaefgI4IjudTnCQJHdWpILcH7dpine3D7
 meI6GejQo5tJlyBERRiZQfpLLnPeGfuMNv1/Otc9zDKKP1Krcd+Bg2Ryovh6NkIZt+c+po0/mjy6u
 mTztPLDE5Bj1HMiSqxjR3g==;
Date: Fri, 03 May 2024 10:15:01 +0300
Message-Id: <865xvvjrii.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86msp7beii.fsf@HIDDEN> (message from Juri Linkov on
 Fri, 03 May 2024 09:23:01 +0300)
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
 <86zft8jd2y.fsf@HIDDEN> <86msp7beii.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@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: jdtsmith@HIDDEN,  70576 <at> debbugs.gnu.org
> Date: Fri, 03 May 2024 09:23:01 +0300
> 
> >> > Thanks, but please also update the ELisp manual and add an entry to
> >> > NEWS about this change.
> >>
> >> A NEWS entry was already added with "---" since I didn't expect that
> >> such a small feature that is not used anywhere needs to grow
> >> the size of the manual.
> >
> > I don't see how we can avoid updating the ELisp manual, when the other
> > values of :repeat are already documented there, see the node "Creating
> > Keymaps".
> >
> > So please add the description of the new value to those already
> > documented there.
> 
> Indeed, without this the manual would be incomplete, so now added as well.

Thanks.




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

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


Received: (at 70576) by debbugs.gnu.org; 3 May 2024 06:25:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 03 02:25:06 2024
Received: from localhost ([127.0.0.1]:46167 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2mLx-00083B-KB
	for submit <at> debbugs.gnu.org; Fri, 03 May 2024 02:25:05 -0400
Received: from relay2-d.mail.gandi.net ([217.70.183.194]:36249)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s2mLt-00081o-BJ
 for 70576 <at> debbugs.gnu.org; Fri, 03 May 2024 02:25:04 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id D60684000A;
 Fri,  3 May 2024 06:24:32 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <86zft8jd2y.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 02 May
 2024 21:14:29 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
 <86zft8jd2y.fsf@HIDDEN>
Date: Fri, 03 May 2024 09:23:01 +0300
Message-ID: <86msp7beii.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@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 (-)

>> > Thanks, but please also update the ELisp manual and add an entry to
>> > NEWS about this change.
>>
>> A NEWS entry was already added with "---" since I didn't expect that
>> such a small feature that is not used anywhere needs to grow
>> the size of the manual.
>
> I don't see how we can avoid updating the ELisp manual, when the other
> values of :repeat are already documented there, see the node "Creating
> Keymaps".
>
> So please add the description of the new value to those already
> documented there.

Indeed, without this the manual would be incomplete, so now added as well.




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

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


Received: (at 70576) by debbugs.gnu.org; 2 May 2024 18:15:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 14:15:32 2024
Received: from localhost ([127.0.0.1]:45162 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2axw-0004fW-7v
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 14:15:32 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:41170)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2axs-0004JO-RY
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 14:15:31 -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 1s2axP-0004Ol-GL; Thu, 02 May 2024 14:15:00 -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=GMbArUQ+i0BpmQWcGWA6y1vKcF9ptjwN47Iuk0yklME=; b=lxCxt/CuUfsF
 amjo37A3hKjF/ITrgt4VRFt0dyU+iRfzWZKn7BWOJ65FW/91e+hF86wqH8v71x9nCJckKU5gTDKyE
 DEvyiGjRK2YC1wEm4AJUIQ3jy0ElezW/r5odrX6IWrzKyGXy/PPzVDYfsTQwlwWCPv/pbIhu82ALf
 hHmzEsFvN2h5c1Dxkfx8d4gQEp/5cewJSx2L6cs3fqIFUfByWp/+N4jEVWgQtxaV4G9f9SGAF3A9g
 PkfqwyspYcjMCyECJk/mLzXMKcBo9NIOyZg+mc9qYbWtfzrGNBxDKZ3DDLckWHdE3s3ep5EFv7t+x
 00NPjPE5CfDoDod/v0VlYw==;
Date: Thu, 02 May 2024 21:14:29 +0300
Message-Id: <86zft8jd2y.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86sez06w59.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 02 May 2024 19:16:06 +0300)
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN> <86sez06w59.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@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: jdtsmith@HIDDEN,  70576 <at> debbugs.gnu.org
> Date: Thu, 02 May 2024 19:16:06 +0300
> 
> >> >>> (defvar-keymap expreg-repeat-map
> >> >>>    :doc "Repeat map for `expreg' actions."
> >> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
> >> >>>    "\\" 'expreg-expand
> >> >>>    "|"  'expreg-contract)
> >> >>
> >> >> If a hint is missing for a command, it should just have its key mentioned.
> >> >> It looks like your idea would require changes to defvar-keymap.  Do you
> >> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> >> >> the macro could set a property on the command symbol as you initially
> >> >> proposed.
> >> >
> >> > Alright, let's add this to defvar-keymap.  Please try the following patch.
> >>
> >> Thanks for the feature request.  This is pushed now.
> >
> > Thanks, but please also update the ELisp manual and add an entry to
> > NEWS about this change.
> 
> A NEWS entry was already added with "---" since I didn't expect that
> such a small feature that is not used anywhere needs to grow
> the size of the manual.

I don't see how we can avoid updating the ELisp manual, when the other
values of :repeat are already documented there, see the node "Creating
Keymaps".

So please add the description of the new value to those already
documented there.




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

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


Received: (at 70576) by debbugs.gnu.org; 2 May 2024 16:18:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 12:18:03 2024
Received: from localhost ([127.0.0.1]:44665 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2Z8F-0007r9-0t
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 12:18:03 -0400
Received: from relay2-d.mail.gandi.net ([217.70.183.194]:43959)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s2Z8C-0007qk-U5
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 12:18:01 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 7CB0140007;
 Thu,  2 May 2024 16:17:31 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <86r0ekn0o0.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 02 May
 2024 10:16:47 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN>
Date: Thu, 02 May 2024 19:16:06 +0300
Message-ID: <86sez06w59.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@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 (-)

>> >>> (defvar-keymap expreg-repeat-map
>> >>>    :doc "Repeat map for `expreg' actions."
>> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>> >>>    "\\" 'expreg-expand
>> >>>    "|"  'expreg-contract)
>> >>
>> >> If a hint is missing for a command, it should just have its key mentioned.
>> >> It looks like your idea would require changes to defvar-keymap.  Do you
>> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
>> >> the macro could set a property on the command symbol as you initially
>> >> proposed.
>> >
>> > Alright, let's add this to defvar-keymap.  Please try the following patch.
>>
>> Thanks for the feature request.  This is pushed now.
>
> Thanks, but please also update the ELisp manual and add an entry to
> NEWS about this change.

A NEWS entry was already added with "---" since I didn't expect that
such a small feature that is not used anywhere needs to grow
the size of the manual.




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

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


Received: (at 70576) by debbugs.gnu.org; 2 May 2024 11:48:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 07:48:17 2024
Received: from localhost ([127.0.0.1]:43291 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2UvA-0001lK-Rq
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 07:48:17 -0400
Received: from mail-il1-x12f.google.com ([2607:f8b0:4864:20::12f]:57551)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s2Uv6-0001l8-Lw
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 07:48:15 -0400
Received: by mail-il1-x12f.google.com with SMTP id
 e9e14a558f8ab-36c72d287f8so1811355ab.2
 for <70576 <at> debbugs.gnu.org>; Thu, 02 May 2024 04:47:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714650465; x=1715255265; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=/7wVkSw34x+e5RumE0GpmaHdtTWYQPx0EhkJwwxkP5M=;
 b=JodsAXFZHA4ulI2+Arz+FUHe9UuFeWTqkwUwTzr0EP9XS9cWBuX/w1rK0M6ecmLIuy
 +owKIXX4tRZ2DAwX4iNh4nXVrvy5iR5qFfKHIWc3aAJSlRi3absMrupGGg1TYO0yqfJn
 WOQnhPGXhoSleRklnLTNA0CwkWpBudHWl8lGNcBD9tawhQ0goiNBE4A36xCGsh1ODa7Q
 mjKQyCOIPELbkrr84o65boADaA3P7nU6w+d6tN0LHt4lQRII1B2p79S6Wol6PL+yFlYy
 tEMkoRCOJpNmRic+1mmepIdTaEKfKcHyt6nxJG3i5cHycIS27VLtAIyYtspalOcF8UUa
 Q5Iw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714650465; x=1715255265;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=/7wVkSw34x+e5RumE0GpmaHdtTWYQPx0EhkJwwxkP5M=;
 b=gwixLS3on0KXqLHbLKRaxtK6nP8P7w2GphbwcFkFPytl+7ViPadOyekyoX6dPKZu20
 HhrB4xgBf/iKAnZTHnv410qIc8ESsk+6cpXNeDuryLUOkXoPpSHXZG2RsatJH5u5N2fR
 npTuYi63g2mmqlS1v5kIIggD7U8ouSXbU8ag/EIdQ6KtxF8Xw4DSXfqtpE3HA61kinlt
 mEollffU+FhUfMUiDkm2FBA5nV1uSQuTds2mOmQYphugeYCZqTzgcvRC+wlGaokFZsll
 jD2D1OUy3QDYkdu090JzuB+n2Oz56FYllypN6h8AqYPkltSyLYIvkSRzrPWVaLxX4hQk
 TOlw==
X-Gm-Message-State: AOJu0Yyd4A3jO07X3+RJjh4FCDd/oOIeJsdd4jIHGdum1L7RhVkey7+N
 x1JAkM+mWKOtBtsZC9xXq1W3LgW98JT0upyton0vNGyIONQCp+5+
X-Google-Smtp-Source: AGHT+IFCraoV+jVZPgh/tMWZbI9loypbfhUPvHgbuhFbe/f5DDCEIeL4nrzR6LrMj+O/NjNyzAB+rQ==
X-Received: by 2002:a05:6e02:1fce:b0:36c:4aba:10be with SMTP id
 dj14-20020a056e021fce00b0036c4aba10bemr2443547ilb.10.1714650463052; 
 Thu, 02 May 2024 04:47:43 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 q7-20020a056e0220e700b003698fc3a541sm176619ilv.80.2024.05.02.04.47.41
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 02 May 2024 04:47:42 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
From: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <86r0ekn0o0.fsf@HIDDEN>
Date: Thu, 2 May 2024 07:47:31 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <B58177E1-4B1A-4D2E-A205-0D07F6BD1B83@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
 <86r0ekn0o0.fsf@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, Eli Zaretskii <eliz@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 (-)

Thanks for working on this.  I'm sorry I didn't have a chance to test =
the patch, it looks good.  I don't think a disable variable is necessary =
for now, since most repeat maps are self-defined.

> On May 2, 2024, at 3:16=E2=80=AFAM, Eli Zaretskii <eliz@HIDDEN> =
wrote:
>=20
>> Cc: 70576 <at> debbugs.gnu.org
>> From: Juri Linkov <juri@HIDDEN>
>> Date: Thu, 02 May 2024 09:48:06 +0300
>>=20
>> close 70576 30.0.50
>> thanks
>>=20
>>>>> (defvar-keymap expreg-repeat-map
>>>>>   :doc "Repeat map for `expreg' actions."
>>>>>   :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . =
"contract")))
>>>>>   "\\" 'expreg-expand
>>>>>   "|"  'expreg-contract)
>>>>=20
>>>> If a hint is missing for a command, it should just have its key =
mentioned.
>>>> It looks like your idea would require changes to defvar-keymap.  Do =
you
>>>> want to propose a patch?  We'd need some way to pass the hints in; =
perhaps
>>>> the macro could set a property on the command symbol as you =
initially
>>>> proposed.
>>>=20
>>> Alright, let's add this to defvar-keymap.  Please try the following =
patch.
>>=20
>> Thanks for the feature request.  This is pushed now.
>=20
> Thanks, but please also update the ELisp manual and add an entry to
> NEWS about this change.





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

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


Received: (at 70576) by debbugs.gnu.org; 2 May 2024 07:17:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 03:17:21 2024
Received: from localhost ([127.0.0.1]:42033 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2Qgy-0001vD-NO
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 03:17:21 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:40618)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s2Qgx-0001v7-Fc
 for 70576 <at> debbugs.gnu.org; Thu, 02 May 2024 03:17:20 -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 1s2QgV-0003n4-FV; Thu, 02 May 2024 03:16:51 -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=u14/Dpnd3IOjArW40WtYhvmL4kosZY7jmh/zHqHnB5o=; b=pVF19R2Qh1Fi
 BCZuxc8oszRfQz8e5vMD3Js3tpWG5DHakWvhqp0/v3jUnCyIOK8CmSMpgU6qR1d5OIJgjFyPwnCbs
 3PIiX+E3qY8GZ2JKvsnH9QUJcZYEwc6TkwTcE5KhMbHv6L9Rke1ZlKJaJGWkeu0tu9dDY5SHWYSi6
 NBufeGGwMAMYohZ6bs7so75mEi19kGv5ZT9SCBnvIQTKygE9mCsaamHYwppKHv99Kn6nOorhqDHxR
 SOVHs/E3RWUD8Ch/qUEZFURMFlJ24CAk3vZHCgGC/5IZt9dw7khdG3FGjs+N4sAgAoUByYqx1/v85
 2l/W90ilBBufDhDaXlbOdA==;
Date: Thu, 02 May 2024 10:16:47 +0300
Message-Id: <86r0ekn0o0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86zft8676h.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 02 May 2024 09:48:06 +0300)
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN> <86zft8676h.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <at> debbugs.gnu.org, jdtsmith@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: 70576 <at> debbugs.gnu.org
> From: Juri Linkov <juri@HIDDEN>
> Date: Thu, 02 May 2024 09:48:06 +0300
> 
> close 70576 30.0.50
> thanks
> 
> >>> (defvar-keymap expreg-repeat-map
> >>>    :doc "Repeat map for `expreg' actions."
> >>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
> >>>    "\\" 'expreg-expand
> >>>    "|"  'expreg-contract)
> >>
> >> If a hint is missing for a command, it should just have its key mentioned.
> >> It looks like your idea would require changes to defvar-keymap.  Do you
> >> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> >> the macro could set a property on the command symbol as you initially
> >> proposed.
> >
> > Alright, let's add this to defvar-keymap.  Please try the following patch.
> 
> Thanks for the feature request.  This is pushed now.

Thanks, but please also update the ELisp manual and add an entry to
NEWS about this change.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#70576; Package emacs. Full text available.
bug marked as fixed in version 30.0.50, send any further explanations to 70576 <at> debbugs.gnu.org and JD Smith <jdtsmith@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 70576) by debbugs.gnu.org; 2 May 2024 06:48:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 02 02:48:59 2024
Received: from localhost ([127.0.0.1]:41908 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s2QFW-0007LP-SJ
	for submit <at> debbugs.gnu.org; Thu, 02 May 2024 02:48:59 -0400
Received: from relay5-d.mail.gandi.net ([217.70.183.197]:37817)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>)
 id 1s2QFU-0007LG-U2; Thu, 02 May 2024 02:48:57 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 103BE1C0005;
 Thu,  2 May 2024 06:48:27 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <86ttjle92p.fsf@HIDDEN> (Juri Linkov's message of "Sun, 
 28 Apr 2024 19:38:38 +0300")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
 <86ttjle92p.fsf@HIDDEN>
Date: Thu, 02 May 2024 09:48:06 +0300
Message-ID: <86zft8676h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)

close 70576 30.0.50
thanks

>>> (defvar-keymap expreg-repeat-map
>>>    :doc "Repeat map for `expreg' actions."
>>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>>>    "\\" 'expreg-expand
>>>    "|"  'expreg-contract)
>>
>> If a hint is missing for a command, it should just have its key mentioned.
>> It looks like your idea would require changes to defvar-keymap.  Do you
>> want to propose a patch?  We'd need some way to pass the hints in; perhaps
>> the macro could set a property on the command symbol as you initially
>> proposed.
>
> Alright, let's add this to defvar-keymap.  Please try the following patch.

Thanks for the feature request.  This is pushed now.




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

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


Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 17:07:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 28 13:07:56 2024
Received: from localhost ([127.0.0.1]:51266 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s180J-0001RX-V5
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 13:07:56 -0400
Received: from relay4-d.mail.gandi.net ([217.70.183.196]:44395)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s180H-0001RN-J9
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 13:07:54 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id CBCBAE0003;
 Sun, 28 Apr 2024 17:07:26 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN> (JD Smith's
 message of "Sun, 28 Apr 2024 08:45:19 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
 <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
Date: Sun, 28 Apr 2024 19:38:38 +0300
Message-ID: <86ttjle92p.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)

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

>> (defvar-keymap expreg-repeat-map
>>    :doc "Repeat map for `expreg' actions."
>>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . "contract")))
>>    "\\" 'expreg-expand
>>    "|"  'expreg-contract)
>
> If a hint is missing for a command, it should just have its key mentioned.
> It looks like your idea would require changes to defvar-keymap.  Do you
> want to propose a patch?  We'd need some way to pass the hints in; perhaps
> the macro could set a property on the command symbol as you initially
> proposed.

Alright, let's add this to defvar-keymap.  Please try the following patch.

PS: Do you still think a new custom variable should be added to be able to
disable hint strings?


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=repeat-hint.patch

diff --git a/lisp/keymap.el b/lisp/keymap.el
index b2b475c7d71..cbd26f1060e 100644
--- a/lisp/keymap.el
+++ b/lisp/keymap.el
@@ -603,10 +603,11 @@ defvar-keymap
 symbol property.
 
 More control is available over which commands are repeatable; the
-value can also be a property list with properties `:enter' and
-`:exit', for example:
+value can also be a property list with properties `:enter',
+`:exit' and `:hints', for example:
 
-     :repeat (:enter (commands ...) :exit (commands ...))
+     :repeat (:enter (commands ...) :exit (commands ...)
+              :hints ((command . \"hint\") ...))
 
 `:enter' specifies the list of additional commands that only
 enter `repeat-mode'.  When the list is empty, then only the
@@ -621,6 +622,10 @@ defvar-keymap
 in this specific map, but should not have the `repeat-map' symbol
 property.
 
+`:hints' is a list of cons pairs where car is a command and
+cdr is a string that is displayed alongside of the repeatable key
+in the echo area.
+
 \(fn VARIABLE-NAME &key DOC FULL PARENT SUPPRESS NAME PREFIX KEYMAP REPEAT &rest [KEY DEFINITION]...)"
   (declare (indent 1))
   (let ((opts nil)
@@ -660,7 +665,9 @@ defvar-keymap
           (setq def (pop defs))
           (when (and (memq (car def) '(function quote))
                      (not (memq (cadr def) (plist-get repeat :exit))))
-            (push `(put ,def 'repeat-map ',variable-name) props)))))
+            (push `(put ,def 'repeat-map ',variable-name) props)))
+        (dolist (def (plist-get repeat :hints))
+          (push `(put ',(car def) 'repeat-hint ',(cdr def)) props))))
 
     (let ((defvar-form
            `(defvar ,variable-name
diff --git a/lisp/repeat.el b/lisp/repeat.el
index 0a59494c097..b9c96fa4e12 100644
--- a/lisp/repeat.el
+++ b/lisp/repeat.el
@@ -553,20 +553,27 @@ repeat--clear-prev
 (defun repeat-echo-message-string (keymap)
   "Return a string with the list of repeating keys in KEYMAP."
   (let (keys)
-    (map-keymap (lambda (key cmd) (and cmd (push key keys))) keymap)
-    (format-message "Repeat with %s%s"
-                    (mapconcat (lambda (key)
-                                 (substitute-command-keys
-                                  (format "\\`%s'"
-                                          (key-description (vector key)))))
-                               keys ", ")
-                    (if repeat-exit-key
-                        (substitute-command-keys
-                         (format ", or exit with \\`%s'"
-                                 (if (key-valid-p repeat-exit-key)
-                                     repeat-exit-key
-                                   (key-description repeat-exit-key))))
-                      ""))))
+    (map-keymap (lambda (key cmd) (and cmd (push (cons key cmd) keys)))
+                keymap)
+    (format-message
+     "Repeat with %s%s"
+     (mapconcat (lambda (key-cmd)
+                  (let* ((key (car key-cmd))
+                         (cmd (cdr key-cmd))
+                         (hint (when (symbolp cmd)
+                                 (get cmd 'repeat-hint))))
+                    (substitute-command-keys
+                     (format "\\`%s'%s"
+                             (key-description (vector key))
+                             (if hint (format "(%s)" hint) "")))))
+                keys ", ")
+     (if repeat-exit-key
+         (substitute-command-keys
+          (format ", or exit with \\`%s'"
+                  (if (key-valid-p repeat-exit-key)
+                      repeat-exit-key
+                    (key-description repeat-exit-key))))
+       ""))))
 
 (defun repeat-echo-message (keymap)
   "Display in the echo area the repeating keys defined by KEYMAP.

--=-=-=--




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

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


Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 12:46:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 28 08:46:00 2024
Received: from localhost ([127.0.0.1]:50252 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s13up-0000qr-RS
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 08:46:00 -0400
Received: from mail-il1-x12a.google.com ([2607:f8b0:4864:20::12a]:60498)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s13um-0000qh-WB
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 08:45:58 -0400
Received: by mail-il1-x12a.google.com with SMTP id
 e9e14a558f8ab-36a17999886so16280975ab.0
 for <70576 <at> debbugs.gnu.org>; Sun, 28 Apr 2024 05:45:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714308332; x=1714913132; darn=debbugs.gnu.org;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=MSnF+pELIq3jWiHyvCpXIqvscNlVq6H37AqU8We/+Pk=;
 b=h5/BPzlu+2x/yl9Wrn89+9j/hpReP4KJAdqi/xXlXgvzYEZtIUMmjsi9okF8d7+5HN
 6vTrXYYGjJiJ03wbt9C2qmJBDh2N2uWPKHxTSInBkrDmNJY80C/VFHwMu2zDjzT/GwfP
 sU3Z2SS4hNjJD+EbD7ZPFUyWLsZqXCBHrBAniWbpePsYV8VQINnYCFuGFa74+Wh1aJ8P
 zPbqCrV9FjpoeE8gJuhV/folpTZNtvud96kochdibc2a79VNgRnBuZ43d1d5Ng0nD4uY
 XoLRB1UPT9ohJN1frtumZ9TxTkT7mF1PmfeRj0X74zOqBQbU4kWu3w8y9j4TsugliBR3
 9oqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714308332; x=1714913132;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=MSnF+pELIq3jWiHyvCpXIqvscNlVq6H37AqU8We/+Pk=;
 b=gvd6gIMcTY6itj3dszTsFySd2RjntT8Kvq8dJXcswsgTRT1s/2axNPkhm1ASGrhcGV
 +ohz4QntHKZkgStT/iGRujJq1SU02JRETvzchtgTZVS2n8t4i/EaRd418E5tb9sYdO0A
 0bicopaf9rnoxuyldXUKLqf8os8gtWRchA7PQhrSacQenpf6biJ9aomYT7n3a+QFI09V
 BICTeLsDiSl71gkj0w0PF1vPNOE0ilCX+zO8iXzAr1zyZJSmhvRvSHdR+x/rBdJfe5pF
 4j0c74v3n6MmHdafm5+n5hU6WvS3+ERz/AZwojQfmYBAlvF24HSjXQMd2xsuPQOBuKNp
 LrGg==
X-Gm-Message-State: AOJu0YzGTKjCDAgSEGSlRVwEHE7MCbTItfNMpHHGJfXjV1k9BO/+XdtD
 Y1zK/f1W09cZwmyi4NVu3Fqsb3YUfhXWDo9HMcceCys/Pt+TFU4n
X-Google-Smtp-Source: AGHT+IE6x3QojzIDUYrLvJ98SuwNzDDbcRyl6XviCHijDr0hwM8Y8oU7QvQEZeKWI9NOvgVBjkgyrA==
X-Received: by 2002:a05:6e02:214c:b0:36c:c9f:ccd0 with SMTP id
 d12-20020a056e02214c00b0036c0c9fccd0mr9478394ilv.17.1714308330586; 
 Sun, 28 Apr 2024 05:45:30 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 dk8-20020a0566384bc800b00484a3e77318sm6601978jab.58.2024.04.28.05.45.29
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Sun, 28 Apr 2024 05:45:30 -0700 (PDT)
From: JD Smith <jdtsmith@HIDDEN>
Message-Id: <F002D0AE-8594-429F-8313-EF867AD6DB5C@HIDDEN>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
Date: Sun, 28 Apr 2024 08:45:19 -0400
In-Reply-To: <86cyqaezhc.fsf@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
 <86cyqaezhc.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)


--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8



> On Apr 28, 2024, at 2:58=E2=80=AFAM, Juri Linkov <juri@HIDDEN> =
wrote
>> Of course a new wrapper macro could also be developed to ease this.
>> Do you anticipate any specific issues?
>=20
> Here is what I recommend to do to simplify the definition of hints for =
users.
>=20
> Like there can be a list of enter and exit commands in =
'defvar-keymap':
>=20
>  :repeat =E2=80=98(:enter (commands ...) :exit (commands ...))=E2=80=99
>=20
> the same list could be used for hints:
>=20
>  :repeat =E2=80=98(:enter (commands ...) :exit (commands ...) :hints =
((command . hint) ...))=E2=80=99
>=20
> This should be easier to document and to understand by users than
> a special syntax of cons for binding and the requirement to add :name.

Though it will require repetition and thus be subject to =
changed-here-but-not-there errors, this does look good and nicely groups =
the information under :repeat.  So this should work for all commands in =
the keymap:

> (defvar-keymap expreg-repeat-map
>    :doc "Repeat map for `expreg' actions."
>    :repeat '(:hints ((expreg-expand . "expand") (expreg-contract . =
"contract")))
>    "\\" 'expreg-expand
>    "|"  'expreg-contract)


If a hint is missing for a command, it should just have its key =
mentioned.  It looks like your idea would require changes to =
defvar-keymap.  Do you want to propose a patch?  We'd need some way to =
pass the hints in; perhaps the macro could set a property on the command =
symbol as you initially proposed.=

--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dutf-8"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;"><br =
id=3D"lineBreakAtBeginningOfMessage"><div><br><blockquote =
type=3D"cite"><div>On Apr 28, 2024, at 2:58=E2=80=AFAM, Juri Linkov =
&lt;juri@HIDDEN&gt; wrote</div></blockquote><blockquote =
type=3D"cite"><div><blockquote type=3D"cite" style=3D"font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; orphans: auto; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;">Of course a new wrapper macro could also be =
developed to ease this.<br>Do you anticipate any specific =
issues?<br></blockquote><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">Here is =
what I recommend to do to simplify the definition of hints for =
users.</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
Helvetica; font-size: 12px; font-style: normal; font-variant-caps: =
normal; font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"><br style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none;"><span style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: 12px; font-style: normal; font-variant-caps: normal; =
font-weight: 400; letter-spacing: normal; text-align: start; =
text-indent: 0px; text-transform: none; white-space: normal; =
word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: =
none; float: none; display: inline !important;">Like there can be a list =
of enter and exit commands in 'defvar-keymap':</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">&nbsp;:repeat =E2=80=98(:enter (commands =
...) :exit (commands ...))=E2=80=99</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">the =
same list could be used for hints:</span><br style=3D"caret-color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline =
!important;">&nbsp;:repeat =E2=80=98(:enter (commands ...) :exit =
(commands ...) :hints ((command . hint) ...))=E2=80=99</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none;"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
12px; font-style: normal; font-variant-caps: normal; font-weight: 400; =
letter-spacing: normal; text-align: start; text-indent: 0px; =
text-transform: none; white-space: normal; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; text-decoration: none; float: none; =
display: inline !important;">This should be easier to document and to =
understand by users than</span><br style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: 12px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">a =
special syntax of cons for binding and the requirement to add =
:name.</span></div></blockquote></div><br><div>Though it will require =
repetition and thus be subject to changed-here-but-not-there errors, =
this does look good and nicely groups the information under :repeat. =
&nbsp;So this should work for all commands in the =
keymap:</div><div><br></div><div><blockquote type=3D"cite" =
style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">(defvar-keymap =
expreg-repeat-map<br>&nbsp;&nbsp;&nbsp;:doc "Repeat map for `expreg' =
actions."<br>&nbsp;&nbsp;&nbsp;:repeat '(:hints ((expreg-expand . =
"expand") (expreg-contract . "contract")))</blockquote><blockquote =
type=3D"cite" style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, =
0);">&nbsp;&nbsp;&nbsp;"\\" 'expreg-expand<br>&nbsp;&nbsp;&nbsp;"|" =
&nbsp;'expreg-contract)</blockquote></div><div><br></div><div>If a hint =
is missing for a command, it should just have its key mentioned. =
&nbsp;It looks like your idea would require changes to defvar-keymap. =
&nbsp;Do you want to propose a patch? &nbsp;We'd need some way to pass =
the hints in; perhaps the macro could set a property on the command =
symbol as you initially proposed.</div></body></html>=

--Apple-Mail=_816F47B3-3BCE-41B4-9AB6-003C31D9EC95--




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

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


Received: (at 70576) by debbugs.gnu.org; 28 Apr 2024 07:17:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Apr 28 03:17:38 2024
Received: from localhost ([127.0.0.1]:50018 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0yn3-0002J3-KM
	for submit <at> debbugs.gnu.org; Sun, 28 Apr 2024 03:17:38 -0400
Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:35735)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s0ymy-0002Iv-B9
 for 70576 <at> debbugs.gnu.org; Sun, 28 Apr 2024 03:17:36 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 69B65FF802;
 Sun, 28 Apr 2024 07:17:03 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN> (JD Smith's
 message of "Fri, 26 Apr 2024 10:37:51 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
 <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
Date: Sun, 28 Apr 2024 09:58:10 +0300
Message-ID: <86cyqaezhc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)

>> (defvar-keymap expreg-repeat-map
>>    :doc "Repeat map for `expreg' actions."
>>    :repeat t
>>    "\\" 'expreg-expand
>>    "|"  'expreg-contract)
>>
>> (put 'expreg-expand 'repeat-hint "expand")
>> (put 'expreg-contract 'repeat-hint "contract")
>
> Thanks for taking a look.  A property on the command could work (and then
> you need no :name).  It would be somewhat harder to maintain the structure
> for long keymaps, e.g. if a command changes.  I do note that menu-item with
> :filter is commonly recommended for non-menu dynamic bindings, so there is
> some precedent of reusing menu functionality in other contexts.

As a more complicated feature, usually :filter is added by developers for
specific functionality, it's not intended to be used by users in their normal
customization of keymaps, like users will configure hints.

> Of course a new wrapper macro could also be developed to ease this.
> Do you anticipate any specific issues?

Here is what I recommend to do to simplify the definition of hints for users.

Like there can be a list of enter and exit commands in 'defvar-keymap':

  :repeat ‘(:enter (commands ...) :exit (commands ...))’

the same list could be used for hints:

  :repeat ‘(:enter (commands ...) :exit (commands ...) :hints ((command . hint) ...))’

This should be easier to document and to understand by users than
a special syntax of cons for binding and the requirement to add :name.




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

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


Received: (at 70576) by debbugs.gnu.org; 26 Apr 2024 14:38:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 26 10:38:36 2024
Received: from localhost ([127.0.0.1]:38185 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0Mif-0008GQ-PR
	for submit <at> debbugs.gnu.org; Fri, 26 Apr 2024 10:38:36 -0400
Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]:49248)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s0MiY-0008Dy-TL
 for 70576 <at> debbugs.gnu.org; Fri, 26 Apr 2024 10:38:30 -0400
Received: by mail-io1-xd29.google.com with SMTP id
 ca18e2360f4ac-7d9e70f388fso91464539f.2
 for <70576 <at> debbugs.gnu.org>; Fri, 26 Apr 2024 07:38:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714142282; x=1714747082; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=AzlSI8cA4gY/voByQYhST5zEwzpeniQol+QJfrvWxkM=;
 b=OggZKRbTvqnQssQE0qpYzVMDaU+IZ2b6trJf5hOaz1HVf85LFMTesRdzwx8l+zoVeo
 k5AEsjz72HnAiTTOnqi81WxPOlBY9v47myGu2CMvzELYJ3PY1FEmX9cbjAJDyCmAL/hw
 pmhxxSbqUPjdHzNf0CLZTs3+uqnX058Zy8IzKKuJXcazsmh58FGMU805jskE4f5+ql52
 EyWBi0LD8k6DTIFn5o2Yifg9WG1KS8DQQwORNHGgNqMjXHeY5MF5fq8fVQm0aGIVo/zE
 nVYWJEvWnjRmpLFsX+ayXBg7TshChfpVPGlDB/phFE0VRfH5QV77/2zM+agBRqsvsUiJ
 2ynA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714142282; x=1714747082;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=AzlSI8cA4gY/voByQYhST5zEwzpeniQol+QJfrvWxkM=;
 b=FzOOGkdo1yar6wYNDd3WojWdBsUydIz+SQSh3whWvg9L05QLFEIjxAWbnijeBuL6SE
 GByCVAoQUtB1HqswglrH/yy4IECt/ZQPdh5CerAlPcXSIi7wIqsZN/GWs05jp7DuDVsw
 8T/RiqU0NrPj0IkhBBvfz3jVhjuaG0fm0DTHw4NhiskX6wN25pnZ2TZRjlmnE+2kFMzR
 wFDCDblHPgpPxhPLHHhB6mSPPtap52LXlmpFEEmUXRLS5LQi++u27n3E3CnWCEVtIn8H
 w2oXwsGPcK6hfdjoYWg1D16TZcvdEANPwc7mcJK6nTIvWFj+oaEtMDoPIE3b+0lM+crv
 3Hvw==
X-Gm-Message-State: AOJu0YxoeseH1LMd8mPNFL8yS5fqXtiZt0++yZ1iOOAuddZqvGnCZkbo
 QaPhJHJcZInnDmBAHVS5Z4PcXht6SJ7erEm0CcgWUoOebBQ2Rx7KqM/imw==
X-Google-Smtp-Source: AGHT+IGvXVCGIHAxNGYtHqfAO8HCl3gTfSsWM8z8dhTTtE1kNUkdjZZFDVGvUQ05mqi1a1hPnwbMjA==
X-Received: by 2002:a6b:7508:0:b0:7da:19a5:625a with SMTP id
 l8-20020a6b7508000000b007da19a5625amr2867511ioh.21.1714142282535; 
 Fri, 26 Apr 2024 07:38:02 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 l1-20020a056638144100b00484fbf1bea4sm4245842jad.176.2024.04.26.07.38.01
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 26 Apr 2024 07:38:02 -0700 (PDT)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
From: JD Smith <jdtsmith@HIDDEN>
In-Reply-To: <86h6fo3e7e.fsf@HIDDEN>
Date: Fri, 26 Apr 2024 10:37:51 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <FDB853F1-60B6-4ACF-8E08-337567CB3CBC@HIDDEN>
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
 <86h6fo3e7e.fsf@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
X-Mailer: Apple Mail (2.3774.500.171.1.1)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)


> On Apr 26, 2024, at 2:06=E2=80=AFAM, Juri Linkov <juri@HIDDEN> =
wrote:
>=20
> I feel uneasy about reusing the form (STRING . DEFN)
> that has another meaning:
>=20
> a cons (STRING . DEFN), meaning that DEFN is the definition
>    (DEFN should be a valid definition in its own right) and
>    STRING is the menu item name (which is used only if the containing
>    keymap has been created with a menu name, see make-keymap),
>=20
> Can the same instead be achieved by using symbol properties?
> For example:

> (defvar-keymap expreg-repeat-map
>    :doc "Repeat map for `expreg' actions."
>    :repeat t
>    "\\" 'expreg-expand
>    "|"  'expreg-contract)
>=20
> (put 'expreg-expand 'repeat-hint "expand")
> (put 'expreg-contract 'repeat-hint "contract")


Thanks for taking a look.  A property on the command could work (and =
then you need no :name).  It would be somewhat harder to maintain the =
structure for long keymaps, e.g. if a command changes.  I do note that =
menu-item with :filter is commonly recommended for non-menu dynamic =
bindings, so there is some precedent of reusing menu functionality in =
other contexts.  Of course a new wrapper macro could also be developed =
to ease this.  Do you anticipate any specific issues?






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

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


Received: (at 70576) by debbugs.gnu.org; 26 Apr 2024 06:12:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 26 02:12:11 2024
Received: from localhost ([127.0.0.1]:33630 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s0EoZ-0006cN-4o
	for submit <at> debbugs.gnu.org; Fri, 26 Apr 2024 02:12:10 -0400
Received: from relay4-d.mail.gandi.net ([2001:4b98:dc4:8::224]:35491)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s0EoO-0006Yu-Qm
 for 70576 <at> debbugs.gnu.org; Fri, 26 Apr 2024 02:12:01 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 64FF0E0007;
 Fri, 26 Apr 2024 06:11:29 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: JD Smith <jdtsmith@HIDDEN>
Subject: Re: bug#70576: [PATCH] `repeat-echo-message-string': support repeat
 keymap "hints"
In-Reply-To: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN> (JD Smith's
 message of "Thu, 25 Apr 2024 18:31:17 -0400")
Organization: LINKOV.NET
References: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
Date: Fri, 26 Apr 2024 09:06:29 +0300
Message-ID: <86h6fo3e7e.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 70576
Cc: 70576 <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 (-)

> Example usage:
>
> (defvar-keymap expreg-repeat-map
>     :doc "Repeat map for `expreg' actions."
>     :repeat t
>     :name "expreg"
>     "\\" (cons "expand" 'expreg-expand)
>     "|"  (cons "contract"  'expreg-contract))

I feel uneasy about reusing the form (STRING . DEFN)
that has another meaning:

 a cons (STRING . DEFN), meaning that DEFN is the definition
    (DEFN should be a valid definition in its own right) and
    STRING is the menu item name (which is used only if the containing
    keymap has been created with a menu name, see make-keymap),

Can the same instead be achieved by using symbol properties?
For example:

(defvar-keymap expreg-repeat-map
    :doc "Repeat map for `expreg' actions."
    :repeat t
    :name "expreg"
    "\\" 'expreg-expand
    "|"  'expreg-contract)

(put 'expreg-expand 'repeat-hint "expand")
(put 'expreg-contract 'repeat-hint "contract")




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

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


Received: (at submit) by debbugs.gnu.org; 25 Apr 2024 22:32:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Apr 25 18:32:24 2024
Received: from localhost ([127.0.0.1]:33448 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s07dZ-0003eK-Iz
	for submit <at> debbugs.gnu.org; Thu, 25 Apr 2024 18:32:24 -0400
Received: from lists.gnu.org ([2001:470:142::17]:35292)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jdtsmith@HIDDEN>) id 1s07dG-0003aI-Ek
 for submit <at> debbugs.gnu.org; Thu, 25 Apr 2024 18:32:09 -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 <jdtsmith@HIDDEN>)
 id 1s07cs-0007dK-HE
 for bug-gnu-emacs@HIDDEN; Thu, 25 Apr 2024 18:31:34 -0400
Received: from mail-il1-x131.google.com ([2607:f8b0:4864:20::131])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <jdtsmith@HIDDEN>)
 id 1s07cq-0004pk-9a
 for bug-gnu-emacs@HIDDEN; Thu, 25 Apr 2024 18:31:34 -0400
Received: by mail-il1-x131.google.com with SMTP id
 e9e14a558f8ab-36b1774e453so5620835ab.1
 for <bug-gnu-emacs@HIDDEN>; Thu, 25 Apr 2024 15:31:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1714084289; x=1714689089; darn=gnu.org;
 h=to:date:message-id:subject:mime-version:from:from:to:cc:subject
 :date:message-id:reply-to;
 bh=0oOh1iZjh3BRUZv8Su+wl/j9+9vRwCaQIdvTS3ii3IY=;
 b=hnOygL3MKmYB80LxGqNiL82OJZmJ9iMj4brJoIeiFviXBT5jbLaSJn9BN7ea8k+rVk
 HY/e8ELWPdPrXBjFEstytT2pyGdBanWGpTcXFYUWM0vUa6nGCn0Inp0qK02yKKs9Zns/
 +Rqoj7PdjmwMEkDcdgDknuqKXyuhsI9erWDqCAv1Sc5ZYYN0qM+aO7JAgYjQ2BOrJiHX
 sUAhMbi9B2jZsY+83NX0ibaMiLLXUVp6pc6e/eYSqO1wZCI0iLyXDMXx9aDC3e9mojEi
 F1H/efl+FAZyHQmjYCHi3Z4+1zs6PgYe4AzWW46XTSz5a8si5+T06d3upcOEGDfzcx8h
 SxHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1714084289; x=1714689089;
 h=to:date:message-id:subject:mime-version:from:x-gm-message-state
 :from:to:cc:subject:date:message-id:reply-to;
 bh=0oOh1iZjh3BRUZv8Su+wl/j9+9vRwCaQIdvTS3ii3IY=;
 b=tngLpcHCUEvYSb36TztRswkIXW8MiEp5753x7g6mERtzWhEMiGuu70KkLaWxUtblCg
 Rgbqtu9nth0IfY/tdyaKaQzO0YAKsE7Ei4JlL77tq3E5hnVlkL1xNQqbRrXGjOX5Q8ai
 46RIn5Pci147ye0lTy3prtueOmGz8jRYZasAb51bB7RmmWtkB6/UHaBtng66RaQfHfzd
 HEj0e9p40RkhT5/T75MoQCdCAQzmPZh9JtlGzAh7TfqSG9e2XHQGohRYnGK8QFdswesA
 OgV9cabYHLgYy0+qlVEMQ1xDOmYbBjyueWKouX9r5AtUO06kJejSzLsIMhjSIzSmE6xq
 hVjQ==
X-Gm-Message-State: AOJu0YzJRYmdCpah8bkArtz5xwk5uXxxM6j6CVdiY/nUVBjrVBwaJMui
 PaYyV0ziiCBNajND80A67JkpYjdCbHumbzYR/D/3PQVyMkvmW8m/sHVrPA==
X-Google-Smtp-Source: AGHT+IFIS3E05/+TAi8NPhrklWTV1JRLlTfvXT6qtariDq5jJMeJ2DUU8MNXbnMqn9FmOb10jSknig==
X-Received: by 2002:a05:6e02:160f:b0:36c:f61:7648 with SMTP id
 t15-20020a056e02160f00b0036c0f617648mr1374635ilu.13.1714084289025; 
 Thu, 25 Apr 2024 15:31:29 -0700 (PDT)
Received: from smtpclient.apple (cm-24-53-187-34.buckeyecom.net.
 [24.53.187.34]) by smtp.gmail.com with ESMTPSA id
 x3-20020a92cc83000000b0036c03b1ee38sm2845306ilo.37.2024.04.25.15.31.27
 for <bug-gnu-emacs@HIDDEN>
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 25 Apr 2024 15:31:28 -0700 (PDT)
From: JD Smith <jdtsmith@HIDDEN>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.500.171.1.1\))
Subject: [PATCH] `repeat-echo-message-string': support repeat keymap "hints"
Message-Id: <45C35B69-6DA8-4212-BD87-50B2A3959A86@HIDDEN>
Date: Thu, 25 Apr 2024 18:31:17 -0400
To: bug-gnu-emacs@HIDDEN
X-Mailer: Apple Mail (2.3774.500.171.1.1)
Received-SPF: pass client-ip=2607:f8b0:4864:20::131;
 envelope-from=jdtsmith@HIDDEN; helo=mail-il1-x131.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
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.0 (/)


--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

repeat-mode is excellent for informal and very lightweight modal =
interfaces (great article =
<https://karthinks.com/software/it-bears-repeating/>).  One limitation =
it has compared to other such interfaces is it only mentions the keys =
which can be repeated, without providing hints about what they do. =20

A simple patch to `repeat-echo-message-strings' to support displaying a =
string for keymap definitions of form (STRING . DEFN) is below.  It =
works nicely to provide "hints" after each repeat key, if the keymap =
includes them.

Example usage:

(defvar-keymap expreg-repeat-map
    :doc "Repeat map for `expreg' actions."
    :repeat t
    :name "expreg"
    "\\" (cons "expand" 'expreg-expand)
    "|"  (cons "contract"  'expreg-contract))

Example prompt (after one invocation of `expreg-expand'):=20

 Repeat with \:expand, |:contract

It might also be useful to provide a custom variable by which a user can =
disable hint strings, for the experts/minimalists..

Patch:

--- repeat_old.el	2024-04-25 18:22:59
+++ repeat.el	2024-04-25 18:09:11
@@ -553,12 +553,20 @@
 (defun repeat-echo-message-string (keymap)
   "Return a string with the list of repeating keys in KEYMAP."
   (let (keys)
-    (map-keymap (lambda (key cmd) (and cmd (push key keys))) keymap)
+    (map-keymap (lambda (key cmd)
+		  (if (consp cmd)
+		      (push (cons (car cmd) key) keys)
+		    (when cmd (push key keys))))
+		keymap)
     (format-message "Repeat with %s%s"
                     (mapconcat (lambda (key)
-                                 (substitute-command-keys
-                                  (format "\\`%s'"
-                                          (key-description (vector =
key)))))
+				 (let* ((cmd (when (consp key) (format =
":%s" (car key)))))
+				   (if (consp key) (setq key (cdr key)))
+				   (concat
+				    (substitute-command-keys
+				     (format "\\`%s'"
+					     (key-description (vector =
key))))
+				    cmd)))
                                keys ", ")
                     (if repeat-exit-key
                         (substitute-command-keys


--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: =
after-white-space;"><div>repeat-mode is excellent for informal and very =
lightweight modal interfaces (<a =
href=3D"https://karthinks.com/software/it-bears-repeating/">great =
article</a>). &nbsp;One limitation it has compared to other such =
interfaces is it only mentions the keys which can be repeated, without =
providing hints about what they do. &nbsp;</div><div><br></div><div>A =
simple patch to `repeat-echo-message-strings' to support displaying a =
string for&nbsp;<span style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, =
0, 0);">keymap definitions of form</span>&nbsp;(STRING . DEFN) is below. =
&nbsp;It works nicely to provide "hints" after each repeat key, if the =
keymap includes them.</div><div><br></div><div>Example =
usage:</div><div><br></div><blockquote style=3D"margin: 0 0 0 40px; =
border: none; padding: 0px;"><div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">(defvar-keymap =
expreg-repeat-map</span></font></p></div></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :doc "Repeat map for `expreg' =
actions."</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :repeat t</span></font></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; :name =
"expreg"</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; "\\" (cons "expand" =
'expreg-expand)</span></font></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; background-color: rgb(255, 255, =
255);"><font color=3D"#101010" face=3D"Menlo"><span style=3D"caret-color: =
rgb(16, 16, 16);">&nbsp; &nbsp; "|" &nbsp;(cons "contract" =
&nbsp;'expreg-contract))</span></font></p></div></blockquote><div><br></di=
v><div>Example prompt (after one invocation of =
`expreg-expand'):&nbsp;</div><div><br></div><blockquote style=3D"margin: =
0 0 0 40px; border: none; padding: 0px;"><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: =
no-common-ligatures;">&nbsp;</span><span style=3D"caret-color: rgb(0, 0, =
0); color: rgb(0, 0, 0);">Repeat with \:expand, =
|:contract</span></p></div></blockquote><div><br></div><div><span =
style=3D"caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">It might also =
be useful to provide a custom variable by which a user can disable hint =
strings, for the =
experts/minimalists..</span></div><div><br></div><div>Patch:</div><div><br=
></div><blockquote style=3D"margin: 0 0 0 40px; border: none; padding: =
0px;"><div><div><div><p style=3D"margin: 0px; font-stretch: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">--- =
repeat_old.el<span class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>2024-04-25 18:22:59</span></p></div></div></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+++ repeat.el<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>2024-04-25 18:09:11</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">@@ -553,12 +553,20 =
@@</span></p></div><div><p style=3D"margin: 0px; font-stretch: normal; =
line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;(defun =
repeat-echo-message-string (keymap)</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
"Return a string with the list of repeating keys in =
KEYMAP."</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; (let =
(keys)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
(map-keymap (lambda (key cmd) (and cmd (push key keys))) =
keymap)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+&nbsp; &nbsp; =
(map-keymap (lambda (key cmd)</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; (if (consp cmd)</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; &nbsp; &nbsp; (push (cons (car cmd) key) =
keys)</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>&nbsp; &nbsp; (when cmd (push key =
keys))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>keymap)</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; (format-message "Repeat with %s%s"</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
(mapconcat (lambda (key)</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">- &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; =
(substitute-command-keys</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (format =
"\\`%s'"</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">-&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
(key-description (vector key)))))</span></p></div><div><p style=3D"margin:=
 0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> (let* ((cmd (when (consp key) (format ":%s" (car =
key)))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; (if (consp key) (setq key (cdr =
key)))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; (concat</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span>&nbsp; &nbsp; (substitute-command-keys</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span> &nbsp; &nbsp; (format "\\`%s'"</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
	</span> &nbsp; &nbsp; (key-description (vector =
key))))</span></p></div><div><p style=3D"margin: 0px; font-stretch: =
normal; line-height: normal; font-family: Menlo; font-size-adjust: none; =
font-kerning: auto; font-variant-alternates: normal; =
font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">+<span =
class=3D"Apple-tab-span" style=3D"white-space:pre">				=
</span>&nbsp; &nbsp; cmd)))</span></p></div><div><p style=3D"margin: =
0px; font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; keys ", ")</span></p></div><div><p =
style=3D"margin: 0px; font-stretch: normal; line-height: normal; =
font-family: Menlo; font-size-adjust: none; font-kerning: auto; =
font-variant-alternates: normal; font-variant-ligatures: normal; =
font-variant-numeric: normal; font-variant-east-asian: normal; =
font-variant-position: normal; font-feature-settings: normal; =
font-optical-sizing: auto; font-variation-settings: normal; color: =
rgb(16, 16, 16); background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (if =
repeat-exit-key</span></p></div><div><p style=3D"margin: 0px; =
font-stretch: normal; line-height: normal; font-family: Menlo; =
font-size-adjust: none; font-kerning: auto; font-variant-alternates: =
normal; font-variant-ligatures: normal; font-variant-numeric: normal; =
font-variant-east-asian: normal; font-variant-position: normal; =
font-feature-settings: normal; font-optical-sizing: auto; =
font-variation-settings: normal; color: rgb(16, 16, 16); =
background-color: rgb(255, 255, 255);"><span =
style=3D"font-variant-ligatures: no-common-ligatures">&nbsp;&nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; (substitute-command-keys</span></p></div></blockquote><div><span =
style=3D"font-variant-ligatures: =
no-common-ligatures"><br></span></div></body></html>=

--Apple-Mail=_6D883527-1EA0-4AB0-8546-FDB9C04B9D91--




Acknowledgement sent to JD Smith <jdtsmith@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#70576; 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: Fri, 3 May 2024 11:45:01 UTC

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