emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Missing snprintf in ucrt mingw + vc-refresh in find-file hook?


From: Eli Zaretskii
Subject: Re: Missing snprintf in ucrt mingw + vc-refresh in find-file hook?
Date: Wed, 14 Feb 2024 18:51:39 +0200

> Date: Wed, 14 Feb 2024 18:36:47 +0200
> Cc: arthur.miller@live.com, emacs-devel@gnu.org
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> > What is the purpose of such a change?  Does it target users who don't
> > want vc-refresh-state in find-file-hook, but still want the VC info
> > shown on the mode line?
> 
> Those in particular won't see an immediate benefit, but, to reiterate:
> 
>    As a result, we could have Emacs that's a little bit faster for users
>    with custom mode-lines [that don't show VCS status or backend].
> 
>    And also [for all users:] any find-file-noselect calls performed in
>    the background (sometimes those are even done on a list of files)
>    won't fetch the VCS status eagerly until the buffer is displayed.

If that's the purpose, why not simply have a value of
vc-display-status which would cause vc-refresh-state do nothing?
AFAIU, the result will be the same, but with much less code churn and
definitely safer.

>  > That sounds like a strange preference, since
>  > find-file-hook is called just once per file buffer, whereas showing
>  > the info on the mode line can potentially cause vc-refresh-state (or
>  > something similar) to be called much more frequently, right?
> 
> The backend and the state are cached in vc-file-prop-obarray, so it 
> shouldn't result in more process calls, no matter the scenario. It's 
> mostly about how early we fetch this information.

My point is that find-file-hook has an explicit and very specific
trigger for fetching the VC information, whereas doing that from the
mode line doesn't have that advantage, and will probably need to call
VC much more frequently in order not to miss changes.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]