-;; autorevert --- Revert buffers when file on disk change.
+;;; autorevert.el --- revert buffers when files on disk change
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
-;; Author: Anders Lindgren <andersl@csd.uu.se>
-;; Created: 1 Jun 1997
-;; Date: 3 Jul 1997
+;; Author: Anders Lindgren <andersl@andersl.com>
+;; Keywords: convenience
+;; Created: 1997-06-01
+;; Date: 1999-11-30
;; This file is part of GNU Emacs.
;; Introduction:
;;
;; Whenever a file that Emacs is editing has been changed by another
-;; program the user normally have to execute the command `revert-buffer'
+;; program the user normally has to execute the command `revert-buffer'
;; to load the new content of the file into Emacs.
;;
;; This package contains two minor modes: Global Auto-Revert Mode and
-;; Auto-Revert Mode. Both modes automatically reverts buffers
+;; Auto-Revert Mode. Both modes automatically revert buffers
;; whenever the corresponding files have been changed on disk.
;;
;; Auto-Revert Mode can be activated for individual buffers.
;; Global Auto-Revert Mode applies to all file buffers.
;;
-;; Both modes operates by checking the time stamp of all files at
-;; given intervals, the default is every five seconds. The check is
-;; aborted whenever the user actually use Emacs. Hopefully you will
-;; never even notice that this package is active (except that your
-;; buffers will be reverted, of course).
-
-;; Installation:
-;;
-;; To install this package, place it in somewhere on Emacs' load-path,
-;; byte-compile it (not necessary), and place the following lines in
-;; the appropriate init file:
-;;
-;; (autoload 'auto-revert-mode "autorevert" nil t)
-;; (autoload 'turn-on-auto-revert-mode "autorevert" nil nil)
-;; (autoload 'global-auto-revert-mode "autorevert" nil t)
+;; Both modes operate by checking the time stamp of all files at
+;; intervals of `auto-revert-interval'. The default is every five
+;; seconds. The check is aborted whenever the user actually uses
+;; Emacs. You should never even notice that this package is active
+;; (except that your buffers will be reverted, of course).
;; Usage:
;;
;; To activate Global Auto-Revert Mode, press:
;; M-x global-auto-revert-mode RET
;;
-;; To activate Global Auto-Revert Mode every time Emacs is started the
-;; following line could be added to your ~/.emacs:
+;; To activate Global Auto-Revert Mode every time Emacs is started
+;; customise the option `global-auto-revert-mode' or the following
+;; line could be added to your ~/.emacs:
;; (global-auto-revert-mode 1)
;;
;; The function `turn-on-auto-revert-mode' could be added to any major
;; Files group under Emacs.
(defgroup auto-revert nil
- "Revert individual buffer when file on disk change.
+ "Revert individual buffers when files on disk change.
Auto-Revert Mode can be activated for individual buffer.
Global Auto-Revert Mode applies to all buffers."
- :group 'files)
+ :group 'files
+ :group 'convenience)
;; Variables:
+;; Autoload for the benefit of `make-mode-line-mouse-sensitive'.
+;;;###autoload
(defvar auto-revert-mode nil
"*Non-nil when Auto-Revert Mode is active.
-Do never set this variable directly, use the command
-`auto-revert-mode' instead.")
+Never set this variable directly, use the command `auto-revert-mode'
+instead.")
+;;;###autoload
(defcustom global-auto-revert-mode nil
"When on, buffers are automatically reverted when files on disk change.
-Set this variable when using \\[customize] only. Otherwise, use the
-command `global-auto-revert-mode' instead."
+Set this variable using \\[customize] only. Otherwise, use the
+command `global-auto-revert-mode'."
:group 'auto-revert
:initialize 'custom-initialize-default
:set '(lambda (symbol value)
"String to display when Global Auto-Revert Mode is active.
The default is nothing since when this mode is active this text doesn't
-vary neither over time, nor between buffers. Hence a mode line text
+vary over time, or between buffers. Hence mode line text
would only waste precious space."
:group 'auto-revert
:type 'string)
:group 'auto-revert
:type 'boolean)
-(defcustom global-auto-revert-non-file-buffers nil
- "When nil only file buffers are reverted by Global Auto-Revert Mode.
-
-When non-nil, both file buffers and buffers with a custom
-`revert-buffer-function' are reverted by Global Auto-Revert Mode.
-
-Use this option with care since it could lead to excessive reverts."
- :group 'auto-revert
- :type 'boolean)
-
(defcustom global-auto-revert-ignore-modes '()
"List of major modes Global Auto-Revert Mode should not check."
:group 'auto-revert
(defvar global-auto-revert-ignore-buffer nil
"*When non-nil, Global Auto-Revert Mode will not revert this buffer.
-This variable becomes buffer local when set in any faishon.")
+This variable becomes buffer local when set in any fashion.")
(make-variable-buffer-local 'global-auto-revert-ignore-buffer)
;;;###autoload
(defun auto-revert-mode (&optional arg)
- "Revert buffer when file on disk change.
+ "Toggle reverting buffer when file on disk changes.
-This is a minor mode that affect only the current buffer.
+With arg, turn Auto Revert mode on if and only if arg is positive.
+This is a minor mode that affects only the current buffer.
Use `global-auto-revert-mode' to automatically revert all buffers."
(interactive "P")
(make-local-variable 'auto-revert-mode)
+ (put 'auto-revert-mode 'permanent-local t)
(setq auto-revert-mode
(if (null arg)
(not auto-revert-mode)
(auto-revert-set-timer)
(when auto-revert-mode
(auto-revert-buffers)
- (run-hooks 'auto-revert-mode-hook)))
+ (run-hooks 'auto-revert-mode-hook))
+ auto-revert-mode)
;;;###autoload
(defun global-auto-revert-mode (&optional arg)
"Revert any buffer when file on disk change.
-This is a minor mode that affect all buffers.
+With arg, turn Auto Revert mode on globally if and only if arg is positive.
+This is a minor mode that affects all buffers.
Use `auto-revert-mode' to revert a particular buffer."
(interactive "P")
(setq global-auto-revert-mode
when the variable `global-auto-revert-non-file-buffers' is non-nil
and Global Auto-Revert Mode is active.
-This function stops whenever the user use Emacs. The buffers not
+This function stops whenever there is user input. The buffers not
checked are stored in the variable `auto-revert-remaining-buffers'.
To avoid starvation, the buffers in `auto-revert-remaining-buffers'
are checked first the next time this function is called.
-This function is also responslible for removing buffers no longer in
+This function is also responsible for removing buffers no longer in
Auto-Revert mode from `auto-revert-buffer-list', and for canceling
the timer when no buffers need to be checked."
(let ((bufs (if global-auto-revert-mode
auto-revert-mode))))
(if auto-revert-verbose
(message "Reverting buffer `%s'." buf))
- (revert-buffer t t)))
+ (revert-buffer t t t)))
;; Remove dead buffer from `auto-revert-buffer-list'.
(setq auto-revert-buffer-list
(delq buf auto-revert-buffer-list))))
(if global-auto-revert-mode
(global-auto-revert-mode 1))
-;; autorevert.el ends here.
+;;; autorevert.el ends here