Subject: bug#60527: 30.0.50; Typing SPC in a minibuffer with completion

From: Dmitry Gutov <[email-masked]>
Date: Wed, 4 Jan 2023 19:00:44 +0200

On 04/01/2023 16:47, Eli Zaretskii wrote:
>> Date: Wed, 4 Jan 2023 14:05:37 +0200
>> Cc: [email-masked], [email-masked]
>> From: Dmitry Gutov <[email-masked]>
>>
>> On 04/01/2023 05:29, Eli Zaretskii wrote:
>>> My preference is for the more-compatible alternatives.  It is
>>> notoriously non-trivial to figure out minibuffer bindings, so
>>> expecting users to do the above is not very friendly.
>>
>> It's the same for the users who are bothered by this behavior: I stumble
>> over it with certain regularity, but still haven't disabled the SPC
>> binding in my init script.
> 
> I didn't say I'm against any change in this behavior.  Stefan proposed
> at least two alternatives that produce basically the same user-facing
> behavior when SPC is supposed to be interpreted verbatim, so they come
> very close to the alternative that you like better, but still stop
> short of breaking someone's muscle memory.

The first alternative provides sometimes the same, and sometimes 
different behavior. In particular, when there are valid completions, 
"SPC" would still perform completion -- something that I don't think 
many users expect. Especially novices.

The second alternative is even more involved, requiring 
'completing-read' callers to decide in advance whether the users will 
want to have SPC insert SPC or perform completion. That's still odd and 
seems like crossing the proper abstraction layers. The caller might not 
know the collection contains spaces. And this approach can break 
established muscle memory just the same, as soon as enough callers start 
to make this choice.