Subject: Re: bug#69606: [PATCH] Ensure default-directory exists when generating diff

From: Stefan Kangas <[email-masked]>
Date: Tue, 11 Feb 2025 19:34:07 -0800

Michael Albinus <[email-masked]> writes:

> Philip Kaludercic <[email-masked]> writes:
>
> Hi Philip,
>
>> The reason I was thinking about a more general solution, is that
>> something like
>>
>> (let ((default-directory "/this/does/not/exists"))
>>   (make-process :command '("true")))
>>
>> will always fail, even though "true" doesn't use the current working
>> directory.  I think it would be useful to have some :fallback option for
>> these situations, to ensure that if `default-directory' doesn't exist,
>> any other directory should be used instead.
>
> This is a more general request than just make it work for "diff".
>
> Well, there is a reason that `default-directory' isn't set to something
> else behind your back, if it doesn't exist. Processes can use relative
> file names as arguments, and it is always better to fail with an error
> message instead of doing something unexpected you even don't know about.

I tend to agree with Michael that we shouldn't make our fundamentals to
DWIMy.

But this bug fix is clearly useful, though I'd also agree that we might
as well use a temporary directory for this instead.  I'd also set the
file mode to 600 so that we don't inadvertently leak user data to random
places on the file system.

Philip, could you update your patch along these lines and install?