emacs-devel
[Top][All Lists]
Advanced

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

Re: Don't complain about changed file when it hasn't changed


From: Eli Zaretskii
Subject: Re: Don't complain about changed file when it hasn't changed
Date: Tue, 30 Aug 2016 20:32:46 +0300

> From: Stefan Monnier <address@hidden>
> Cc: address@hidden
> Date: Tue, 30 Aug 2016 13:16:45 -0400
> 
> >> >  -- Function: ask-user-about-supersession-threat filename
> >> >      This function is used to ask a user how to proceed after an attempt
> >> >      to modify an buffer visiting file FILENAME when the file is newer
> >> >      than the buffer text.  Emacs detects this because the modification
> >> >      time of the file on disk is newer than the last save-time of the
> >> >      buffer.  This means some other program has probably altered the
> >> >      file.
> >> 
> >> > Some of that will no longer be accurate once we install your changes.
> >> 
> >> Hmm... actually, this documentation is still valid, because it specifies
> >> when the function is called (which is not changed by my patch) rather
> >> than what the function does.
> 
> > We are splitting hair.
> 
> > The problematic place (for me) is the "modification time of the file
> > on disk is newer", which implies that this is the only test for the
> > detection of supersession-threat.
> 
> No, it is the only test made before calling this function (indeed, the
> function doesn't make any such test).  My patch doesn't affect this: the
> only test performed before calling this function is still the
> modtime test.

That's because your additional test is in
ask-user-about-supersession-threat itself, which previously only asked
the question, while the test was elsewhere.

So, you would be found innocent in the court of law, but failing to
say that the default implementation of
ask-user-about-supersession-threat now includes an additional test,
and will answer automatically without asking the user in some cases,
is IMO hiding an important detail.  In particular, ...

> It's important to know where the test is performed because:
> 
>     This function is called automatically by Emacs on the proper
>     occasions.  It exists so you can customize Emacs by redefining it.
>     See the file @file{userlock.el} for the standard definition.
> 
> So if you want to "update the doc" here, we'd have to actually state
> what the standard definition does (we currently don't do actually that).

... indeed we should state that, because otherwise a naïve user will
not understand how come she lost this nice feature by just replacing a
function that is supposed to ask a question and be done.



reply via email to

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