Subject: Re: bug#67171: 30.0.50; (At least) some VC commands fail with project-prefix-or-any-command

From: Juri Linkov <[email-masked]>
Date: Thu, 07 Dec 2023 19:22:10 +0200

>>> +      (unless (get command 'project-switch-with-default-directory)
>>> +        (map-keymap
>>> +         (lambda (_evt cmd) (if (eq cmd command) (setq found t)))
>>> +         project-prefix-map))
>>>         (if found
>>>             (let ((project-current-directory-override root))
>>>               (call-interactively command))
>> Why not let-bind both variables for all commands:
>> 'project-current-directory-override' and 'default-directory'?
>> Then project commands will pick up the first:
>>    (or project-current-directory-override default-directory)
>> And non-project commands will just ignore
>> 'project-current-directory-override'.
>
> I think that would still regress bug#58784.
>
> And project-current-directory-override was really only added to benefit
> such rare cases.

So the only reason to distinguish project commands from non-project commands
is that 'project-buffers' uses (buffer-local-value 'default-directory buf)?
Then wouldn't it be easier to exclude from setting default-directory
all commands that use 'project-buffers'?