GNU bug report logs - #20943
25.0.50; Dired buffers are not always auto-reverterd

Previous Next

Package: emacs;

Reported by: Mark Karpov <markkarpov <at> openmailbox.org>

Date: Tue, 30 Jun 2015 18:24:02 UTC

Severity: normal

Found in version 25.0.50

Done: Mark Karpov <markkarpov <at> openmailbox.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Mark Karpov <markkarpov <at> openmailbox.org>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 20943 <at> debbugs.gnu.org
Subject: bug#20943: 25.0.50; Dired buffers are not always auto-reverted
Date: Fri, 10 Jul 2015 01:42:38 +0600
Michael Albinus <michael.albinus <at> gmx.de> writes:

> I fear this is the wrong direction to fix it. `auto-revert-handler' shall
> not know about major modes. All what a buffer has to say to
> `auto-revert-handler' must be in `buffer-stale-function', which is set to
> `dired-buffer-stale-p' here.

I can understand the desire for abstraction. The thing is that as
currently written ‘auto-revert-handler’ won't get to that part where it
calls ‘buffer-stale-function’. The ‘when’ statement cut it too early
with (not (buffer-modified-p)).

What we actually need to decide is whether this behavior will be unique
to Dired or not. I feel like it's quite unique. Dired buffer is not like
normal file buffer or anything else. So, in some way we have to check in
‘auto-revert-handler’ if we are in Dired buffer or not.

Frankly, you have three concepts that control behavior of
‘auto-revert-mode’:

* buffer associated with file (this may be used as «fourth notion»,
  although I don't know which buffers else are not associated with
  files, chances are the new behavior is not very good for anything
  other than Dired),

* modified buffer,

* stale buffer.

This is not enough to implement this new behavior, you need more
information about buffer now. So, you need fourth notion that would tell
you if current buffer is such that you can revert it even if it's
modified.

Now, if you like to keep it on more abstract level, you can introduce
some notion for this sort of buffers, buffers that should be reverted by
‘auto-revert-mode’ even when they are modified.

You can introduce a list that will enumerate major modes that define
such buffers, or implement it in some other way. Then you can have a
predicate that will tell you what if you're in such a special buffer or
not.

> What happens, if you remove the test for `buffer-read-only' from that
> function?

Sorry, I don't know which function you mean. Please be explicit, because
my knowledge of internal workings of Emacs is somewhat limited and thus
I'm bad at guessing. If you mean ‘auto-revert-handler’, it doesn't
matter, because you need to insert new condition here:

(when (or auto-revert-tail-mode
          <insert predicate here>
          (not (buffer-modified-p)))
 ...)

This is my point of view, I don't know if it's helpful.




This bug report was last modified 9 years and 310 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.