Subject: Re: bug#70725: 29.3; dired-do-touch completion

From: Thierry Volpiatto <[email-masked]>
Date: Tue, 21 May 2024 14:33:11 +0000

Thierry Volpiatto <[email-masked]> writes:

> Juri Linkov <[email-masked]> writes:
>
>>>>> > However this doesn't explain why dired-do-touch uses a completing-read
>>>>> 
>>>>> Indeed, this was an oversight.  Here is the patch
>>>>> that replaces 'completing-read' with 'read-string':
>>>>
>>>> Thierry, is this solution okay with you?
>>>
>>> This fix one issue,
>>
>> Thanks, so I pushed the fix.
>
> Thanks.
>
>>> but default is still wrong IMHO:
>>>
>>> When pressing RET with an empty prompt the value is different than what
>>> is inserted in minibuffer with M-n.  Why do we bother setting the
>>> timesamp at the exact time when pressing RET instead of when pressing
>>> "T", I mean user would consider the timestamp is set once "T" is
>>> pressed, with this the behavior would be consistent with RET and M-n and
>>> the code much simpler.
>>
>> There is no need to make the value used by RET and the value inserted by M-n
>> consistent in 100% of cases.
>
> Sorry but I disagree on this.

Same question as with previous issue:

How do I guess (as a third party package maintainer) what DEFAULT is if
you do such things in Emacs?

We had a similar bug recently where a completing-read was specifying the
default in prompt (with format-prompt) but the DEFAULT arg was not
provided, instead DEFAULT was computed later in the function... How do I
guess what DEFAULT is in such cases? From the prompt? This is not a
valid solution, like this issue prove.

I am just trying to fix such inconsistencies in Emacs when I find one.

-- 
Thierry