GNU bug report logs -
#19449
25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil
Previous Next
Reported by: Filipp Gunbin <fgunbin <at> fastmail.fm>
Date: Fri, 26 Dec 2014 20:25:02 UTC
Severity: normal
Found in version 25.0.50
Done: Filipp Gunbin <fgunbin <at> fastmail.fm>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Mon, 29 Dec 2014 18:36:12 +0300
with message-id <m2h9we31ub.fsf <at> fastmail.fm>
and subject line Re: bug#19449: 25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil
has caused the debbugs.gnu.org bug report #19449,
regarding 25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
19449: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19449
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Below is the suggested patch.
Analysis:
When the `auto-revert-tail-mode' is called it temporarily enables
auto-revert-mode:
(or auto-revert-mode
(let ((auto-revert-tail-mode t))
(auto-revert-mode 1)))
`auto-revert-mode' then calls `auto-revert-buffers' which in turn calls
`auto-revert-handler' (fixed by the patch).
Then, this code yielded t:
+ (and (or auto-revert-mode
+ global-auto-revert-non-file-buffers)
which resulted as `revert' set to t.
In the end, `(auto-revert-tail-handler size)' was evaluted with nil
size.
This produces error:
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
auto-revert-tail-handler(nil)
Fix:
In `revert' value calculation, `or' is changed to `if'. The "then"
clause applies to file-visiting buffers, this is where the result of
`file-remote-p' is analyzed. The "else" clause case applies to non-file
buffers.
Ok to apply?
Filipp
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index f1074e2..514dc2b 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -589,8 +589,8 @@ This is an internal function used by Auto-Revert Mode."
;; the values.
(remote-file-name-inhibit-cache t)
(revert
- (or (and buffer-file-name
- (or auto-revert-remote-files
+ (if buffer-file-name
+ (and (or auto-revert-remote-files
(not (file-remote-p buffer-file-name)))
(or (not auto-revert-use-notify)
auto-revert-notify-modified-p)
@@ -603,11 +603,11 @@ This is an internal function used by Auto-Revert Mode."
(funcall (or buffer-stale-function
#'buffer-stale--default-function)
t)))
- (and (or auto-revert-mode
- global-auto-revert-non-file-buffers)
- (funcall (or buffer-stale-function
- #'buffer-stale--default-function)
- t))))
+ (and (or auto-revert-mode
+ global-auto-revert-non-file-buffers)
+ (funcall (or buffer-stale-function
+ #'buffer-stale--default-function)
+ t))))
eob eoblist)
(setq auto-revert-notify-modified-p nil)
(when revert
[Message part 3 (message/rfc822, inline)]
On 28/12/2014 13:34 +0100, Michael Albinus wrote:
> Filipp Gunbin <fgunbin <at> fastmail.fm> writes:
>
>> Fix:
>>
>> In `revert' value calculation, `or' is changed to `if'. The "then"
>> clause applies to file-visiting buffers, this is where the result of
>> `file-remote-p' is analyzed. The "else" clause case applies to non-file
>> buffers.
>>
>> Ok to apply?
>
> Looks good to me. Please apply, preferred to the emacs-24 branch.
Applied to emacs-24, thanks.
Sorry for excessive duplication in the commit message.
Filipp
This bug report was last modified 10 years and 150 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.