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 bug report
#19449: 25.0.50; `auto-revert-tail-mode' tries to revert remote files even if `auto-revert-remote-files' is nil
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 19449 <at> debbugs.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)]
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
[Message part 3 (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
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.