Subject: Re: bug#79293: [PATCH] Pass dired default filenames via defaults argument

From: Spencer Baugh <[email-masked]>
Date: Sat, 23 Aug 2025 10:55:10 -0400

Eli Zaretskii <[email-masked]> writes:

>> From: Spencer Baugh <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Sat, 23 Aug 2025 10:40:17 -0400
>> 
>> Eli Zaretskii <[email-masked]> writes:
>> >> Cc: Juri Linkov <[email-masked]>
>> >> Date: Fri, 22 Aug 2025 17:20:13 -0400
>> >> From:  Spencer Baugh via "Bug reports for GNU Emacs,
>> >>  the Swiss army knife of text editors" <[email-masked]>
>> >> 
>> >> Rather than using minibuffer-with-setup-hook and
>> >> minibuffer-default-add-function, just pass the list of default
>> >> file names as a regular argument to read-file-name.  This
>> >> behaves better with various customizations, and also allows the
>> >> normal abbreviate-file-name logic in read-file-name to run.
>> >
>> > "Behaves better" in what sense?
>> >
>> > Would you please show examples of commands where the patched version
>> > behaves better, including the effect of the abbreviate-file-name
>> > logic?  Because from your OP it is unclear to me what, if any, will be
>> > the user-facing effects of the new behavior in the relevant Dired
>> > commands.
>> 
>> Both before and after my change:
>> 
>> 1. M-: (read-file-name ":" nil (expand-file-name "~"))
>> 2. M-n
>> 3. Observe ~/ in the minibuffer
>> 
>> This is because read-file-name calls abbreviate-file-name on the default
>> argument.
>> 
>> Before my change:
>> 
>> 1. C-x C-f ~/
>> 2. R (or Y or H)
>> 3. M-n
>> 4. Observe the minibuffer starts with /home/user
>> 
>> After my change:
>> 
>> 1. C-x C-f ~/
>> 2. R (or Y or H)
>> 3. M-n
>> 4. Observe the minibuffer starts with ~/ as usual for read-file-name
>
> So abbreviate-file-name is the only improvement provided by your
> patch?  Your OP seemed to imply that there were others:
>
>> Rather than using minibuffer-with-setup-hook and
>> minibuffer-default-add-function, just pass the list of default
>> file names as a regular argument to read-file-name.  This
>> behaves better with various customizations, and also allows the
>> normal abbreviate-file-name logic in read-file-name to run.

I suspect this behaves better with custom read-file-name-function
values.  But I don't have a specific example.  My motivation is just the
abbreviate-file-name improvement.