annotate doc/emacs/arevert-xtra.texi @ 112419:a651b7492a78

* lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Assume foo(bar) is a manpage reference rather than some unquoted symbol.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 21 Jan 2011 13:12:32 -0500
parents 376148b31b5e
children ef719132ddfa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
112218
376148b31b5e Add 2011 to FSF/AIST copyright years.
Glenn Morris <rgm@gnu.org>
parents: 106815
diff changeset
2 @c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
3 @c Free Software Foundation, Inc.
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
5 @c
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
6 @c This file is included either in emacs-xtra.texi (when producing the
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
7 @c printed version) or in the main Emacs manual (for the on-line version).
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
8 @node Autorevert
103848
e7c52afb2b96 (Autorevert): Add menu descriptions.
Glenn Morris <rgm@gnu.org>
parents: 103607
diff changeset
9 @section Auto Reverting Non-File Buffers
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
10
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
11 Global Auto Revert Mode normally only reverts file buffers. There are
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
12 two ways to auto-revert certain non-file buffers: enabling Auto Revert
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
13 Mode in those buffers (using @kbd{M-x auto-revert-mode}); and setting
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
14 @code{global-auto-revert-non-file-buffers} non-@code{nil}. The latter
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
15 enables Auto Reverting for all types of buffers for which it is
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
16 implemented (listed in the menu below).
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
17
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
18 Like file buffers, non-file buffers should normally not revert while
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
19 you are working on them, or while they contain information that might
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
20 get lost after reverting. Therefore, they do not revert if they are
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
21 ``modified''. This can get tricky, because deciding when a non-file
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
22 buffer should be marked modified is usually more difficult than for
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
23 file buffers.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
24
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
25 Another tricky detail is that, for efficiency reasons, Auto Revert
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
26 often does not try to detect all possible changes in the buffer, only
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
27 changes that are ``major'' or easy to detect. Hence, enabling
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
28 auto-reverting for a non-file buffer does not always guarantee that
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
29 all information in the buffer is up-to-date, and does not necessarily
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
30 make manual reverts useless.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
31
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
32 At the other extreme, certain buffers automatically revert every
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
33 @code{auto-revert-interval} seconds. (This currently only applies to
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
34 the Buffer Menu.) In this case, Auto Revert does not print any
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
35 messages while reverting, even when @code{auto-revert-verbose} is
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
36 non-@code{nil}.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
37
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
38 The details depend on the particular types of buffers and are
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
39 explained in the corresponding sections.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
40
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
41 @menu
103848
e7c52afb2b96 (Autorevert): Add menu descriptions.
Glenn Morris <rgm@gnu.org>
parents: 103607
diff changeset
42 * Auto Reverting the Buffer Menu:: Auto Revert of the Buffer Menu.
e7c52afb2b96 (Autorevert): Add menu descriptions.
Glenn Morris <rgm@gnu.org>
parents: 103607
diff changeset
43 * Auto Reverting Dired:: Auto Revert of Dired buffers.
e7c52afb2b96 (Autorevert): Add menu descriptions.
Glenn Morris <rgm@gnu.org>
parents: 103607
diff changeset
44 * Supporting additional buffers:: How to add more Auto Revert support.
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
45 @end menu
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
46
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
47 @node Auto Reverting the Buffer Menu
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
48 @subsection Auto Reverting the Buffer Menu
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
49
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
50 If auto-reverting of non-file buffers is enabled, the Buffer Menu
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
51 automatically reverts every @code{auto-revert-interval} seconds,
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
52 whether there is a need for it or not. (It would probably take longer
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
53 to check whether there is a need than to actually revert.)
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
54
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
55 If the Buffer Menu inappropriately gets marked modified, just revert
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
56 it manually using @kbd{g} and auto-reverting will resume. However, if
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
57 you marked certain buffers to get deleted or to be displayed, you have
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
58 to be careful, because reverting erases all marks. The fact that
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
59 adding marks sets the buffer's modified flag prevents Auto Revert from
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
60 automatically erasing the marks.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
61
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
62 @node Auto Reverting Dired
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
63 @subsection Auto Reverting Dired buffers
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
64
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
65 Auto-reverting Dired buffers currently works on GNU or Unix style
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
66 operating systems. It may not work satisfactorily on some other
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
67 systems.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
68
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
69 Dired buffers only auto-revert when the file list of the buffer's main
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
70 directory changes (e.g. when a new file is added). They do not
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
71 auto-revert when information about a particular file changes
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
72 (e.g. when the size changes) or when inserted subdirectories change.
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
73 To be sure that @emph{all} listed information is up to date, you have
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
74 to manually revert using @kbd{g}, @emph{even} if auto-reverting is
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
75 enabled in the Dired buffer. Sometimes, you might get the impression
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
76 that modifying or saving files listed in the main directory actually
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
77 does cause auto-reverting. This is because making changes to a file,
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
78 or saving it, very often causes changes in the directory itself; for
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
79 instance, through backup files or auto-save files. However, this is
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
80 not guaranteed.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
81
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
82 If the Dired buffer is marked modified and there are no changes you
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
83 want to protect, then most of the time you can make auto-reverting
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
84 resume by manually reverting the buffer using @kbd{g}. There is one
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
85 exception. If you flag or mark files, you can safely revert the
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
86 buffer. This will not erase the flags or marks (unless the marked
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
87 file has been deleted, of course). However, the buffer will stay
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
88 modified, even after reverting, and auto-reverting will not resume.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
89 This is because, if you flag or mark files, you may be working on the
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
90 buffer and you might not want the buffer to change without warning.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
91 If you want auto-reverting to resume in the presence of marks and
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
92 flags, mark the buffer non-modified using @kbd{M-~}. However, adding,
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
93 deleting or changing marks or flags will mark it modified again.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
94
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
95 Remote Dired buffers are not auto-reverted (because it may be slow).
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
96 Neither are Dired buffers for which you used shell wildcards or file
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
97 arguments to list only some of the files. @samp{*Find*} and
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
98 @samp{*Locate*} buffers do not auto-revert either.
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
99
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
100 @node Supporting additional buffers
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
101 @subsection Adding Support for Auto-Reverting additional Buffers.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
102
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
103 This section is intended for Elisp programmers who would like to add
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
104 support for auto-reverting new types of buffers.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
105
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
106 To support auto-reverting the buffer must first of all have a
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
107 @code{revert-buffer-function}. @xref{Definition of
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
108 revert-buffer-function,, Reverting, elisp, the Emacs Lisp Reference Manual}.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
109
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
110 In addition, it @emph{must} have a @code{buffer-stale-function}.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
111
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
112 @defvar buffer-stale-function
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
113 The value of this variable is a function to check whether a non-file
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
114 buffer needs reverting. This should be a function with one optional
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
115 argument @var{noconfirm}. The function should return non-@code{nil}
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
116 if the buffer should be reverted. The buffer is current when this
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
117 function is called.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
118
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
119 While this function is mainly intended for use in auto-reverting, it
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
120 could be used for other purposes as well. For instance, if
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
121 auto-reverting is not enabled, it could be used to warn the user that
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
122 the buffer needs reverting. The idea behind the @var{noconfirm}
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
123 argument is that it should be @code{t} if the buffer is going to be
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
124 reverted without asking the user and @code{nil} if the function is
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
125 just going to be used to warn the user that the buffer is out of date.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
126 In particular, for use in auto-reverting, @var{noconfirm} is @code{t}.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
127 If the function is only going to be used for auto-reverting, you can
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
128 ignore the @var{noconfirm} argument.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
129
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
130 If you just want to automatically auto-revert every
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
131 @code{auto-revert-interval} seconds (like the Buffer Menu), use:
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
132
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
133 @example
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
134 (set (make-local-variable 'buffer-stale-function)
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
135 #'(lambda (&optional noconfirm) 'fast))
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
136 @end example
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
137
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
138 @noindent
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
139 in the buffer's mode function.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
140
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
141 The special return value @samp{fast} tells the caller that the need
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
142 for reverting was not checked, but that reverting the buffer is fast.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
143 It also tells Auto Revert not to print any revert messages, even if
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
144 @code{auto-revert-verbose} is non-@code{nil}. This is important, as
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
145 getting revert messages every @code{auto-revert-interval} seconds can
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
146 be very annoying. The information provided by this return value could
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
147 also be useful if the function is consulted for purposes other than
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
148 auto-reverting.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
149 @end defvar
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
150
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
151 Once the buffer has a @code{revert-buffer-function} and a
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
152 @code{buffer-stale-function}, several problems usually remain.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
153
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
154 The buffer will only auto-revert if it is marked unmodified. Hence,
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
155 you will have to make sure that various functions mark the buffer
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
156 modified if and only if either the buffer contains information that
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
157 might be lost by reverting, or there is reason to believe that the user
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
158 might be inconvenienced by auto-reverting, because he is actively
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
159 working on the buffer. The user can always override this by manually
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
160 adjusting the modified status of the buffer. To support this, calling
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
161 the @code{revert-buffer-function} on a buffer that is marked
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
162 unmodified should always keep the buffer marked unmodified.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
163
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
164 It is important to assure that point does not continuously jump around
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
165 as a consequence of auto-reverting. Of course, moving point might be
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
166 inevitable if the buffer radically changes.
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
167
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
168 You should make sure that the @code{revert-buffer-function} does not
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
169 print messages that unnecessarily duplicate Auto Revert's own messages,
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
170 displayed if @code{auto-revert-verbose} is @code{t}, and effectively
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
171 override a @code{nil} value for @code{auto-revert-verbose}. Hence,
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
172 adapting a mode for auto-reverting often involves getting rid of such
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
173 messages. This is especially important for buffers that automatically
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
174 revert every @code{auto-revert-interval} seconds.
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
175
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
176 If the new auto-reverting is part of Emacs, you should mention it
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
177 in the documentation string of @code{global-auto-revert-non-file-buffers}.
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
178
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
179 @ifinfo
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
180 Similarly, you should add a node to this chapter's menu. This node
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
181 @end ifinfo
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
182 @ifnotinfo
103607
6d2862d52653 Minor language tweaks.
Glenn Morris <rgm@gnu.org>
parents: 100974
diff changeset
183 Similarly, you should add a section to this chapter. This section
84222
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
184 @end ifnotinfo
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
185 should at the very least make clear whether enabling auto-reverting
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
186 for the buffer reliably assures that all information in the buffer is
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
187 completely up to date (or will be after @code{auto-revert-interval}
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
188 seconds).
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
189
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
190 @ignore
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
191 arch-tag: 2983e613-a272-45f6-9593-3010ad7f865e
c1718125a1e2 Move here from ../../man
Glenn Morris <rgm@gnu.org>
parents:
diff changeset
192 @end ignore