Subject: Re: bug#37785: [PATCH] Add a way to disable substitution of command keys in help strings

From: Clément Pit-Claudel <[email-masked]>
Date: Thu, 17 Oct 2019 09:47:52 -0400

On 2019-10-17 09:13, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <[email-masked]>
>> Date: Thu, 17 Oct 2019 08:01:58 -0400
>> Cc: [email-masked]
>>
>>> Full stops at the end of sentences. Also, I think I prefer Eli's name,
>>> mainly because yours combines 'show' with 'inhibit', which I find
>>> jarring, and because Eli's contains 'help-echo', which mirrors the
>>> name of the affected property.
>>
>> The property affects more than help-echo strings: it affects anything that is fed to show-help-function.  That's why I changed the name; WDYT?
> 
> But show-help-function is for showing help-echo, is it not?

That's true, and my explanation wasn't very good.  I'm working off of this commit:

commit 5f5fe275ec54194a9293690ffee3d425026ac14b
Author: Paul Eggert <[email-masked]>
Date:   Sun Aug 2 14:55:15 2015 -0700

    Treat help strings like other doc strings
    
    * doc/lispref/text.texi (Special Properties), etc/NEWS: Document this.
    * lisp/epa.el (epa--select-keys): Remove no-longer-needed calls to
    substitute-command-keys.
    * src/keyboard.c (show_help_echo, parse_menu_item): Call
    substitute-command-keys on the help string before displaying it.

It adds Fsubstitute_command_keys in two places: show_help_echo and parse_menu_item.  The patch I sent makes both of these calls conditional, so calling the variable help-echo-inhibit-substitutions isn't right.

That commit added this NEWS entry:

+** show-help-function's arg is converted via substitute-command-keys
+before being passed to the function.  Help strings, help-echo
+properties, etc. can therefore contain command key escapes and
+quotation marks.

But in fact show-help-function's arg being converted only affect help-echo properties; it's the change to parse_menu_item that does the rest.

I can either:
* Change the name to something like help-string-inhibit-substitutions.
* Restrict the patch to the argument of show-help-function, and rename the variable to help-echo-inhibit-substitutions.

Let me know,
Clément.