Mercurial > emacs
annotate man/emacs-xtra.texi @ 70446:31e2bfedd75e
(Calendar/Diary, Holidays, Displaying the Diary)
(Displaying the Diary, Special Diary Entries, Importing Diary): Replace inforef
to emacs-xtra by conditional xref's, depending on @iftex/@ifnottex.
(Calendar/Diary) [ifnottex]: Add menu item for "Advanced Calendar/Diary Usage".
(Time Intervals) [ifnottex]: @include cal-xtra.texi.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Sat, 06 May 2006 12:53:25 +0000 |
parents | 67cae6fd5e56 |
children | 20fe674eccfb |
rev | line source |
---|---|
56119 | 1 \input texinfo @c -*-texinfo-*- |
2 @comment %**start of header | |
3 @setfilename ../info/emacs-xtra | |
4 @settitle Specialized Emacs Features | |
5 @syncodeindex fn cp | |
6 @syncodeindex vr cp | |
7 @syncodeindex ky cp | |
8 @comment %**end of header | |
9 | |
10 @copying | |
56160
6ad083598109
(Supporting additional buffers): Minor change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56149
diff
changeset
|
11 This manual describes specialized features of Emacs. |
56119 | 12 |
69681
11b616eddda4
@copyright{}, no indentation in @copying{}
Karl Berry <karl@gnu.org>
parents:
69530
diff
changeset
|
13 Copyright @copyright{} 2004, 2005, 2006 Free Software Foundation, Inc. |
56119 | 14 |
15 @quotation | |
16 Permission is granted to copy, distribute and/or modify this document | |
65555
69b3598a61c5
Update all manuals to specify GFDL version 1.2.
Romain Francoise <romain@orebokech.com>
parents:
64890
diff
changeset
|
17 under the terms of the GNU Free Documentation License, Version 1.2 or |
56119 | 18 any later version published by the Free Software Foundation; with no |
19 Invariant Sections, with the Front-Cover texts being ``A GNU | |
20 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the | |
21 license is included in the section entitled ``GNU Free Documentation | |
22 License'' in the Emacs manual. | |
23 | |
24 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify | |
25 this GNU Manual, like GNU software. Copies published by the Free | |
26 Software Foundation raise funds for GNU development.'' | |
27 | |
28 This document is part of a collection distributed under the GNU Free | |
29 Documentation License. If you want to distribute this document | |
30 separately from the collection, you can do so by adding a copy of the | |
31 license to the document, as described in section 6 of the license. | |
32 @end quotation | |
33 @end copying | |
34 | |
35 @dircategory Emacs | |
36 @direntry | |
37 * Emacs-Xtra: (emacs-xtra). Specialized Emacs features. | |
38 @end direntry | |
39 | |
40 @titlepage | |
41 @title Specialized Emacs Features | |
42 @page | |
43 @vskip 0pt plus 1filll | |
44 @insertcopying | |
45 @end titlepage | |
46 | |
47 @contents | |
48 | |
49 @ifnottex | |
50 @node Top | |
51 @top Specialized Emacs Features | |
52 | |
53 @insertcopying | |
54 | |
55 @end ifnottex | |
56 | |
57 @menu | |
70437
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
58 * Introduction:: What documentation belongs here? |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
59 * Autorevert:: Auto Reverting non-file buffers. |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
60 * Subdir Switches:: Subdirectory switches in Dired. |
61000
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
61 * Advanced Calendar/Diary Usage:: Advanced Calendar/Diary customization. |
70437
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
62 * Emerge:: A convenient way of merging two versions of a program. |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
63 * Picture Mode:: Editing pictures made up of characters using |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
64 the quarter-plane screen model. |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
65 |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
66 * Advanced VC Usage:: Advanced VC (version control) features. |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
67 * Fortran:: Fortran mode and its special features. |
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
68 * MS-DOS:: Using Emacs on MS-DOS (otherwise known as "MS-DOG"). |
56119 | 69 * Index:: |
70 @end menu | |
71 | |
72 @node Introduction | |
73 @unnumbered Introduction | |
74 | |
75 This manual contains detailed information about various features that | |
76 are too specialized to be included in the Emacs manual. It is | |
77 intended to be readable by anyone having a basic knowledge of Emacs. | |
78 However, certain sections may be intended for a more specialized | |
79 audience, such as Elisp authors. This should be clearly pointed out | |
80 at the beginning of these sections. | |
81 | |
82 This manual is intended as a complement, rather than an alternative, | |
83 to other ways to gain a more detailed knowledge of Emacs than the | |
84 Emacs manual can provide, such as browsing packages using @kbd{C-h p}, | |
85 accessing mode documentation using @kbd{C-h m} and browsing user | |
86 options using Custom. Also, certain packages, or collections of | |
87 related features, have their own manuals. The present manual is | |
88 mainly intended to be a collection of smaller specialized features, | |
89 too small to get their own manual. | |
90 | |
91 Sections intended specifically for Elisp programmers can follow the | |
92 style of the Elisp manual. Other sections should follow the style of | |
93 the Emacs manual. | |
94 | |
95 @node Autorevert | |
96 @chapter Auto Reverting non-file Buffers | |
97 | |
98 Normally Global Auto Revert Mode only reverts file buffers. There are | |
99 two ways to auto-revert certain non-file buffers: enabling Auto Revert | |
100 Mode in those buffers (using @kbd{M-x auto-revert-mode}) and setting | |
101 @code{global-auto-revert-non-file-buffers} to @code{t}. The latter | |
102 enables Auto Reverting for all types of buffers for which it is | |
103 implemented, that is, for the types of buffers listed in the menu | |
104 below. | |
105 | |
106 Like file buffers, non-file buffers should normally not revert while | |
107 you are working on them, or while they contain information that might | |
108 get lost after reverting. Therefore, they do not revert if they are | |
109 ``modified''. This can get tricky, because deciding when a non-file | |
110 buffer should be marked modified is usually more difficult than for | |
111 file buffers. | |
112 | |
113 Another tricky detail is that, for efficiency reasons, Auto Revert | |
114 often does not try to detect all possible changes in the buffer, only | |
115 changes that are ``major'' or easy to detect. Hence, enabling | |
116 auto-reverting for a non-file buffer does not always guarantee that | |
117 all information in the buffer is up to date and does not necessarily | |
118 make manual reverts useless. | |
119 | |
56128
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
120 At the other extreme, certain buffers automatically auto-revert every |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
121 @code{auto-revert-interval} seconds. (This currently only applies to |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
122 the Buffer Menu.) In this case, Auto Revert does not print any |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
123 messages while reverting, even when @code{auto-revert-verbose} is |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
124 non-@code{nil}. |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
125 |
56119 | 126 The details depend on the particular types of buffers and are |
127 explained in the corresponding sections. | |
128 | |
129 @menu | |
130 * Auto Reverting the Buffer Menu:: | |
131 * Auto Reverting Dired:: | |
132 * Supporting additional buffers:: | |
133 @end menu | |
134 | |
135 @node Auto Reverting the Buffer Menu | |
136 @section Auto Reverting the Buffer Menu | |
137 | |
138 If auto-reverting of non-file buffers is enabled, the Buffer Menu | |
139 automatically reverts every @code{auto-revert-interval} seconds, | |
140 whether there is a need for it or not. (It would probably take longer | |
141 to check whether there is a need than to actually revert.) | |
142 | |
143 If the Buffer Menu inappropriately gets marked modified, just revert | |
144 it manually using @kbd{g} and auto-reverting will resume. However, if | |
145 you marked certain buffers to get deleted or to be displayed, you have | |
146 to be careful, because reverting erases all marks. The fact that | |
147 adding marks sets the buffer's modified flag prevents Auto Revert from | |
148 automatically erasing the marks. | |
149 | |
150 @node Auto Reverting Dired | |
151 @section Auto Reverting Dired buffers | |
152 | |
56149
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
153 Auto-reverting Dired buffers currently works on GNU or Unix style |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
154 operating systems. It may not work satisfactorily on some other |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
155 systems. |
56119 | 156 |
157 Dired buffers only auto-revert when the file list of the buffer's main | |
158 directory changes. They do not auto-revert when information about a | |
159 particular file changes or when inserted subdirectories change. To be | |
160 sure that @emph{all} listed information is up to date, you have to | |
161 manually revert using @kbd{g}, @emph{even} if auto-reverting is | |
162 enabled in the Dired buffer. Sometimes, you might get the impression | |
163 that modifying or saving files listed in the main directory actually | |
164 does cause auto-reverting. This is because making changes to a file, | |
165 or saving it, very often causes changes in the directory itself, for | |
166 instance, through backup files or auto-save files. However, this is | |
167 not guaranteed. | |
168 | |
169 If the Dired buffer is marked modified and there are no changes you | |
170 want to protect, then most of the time you can make auto-reverting | |
171 resume by manually reverting the buffer using @kbd{g}. There is one | |
56149
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
172 exception. If you flag or mark files, you can safely revert the |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
173 buffer. This will not erase the flags or marks (unless the marked |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
174 file has been deleted, of course). However, the buffer will stay |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
175 modified, even after reverting, and auto-reverting will not resume. |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
176 This is because, if you flag or mark files, you may be working on the |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
177 buffer and you might not want the buffer to change without warning. |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
178 If you want auto-reverting to resume in the presence of marks and |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
179 flags, mark the buffer non-modified using @kbd{M-~}. However, adding, |
0e86f3e9a45d
(Auto Reverting Dired): Minor changes.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56131
diff
changeset
|
180 deleting or changing marks or flags will mark it modified again. |
56119 | 181 |
182 Remote Dired buffers are not auto-reverted. Neither are Dired buffers | |
183 for which you used shell wildcards or file arguments to list only some | |
184 of the files. @samp{*Find*} and @samp{*Locate*} buffers do not | |
185 auto-revert either. | |
186 | |
187 @node Supporting additional buffers | |
188 @section Adding Support for Auto-Reverting additional Buffers. | |
189 | |
190 This section is intended for Elisp programmers who would like to add | |
191 support for auto-reverting new types of buffers. | |
192 | |
193 To support auto-reverting the buffer must first of all have a | |
194 @code{revert-buffer-function}. @xref{Definition of | |
195 revert-buffer-function,, Reverting, elisp, the Emacs Lisp Reference Manual}. | |
196 | |
197 In addition, it @emph{must} have a @code{buffer-stale-function}. | |
198 | |
199 @defvar buffer-stale-function | |
200 The value of this variable is a function to check whether a non-file | |
201 buffer needs reverting. This should be a function with one optional | |
202 argument @var{noconfirm}. The function should return non-@code{nil} | |
203 if the buffer should be reverted. The buffer is current when this | |
204 function is called. | |
205 | |
206 While this function is mainly intended for use in auto-reverting, it | |
207 could be used for other purposes as well. For instance, if | |
208 auto-reverting is not enabled, it could be used to warn the user that | |
209 the buffer needs reverting. The idea behind the @var{noconfirm} | |
210 argument is that it should be @code{t} if the buffer is going to be | |
211 reverted without asking the user and @code{nil} if the function is | |
212 just going to be used to warn the user that the buffer is out of date. | |
213 In particular, for use in auto-reverting, @var{noconfirm} is @code{t}. | |
214 If the function is only going to be used for auto-reverting, you can | |
215 ignore the @var{noconfirm} argument. | |
216 | |
217 If you just want to automatically auto-revert every | |
218 @code{auto-revert-interval} seconds, use: | |
219 | |
220 @example | |
221 (set (make-local-variable 'buffer-stale-function) | |
222 #'(lambda (&optional noconfirm) 'fast)) | |
223 @end example | |
224 | |
225 @noindent | |
226 in the buffer's mode function. | |
227 | |
56128
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
228 The special return value @samp{fast} tells the caller that the need |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
229 for reverting was not checked, but that reverting the buffer is fast. |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
230 It also tells Auto Revert not to print any revert messages, even if |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
231 @code{auto-revert-verbose} is non-@code{nil}. This is important, as |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
232 getting revert messages every @code{auto-revert-interval} seconds can |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
233 be very annoying. The information provided by this return value could |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
234 also be useful if the function is consulted for purposes other than |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
235 auto-reverting. |
56119 | 236 @end defvar |
237 | |
238 Once the buffer has a @code{revert-buffer-function} and a | |
239 @code{buffer-stale-function}, several problems usually remain. | |
240 | |
241 The buffer will only auto-revert if it is marked unmodified. Hence, | |
242 you will have to make sure that various functions mark the buffer | |
243 modified if and only if either the buffer contains information that | |
244 might be lost by reverting or there is reason to believe that the user | |
245 might be inconvenienced by auto-reverting, because he is actively | |
246 working on the buffer. The user can always override this by manually | |
247 adjusting the modified status of the buffer. To support this, calling | |
248 the @code{revert-buffer-function} on a buffer that is marked | |
249 unmodified should always keep the buffer marked unmodified. | |
250 | |
251 It is important to assure that point does not continuously jump around | |
252 as a consequence of auto-reverting. Of course, moving point might be | |
253 inevitable if the buffer radically changes. | |
254 | |
255 You should make sure that the @code{revert-buffer-function} does not | |
256 print messages that unnecessarily duplicate Auto Revert's own messages | |
257 if @code{auto-revert-verbose} is @code{t} and effectively override a | |
258 @code{nil} value for @code{auto-revert-verbose}. Hence, adapting a | |
259 mode for auto-reverting often involves getting rid of such messages. | |
56128
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
260 This is especially important for buffers that automatically |
cf2e292bf084
(Autorevert, Supporting additional buffers): Explain special treatment
Luc Teirlinck <teirllm@auburn.edu>
parents:
56119
diff
changeset
|
261 auto-revert every @code{auto-revert-interval} seconds. |
56119 | 262 |
56160
6ad083598109
(Supporting additional buffers): Minor change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56149
diff
changeset
|
263 Also, you may want to update the documentation string of |
6ad083598109
(Supporting additional buffers): Minor change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56149
diff
changeset
|
264 @code{global-auto-revert-non-file-buffers}. |
6ad083598109
(Supporting additional buffers): Minor change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56149
diff
changeset
|
265 |
56119 | 266 @ifinfo |
267 Finally, you should add a node to this chapter's menu. This node | |
268 @end ifinfo | |
269 @ifnotinfo | |
270 Finally, you should add a section to this chapter. This section | |
271 @end ifnotinfo | |
272 should at the very least make clear whether enabling auto-reverting | |
273 for the buffer reliably assures that all information in the buffer is | |
274 completely up to date (or will be after @code{auto-revert-interval} | |
275 seconds). | |
276 | |
69945
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
277 @node Subdir Switches |
56119 | 278 @chapter Subdirectory Switches in Dired |
279 | |
280 You can insert subdirectories with specified @code{ls} switches in | |
281 Dired buffers, using @kbd{C-u i}. You can change the @code{ls} | |
282 switches of an already inserted subdirectory using @kbd{C-u l}. | |
283 | |
59996
aac0a33f5772
Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents:
56473
diff
changeset
|
284 In Emacs versions 22.1 and later, Dired remembers the switches, so |
56119 | 285 that reverting the buffer will not change them back to the main |
286 directory's switches. Deleting a subdirectory forgets about its | |
287 switches. | |
288 | |
289 Using @code{dired-undo} (usually bound to @kbd{C-_} and @kbd{C-x u}) | |
290 to reinsert or delete subdirectories, that were inserted with explicit | |
291 switches, can bypass Dired's machinery for remembering (or forgetting) | |
292 switches. Deleting a subdirectory using @code{dired-undo} does not | |
293 forget its switches. When later reinserted using @kbd{i}, it will be | |
294 reinserted using its old switches. Using @code{dired-undo} to | |
295 reinsert a subdirectory that was deleted using the regular | |
296 Dired commands (not @code{dired-undo}) will originally insert it with | |
297 its old switches. However, reverting the buffer will relist it using | |
298 the buffer's default switches. If any of this yields problems, you | |
299 can easily correct the situation using @kbd{C-u i} or @kbd{C-u l}. | |
300 | |
56471
ca944d885fe6
(Subdir switches): Dired does not remember the `R' switch.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56160
diff
changeset
|
301 Dired does not remember the @code{R} switch. Inserting a subdirectory |
ca944d885fe6
(Subdir switches): Dired does not remember the `R' switch.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56160
diff
changeset
|
302 with switches that include the @code{R} switch is equivalent with |
ca944d885fe6
(Subdir switches): Dired does not remember the `R' switch.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56160
diff
changeset
|
303 inserting each of its subdirectories using all remaining switches. |
56473
d9fdff5fee26
(Subdir switches): Minor fix to previous change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56471
diff
changeset
|
304 For instance, updating or killing a subdirectory that was inserted |
d9fdff5fee26
(Subdir switches): Minor fix to previous change.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56471
diff
changeset
|
305 with the @code{R} switch will not update or kill its subdirectories. |
56471
ca944d885fe6
(Subdir switches): Dired does not remember the `R' switch.
Luc Teirlinck <teirllm@auburn.edu>
parents:
56160
diff
changeset
|
306 |
56119 | 307 The buffer's default switches do not affect subdirectories that were |
308 inserted using explicitly specified switches. In particular, | |
309 commands such as @kbd{s}, that change the buffer's switches do not | |
310 affect such subdirectories. (They do affect subdirectories without | |
311 explicitly assigned switches, however.) | |
312 | |
313 You can make Dired forget about all subdirectory switches and relist | |
314 all subdirectories with the buffer's default switches using | |
315 @kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer. | |
316 | |
61000
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
317 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
318 @c Moved here from the Emacs Lisp Reference Manual, 2005-03-26. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
319 @node Advanced Calendar/Diary Usage |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
320 @chapter Customizing the Calendar and Diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
321 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
322 There are many customizations that you can use to make the calendar and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
323 diary suit your personal tastes. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
324 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
325 @menu |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
326 * Calendar Customizing:: Defaults you can set. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
327 * Holiday Customizing:: Defining your own holidays. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
328 * Date Display Format:: Changing the format. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
329 * Time Display Format:: Changing the format. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
330 * Daylight Savings:: Changing the default. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
331 * Diary Customizing:: Defaults you can set. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
332 * Hebrew/Islamic Entries:: How to obtain them. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
333 * Fancy Diary Display:: Enhancing the diary display, sorting entries, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
334 using included diary files. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
335 * Sexp Diary Entries:: Fancy things you can do. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
336 @end menu |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
337 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
338 @node Calendar Customizing |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
339 @section Customizing the Calendar |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
340 @vindex calendar-holiday-marker |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
341 @vindex diary-entry-marker |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
342 The variable @code{calendar-holiday-marker} specifies how to mark a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
343 date as being a holiday. Its value may be a single-character string |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
344 to insert next to the date, or a face name to use for displaying the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
345 date. Likewise, the variable @code{diary-entry-marker} specifies how |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
346 to mark a date that has diary entries. The calendar creates faces |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
347 named @code{holiday-face} and @code{diary-face} for these purposes; |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
348 those symbols are the default values of these variables. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
349 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
350 @vindex calendar-load-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
351 The variable @code{calendar-load-hook} is a normal hook run when the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
352 calendar package is first loaded (before actually starting to display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
353 the calendar). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
354 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
355 @vindex initial-calendar-window-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
356 Starting the calendar runs the normal hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
357 @code{initial-calendar-window-hook}. Recomputation of the calendar |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
358 display does not run this hook. But if you leave the calendar with the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
359 @kbd{q} command and reenter it, the hook runs again.@refill |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
360 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
361 @vindex today-visible-calendar-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
362 The variable @code{today-visible-calendar-hook} is a normal hook run |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
363 after the calendar buffer has been prepared with the calendar when the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
364 current date is visible in the window. One use of this hook is to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
365 replace today's date with asterisks; to do that, use the hook function |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
366 @code{calendar-star-date}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
367 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
368 @findex calendar-star-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
369 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
370 (add-hook 'today-visible-calendar-hook 'calendar-star-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
371 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
372 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
373 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
374 Another standard hook function marks the current date, either by |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
375 changing its face or by adding an asterisk. Here's how to use it: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
376 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
377 @findex calendar-mark-today |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
378 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
379 (add-hook 'today-visible-calendar-hook 'calendar-mark-today) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
380 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
381 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
382 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
383 @vindex calendar-today-marker |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
384 The variable @code{calendar-today-marker} specifies how to mark |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
385 today's date. Its value should be a single-character string to insert |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
386 next to the date or a face name to use for displaying the date. A |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
387 face named @code{calendar-today-face} is provided for this purpose; |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
388 that symbol is the default for this variable. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
389 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
390 @vindex today-invisible-calendar-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
391 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
392 A similar normal hook, @code{today-invisible-calendar-hook} is run if |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
393 the current date is @emph{not} visible in the window. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
394 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
395 @vindex calendar-move-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
396 Each of the calendar cursor motion commands runs the hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
397 @code{calendar-move-hook} after it moves the cursor. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
398 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
399 @node Holiday Customizing |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
400 @section Customizing the Holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
401 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
402 @vindex calendar-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
403 @vindex christian-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
404 @vindex hebrew-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
405 @vindex islamic-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
406 Emacs knows about holidays defined by entries on one of several lists. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
407 You can customize these lists of holidays to your own needs, adding or |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
408 deleting holidays. The lists of holidays that Emacs uses are for |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
409 general holidays (@code{general-holidays}), local holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
410 (@code{local-holidays}), Christian holidays (@code{christian-holidays}), |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
411 Hebrew (Jewish) holidays (@code{hebrew-holidays}), Islamic (Muslim) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
412 holidays (@code{islamic-holidays}), and other holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
413 (@code{other-holidays}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
414 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
415 @vindex general-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
416 The general holidays are, by default, holidays common throughout the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
417 United States. To eliminate these holidays, set @code{general-holidays} |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
418 to @code{nil}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
419 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
420 @vindex local-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
421 There are no default local holidays (but sites may supply some). You |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
422 can set the variable @code{local-holidays} to any list of holidays, as |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
423 described below. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
424 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
425 @vindex all-christian-calendar-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
426 @vindex all-hebrew-calendar-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
427 @vindex all-islamic-calendar-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
428 By default, Emacs does not include all the holidays of the religions |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
429 that it knows, only those commonly found in secular calendars. For a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
430 more extensive collection of religious holidays, you can set any (or |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
431 all) of the variables @code{all-christian-calendar-holidays}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
432 @code{all-hebrew-calendar-holidays}, or |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
433 @code{all-islamic-calendar-holidays} to @code{t}. If you want to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
434 eliminate the religious holidays, set any or all of the corresponding |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
435 variables @code{christian-holidays}, @code{hebrew-holidays}, and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
436 @code{islamic-holidays} to @code{nil}.@refill |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
437 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
438 @vindex other-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
439 You can set the variable @code{other-holidays} to any list of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
440 holidays. This list, normally empty, is intended for individual use. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
441 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
442 @cindex holiday forms |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
443 Each of the lists (@code{general-holidays}, @code{local-holidays}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
444 @code{christian-holidays}, @code{hebrew-holidays}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
445 @code{islamic-holidays}, and @code{other-holidays}) is a list of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
446 @dfn{holiday forms}, each holiday form describing a holiday (or |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
447 sometimes a list of holidays). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
448 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
449 Here is a table of the possible kinds of holiday form. Day numbers |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
450 and month numbers count starting from 1, but ``dayname'' numbers |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
451 count Sunday as 0. The element @var{string} is always the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
452 name of the holiday, as a string. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
453 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
454 @table @code |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
455 @item (holiday-fixed @var{month} @var{day} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
456 A fixed date on the Gregorian calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
457 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
458 @item (holiday-float @var{month} @var{dayname} @var{k} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
459 The @var{k}th @var{dayname} in @var{month} on the Gregorian calendar |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
460 (@var{dayname}=0 for Sunday, and so on); negative @var{k} means count back |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
461 from the end of the month. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
462 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
463 @item (holiday-hebrew @var{month} @var{day} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
464 A fixed date on the Hebrew calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
465 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
466 @item (holiday-islamic @var{month} @var{day} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
467 A fixed date on the Islamic calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
468 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
469 @item (holiday-julian @var{month} @var{day} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
470 A fixed date on the Julian calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
471 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
472 @item (holiday-sexp @var{sexp} @var{string}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
473 A date calculated by the Lisp expression @var{sexp}. The expression |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
474 should use the variable @code{year} to compute and return the date of a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
475 holiday, or @code{nil} if the holiday doesn't happen this year. The |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
476 value of @var{sexp} must represent the date as a list of the form |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
477 @code{(@var{month} @var{day} @var{year})}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
478 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
479 @item (if @var{condition} @var{holiday-form}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
480 A holiday that happens only if @var{condition} is true. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
481 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
482 @item (@var{function} @r{[}@var{args}@r{]}) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
483 A list of dates calculated by the function @var{function}, called with |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
484 arguments @var{args}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
485 @end table |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
486 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
487 For example, suppose you want to add Bastille Day, celebrated in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
488 France on July 14. You can do this as follows: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
489 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
490 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
491 (setq other-holidays '((holiday-fixed 7 14 "Bastille Day"))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
492 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
493 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
494 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
495 The holiday form @code{(holiday-fixed 7 14 "Bastille Day")} specifies the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
496 fourteenth day of the seventh month (July). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
497 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
498 Many holidays occur on a specific day of the week, at a specific time |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
499 of month. Here is a holiday form describing Hurricane Supplication Day, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
500 celebrated in the Virgin Islands on the fourth Monday in August: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
501 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
502 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
503 (holiday-float 8 1 4 "Hurricane Supplication Day") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
504 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
505 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
506 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
507 Here the 8 specifies August, the 1 specifies Monday (Sunday is 0, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
508 Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
509 the month (1 specifies the first occurrence, 2 the second occurrence, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
510 @minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
511 so on). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
512 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
513 You can specify holidays that occur on fixed days of the Hebrew, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
514 Islamic, and Julian calendars too. For example, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
515 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
516 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
517 (setq other-holidays |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
518 '((holiday-hebrew 10 2 "Last day of Hanukkah") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
519 (holiday-islamic 3 12 "Mohammed's Birthday") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
520 (holiday-julian 4 2 "Jefferson's Birthday"))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
521 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
522 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
523 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
524 adds the last day of Hanukkah (since the Hebrew months are numbered with |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
525 1 starting from Nisan), the Islamic feast celebrating Mohammed's |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
526 birthday (since the Islamic months are numbered from 1 starting with |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
527 Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
528 Julian calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
529 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
530 To include a holiday conditionally, use either Emacs Lisp's @code{if} or the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
531 @code{holiday-sexp} form. For example, American presidential elections |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
532 occur on the first Tuesday after the first Monday in November of years |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
533 divisible by 4: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
534 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
535 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
536 (holiday-sexp '(if (= 0 (% year 4)) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
537 (calendar-gregorian-from-absolute |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
538 (1+ (calendar-dayname-on-or-before |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
539 1 (+ 6 (calendar-absolute-from-gregorian |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
540 (list 11 1 year))))))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
541 "US Presidential Election") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
542 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
543 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
544 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
545 or |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
546 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
547 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
548 (if (= 0 (% displayed-year 4)) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
549 (fixed 11 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
550 (extract-calendar-day |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
551 (calendar-gregorian-from-absolute |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
552 (1+ (calendar-dayname-on-or-before |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
553 1 (+ 6 (calendar-absolute-from-gregorian |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
554 (list 11 1 displayed-year))))))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
555 "US Presidential Election")) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
556 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
557 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
558 Some holidays just don't fit into any of these forms because special |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
559 calculations are involved in their determination. In such cases you |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
560 must write a Lisp function to do the calculation. To include eclipses, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
561 for example, add @code{(eclipses)} to @code{other-holidays} |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
562 and write an Emacs Lisp function @code{eclipses} that returns a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
563 (possibly empty) list of the relevant Gregorian dates among the range |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
564 visible in the calendar window, with descriptive strings, like this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
565 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
566 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
567 (((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... ) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
568 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
569 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
570 @node Date Display Format |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
571 @section Date Display Format |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
572 @vindex calendar-date-display-form |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
573 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
574 You can customize the manner of displaying dates in the diary, in mode |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
575 lines, and in messages by setting @code{calendar-date-display-form}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
576 This variable holds a list of expressions that can involve the variables |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
577 @code{month}, @code{day}, and @code{year}, which are all numbers in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
578 string form, and @code{monthname} and @code{dayname}, which are both |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
579 alphabetic strings. In the American style, the default value of this |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
580 list is as follows: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
581 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
582 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
583 ((if dayname (concat dayname ", ")) monthname " " day ", " year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
584 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
585 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
586 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
587 while in the European style this value is the default: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
588 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
589 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
590 ((if dayname (concat dayname ", ")) day " " monthname " " year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
591 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
592 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
593 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
594 The ISO standard date representation is this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
595 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
596 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
597 (year "-" month "-" day) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
598 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
599 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
600 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
601 This specifies a typical American format: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
602 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
603 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
604 (month "/" day "/" (substring year -2)) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
605 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
606 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
607 @node Time Display Format |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
608 @section Time Display Format |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
609 @vindex calendar-time-display-form |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
610 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
611 The calendar and diary by default display times of day in the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
612 conventional American style with the hours from 1 through 12, minutes, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
613 and either @samp{am} or @samp{pm}. If you prefer the European style, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
614 also known in the US as military, in which the hours go from 00 to 23, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
615 you can alter the variable @code{calendar-time-display-form}. This |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
616 variable is a list of expressions that can involve the variables |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
617 @code{12-hours}, @code{24-hours}, and @code{minutes}, which are all |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
618 numbers in string form, and @code{am-pm} and @code{time-zone}, which are |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
619 both alphabetic strings. The default value of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
620 @code{calendar-time-display-form} is as follows: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
621 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
622 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
623 (12-hours ":" minutes am-pm |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
624 (if time-zone " (") time-zone (if time-zone ")")) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
625 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
626 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
627 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
628 Here is a value that provides European style times: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
629 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
630 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
631 (24-hours ":" minutes |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
632 (if time-zone " (") time-zone (if time-zone ")")) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
633 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
634 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
635 @node Daylight Savings |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
636 @section Daylight Savings Time |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
637 @cindex daylight savings time |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
638 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
639 Emacs understands the difference between standard time and daylight |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
640 savings time---the times given for sunrise, sunset, solstices, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
641 equinoxes, and the phases of the moon take that into account. The rules |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
642 for daylight savings time vary from place to place and have also varied |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
643 historically from year to year. To do the job properly, Emacs needs to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
644 know which rules to use. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
645 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
646 Some operating systems keep track of the rules that apply to the place |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
647 where you are; on these systems, Emacs gets the information it needs |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
648 from the system automatically. If some or all of this information is |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
649 missing, Emacs fills in the gaps with the rules currently used in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
650 Cambridge, Massachusetts, which is the center of GNU's world. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
651 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
652 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
653 @vindex calendar-daylight-savings-starts |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
654 @vindex calendar-daylight-savings-ends |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
655 If the default choice of rules is not appropriate for your location, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
656 you can tell Emacs the rules to use by setting the variables |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
657 @code{calendar-daylight-savings-starts} and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
658 @code{calendar-daylight-savings-ends}. Their values should be Lisp |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
659 expressions that refer to the variable @code{year}, and evaluate to the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
660 Gregorian date on which daylight savings time starts or (respectively) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
661 ends, in the form of a list @code{(@var{month} @var{day} @var{year})}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
662 The values should be @code{nil} if your area does not use daylight |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
663 savings time. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
664 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
665 Emacs uses these expressions to determine the start and end dates of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
666 daylight savings time as holidays and for correcting times of day in the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
667 solar and lunar calculations. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
668 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
669 The values for Cambridge, Massachusetts are as follows: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
670 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
671 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
672 @group |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
673 (calendar-nth-named-day 1 0 4 year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
674 (calendar-nth-named-day -1 0 10 year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
675 @end group |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
676 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
677 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
678 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
679 i.e., the first 0th day (Sunday) of the fourth month (April) in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
680 the year specified by @code{year}, and the last Sunday of the tenth month |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
681 (October) of that year. If daylight savings time were |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
682 changed to start on October 1, you would set |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
683 @code{calendar-daylight-savings-starts} to this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
684 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
685 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
686 (list 10 1 year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
687 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
688 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
689 For a more complex example, suppose daylight savings time begins on |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
690 the first of Nisan on the Hebrew calendar. You should set |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
691 @code{calendar-daylight-savings-starts} to this value: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
692 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
693 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
694 (calendar-gregorian-from-absolute |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
695 (calendar-absolute-from-hebrew |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
696 (list 1 1 (+ year 3760)))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
697 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
698 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
699 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
700 because Nisan is the first month in the Hebrew calendar and the Hebrew |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
701 year differs from the Gregorian year by 3760 at Nisan. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
702 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
703 If there is no daylight savings time at your location, or if you want |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
704 all times in standard time, set @code{calendar-daylight-savings-starts} |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
705 and @code{calendar-daylight-savings-ends} to @code{nil}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
706 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
707 @vindex calendar-daylight-time-offset |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
708 The variable @code{calendar-daylight-time-offset} specifies the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
709 difference between daylight savings time and standard time, measured in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
710 minutes. The value for Cambridge is 60. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
711 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
712 @vindex calendar-daylight-savings-starts-time |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
713 @vindex calendar-daylight-savings-ends-time |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
714 The variable @code{calendar-daylight-savings-starts-time} and the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
715 variable @code{calendar-daylight-savings-ends-time} specify the number |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
716 of minutes after midnight local time when the transition to and from |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
717 daylight savings time should occur. For Cambridge, both variables' |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
718 values are 120. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
719 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
720 @node Diary Customizing |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
721 @section Customizing the Diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
722 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
723 @vindex holidays-in-diary-buffer |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
724 Ordinarily, the mode line of the diary buffer window indicates any |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
725 holidays that fall on the date of the diary entries. The process of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
726 checking for holidays can take several seconds, so including holiday |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
727 information delays the display of the diary buffer noticeably. If you'd |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
728 prefer to have a faster display of the diary buffer but without the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
729 holiday information, set the variable @code{holidays-in-diary-buffer} to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
730 @code{nil}.@refill |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
731 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
732 @vindex number-of-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
733 The variable @code{number-of-diary-entries} controls the number of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
734 days of diary entries to be displayed at one time. It affects the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
735 initial display when @code{view-diary-entries-initially} is @code{t}, as |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
736 well as the command @kbd{M-x diary}. For example, the default value is |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
737 1, which says to display only the current day's diary entries. If the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
738 value is 2, both the current day's and the next day's entries are |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
739 displayed. The value can also be a vector of seven elements: for |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
740 example, if the value is @code{[0 2 2 2 2 4 1]} then no diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
741 appear on Sunday, the current date's and the next day's diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
742 appear Monday through Thursday, Friday through Monday's entries appear |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
743 on Friday, while on Saturday only that day's entries appear. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
744 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
745 @vindex print-diary-entries-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
746 @findex print-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
747 The variable @code{print-diary-entries-hook} is a normal hook run |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
748 after preparation of a temporary buffer containing just the diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
749 entries currently visible in the diary buffer. (The other, irrelevant |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
750 diary entries are really absent from the temporary buffer; in the diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
751 buffer, they are merely hidden.) The default value of this hook does |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
752 the printing with the command @code{lpr-buffer}. If you want to use a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
753 different command to do the printing, just change the value of this |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
754 hook. Other uses might include, for example, rearranging the lines into |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
755 order by day and time. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
756 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
757 @vindex diary-date-forms |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
758 You can customize the form of dates in your diary file, if neither the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
759 standard American nor European styles suits your needs, by setting the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
760 variable @code{diary-date-forms}. This variable is a list of patterns |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
761 for recognizing a date. Each date pattern is a list whose elements may |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
762 be regular expressions (@pxref{Regular Expressions,,, elisp, the Emacs |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
763 Lisp Reference Manual}) or the symbols @code{month}, @code{day}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
764 @code{year}, @code{monthname}, and @code{dayname}. All these elements |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
765 serve as patterns that match certain kinds of text in the diary file. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
766 In order for the date pattern, as a whole, to match, all of its elements |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
767 must match consecutively. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
768 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
769 A regular expression in a date pattern matches in its usual fashion, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
770 using the standard syntax table altered so that @samp{*} is a word |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
771 constituent. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
772 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
773 The symbols @code{month}, @code{day}, @code{year}, @code{monthname}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
774 and @code{dayname} match the month number, day number, year number, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
775 month name, and day name of the date being considered. The symbols that |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
776 match numbers allow leading zeros; those that match names allow |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
777 three-letter abbreviations and capitalization. All the symbols can |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
778 match @samp{*}; since @samp{*} in a diary entry means ``any day'', ``any |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
779 month'', and so on, it should match regardless of the date being |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
780 considered. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
781 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
782 The default value of @code{diary-date-forms} in the American style is |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
783 this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
784 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
785 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
786 ((month "/" day "[^/0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
787 (month "/" day "/" year "[^0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
788 (monthname " *" day "[^,0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
789 (monthname " *" day ", *" year "[^0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
790 (dayname "\\W")) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
791 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
792 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
793 The date patterns in the list must be @emph{mutually exclusive} and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
794 must not match any portion of the diary entry itself, just the date and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
795 one character of whitespace. If, to be mutually exclusive, the pattern |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
796 must match a portion of the diary entry text---beyond the whitespace |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
797 that ends the date---then the first element of the date pattern |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
798 @emph{must} be @code{backup}. This causes the date recognizer to back |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
799 up to the beginning of the current word of the diary entry, after |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
800 finishing the match. Even if you use @code{backup}, the date pattern |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
801 must absolutely not match more than a portion of the first word of the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
802 diary entry. The default value of @code{diary-date-forms} in the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
803 European style is this list: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
804 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
805 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
806 ((day "/" month "[^/0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
807 (day "/" month "/" year "[^0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
808 (backup day " *" monthname "\\W+\\<[^*0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
809 (day " *" monthname " *" year "[^0-9]") |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
810 (dayname "\\W")) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
811 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
812 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
813 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
814 Notice the use of @code{backup} in the third pattern, because it needs |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
815 to match part of a word beyond the date itself to distinguish it from |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
816 the fourth pattern. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
817 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
818 @node Hebrew/Islamic Entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
819 @section Hebrew- and Islamic-Date Diary Entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
820 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
821 Your diary file can have entries based on Hebrew or Islamic dates, as |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
822 well as entries based on the world-standard Gregorian calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
823 However, because recognition of such entries is time-consuming and most |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
824 people don't use them, you must explicitly enable their use. If you |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
825 want the diary to recognize Hebrew-date diary entries, for example, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
826 you must do this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
827 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
828 @vindex nongregorian-diary-listing-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
829 @vindex nongregorian-diary-marking-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
830 @findex list-hebrew-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
831 @findex mark-hebrew-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
832 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
833 (add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
834 (add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
835 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
836 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
837 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
838 If you want Islamic-date entries, do this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
839 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
840 @findex list-islamic-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
841 @findex mark-islamic-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
842 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
843 (add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
844 (add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
845 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
846 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
847 Hebrew- and Islamic-date diary entries have the same formats as |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
848 Gregorian-date diary entries, except that @samp{H} precedes a Hebrew |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
849 date and @samp{I} precedes an Islamic date. Moreover, because the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
850 Hebrew and Islamic month names are not uniquely specified by the first |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
851 three letters, you may not abbreviate them. For example, a diary entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
852 for the Hebrew date Heshvan 25 could look like this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
853 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
854 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
855 HHeshvan 25 Happy Hebrew birthday! |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
856 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
857 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
858 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
859 and would appear in the diary for any date that corresponds to Heshvan 25 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
860 on the Hebrew calendar. And here is an Islamic-date diary entry that matches |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
861 Dhu al-Qada 25: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
862 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
863 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
864 IDhu al-Qada 25 Happy Islamic birthday! |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
865 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
866 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
867 As with Gregorian-date diary entries, Hebrew- and Islamic-date entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
868 are nonmarking if they are preceded with an ampersand (@samp{&}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
869 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
870 Here is a table of commands used in the calendar to create diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
871 that match the selected date and other dates that are similar in the Hebrew |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
872 or Islamic calendar: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
873 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
874 @table @kbd |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
875 @item i h d |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
876 Add a diary entry for the Hebrew date corresponding to the selected date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
877 (@code{insert-hebrew-diary-entry}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
878 @item i h m |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
879 Add a diary entry for the day of the Hebrew month corresponding to the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
880 selected date (@code{insert-monthly-hebrew-diary-entry}). This diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
881 entry matches any date that has the same Hebrew day-within-month as the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
882 selected date. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
883 @item i h y |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
884 Add a diary entry for the day of the Hebrew year corresponding to the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
885 selected date (@code{insert-yearly-hebrew-diary-entry}). This diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
886 entry matches any date which has the same Hebrew month and day-within-month |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
887 as the selected date. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
888 @item i i d |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
889 Add a diary entry for the Islamic date corresponding to the selected date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
890 (@code{insert-islamic-diary-entry}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
891 @item i i m |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
892 Add a diary entry for the day of the Islamic month corresponding to the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
893 selected date (@code{insert-monthly-islamic-diary-entry}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
894 @item i i y |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
895 Add a diary entry for the day of the Islamic year corresponding to the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
896 selected date (@code{insert-yearly-islamic-diary-entry}). |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
897 @end table |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
898 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
899 @findex insert-hebrew-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
900 @findex insert-monthly-hebrew-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
901 @findex insert-yearly-hebrew-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
902 @findex insert-islamic-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
903 @findex insert-monthly-islamic-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
904 @findex insert-yearly-islamic-diary-entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
905 These commands work much like the corresponding commands for ordinary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
906 diary entries: they apply to the date that point is on in the calendar |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
907 window, and what they do is insert just the date portion of a diary entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
908 at the end of your diary file. You must then insert the rest of the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
909 diary entry. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
910 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
911 @node Fancy Diary Display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
912 @section Fancy Diary Display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
913 @vindex diary-display-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
914 @findex simple-diary-display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
915 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
916 Diary display works by preparing the diary buffer and then running the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
917 hook @code{diary-display-hook}. The default value of this hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
918 (@code{simple-diary-display}) hides the irrelevant diary entries and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
919 then displays the buffer. However, if you specify the hook as follows, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
920 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
921 @cindex diary buffer |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
922 @findex fancy-diary-display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
923 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
924 (add-hook 'diary-display-hook 'fancy-diary-display) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
925 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
926 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
927 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
928 this enables fancy diary display. It displays diary entries and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
929 holidays by copying them into a special buffer that exists only for the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
930 sake of display. Copying to a separate buffer provides an opportunity |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
931 to change the displayed text to make it prettier---for example, to sort |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
932 the entries by the dates they apply to. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
933 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
934 As with simple diary display, you can print a hard copy of the buffer |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
935 with @code{print-diary-entries}. To print a hard copy of a day-by-day |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
936 diary for a week, position point on Sunday of that week, type |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
937 @kbd{7 d}, and then do @kbd{M-x print-diary-entries}. As usual, the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
938 inclusion of the holidays slows down the display slightly; you can speed |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
939 things up by setting the variable @code{holidays-in-diary-buffer} to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
940 @code{nil}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
941 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
942 @vindex diary-list-include-blanks |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
943 Ordinarily, the fancy diary buffer does not show days for which there are |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
944 no diary entries, even if that day is a holiday. If you want such days to be |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
945 shown in the fancy diary buffer, set the variable |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
946 @code{diary-list-include-blanks} to @code{t}.@refill |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
947 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
948 @cindex sorting diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
949 If you use the fancy diary display, you can use the normal hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
950 @code{list-diary-entries-hook} to sort each day's diary entries by their |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
951 time of day. Here's how: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
952 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
953 @findex sort-diary-entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
954 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
955 (add-hook 'list-diary-entries-hook 'sort-diary-entries t) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
956 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
957 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
958 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
959 For each day, this sorts diary entries that begin with a recognizable |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
960 time of day according to their times. Diary entries without times come |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
961 first within each day. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
962 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
963 Fancy diary display also has the ability to process included diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
964 files. This permits a group of people to share a diary file for events |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
965 that apply to all of them. Lines in the diary file of this form: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
966 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
967 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
968 #include "@var{filename}" |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
969 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
970 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
971 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
972 includes the diary entries from the file @var{filename} in the fancy |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
973 diary buffer. The include mechanism is recursive, so that included files |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
974 can include other files, and so on; you must be careful not to have a |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
975 cycle of inclusions, of course. Here is how to enable the include |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
976 facility: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
977 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
978 @vindex list-diary-entries-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
979 @vindex mark-diary-entries-hook |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
980 @findex include-other-diary-files |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
981 @findex mark-included-diary-files |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
982 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
983 (add-hook 'list-diary-entries-hook 'include-other-diary-files) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
984 (add-hook 'mark-diary-entries-hook 'mark-included-diary-files) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
985 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
986 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
987 The include mechanism works only with the fancy diary display, because |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
988 ordinary diary display shows the entries directly from your diary file. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
989 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
990 @node Sexp Diary Entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
991 @section Sexp Entries and the Fancy Diary Display |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
992 @cindex sexp diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
993 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
994 Sexp diary entries allow you to do more than just have complicated |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
995 conditions under which a diary entry applies. If you use the fancy |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
996 diary display, sexp entries can generate the text of the entry depending |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
997 on the date itself. For example, an anniversary diary entry can insert |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
998 the number of years since the anniversary date into the text of the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
999 diary entry. Thus the @samp{%d} in this dairy entry: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1000 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1001 @findex diary-anniversary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1002 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1003 %%(diary-anniversary 10 31 1948) Arthur's birthday (%d years old) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1004 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1005 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1006 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1007 gets replaced by the age, so on October 31, 1990 the entry appears in |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1008 the fancy diary buffer like this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1009 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1010 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1011 Arthur's birthday (42 years old) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1012 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1013 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1014 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1015 If the diary file instead contains this entry: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1016 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1017 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1018 %%(diary-anniversary 10 31 1948) Arthur's %d%s birthday |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1019 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1020 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1021 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1022 the entry in the fancy diary buffer for October 31, 1990 appears like this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1023 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1024 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1025 Arthur's 42nd birthday |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1026 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1027 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1028 Similarly, cyclic diary entries can interpolate the number of repetitions |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1029 that have occurred: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1030 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1031 @findex diary-cyclic |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1032 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1033 %%(diary-cyclic 50 1 1 1990) Renew medication (%d%s time) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1034 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1035 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1036 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1037 looks like this: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1038 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1039 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1040 Renew medication (5th time) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1041 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1042 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1043 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1044 in the fancy diary display on September 8, 1990. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1045 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1046 There is an early reminder diary sexp that includes its entry in the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1047 diary not only on the date of occurrence, but also on earlier dates. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1048 For example, if you want a reminder a week before your anniversary, you |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1049 can use |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1050 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1051 @findex diary-remind |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1052 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1053 %%(diary-remind '(diary-anniversary 12 22 1968) 7) Ed's anniversary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1054 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1055 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1056 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1057 and the fancy diary will show |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1058 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1059 Ed's anniversary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1060 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1061 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1062 both on December 15 and on December 22. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1063 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1064 @findex diary-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1065 The function @code{diary-date} applies to dates described by a month, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1066 day, year combination, each of which can be an integer, a list of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1067 integers, or @code{t}. The value @code{t} means all values. For |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1068 example, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1069 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1070 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1071 %%(diary-date '(10 11 12) 22 t) Rake leaves |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1072 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1073 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1074 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1075 causes the fancy diary to show |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1076 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1077 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1078 Rake leaves |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1079 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1080 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1081 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1082 on October 22, November 22, and December 22 of every year. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1083 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1084 @findex diary-float |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1085 The function @code{diary-float} allows you to describe diary entries |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1086 that apply to dates like the third Friday of November, or the last |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1087 Tuesday in April. The parameters are the @var{month}, @var{dayname}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1088 and an index @var{n}. The entry appears on the @var{n}th @var{dayname} |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1089 of @var{month}, where @var{dayname}=0 means Sunday, 1 means Monday, and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1090 so on. If @var{n} is negative it counts backward from the end of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1091 @var{month}. The value of @var{month} can be a list of months, a single |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1092 month, or @code{t} to specify all months. You can also use an optional |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1093 parameter @var{day} to specify the @var{n}th @var{dayname} of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1094 @var{month} on or after/before @var{day}; the value of @var{day} defaults |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1095 to 1 if @var{n} is positive and to the last day of @var{month} if |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1096 @var{n} is negative. For example, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1097 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1098 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1099 %%(diary-float t 1 -1) Pay rent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1100 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1101 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1102 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1103 causes the fancy diary to show |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1104 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1105 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1106 Pay rent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1107 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1108 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1109 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1110 on the last Monday of every month. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1111 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1112 The generality of sexp diary entries lets you specify any diary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1113 entry that you can describe algorithmically. A sexp diary entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1114 contains an expression that computes whether the entry applies to any |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1115 given date. If its value is non-@code{nil}, the entry applies to that |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1116 date; otherwise, it does not. The expression can use the variable |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1117 @code{date} to find the date being considered; its value is a list |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1118 (@var{month} @var{day} @var{year}) that refers to the Gregorian |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1119 calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1120 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1121 The sexp diary entry applies to a date when the expression's value |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1122 is non-@code{nil}, but some values have more specific meanings. If |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1123 the value is a string, that string is a description of the event which |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1124 occurs on that date. The value can also have the form |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1125 @code{(@var{mark} . @var{string})}; then @var{mark} specifies how to |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1126 mark the date in the calendar, and @var{string} is the description of |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1127 the event. If @var{mark} is a single-character string, that character |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1128 appears next to the date in the calendar. If @var{mark} is a face |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1129 name, the date is displayed in that face. If @var{mark} is |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1130 @code{nil}, that specifies no particular highlighting for the date. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1131 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1132 Suppose you get paid on the 21st of the month if it is a weekday, and |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1133 on the Friday before if the 21st is on a weekend. Here is how to write |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1134 a sexp diary entry that matches those dates: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1135 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1136 @smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1137 &%%(let ((dayname (calendar-day-of-week date)) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1138 (day (car (cdr date)))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1139 (or (and (= day 21) (memq dayname '(1 2 3 4 5))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1140 (and (memq day '(19 20)) (= dayname 5))) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1141 ) Pay check deposited |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1142 @end smallexample |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1143 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1144 The following sexp diary entries take advantage of the ability (in the fancy |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1145 diary display) to concoct diary entries whose text varies based on the date: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1146 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1147 @findex diary-sunrise-sunset |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1148 @findex diary-phases-of-moon |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1149 @findex diary-day-of-year |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1150 @findex diary-iso-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1151 @findex diary-julian-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1152 @findex diary-astro-day-number |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1153 @findex diary-hebrew-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1154 @findex diary-islamic-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1155 @findex diary-french-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1156 @findex diary-mayan-date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1157 @table @code |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1158 @item %%(diary-sunrise-sunset) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1159 Make a diary entry for the local times of today's sunrise and sunset. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1160 @item %%(diary-phases-of-moon) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1161 Make a diary entry for the phases (quarters) of the moon. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1162 @item %%(diary-day-of-year) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1163 Make a diary entry with today's day number in the current year and the number |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1164 of days remaining in the current year. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1165 @item %%(diary-iso-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1166 Make a diary entry with today's equivalent ISO commercial date. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1167 @item %%(diary-julian-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1168 Make a diary entry with today's equivalent date on the Julian calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1169 @item %%(diary-astro-day-number) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1170 Make a diary entry with today's equivalent astronomical (Julian) day number. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1171 @item %%(diary-hebrew-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1172 Make a diary entry with today's equivalent date on the Hebrew calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1173 @item %%(diary-islamic-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1174 Make a diary entry with today's equivalent date on the Islamic calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1175 @item %%(diary-french-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1176 Make a diary entry with today's equivalent date on the French Revolutionary |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1177 calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1178 @item %%(diary-mayan-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1179 Make a diary entry with today's equivalent date on the Mayan calendar. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1180 @end table |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1181 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1182 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1183 Thus including the diary entry |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1184 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1185 @example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1186 &%%(diary-hebrew-date) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1187 @end example |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1188 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1189 @noindent |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1190 causes every day's diary display to contain the equivalent date on the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1191 Hebrew calendar, if you are using the fancy diary display. (With simple |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1192 diary display, the line @samp{&%%(diary-hebrew-date)} appears in the |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1193 diary for any date, but does nothing particularly useful.) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1194 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1195 These functions can be used to construct sexp diary entries based on |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1196 the Hebrew calendar in certain standard ways: |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1197 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1198 @cindex rosh hodesh |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1199 @findex diary-rosh-hodesh |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1200 @cindex parasha, weekly |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1201 @findex diary-parasha |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1202 @cindex candle lighting times |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1203 @findex diary-sabbath-candles |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1204 @cindex omer count |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1205 @findex diary-omer |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1206 @cindex yahrzeits |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1207 @findex diary-yahrzeit |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1208 @table @code |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1209 @item %%(diary-rosh-hodesh) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1210 Make a diary entry that tells the occurrence and ritual announcement of each |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1211 new Hebrew month. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1212 @item %%(diary-parasha) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1213 Make a Saturday diary entry that tells the weekly synagogue scripture reading. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1214 @item %%(diary-sabbath-candles) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1215 Make a Friday diary entry that tells the @emph{local time} of Sabbath |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1216 candle lighting. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1217 @item %%(diary-omer) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1218 Make a diary entry that gives the omer count, when appropriate. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1219 @item %%(diary-yahrzeit @var{month} @var{day} @var{year}) @var{name} |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1220 Make a diary entry marking the anniversary of a date of death. The date |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1221 is the @emph{Gregorian} (civil) date of death. The diary entry appears |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1222 on the proper Hebrew calendar anniversary and on the day before. (In |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1223 the European style, the order of the parameters is changed to @var{day}, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1224 @var{month}, @var{year}.) |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1225 @end table |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1226 |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1227 All the functions documented above take an optional argument |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1228 @var{mark} which specifies how to mark the date in the calendar display. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1229 If one of these functions decides that it applies to a certain date, |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1230 it returns a value that contains @var{mark}. |
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
1231 |
69506
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1232 @node Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1233 @chapter Merging Files with Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1234 @cindex Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1235 @cindex merging files |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1236 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1237 It's not unusual for programmers to get their signals crossed and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1238 modify the same program in two different directions. To recover from |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1239 this confusion, you need to merge the two versions. Emerge makes this |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1240 easier. For other ways to compare files, see @ref{Comparing Files,,, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1241 emacs, the Emacs Manual} and @ref{Top, Ediff,, ediff, The Ediff |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1242 Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1243 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1244 @menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1245 * Overview of Emerge:: How to start Emerge. Basic concepts. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1246 * Submodes of Emerge:: Fast mode vs. Edit mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1247 Skip Prefers mode and Auto Advance mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1248 * State of Difference:: You do the merge by specifying state A or B |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1249 for each difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1250 * Merge Commands:: Commands for selecting a difference, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1251 changing states of differences, etc. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1252 * Exiting Emerge:: What to do when you've finished the merge. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1253 * Combining in Emerge:: How to keep both alternatives for a difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1254 * Fine Points of Emerge:: Misc. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1255 @end menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1256 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1257 @node Overview of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1258 @section Overview of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1259 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1260 To start Emerge, run one of these four commands: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1261 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1262 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1263 @item M-x emerge-files |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1264 @findex emerge-files |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1265 Merge two specified files. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1266 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1267 @item M-x emerge-files-with-ancestor |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1268 @findex emerge-files-with-ancestor |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1269 Merge two specified files, with reference to a common ancestor. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1270 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1271 @item M-x emerge-buffers |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1272 @findex emerge-buffers |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1273 Merge two buffers. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1274 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1275 @item M-x emerge-buffers-with-ancestor |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1276 @findex emerge-buffers-with-ancestor |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1277 Merge two buffers with reference to a common ancestor in a third |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1278 buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1279 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1280 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1281 @cindex merge buffer (Emerge) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1282 @cindex A and B buffers (Emerge) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1283 The Emerge commands compare two files or buffers, and display the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1284 comparison in three buffers: one for each input text (the @dfn{A buffer} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1285 and the @dfn{B buffer}), and one (the @dfn{merge buffer}) where merging |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1286 takes place. The merge buffer shows the full merged text, not just the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1287 differences. Wherever the two input texts differ, you can choose which |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1288 one of them to include in the merge buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1289 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1290 The Emerge commands that take input from existing buffers use only |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1291 the accessible portions of those buffers, if they are narrowed. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1292 @xref{Narrowing,,, emacs, the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1293 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1294 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1295 If a common ancestor version is available, from which the two texts to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1296 be merged were both derived, Emerge can use it to guess which |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1297 alternative is right. Wherever one current version agrees with the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1298 ancestor, Emerge presumes that the other current version is a deliberate |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1299 change which should be kept in the merged version. Use the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1300 @samp{with-ancestor} commands if you want to specify a common ancestor |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1301 text. These commands read three file or buffer names---variant A, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1302 variant B, and the common ancestor. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1303 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1304 After the comparison is done and the buffers are prepared, the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1305 interactive merging starts. You control the merging by typing special |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1306 @dfn{merge commands} in the merge buffer (@pxref{Merge Commands}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1307 For each run of differences between the input texts, you can choose |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1308 which one of them to keep, or edit them both together. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1309 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1310 The merge buffer uses a special major mode, Emerge mode, with commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1311 for making these choices. But you can also edit the buffer with |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1312 ordinary Emacs commands. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1313 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1314 At any given time, the attention of Emerge is focused on one |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1315 particular difference, called the @dfn{selected} difference. This |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1316 difference is marked off in the three buffers like this: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1317 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1318 @example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1319 vvvvvvvvvvvvvvvvvvvv |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1320 @var{text that differs} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1321 ^^^^^^^^^^^^^^^^^^^^ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1322 @end example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1323 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1324 @noindent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1325 Emerge numbers all the differences sequentially and the mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1326 line always shows the number of the selected difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1327 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1328 Normally, the merge buffer starts out with the A version of the text. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1329 But when the A version of a difference agrees with the common ancestor, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1330 then the B version is initially preferred for that difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1331 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1332 Emerge leaves the merged text in the merge buffer when you exit. At |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1333 that point, you can save it in a file with @kbd{C-x C-w}. If you give a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1334 numeric argument to @code{emerge-files} or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1335 @code{emerge-files-with-ancestor}, it reads the name of the output file |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1336 using the minibuffer. (This is the last file name those commands read.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1337 Then exiting from Emerge saves the merged text in the output file. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1338 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1339 Normally, Emerge commands save the output buffer in its file when you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1340 exit. If you abort Emerge with @kbd{C-]}, the Emerge command does not |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1341 save the output buffer, but you can save it yourself if you wish. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1342 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1343 @node Submodes of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1344 @section Submodes of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1345 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1346 You can choose between two modes for giving merge commands: Fast mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1347 and Edit mode. In Fast mode, basic merge commands are single |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1348 characters, but ordinary Emacs commands are disabled. This is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1349 convenient if you use only merge commands. In Edit mode, all merge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1350 commands start with the prefix key @kbd{C-c C-c}, and the normal Emacs |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1351 commands are also available. This allows editing the merge buffer, but |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1352 slows down Emerge operations. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1353 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1354 Use @kbd{e} to switch to Edit mode, and @kbd{C-c C-c f} to switch to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1355 Fast mode. The mode line indicates Edit and Fast modes with @samp{E} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1356 and @samp{F}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1357 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1358 Emerge has two additional submodes that affect how particular merge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1359 commands work: Auto Advance mode and Skip Prefers mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1360 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1361 If Auto Advance mode is in effect, the @kbd{a} and @kbd{b} commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1362 advance to the next difference. This lets you go through the merge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1363 faster as long as you simply choose one of the alternatives from the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1364 input. The mode line indicates Auto Advance mode with @samp{A}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1365 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1366 If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1367 skip over differences in states prefer-A and prefer-B (@pxref{State of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1368 Difference}). Thus you see only differences for which neither version |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1369 is presumed ``correct.'' The mode line indicates Skip Prefers mode with |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1370 @samp{S}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1371 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1372 @findex emerge-auto-advance-mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1373 @findex emerge-skip-prefers-mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1374 Use the command @kbd{s a} (@code{emerge-auto-advance-mode}) to set or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1375 clear Auto Advance mode. Use @kbd{s s} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1376 (@code{emerge-skip-prefers-mode}) to set or clear Skip Prefers mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1377 These commands turn on the mode with a positive argument, turns it off |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1378 with a negative or zero argument, and toggle the mode with no argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1379 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1380 @node State of Difference |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1381 @section State of a Difference |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1382 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1383 In the merge buffer, a difference is marked with lines of @samp{v} and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1384 @samp{^} characters. Each difference has one of these seven states: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1385 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1386 @table @asis |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1387 @item A |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1388 The difference is showing the A version. The @kbd{a} command always |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1389 produces this state; the mode line indicates it with @samp{A}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1390 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1391 @item B |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1392 The difference is showing the B version. The @kbd{b} command always |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1393 produces this state; the mode line indicates it with @samp{B}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1394 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1395 @item default-A |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1396 @itemx default-B |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1397 The difference is showing the A or the B state by default, because you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1398 haven't made a choice. All differences start in the default-A state |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1399 (and thus the merge buffer is a copy of the A buffer), except those for |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1400 which one alternative is ``preferred'' (see below). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1401 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1402 When you select a difference, its state changes from default-A or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1403 default-B to plain A or B. Thus, the selected difference never has |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1404 state default-A or default-B, and these states are never displayed in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1405 the mode line. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1406 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1407 The command @kbd{d a} chooses default-A as the default state, and @kbd{d |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1408 b} chooses default-B. This chosen default applies to all differences |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1409 which you haven't ever selected and for which no alternative is preferred. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1410 If you are moving through the merge sequentially, the differences you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1411 haven't selected are those following the selected one. Thus, while |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1412 moving sequentially, you can effectively make the A version the default |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1413 for some sections of the merge buffer and the B version the default for |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1414 others by using @kbd{d a} and @kbd{d b} between sections. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1415 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1416 @item prefer-A |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1417 @itemx prefer-B |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1418 The difference is showing the A or B state because it is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1419 @dfn{preferred}. This means that you haven't made an explicit choice, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1420 but one alternative seems likely to be right because the other |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1421 alternative agrees with the common ancestor. Thus, where the A buffer |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1422 agrees with the common ancestor, the B version is preferred, because |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1423 chances are it is the one that was actually changed. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1424 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1425 These two states are displayed in the mode line as @samp{A*} and @samp{B*}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1426 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1427 @item combined |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1428 The difference is showing a combination of the A and B states, as a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1429 result of the @kbd{x c} or @kbd{x C} commands. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1430 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1431 Once a difference is in this state, the @kbd{a} and @kbd{b} commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1432 don't do anything to it unless you give them a numeric argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1433 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1434 The mode line displays this state as @samp{comb}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1435 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1436 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1437 @node Merge Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1438 @section Merge Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1439 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1440 Here are the Merge commands for Fast mode; in Edit mode, precede them |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1441 with @kbd{C-c C-c}: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1442 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1443 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1444 @item p |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1445 Select the previous difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1446 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1447 @item n |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1448 Select the next difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1449 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1450 @item a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1451 Choose the A version of this difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1452 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1453 @item b |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1454 Choose the B version of this difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1455 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1456 @item C-u @var{n} j |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1457 Select difference number @var{n}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1458 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1459 @item . |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1460 Select the difference containing point. You can use this command in the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1461 merge buffer or in the A or B buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1462 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1463 @item q |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1464 Quit---finish the merge. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1465 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1466 @item C-] |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1467 Abort---exit merging and do not save the output. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1468 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1469 @item f |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1470 Go into Fast mode. (In Edit mode, this is actually @kbd{C-c C-c f}.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1471 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1472 @item e |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1473 Go into Edit mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1474 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1475 @item l |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1476 Recenter (like @kbd{C-l}) all three windows. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1477 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1478 @item - |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1479 Specify part of a prefix numeric argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1480 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1481 @item @var{digit} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1482 Also specify part of a prefix numeric argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1483 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1484 @item d a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1485 Choose the A version as the default from here down in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1486 the merge buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1487 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1488 @item d b |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1489 Choose the B version as the default from here down in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1490 the merge buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1491 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1492 @item c a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1493 Copy the A version of this difference into the kill ring. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1494 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1495 @item c b |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1496 Copy the B version of this difference into the kill ring. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1497 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1498 @item i a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1499 Insert the A version of this difference at point. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1500 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1501 @item i b |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1502 Insert the B version of this difference at point. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1503 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1504 @item m |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1505 Put point and mark around the difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1506 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1507 @item ^ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1508 Scroll all three windows down (like @kbd{M-v}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1509 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1510 @item v |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1511 Scroll all three windows up (like @kbd{C-v}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1512 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1513 @item < |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1514 Scroll all three windows left (like @kbd{C-x <}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1515 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1516 @item > |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1517 Scroll all three windows right (like @kbd{C-x >}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1518 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1519 @item | |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1520 Reset horizontal scroll on all three windows. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1521 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1522 @item x 1 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1523 Shrink the merge window to one line. (Use @kbd{C-u l} to restore it |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1524 to full size.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1525 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1526 @item x c |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1527 Combine the two versions of this difference (@pxref{Combining in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1528 Emerge}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1529 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1530 @item x f |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1531 Show the names of the files/buffers Emerge is operating on, in a Help |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1532 window. (Use @kbd{C-u l} to restore windows.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1533 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1534 @item x j |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1535 Join this difference with the following one. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1536 (@kbd{C-u x j} joins this difference with the previous one.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1537 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1538 @item x s |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1539 Split this difference into two differences. Before you use this |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1540 command, position point in each of the three buffers at the place where |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1541 you want to split the difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1542 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1543 @item x t |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1544 Trim identical lines off the top and bottom of the difference. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1545 Such lines occur when the A and B versions are |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1546 identical but differ from the ancestor version. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1547 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1548 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1549 @node Exiting Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1550 @section Exiting Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1551 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1552 The @kbd{q} command (@code{emerge-quit}) finishes the merge, storing |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1553 the results into the output file if you specified one. It restores the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1554 A and B buffers to their proper contents, or kills them if they were |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1555 created by Emerge and you haven't changed them. It also disables the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1556 Emerge commands in the merge buffer, since executing them later could |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1557 damage the contents of the various buffers. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1558 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1559 @kbd{C-]} aborts the merge. This means exiting without writing the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1560 output file. If you didn't specify an output file, then there is no |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1561 real difference between aborting and finishing the merge. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1562 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1563 If the Emerge command was called from another Lisp program, then its |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1564 return value is @code{t} for successful completion, or @code{nil} if you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1565 abort. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1566 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1567 @node Combining in Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1568 @section Combining the Two Versions |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1569 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1570 Sometimes you want to keep @emph{both} alternatives for a particular |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1571 difference. To do this, use @kbd{x c}, which edits the merge buffer |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1572 like this: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1573 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1574 @example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1575 @group |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1576 #ifdef NEW |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1577 @var{version from A buffer} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1578 #else /* not NEW */ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1579 @var{version from B buffer} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1580 #endif /* not NEW */ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1581 @end group |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1582 @end example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1583 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1584 @noindent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1585 @vindex emerge-combine-versions-template |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1586 While this example shows C preprocessor conditionals delimiting the two |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1587 alternative versions, you can specify the strings to use by setting |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1588 the variable @code{emerge-combine-versions-template} to a string of your |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1589 choice. In the string, @samp{%a} says where to put version A, and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1590 @samp{%b} says where to put version B. The default setting, which |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1591 produces the results shown above, looks like this: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1592 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1593 @example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1594 @group |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1595 "#ifdef NEW\n%a#else /* not NEW */\n%b#endif /* not NEW */\n" |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1596 @end group |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1597 @end example |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1598 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1599 @node Fine Points of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1600 @section Fine Points of Emerge |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1601 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1602 During the merge, you mustn't try to edit the A and B buffers yourself. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1603 Emerge modifies them temporarily, but ultimately puts them back the way |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1604 they were. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1605 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1606 You can have any number of merges going at once---just don't use any one |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1607 buffer as input to more than one merge at once, since the temporary |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1608 changes made in these buffers would get in each other's way. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1609 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1610 Starting Emerge can take a long time because it needs to compare the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1611 files fully. Emacs can't do anything else until @code{diff} finishes. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1612 Perhaps in the future someone will change Emerge to do the comparison in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1613 the background when the input files are large---then you could keep on |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1614 doing other things with Emacs until Emerge is ready to accept |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1615 commands. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1616 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1617 @vindex emerge-startup-hook |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1618 After setting up the merge, Emerge runs the hook |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1619 @code{emerge-startup-hook}. @xref{Hooks,,, emacs, the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1620 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1621 @node Picture Mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1622 @chapter Editing Pictures |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1623 @cindex pictures |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1624 @cindex making pictures out of text characters |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1625 @findex edit-picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1626 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1627 To edit a picture made out of text characters (for example, a picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1628 of the division of a register into fields, as a comment in a program), |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1629 use the command @kbd{M-x edit-picture} to enter Picture mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1630 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1631 In Picture mode, editing is based on the @dfn{quarter-plane} model of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1632 text, according to which the text characters lie studded on an area that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1633 stretches infinitely far to the right and downward. The concept of the end |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1634 of a line does not exist in this model; the most you can say is where the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1635 last nonblank character on the line is found. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1636 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1637 Of course, Emacs really always considers text as a sequence of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1638 characters, and lines really do have ends. But Picture mode replaces |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1639 the most frequently-used commands with variants that simulate the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1640 quarter-plane model of text. They do this by inserting spaces or by |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1641 converting tabs to spaces. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1642 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1643 Most of the basic editing commands of Emacs are redefined by Picture mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1644 to do essentially the same thing but in a quarter-plane way. In addition, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1645 Picture mode defines various keys starting with the @kbd{C-c} prefix to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1646 run special picture editing commands. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1647 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1648 One of these keys, @kbd{C-c C-c}, is particularly important. Often a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1649 picture is part of a larger file that is usually edited in some other |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1650 major mode. @kbd{M-x edit-picture} records the name of the previous |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1651 major mode so you can use the @kbd{C-c C-c} command |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1652 (@code{picture-mode-exit}) later to go back to that mode. @kbd{C-c C-c} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1653 also deletes spaces from the ends of lines, unless given a numeric |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1654 argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1655 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1656 The special commands of Picture mode all work in other modes (provided |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1657 the @file{picture} library is loaded), but are not bound to keys except |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1658 in Picture mode. The descriptions below talk of moving ``one column'' |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1659 and so on, but all the picture mode commands handle numeric arguments as |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1660 their normal equivalents do. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1661 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1662 @vindex picture-mode-hook |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1663 Turning on Picture mode runs the hook @code{picture-mode-hook}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1664 Additional extensions to Picture mode can be found in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1665 @file{artist.el}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1666 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1667 @menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1668 * Basic Picture:: Basic concepts and simple commands of Picture Mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1669 * Insert in Picture:: Controlling direction of cursor motion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1670 after "self-inserting" characters. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1671 * Tabs in Picture:: Various features for tab stops and indentation. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1672 * Rectangles in Picture:: Clearing and superimposing rectangles. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1673 @end menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1674 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1675 @node Basic Picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1676 @section Basic Editing in Picture Mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1677 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1678 @findex picture-forward-column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1679 @findex picture-backward-column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1680 @findex picture-move-down |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1681 @findex picture-move-up |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1682 @cindex editing in Picture mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1683 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1684 Most keys do the same thing in Picture mode that they usually do, but |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1685 do it in a quarter-plane style. For example, @kbd{C-f} is rebound to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1686 run @code{picture-forward-column}, a command which moves point one |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1687 column to the right, inserting a space if necessary so that the actual |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1688 end of the line makes no difference. @kbd{C-b} is rebound to run |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1689 @code{picture-backward-column}, which always moves point left one |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1690 column, converting a tab to multiple spaces if necessary. @kbd{C-n} and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1691 @kbd{C-p} are rebound to run @code{picture-move-down} and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1692 @code{picture-move-up}, which can either insert spaces or convert tabs |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1693 as necessary to make sure that point stays in exactly the same column. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1694 @kbd{C-e} runs @code{picture-end-of-line}, which moves to after the last |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1695 nonblank character on the line. There is no need to change @kbd{C-a}, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1696 as the choice of screen model does not affect beginnings of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1697 lines. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1698 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1699 @findex picture-newline |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1700 Insertion of text is adapted to the quarter-plane screen model |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1701 through the use of Overwrite mode (@pxref{Minor Modes,,, emacs, the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1702 Emacs Manual}.) Self-inserting characters replace existing text, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1703 column by column, rather than pushing existing text to the right. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1704 @key{RET} runs @code{picture-newline}, which just moves to the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1705 beginning of the following line so that new text will replace that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1706 line. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1707 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1708 @findex picture-backward-clear-column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1709 @findex picture-clear-column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1710 @findex picture-clear-line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1711 In Picture mode, the commands that normally delete or kill text, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1712 instead erase text (replacing it with spaces). @key{DEL} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1713 (@code{picture-backward-clear-column}) replaces the preceding |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1714 character with a space rather than removing it; this moves point |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1715 backwards. @kbd{C-d} (@code{picture-clear-column}) replaces the next |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1716 character or characters with spaces, but does not move point. (If you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1717 want to clear characters to spaces and move forward over them, use |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1718 @key{SPC}.) @kbd{C-k} (@code{picture-clear-line}) really kills the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1719 contents of lines, but does not delete the newlines from the buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1720 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1721 @findex picture-open-line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1722 To do actual insertion, you must use special commands. @kbd{C-o} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1723 (@code{picture-open-line}) creates a blank line after the current |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1724 line; it never splits a line. @kbd{C-M-o} (@code{split-line}) makes |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1725 sense in Picture mode, so it is not changed. @kbd{C-j} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1726 (@code{picture-duplicate-line}) inserts another line with the same |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1727 contents below the current line. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1728 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1729 @kindex C-c C-d @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1730 To do actual deletion in Picture mode, use @kbd{C-w}, @kbd{C-c C-d} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1731 (which is defined as @code{delete-char}, as @kbd{C-d} is in other |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1732 modes), or one of the picture rectangle commands (@pxref{Rectangles in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1733 Picture}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1734 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1735 @node Insert in Picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1736 @section Controlling Motion after Insert |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1737 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1738 @findex picture-movement-up |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1739 @findex picture-movement-down |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1740 @findex picture-movement-left |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1741 @findex picture-movement-right |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1742 @findex picture-movement-nw |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1743 @findex picture-movement-ne |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1744 @findex picture-movement-sw |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1745 @findex picture-movement-se |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1746 @kindex C-c < @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1747 @kindex C-c > @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1748 @kindex C-c ^ @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1749 @kindex C-c . @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1750 @kindex C-c ` @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1751 @kindex C-c ' @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1752 @kindex C-c / @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1753 @kindex C-c \ @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1754 Since ``self-inserting'' characters in Picture mode overwrite and move |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1755 point, there is no essential restriction on how point should be moved. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1756 Normally point moves right, but you can specify any of the eight |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1757 orthogonal or diagonal directions for motion after a ``self-inserting'' |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1758 character. This is useful for drawing lines in the buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1759 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1760 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1761 @item C-c < |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1762 @itemx C-c @key{LEFT} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1763 Move left after insertion (@code{picture-movement-left}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1764 @item C-c > |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1765 @itemx C-c @key{RIGHT} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1766 Move right after insertion (@code{picture-movement-right}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1767 @item C-c ^ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1768 @itemx C-c @key{UP} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1769 Move up after insertion (@code{picture-movement-up}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1770 @item C-c . |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1771 @itemx C-c @key{DOWN} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1772 Move down after insertion (@code{picture-movement-down}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1773 @item C-c ` |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1774 @itemx C-c @key{HOME} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1775 Move up and left (``northwest'') after insertion (@code{picture-movement-nw}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1776 @item C-c ' |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1777 @itemx C-c @key{PAGEUP} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1778 Move up and right (``northeast'') after insertion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1779 (@code{picture-movement-ne}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1780 @item C-c / |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1781 @itemx C-c @key{END} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1782 Move down and left (``southwest'') after insertion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1783 @*(@code{picture-movement-sw}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1784 @item C-c \ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1785 @itemx C-c @key{PAGEDOWN} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1786 Move down and right (``southeast'') after insertion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1787 @*(@code{picture-movement-se}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1788 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1789 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1790 @kindex C-c C-f @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1791 @kindex C-c C-b @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1792 @findex picture-motion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1793 @findex picture-motion-reverse |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1794 Two motion commands move based on the current Picture insertion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1795 direction. The command @kbd{C-c C-f} (@code{picture-motion}) moves in the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1796 same direction as motion after ``insertion'' currently does, while @kbd{C-c |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1797 C-b} (@code{picture-motion-reverse}) moves in the opposite direction. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1798 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1799 @node Tabs in Picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1800 @section Picture Mode Tabs |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1801 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1802 @kindex M-TAB @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1803 @findex picture-tab-search |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1804 @vindex picture-tab-chars |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1805 Two kinds of tab-like action are provided in Picture mode. Use |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1806 @kbd{M-@key{TAB}} (@code{picture-tab-search}) for context-based tabbing. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1807 With no argument, it moves to a point underneath the next |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1808 ``interesting'' character that follows whitespace in the previous |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1809 nonblank line. ``Next'' here means ``appearing at a horizontal position |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1810 greater than the one point starts out at.'' With an argument, as in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1811 @kbd{C-u M-@key{TAB}}, this command moves to the next such interesting |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1812 character in the current line. @kbd{M-@key{TAB}} does not change the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1813 text; it only moves point. ``Interesting'' characters are defined by |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1814 the variable @code{picture-tab-chars}, which should define a set of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1815 characters. The syntax for this variable is like the syntax used inside |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1816 of @samp{[@dots{}]} in a regular expression---but without the @samp{[} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1817 and the @samp{]}. Its default value is @code{"!-~"}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1818 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1819 @findex picture-tab |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1820 @key{TAB} itself runs @code{picture-tab}, which operates based on the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1821 current tab stop settings; it is the Picture mode equivalent of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1822 @code{tab-to-tab-stop}. Normally it just moves point, but with a numeric |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1823 argument it clears the text that it moves over. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1824 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1825 @kindex C-c TAB @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1826 @findex picture-set-tab-stops |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1827 The context-based and tab-stop-based forms of tabbing are brought |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1828 together by the command @kbd{C-c @key{TAB}} (@code{picture-set-tab-stops}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1829 This command sets the tab stops to the positions which @kbd{M-@key{TAB}} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1830 would consider significant in the current line. The use of this command, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1831 together with @key{TAB}, can get the effect of context-based tabbing. But |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1832 @kbd{M-@key{TAB}} is more convenient in the cases where it is sufficient. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1833 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1834 It may be convenient to prevent use of actual tab characters in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1835 pictures. For example, this prevents @kbd{C-x @key{TAB}} from messing |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1836 up the picture. You can do this by setting the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1837 @code{indent-tabs-mode} to @code{nil}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1838 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1839 @node Rectangles in Picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1840 @section Picture Mode Rectangle Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1841 @cindex rectangles and Picture mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1842 @cindex Picture mode and rectangles |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1843 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1844 Picture mode defines commands for working on rectangular pieces of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1845 the text in ways that fit with the quarter-plane model. The standard |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1846 rectangle commands may also be useful. @xref{Rectangles,,, emacs, the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1847 Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1848 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1849 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1850 @item C-c C-k |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1851 Clear out the region-rectangle with spaces |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1852 (@code{picture-clear-rectangle}). With argument, delete the text. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1853 @item C-c C-w @var{r} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1854 Similar, but save rectangle contents in register @var{r} first |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1855 (@code{picture-clear-rectangle-to-register}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1856 @item C-c C-y |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1857 Copy last killed rectangle into the buffer by overwriting, with upper |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1858 left corner at point (@code{picture-yank-rectangle}). With argument, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1859 insert instead. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1860 @item C-c C-x @var{r} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1861 Similar, but use the rectangle in register @var{r} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1862 (@code{picture-yank-rectangle-from-register}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1863 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1864 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1865 @kindex C-c C-k @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1866 @kindex C-c C-w @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1867 @findex picture-clear-rectangle |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1868 @findex picture-clear-rectangle-to-register |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1869 The picture rectangle commands @kbd{C-c C-k} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1870 (@code{picture-clear-rectangle}) and @kbd{C-c C-w} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1871 (@code{picture-clear-rectangle-to-register}) differ from the standard |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1872 rectangle commands in that they normally clear the rectangle instead of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1873 deleting it; this is analogous with the way @kbd{C-d} is changed in Picture |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1874 mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1875 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1876 However, deletion of rectangles can be useful in Picture mode, so |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1877 these commands delete the rectangle if given a numeric argument. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1878 @kbd{C-c C-k} either with or without a numeric argument saves the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1879 rectangle for @kbd{C-c C-y}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1880 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1881 @kindex C-c C-y @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1882 @kindex C-c C-x @r{(Picture mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1883 @findex picture-yank-rectangle |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1884 @findex picture-yank-rectangle-from-register |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1885 The Picture mode commands for yanking rectangles differ from the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1886 standard ones in that they overwrite instead of inserting. This is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1887 the same way that Picture mode insertion of other text differs from |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1888 other modes. @kbd{C-c C-y} (@code{picture-yank-rectangle}) inserts |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1889 (by overwriting) the rectangle that was most recently killed, while |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1890 @kbd{C-c C-x} (@code{picture-yank-rectangle-from-register}) does |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1891 likewise for the rectangle found in a specified register. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
1892 |
69945
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1893 @node Advanced VC Usage |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1894 @chapter Advanced VC Usage |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1895 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1896 Commonly used features of Emacs' version control (VC) support are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1897 described in the main Emacs manual (@pxref{Version Control,,,emacs, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1898 the Emacs Manual}). This chapter describes more advanced VC usage. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1899 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1900 @menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1901 * VC Dired Mode:: Listing files managed by version control. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1902 * VC Dired Commands:: Commands to use in a VC Dired buffer. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1903 * Remote Repositories:: Efficient access to remote CVS servers. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1904 * Snapshots:: Sets of file versions treated as a unit. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1905 * Miscellaneous VC:: Various other commands and features of VC. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1906 * Customizing VC:: Variables that change VC's behavior. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1907 @end menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1908 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1909 @node VC Dired Mode |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1910 @section Dired under VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1911 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1912 @cindex PCL-CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1913 @pindex cvs |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1914 @cindex CVS Dired Mode |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1915 The VC Dired Mode described here works with all the version control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1916 systems that VC supports. Another more powerful facility, designed |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1917 specifically for CVS, is called PCL-CVS. @xref{Top, , About PCL-CVS, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1918 pcl-cvs, PCL-CVS --- The Emacs Front-End to CVS}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1919 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1920 @kindex C-x v d |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1921 @findex vc-directory |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1922 When you are working on a large program, it is often useful to find |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1923 out which files have changed within an entire directory tree, or to view |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1924 the status of all files under version control at once, and to perform |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1925 version control operations on collections of files. You can use the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1926 command @kbd{C-x v d} (@code{vc-directory}) to make a directory listing |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1927 that includes only files relevant for version control. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1928 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1929 @vindex vc-dired-terse-display |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1930 @kbd{C-x v d} creates a buffer which uses VC Dired Mode. This looks |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1931 much like an ordinary Dired buffer (@pxref{Dired,,,emacs, the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1932 Emacs Manual}); however, normally it shows only the noteworthy files |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1933 (those locked or not up-to-date). This is called @dfn{terse display}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1934 If you set the variable @code{vc-dired-terse-display} to @code{nil}, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1935 then VC Dired shows all relevant files---those managed under version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1936 control, plus all subdirectories (@dfn{full display}). The command |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1937 @kbd{v t} in a VC Dired buffer toggles between terse display and full |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1938 display (@pxref{VC Dired Commands}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1939 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1940 @vindex vc-dired-recurse |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1941 By default, VC Dired produces a recursive listing of noteworthy or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1942 relevant files at or below the given directory. You can change this by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1943 setting the variable @code{vc-dired-recurse} to @code{nil}; then VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1944 Dired shows only the files in the given directory. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1945 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1946 The line for an individual file shows the version control state in the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1947 place of the hard link count, owner, group, and size of the file. If |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1948 the file is unmodified, in sync with the master file, the version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1949 control state shown is blank. Otherwise it consists of text in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1950 parentheses. Under RCS and SCCS, the name of the user locking the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1951 is shown; under CVS, an abbreviated version of the @samp{cvs status} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1952 output is used. Here is an example using RCS: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1953 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1954 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1955 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1956 /home/jim/project: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1957 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1958 -rw-r--r-- (jim) Apr 2 23:39 file1 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1959 -r--r--r-- Apr 5 20:21 file2 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1960 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1961 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1962 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1963 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1964 The files @samp{file1} and @samp{file2} are under version control, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1965 @samp{file1} is locked by user jim, and @samp{file2} is unlocked. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1966 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1967 Here is an example using CVS: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1968 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1969 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1970 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1971 /home/joe/develop: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1972 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1973 -rw-r--r-- (modified) Aug 2 1997 file1.c |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1974 -rw-r--r-- Apr 4 20:09 file2.c |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1975 -rw-r--r-- (merge) Sep 13 1996 file3.c |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1976 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1977 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1978 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1979 Here @samp{file1.c} is modified with respect to the repository, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1980 @samp{file2.c} is not. @samp{file3.c} is modified, but other changes |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1981 have also been checked in to the repository---you need to merge them |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1982 with the work file before you can check it in. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1983 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1984 @vindex vc-stay-local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1985 @vindex vc-cvs-stay-local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1986 In the above, if the repository were on a remote machine, VC would |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1987 only contact it when the variable @code{vc-stay-local} (or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1988 @code{vc-cvs-stay-local}) is nil (@pxref{CVS Options}). This is |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1989 because access to the repository may be slow, or you may be working |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1990 offline and not have access to the repository at all. As a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1991 consequence, VC would not be able to tell you that @samp{file3.c} is |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1992 in the ``merge'' state; you would learn that only when you try to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1993 check-in your modified copy of the file, or use a command such as |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1994 @kbd{C-x v m}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1995 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1996 In practice, this is not a problem because CVS handles this case |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1997 consistently whenever it arises. In VC, you'll simply get prompted to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1998 merge the remote changes into your work file first. The benefits of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
1999 less network communication usually outweigh the disadvantage of not |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2000 seeing remote changes immediately. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2001 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2002 @vindex vc-directory-exclusion-list |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2003 When VC Dired displays subdirectories (in the ``full'' display mode), |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2004 it omits some that should never contain any files under version control. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2005 By default, this includes Version Control subdirectories such as |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2006 @samp{RCS} and @samp{CVS}; you can customize this by setting the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2007 variable @code{vc-directory-exclusion-list}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2008 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2009 You can fine-tune VC Dired's format by typing @kbd{C-u C-x v d}---as in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2010 ordinary Dired, that allows you to specify additional switches for the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2011 @samp{ls} command. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2012 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2013 @node VC Dired Commands |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2014 @section VC Dired Commands |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2015 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2016 All the usual Dired commands work normally in VC Dired mode, except |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2017 for @kbd{v}, which is redefined as the version control prefix. You can |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2018 invoke VC commands such as @code{vc-diff} and @code{vc-print-log} by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2019 typing @kbd{v =}, or @kbd{v l}, and so on. Most of these commands apply |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2020 to the file name on the current line. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2021 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2022 The command @kbd{v v} (@code{vc-next-action}) operates on all the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2023 marked files, so that you can lock or check in several files at once. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2024 If it operates on more than one file, it handles each file according to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2025 its current state; thus, it might lock one file, but check in another |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2026 file. This could be confusing; it is up to you to avoid confusing |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2027 behavior by marking a set of files that are in a similar state. If no |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2028 files are marked, @kbd{v v} operates on the file in the current line. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2029 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2030 If any files call for check-in, @kbd{v v} reads a single log entry, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2031 then uses it for all the files being checked in. This is convenient for |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2032 registering or checking in several files at once, as part of the same |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2033 change. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2034 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2035 @findex vc-dired-toggle-terse-mode |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2036 @findex vc-dired-mark-locked |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2037 You can toggle between terse display (only locked files, or files not |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2038 up-to-date) and full display at any time by typing @kbd{v t} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2039 (@code{vc-dired-toggle-terse-mode}). There is also a special command |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2040 @kbd{* l} (@code{vc-dired-mark-locked}), which marks all files currently |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2041 locked (or, with CVS, all files not up-to-date). Thus, typing @kbd{* l |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2042 t k} is another way to delete from the buffer all files except those |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2043 currently locked. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2044 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2045 @node Remote Repositories |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2046 @section Remote Repositories |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2047 @cindex remote repositories (CVS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2048 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2049 A common way of using CVS is to set up a central CVS repository on |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2050 some Internet host, then have each developer check out a personal |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2051 working copy of the files on his local machine. Committing changes to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2052 the repository, and picking up changes from other users into one's own |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2053 working area, then works by direct interactions with the CVS server. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2054 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2055 One difficulty is that access to the CVS server is often slow, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2056 that developers might need to work off-line as well. VC is designed |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2057 to reduce the amount of network interaction necessary. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2058 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2059 @menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2060 * Version Backups:: Keeping local copies of repository versions. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2061 * Local Version Control:: Using another version system for local editing. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2062 @end menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2063 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2064 @node Version Backups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2065 @subsection Version Backups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2066 @cindex version backups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2067 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2068 @cindex automatic version backups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2069 When VC sees that the CVS repository for a file is on a remote |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2070 machine, it automatically makes local backups of unmodified versions |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2071 of the file---@dfn{automatic version backups}. This means that you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2072 can compare the file to the repository version (@kbd{C-x v =}), or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2073 revert to that version (@kbd{C-x v u}), without any network |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2074 interactions. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2075 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2076 The local copy of the unmodified file is called a @dfn{version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2077 backup} to indicate that it corresponds exactly to a version that is |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2078 stored in the repository. Note that version backups are not the same |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2079 as ordinary Emacs backup files (@pxref{Backup,,,emacs, the Emacs |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2080 Manual}). But they follow a similar naming convention. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2081 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2082 For a file that comes from a remote CVS repository, VC makes a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2083 version backup whenever you save the first changes to the file, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2084 removes it after you have committed your modified version to the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2085 repository. You can disable the making of automatic version backups by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2086 setting @code{vc-cvs-stay-local} to @code{nil} (@pxref{CVS Options}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2087 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2088 @cindex manual version backups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2089 The name of the automatic version backup for version @var{version} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2090 of file @var{file} is @code{@var{file}.~@var{version}.~}. This is |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2091 almost the same as the name used by @kbd{C-x v ~} (@pxref{Old |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2092 Versions,,,emacs, the Emacs Manual}), the only difference being |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2093 the additional dot (@samp{.}) after the version number. This |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2094 similarity is intentional, because both kinds of files store the same |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2095 kind of information. The file made by @kbd{C-x v ~} acts as a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2096 @dfn{manual version backup}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2097 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2098 All the VC commands that operate on old versions of a file can use |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2099 both kinds of version backups. For instance, @kbd{C-x v ~} uses |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2100 either an automatic or a manual version backup, if possible, to get |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2101 the contents of the version you request. Likewise, @kbd{C-x v =} and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2102 @kbd{C-x v u} use either an automatic or a manual version backup, if |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2103 one of them exists, to get the contents of a version to compare or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2104 revert to. If you changed a file outside of Emacs, so that no |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2105 automatic version backup was created for the previous text, you can |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2106 create a manual backup of that version using @kbd{C-x v ~}, and thus |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2107 obtain the benefit of the local copy for Emacs commands. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2108 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2109 The only difference in Emacs's handling of manual and automatic |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2110 version backups, once they exist, is that Emacs deletes automatic |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2111 version backups when you commit to the repository. By contrast, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2112 manual version backups remain until you delete them. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2113 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2114 @node Local Version Control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2115 @subsection Local Version Control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2116 @cindex local version control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2117 @cindex local back end (version control) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2118 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2119 When you make many changes to a file that comes from a remote |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2120 repository, it can be convenient to have version control on your local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2121 machine as well. You can then record intermediate versions, revert to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2122 a previous state, etc., before you actually commit your changes to the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2123 remote server. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2124 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2125 VC lets you do this by putting a file under a second, local version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2126 control system, so that the file is effectively registered in two |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2127 systems at the same time. For the description here, we will assume |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2128 that the remote system is CVS, and you use RCS locally, although the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2129 mechanism works with any combination of version control systems |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2130 (@dfn{back ends}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2131 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2132 To make it work with other back ends, you must make sure that the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2133 ``more local'' back end comes before the ``more remote'' back end in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2134 the setting of @code{vc-handled-backends} (@pxref{Customizing VC}). By |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2135 default, this variable is set up so that you can use remote CVS and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2136 local RCS as described here. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2137 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2138 To start using local RCS for a file that comes from a remote CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2139 server, you must @emph{register the file in RCS}, by typing @kbd{C-u |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2140 C-x v v rcs @key{RET}}. (In other words, use @code{vc-next-action} with a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2141 prefix argument, and specify RCS as the back end.) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2142 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2143 You can do this at any time; it does not matter whether you have |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2144 already modified the file with respect to the version in the CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2145 repository. If possible, VC tries to make the RCS master start with |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2146 the unmodified repository version, then checks in any local changes |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2147 as a new version. This works if you have not made any changes yet, or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2148 if the unmodified repository version exists locally as a version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2149 backup (@pxref{Version Backups}). If the unmodified version is not |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2150 available locally, the RCS master starts with the modified version; |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2151 the only drawback to this is that you cannot compare your changes |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2152 locally to what is stored in the repository. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2153 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2154 The version number of the RCS master is derived from the current CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2155 version, starting a branch from it. For example, if the current CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2156 version is 1.23, the local RCS branch will be 1.23.1. Version 1.23 in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2157 the RCS master will be identical to version 1.23 under CVS; your first |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2158 changes are checked in as 1.23.1.1. (If the unmodified file is not |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2159 available locally, VC will check in the modified file twice, both as |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2160 1.23 and 1.23.1.1, to make the revision numbers consistent.) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2161 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2162 If you do not use locking under CVS (the default), locking is also |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2163 disabled for RCS, so that editing under RCS works exactly as under |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2164 CVS. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2165 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2166 When you are done with local editing, you can commit the final version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2167 back to the CVS repository by typing @kbd{C-u C-x v v cvs @key{RET}}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2168 This initializes the log entry buffer (@pxref{Log Buffer,,,emacs, the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2169 Emacs Manual}) to contain all the log entries you have recorded in the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2170 RCS master; you can edit them as you wish, and then commit in CVS by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2171 typing @kbd{C-c C-c}. If the commit is successful, VC removes the RCS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2172 master, so that the file is once again registered under CVS only. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2173 (The RCS master is not actually deleted, just renamed by appending |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2174 @samp{~} to the name, so that you can refer to it later if you wish.) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2175 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2176 While using local RCS, you can pick up recent changes from the CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2177 repository into your local file, or commit some of your changes back |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2178 to CVS, without terminating local RCS version control. To do this, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2179 switch to the CVS back end temporarily, with the @kbd{C-x v b} command: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2180 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2181 @table @kbd |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2182 @item C-x v b |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2183 Switch to another back end that the current file is registered |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2184 under (@code{vc-switch-backend}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2185 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2186 @item C-u C-x v b @var{backend} @key{RET} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2187 Switch to @var{backend} for the current file. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2188 @end table |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2189 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2190 @kindex C-x v b |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2191 @findex vc-switch-backend |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2192 @kbd{C-x v b} does not change the buffer contents, or any files; it |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2193 only changes VC's perspective on how to handle the file. Any |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2194 subsequent VC commands for that file will operate on the back end that |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2195 is currently selected. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2196 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2197 If the current file is registered in more than one back end, typing |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2198 @kbd{C-x v b} ``cycles'' through all of these back ends. With a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2199 prefix argument, it asks for the back end to use in the minibuffer. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2200 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2201 Thus, if you are using local RCS, and you want to pick up some recent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2202 changes in the file from remote CVS, first visit the file, then type |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2203 @kbd{C-x v b} to switch to CVS, and finally use @kbd{C-x v m |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2204 @key{RET}} to merge the news (@pxref{Merging,,,emacs, the Emacs |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2205 Manual}). You can then switch back to RCS by typing @kbd{C-x v b} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2206 again, and continue to edit locally. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2207 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2208 But if you do this, the revision numbers in the RCS master no longer |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2209 correspond to those of CVS. Technically, this is not a problem, but |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2210 it can become difficult to keep track of what is in the CVS repository |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2211 and what is not. So we suggest that you return from time to time to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2212 CVS-only operation, by committing your local changes back to the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2213 repository using @kbd{C-u C-x v v cvs @key{RET}}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2214 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2215 @node Snapshots |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2216 @section Snapshots |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2217 @cindex snapshots and version control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2218 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2219 A @dfn{snapshot} is a named set of file versions (one for each |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2220 registered file) that you can treat as a unit. One important kind of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2221 snapshot is a @dfn{release}, a (theoretically) stable version of the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2222 system that is ready for distribution to users. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2223 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2224 @menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2225 * Making Snapshots:: The snapshot facilities. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2226 * Snapshot Caveats:: Things to be careful of when using snapshots. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2227 @end menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2228 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2229 @node Making Snapshots |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2230 @subsection Making and Using Snapshots |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2231 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2232 There are two basic commands for snapshots; one makes a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2233 snapshot with a given name, the other retrieves a named snapshot. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2234 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2235 @table @code |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2236 @kindex C-x v s |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2237 @findex vc-create-snapshot |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2238 @item C-x v s @var{name} @key{RET} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2239 Define the last saved versions of every registered file in or under the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2240 current directory as a snapshot named @var{name} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2241 (@code{vc-create-snapshot}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2242 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2243 @kindex C-x v r |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2244 @findex vc-retrieve-snapshot |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2245 @item C-x v r @var{name} @key{RET} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2246 For all registered files at or below the current directory level, select |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2247 whatever versions correspond to the snapshot @var{name} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2248 (@code{vc-retrieve-snapshot}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2249 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2250 This command reports an error if any files are locked at or below the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2251 current directory, without changing anything; this is to avoid |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2252 overwriting work in progress. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2253 @end table |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2254 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2255 A snapshot uses a very small amount of resources---just enough to record |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2256 the list of file names and which version belongs to the snapshot. Thus, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2257 you need not hesitate to create snapshots whenever they are useful. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2258 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2259 You can give a snapshot name as an argument to @kbd{C-x v =} or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2260 @kbd{C-x v ~} (@pxref{Old Versions,,,emacs, the Emacs Manual}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2261 Thus, you can use it to compare a snapshot against the current files, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2262 or two snapshots against each other, or a snapshot against a named |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2263 version. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2264 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2265 @node Snapshot Caveats |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2266 @subsection Snapshot Caveats |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2267 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2268 @cindex named configurations (RCS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2269 VC's snapshot facilities are modeled on RCS's named-configuration |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2270 support. They use RCS's native facilities for this, so |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2271 snapshots made using RCS through VC are visible even when you bypass VC. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2272 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2273 With CVS, Meta-CVS, and Subversion, VC also uses the native |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2274 mechanism provided by that back end to make snapshots and retrieve them |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2275 (@dfn{tags} for CVS and Meta-CVS, @dfn{copies} for Subversion). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2276 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2277 @c worded verbosely to avoid overfull hbox. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2278 For SCCS, VC implements snapshots itself. The files it uses contain |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2279 name/file/version-number triples. These snapshots are visible only |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2280 through VC. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2281 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2282 There is no support for VC snapshots using GNU Arch yet. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2283 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2284 A snapshot is a set of checked-in versions. So make sure that all the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2285 files are checked in and not locked when you make a snapshot. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2286 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2287 File renaming and deletion can create some difficulties with snapshots. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2288 This is not a VC-specific problem, but a general design issue in version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2289 control systems that no one has solved very well yet. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2290 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2291 If you rename a registered file, you need to rename its master along |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2292 with it (the command @code{vc-rename-file} does this automatically). If |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2293 you are using SCCS, you must also update the records of the snapshot, to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2294 mention the file by its new name (@code{vc-rename-file} does this, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2295 too). An old snapshot that refers to a master file that no longer |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2296 exists under the recorded name is invalid; VC can no longer retrieve |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2297 it. It would be beyond the scope of this manual to explain enough about |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2298 RCS and SCCS to explain how to update the snapshots by hand. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2299 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2300 Using @code{vc-rename-file} makes the snapshot remain valid for |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2301 retrieval, but it does not solve all problems. For example, some of the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2302 files in your program probably refer to others by name. At the very |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2303 least, the makefile probably mentions the file that you renamed. If you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2304 retrieve an old snapshot, the renamed file is retrieved under its new |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2305 name, which is not the name that the makefile expects. So the program |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2306 won't really work as retrieved. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2307 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2308 @node Miscellaneous VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2309 @section Miscellaneous Commands and Features of VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2310 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2311 This section explains the less-frequently-used features of VC. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2312 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2313 @menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2314 * Change Logs and VC:: Generating a change log file from log entries. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2315 * Renaming and VC:: A command to rename both the source and master |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2316 file correctly. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2317 * Version Headers:: Inserting version control headers into working files. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2318 @end menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2319 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2320 @node Change Logs and VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2321 @subsection Change Logs and VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2322 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2323 If you use RCS or CVS for a program and also maintain a change log |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2324 file for it (@pxref{Change Log,,,emacs, the Emacs Manual}), you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2325 can generate change log entries automatically from the version control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2326 log entries: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2327 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2328 @table @kbd |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2329 @item C-x v a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2330 @kindex C-x v a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2331 @findex vc-update-change-log |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2332 Visit the current directory's change log file and, for registered files |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2333 in that directory, create new entries for versions checked in since the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2334 most recent entry in the change log file. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2335 (@code{vc-update-change-log}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2336 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2337 This command works with RCS or CVS only, not with any of the other |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2338 back ends. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2339 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2340 @item C-u C-x v a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2341 As above, but only find entries for the current buffer's file. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2342 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2343 @item M-1 C-x v a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2344 As above, but find entries for all the currently visited files that are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2345 maintained with version control. This works only with RCS, and it puts |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2346 all entries in the log for the default directory, which may not be |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2347 appropriate. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2348 @end table |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2349 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2350 For example, suppose the first line of @file{ChangeLog} is dated |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2351 1999-04-10, and that the only check-in since then was by Nathaniel |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2352 Bowditch to @file{rcs2log} on 1999-05-22 with log text @samp{Ignore log |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2353 messages that start with `#'.}. Then @kbd{C-x v a} visits |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2354 @file{ChangeLog} and inserts text like this: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2355 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2356 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2357 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2358 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2359 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2360 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2361 1999-05-22 Nathaniel Bowditch <nat@@apn.org> |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2362 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2363 * rcs2log: Ignore log messages that start with `#'. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2364 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2365 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2366 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2367 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2368 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2369 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2370 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2371 You can then edit the new change log entry further as you wish. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2372 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2373 Some of the new change log entries may duplicate what's already in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2374 ChangeLog. You will have to remove these duplicates by hand. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2375 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2376 Normally, the log entry for file @file{foo} is displayed as @samp{* |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2377 foo: @var{text of log entry}}. The @samp{:} after @file{foo} is omitted |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2378 if the text of the log entry starts with @w{@samp{(@var{functionname}): |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2379 }}. For example, if the log entry for @file{vc.el} is |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2380 @samp{(vc-do-command): Check call-process status.}, then the text in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2381 @file{ChangeLog} looks like this: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2382 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2383 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2384 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2385 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2386 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2387 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2388 1999-05-06 Nathaniel Bowditch <nat@@apn.org> |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2389 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2390 * vc.el (vc-do-command): Check call-process status. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2391 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2392 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2393 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2394 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2395 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2396 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2397 When @kbd{C-x v a} adds several change log entries at once, it groups |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2398 related log entries together if they all are checked in by the same |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2399 author at nearly the same time. If the log entries for several such |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2400 files all have the same text, it coalesces them into a single entry. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2401 For example, suppose the most recent check-ins have the following log |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2402 entries: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2403 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2404 @flushleft |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2405 @bullet{} For @file{vc.texinfo}: @samp{Fix expansion typos.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2406 @bullet{} For @file{vc.el}: @samp{Don't call expand-file-name.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2407 @bullet{} For @file{vc-hooks.el}: @samp{Don't call expand-file-name.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2408 @end flushleft |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2409 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2410 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2411 They appear like this in @file{ChangeLog}: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2412 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2413 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2414 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2415 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2416 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2417 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2418 1999-04-01 Nathaniel Bowditch <nat@@apn.org> |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2419 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2420 * vc.texinfo: Fix expansion typos. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2421 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2422 * vc.el, vc-hooks.el: Don't call expand-file-name. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2423 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2424 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2425 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2426 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2427 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2428 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2429 Normally, @kbd{C-x v a} separates log entries by a blank line, but you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2430 can mark several related log entries to be clumped together (without an |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2431 intervening blank line) by starting the text of each related log entry |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2432 with a label of the form @w{@samp{@{@var{clumpname}@} }}. The label |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2433 itself is not copied to @file{ChangeLog}. For example, suppose the log |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2434 entries are: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2435 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2436 @flushleft |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2437 @bullet{} For @file{vc.texinfo}: @samp{@{expand@} Fix expansion typos.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2438 @bullet{} For @file{vc.el}: @samp{@{expand@} Don't call expand-file-name.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2439 @bullet{} For @file{vc-hooks.el}: @samp{@{expand@} Don't call expand-file-name.} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2440 @end flushleft |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2441 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2442 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2443 Then the text in @file{ChangeLog} looks like this: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2444 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2445 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2446 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2447 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2448 @smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2449 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2450 1999-04-01 Nathaniel Bowditch <nat@@apn.org> |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2451 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2452 * vc.texinfo: Fix expansion typos. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2453 * vc.el, vc-hooks.el: Don't call expand-file-name. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2454 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2455 @end smallexample |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2456 @iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2457 @medbreak |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2458 @end iftex |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2459 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2460 A log entry whose text begins with @samp{#} is not copied to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2461 @file{ChangeLog}. For example, if you merely fix some misspellings in |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2462 comments, you can log the change with an entry beginning with @samp{#} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2463 to avoid putting such trivia into @file{ChangeLog}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2464 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2465 @node Renaming and VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2466 @subsection Renaming VC Work Files and Master Files |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2467 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2468 @findex vc-rename-file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2469 When you rename a registered file, you must also rename its master |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2470 file correspondingly to get proper results. Use @code{vc-rename-file} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2471 to rename the source file as you specify, and rename its master file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2472 accordingly. It also updates any snapshots (@pxref{Snapshots}) that |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2473 mention the file, so that they use the new name; despite this, the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2474 snapshot thus modified may not completely work (@pxref{Snapshot |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2475 Caveats}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2476 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2477 Some back ends do not provide an explicit rename operation to their |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2478 repositories. After issuing @code{vc-rename-file}, use @kbd{C-x v v} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2479 on the original and renamed buffers and provide the necessary edit |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2480 log. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2481 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2482 You cannot use @code{vc-rename-file} on a file that is locked by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2483 someone else. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2484 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2485 @node Version Headers |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2486 @subsection Inserting Version Control Headers |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2487 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2488 Sometimes it is convenient to put version identification strings |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2489 directly into working files. Certain special strings called |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2490 @dfn{version headers} are replaced in each successive version by the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2491 number of that version, the name of the user who created it, and other |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2492 relevant information. All of the back ends that VC supports have such |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2493 a mechanism, except GNU Arch. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2494 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2495 VC does not normally use the information contained in these headers. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2496 The exception is RCS---with RCS, version headers are sometimes more |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2497 reliable than the master file to determine which version of the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2498 you are editing. Note that in a multi-branch environment, version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2499 headers are necessary to make VC behave correctly (@pxref{Multi-User |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2500 Branching,,,emacs, the Emacs Manual}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2501 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2502 Searching for RCS version headers is controlled by the variable |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2503 @code{vc-consult-headers}. If it is non-@code{nil} (the default), |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2504 Emacs searches for headers to determine the version number you are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2505 editing. Setting it to @code{nil} disables this feature. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2506 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2507 Note that although CVS uses the same kind of version headers as RCS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2508 does, VC never searches for these headers if you are using CVS, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2509 regardless of the above setting. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2510 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2511 @kindex C-x v h |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2512 @findex vc-insert-headers |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2513 You can use the @kbd{C-x v h} command (@code{vc-insert-headers}) to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2514 insert a suitable header string. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2515 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2516 @table @kbd |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2517 @item C-x v h |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2518 Insert headers in a file for use with your version-control system. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2519 @end table |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2520 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2521 @vindex vc-@var{backend}-header |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2522 The default header string is @samp{@w{$}Id$} for RCS and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2523 @samp{@w{%}W%} for SCCS. You can specify other headers to insert by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2524 setting the variables @code{vc-@var{backend}-header} where |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2525 @var{backend} is @code{rcs} or @code{sccs}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2526 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2527 Instead of a single string, you can specify a list of strings; then |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2528 each string in the list is inserted as a separate header on a line of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2529 its own. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2530 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2531 It may be necessary to use apparently-superfluous backslashes when |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2532 writing the strings that you put in this variable. For instance, you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2533 might write @code{"$Id\$"} rather than @code{"$Id@w{$}"}. The extra |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2534 backslash prevents the string constant from being interpreted as a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2535 header, if the Emacs Lisp file containing it is maintained with |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2536 version control. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2537 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2538 @vindex vc-comment-alist |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2539 Each header is inserted surrounded by tabs, inside comment delimiters, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2540 on a new line at point. Normally the ordinary comment |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2541 start and comment end strings of the current mode are used, but for |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2542 certain modes, there are special comment delimiters for this purpose; |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2543 the variable @code{vc-comment-alist} specifies them. Each element of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2544 this list has the form @code{(@var{mode} @var{starter} @var{ender})}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2545 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2546 @vindex vc-static-header-alist |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2547 The variable @code{vc-static-header-alist} specifies further strings |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2548 to add based on the name of the buffer. Its value should be a list of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2549 elements of the form @code{(@var{regexp} . @var{format})}. Whenever |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2550 @var{regexp} matches the buffer name, @var{format} is inserted as part |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2551 of the header. A header line is inserted for each element that matches |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2552 the buffer name, and for each string specified by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2553 @code{vc-@var{backend}-header}. The header line is made by processing the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2554 string from @code{vc-@var{backend}-header} with the format taken from the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2555 element. The default value for @code{vc-static-header-alist} is as follows: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2556 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2557 @example |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2558 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2559 (("\\.c$" . |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2560 "\n#ifndef lint\nstatic char vcid[] = \"\%s\";\n\ |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2561 #endif /* lint */\n")) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2562 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2563 @end example |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2564 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2565 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2566 It specifies insertion of text of this form: |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2567 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2568 @example |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2569 @group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2570 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2571 #ifndef lint |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2572 static char vcid[] = "@var{string}"; |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2573 #endif /* lint */ |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2574 @end group |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2575 @end example |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2576 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2577 @noindent |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2578 Note that the text above starts with a blank line. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2579 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2580 If you use more than one version header in a file, put them close |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2581 together in the file. The mechanism in @code{revert-buffer} that |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2582 preserves markers may not handle markers positioned between two version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2583 headers. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2584 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2585 @node Customizing VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2586 @section Customizing VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2587 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2588 @vindex vc-handled-backends |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2589 The variable @code{vc-handled-backends} determines which version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2590 control systems VC should handle. The default value is @code{(RCS CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2591 SVN SCCS Arch MCVS)}, so it contains all six version systems that are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2592 currently supported. If you want VC to ignore one or more of these |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2593 systems, exclude its name from the list. To disable VC entirely, set |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2594 this variable to @code{nil}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2595 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2596 The order of systems in the list is significant: when you visit a file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2597 registered in more than one system (@pxref{Local Version Control}), VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2598 uses the system that comes first in @code{vc-handled-backends} by |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2599 default. The order is also significant when you register a file for |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2600 the first time, @pxref{Registering,,,emacs, the Emacs Manual} for |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2601 details. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2602 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2603 @menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2604 * General VC Options:: Options that apply to multiple back ends. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2605 * RCS and SCCS:: Options for RCS and SCCS. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2606 * CVS Options:: Options for CVS. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2607 @end menu |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2608 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2609 @node General VC Options |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2610 @subsection General Options |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2611 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2612 @vindex vc-make-backup-files |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2613 Emacs normally does not save backup files for source files that are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2614 maintained with version control. If you want to make backup files even |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2615 for files that use version control, set the variable |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2616 @code{vc-make-backup-files} to a non-@code{nil} value. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2617 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2618 @vindex vc-keep-workfiles |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2619 Normally the work file exists all the time, whether it is locked or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2620 not. If you set @code{vc-keep-workfiles} to @code{nil}, then checking |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2621 in a new version with @kbd{C-x v v} deletes the work file; but any |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2622 attempt to visit the file with Emacs creates it again. (With CVS, work |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2623 files are always kept.) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2624 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2625 @vindex vc-follow-symlinks |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2626 Editing a version-controlled file through a symbolic link can be |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2627 dangerous. It bypasses the version control system---you can edit the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2628 file without locking it, and fail to check your changes in. Also, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2629 your changes might overwrite those of another user. To protect against |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2630 this, VC checks each symbolic link that you visit, to see if it points |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2631 to a file under version control. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2632 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2633 The variable @code{vc-follow-symlinks} controls what to do when a |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2634 symbolic link points to a version-controlled file. If it is @code{nil}, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2635 VC only displays a warning message. If it is @code{t}, VC automatically |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2636 follows the link, and visits the real file instead, telling you about |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2637 this in the echo area. If the value is @code{ask} (the default), VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2638 asks you each time whether to follow the link. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2639 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2640 @vindex vc-suppress-confirm |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2641 If @code{vc-suppress-confirm} is non-@code{nil}, then @kbd{C-x v v} |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2642 and @kbd{C-x v i} can save the current buffer without asking, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2643 @kbd{C-x v u} also operates without asking for confirmation. (This |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2644 variable does not affect @kbd{C-x v c}; that operation is so drastic |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2645 that it should always ask for confirmation.) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2646 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2647 @vindex vc-command-messages |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2648 VC mode does much of its work by running the shell commands for RCS, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2649 CVS and SCCS. If @code{vc-command-messages} is non-@code{nil}, VC |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2650 displays messages to indicate which shell commands it runs, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2651 additional messages when the commands finish. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2652 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2653 @vindex vc-path |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2654 You can specify additional directories to search for version control |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2655 programs by setting the variable @code{vc-path}. These directories |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2656 are searched before the usual search path. It is rarely necessary to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2657 set this variable, because VC normally finds the proper files |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2658 automatically. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2659 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2660 @node RCS and SCCS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2661 @subsection Options for RCS and SCCS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2662 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2663 @cindex non-strict locking (RCS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2664 @cindex locking, non-strict (RCS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2665 By default, RCS uses locking to coordinate the activities of several |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2666 users, but there is a mode called @dfn{non-strict locking} in which |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2667 you can check-in changes without locking the file first. Use |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2668 @samp{rcs -U} to switch to non-strict locking for a particular file, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2669 see the @code{rcs} manual page for details. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2670 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2671 When deducing the version control state of an RCS file, VC first |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2672 looks for an RCS version header string in the file (@pxref{Version |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2673 Headers}). If there is no header string, VC normally looks at the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2674 file permissions of the work file; this is fast. But there might be |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2675 situations when the file permissions cannot be trusted. In this case |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2676 the master file has to be consulted, which is rather expensive. Also |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2677 the master file can only tell you @emph{if} there's any lock on the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2678 file, but not whether your work file really contains that locked |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2679 version. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2680 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2681 @vindex vc-consult-headers |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2682 You can tell VC not to use version headers to determine the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2683 status by setting @code{vc-consult-headers} to @code{nil}. VC then |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2684 always uses the file permissions (if it is supposed to trust them), or |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2685 else checks the master file. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2686 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2687 @vindex vc-mistrust-permissions |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2688 You can specify the criterion for whether to trust the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2689 permissions by setting the variable @code{vc-mistrust-permissions}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2690 Its value can be @code{t} (always mistrust the file permissions and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2691 check the master file), @code{nil} (always trust the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2692 permissions), or a function of one argument which makes the decision. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2693 The argument is the directory name of the @file{RCS} subdirectory. A |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2694 non-@code{nil} value from the function says to mistrust the file |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2695 permissions. If you find that the file permissions of work files are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2696 changed erroneously, set @code{vc-mistrust-permissions} to @code{t}. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2697 Then VC always checks the master file to determine the file's status. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2698 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2699 VC determines the version control state of files under SCCS much as |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2700 with RCS. It does not consider SCCS version headers, though. Thus, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2701 the variable @code{vc-mistrust-permissions} affects SCCS use, but |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2702 @code{vc-consult-headers} does not. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2703 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2704 @node CVS Options |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2705 @subsection Options specific for CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2706 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2707 @cindex locking (CVS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2708 By default, CVS does not use locking to coordinate the activities of |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2709 several users; anyone can change a work file at any time. However, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2710 there are ways to restrict this, resulting in behavior that resembles |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2711 locking. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2712 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2713 @cindex CVSREAD environment variable (CVS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2714 For one thing, you can set the @env{CVSREAD} environment variable |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2715 (the value you use makes no difference). If this variable is defined, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2716 CVS makes your work files read-only by default. In Emacs, you must |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2717 type @kbd{C-x v v} to make the file writable, so that editing works |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2718 in fact similar as if locking was used. Note however, that no actual |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2719 locking is performed, so several users can make their files writable |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2720 at the same time. When setting @env{CVSREAD} for the first time, make |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2721 sure to check out all your modules anew, so that the file protections |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2722 are set correctly. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2723 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2724 @cindex cvs watch feature |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2725 @cindex watching files (CVS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2726 Another way to achieve something similar to locking is to use the |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2727 @dfn{watch} feature of CVS. If a file is being watched, CVS makes it |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2728 read-only by default, and you must also use @kbd{C-x v v} in Emacs to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2729 make it writable. VC calls @code{cvs edit} to make the file writable, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2730 and CVS takes care to notify other developers of the fact that you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2731 intend to change the file. See the CVS documentation for details on |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2732 using the watch feature. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2733 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2734 @vindex vc-stay-local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2735 @vindex vc-cvs-stay-local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2736 @cindex remote repositories (CVS) |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2737 When a file's repository is on a remote machine, VC tries to keep |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2738 network interactions to a minimum. This is controlled by the variable |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2739 @code{vc-cvs-stay-local}. There is another variable, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2740 @code{vc-stay-local}, which enables the feature also for other back |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2741 ends that support it, including CVS. In the following, we will talk |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2742 only about @code{vc-cvs-stay-local}, but everything applies to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2743 @code{vc-stay-local} as well. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2744 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2745 If @code{vc-cvs-stay-local} is @code{t} (the default), then VC uses |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2746 only the entry in the local CVS subdirectory to determine the file's |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2747 state (and possibly information returned by previous CVS commands). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2748 One consequence of this is that when you have modified a file, and |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2749 somebody else has already checked in other changes to the file, you |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2750 are not notified of it until you actually try to commit. (But you can |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2751 try to pick up any recent changes from the repository first, using |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2752 @kbd{C-x v m @key{RET}}, @pxref{Merging,,,emacs, the Emacs Manual}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2753 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2754 When @code{vc-cvs-stay-local} is @code{t}, VC also makes local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2755 version backups, so that simple diff and revert operations are |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2756 completely local (@pxref{Version Backups}). |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2757 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2758 On the other hand, if you set @code{vc-cvs-stay-local} to @code{nil}, |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2759 then VC queries the remote repository @emph{before} it decides what to |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2760 do in @code{vc-next-action} (@kbd{C-x v v}), just as it does for local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2761 repositories. It also does not make any version backups. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2762 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2763 You can also set @code{vc-cvs-stay-local} to a regular expression |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2764 that is matched against the repository host name; VC then stays local |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2765 only for repositories from hosts that match the pattern. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2766 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2767 @vindex vc-cvs-global-switches |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2768 You can specify additional command line options to pass to all CVS |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2769 operations in the variable @code{vc-cvs-global-switches}. These |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2770 switches are inserted immediately after the @code{cvs} command, before |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2771 the name of the operation to invoke. |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2772 |
87cbb18a44b0
move more advanced vc info to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69898
diff
changeset
|
2773 |
69506
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2774 @node Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2775 @chapter Fortran Mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2776 @cindex Fortran mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2777 @cindex mode, Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2778 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2779 Fortran mode provides special motion commands for Fortran statements |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2780 and subprograms, and indentation commands that understand Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2781 conventions of nesting, line numbers and continuation statements. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2782 Fortran mode has support for Auto Fill mode that breaks long lines into |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2783 proper Fortran continuation lines. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2784 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2785 Special commands for comments are provided because Fortran comments |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2786 are unlike those of other languages. Built-in abbrevs optionally save |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2787 typing when you insert Fortran keywords. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2788 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2789 Use @kbd{M-x fortran-mode} to switch to this major mode. This |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2790 command runs the hook @code{fortran-mode-hook}. @xref{Hooks,,, emacs, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2791 the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2792 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2793 @cindex Fortran77 and Fortran90 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2794 @findex f90-mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2795 @findex fortran-mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2796 Fortran mode is meant for editing Fortran77 ``fixed format'' (and also |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2797 ``tab format'') source code. For editing the modern Fortran90 or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2798 Fortran95 ``free format'' source code, use F90 mode (@code{f90-mode}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2799 Emacs normally uses Fortran mode for files with extension @samp{.f}, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2800 @samp{.F} or @samp{.for}, and F90 mode for the extension @samp{.f90} and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2801 @samp{.f95}. GNU Fortran supports both kinds of format. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2802 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2803 @menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2804 * Motion: Fortran Motion. Moving point by statements or subprograms. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2805 * Indent: Fortran Indent. Indentation commands for Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2806 * Comments: Fortran Comments. Inserting and aligning comments. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2807 * Autofill: Fortran Autofill. Auto fill support for Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2808 * Columns: Fortran Columns. Measuring columns for valid Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2809 * Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2810 @end menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2811 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2812 @node Fortran Motion |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2813 @section Motion Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2814 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2815 In addition to the normal commands for moving by and operating on |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2816 ``defuns'' (Fortran subprograms---functions and subroutines, as well as |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2817 modules for F90 mode), Fortran mode provides special commands to move by |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2818 statements and other program units. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2819 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2820 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2821 @kindex C-c C-n @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2822 @findex fortran-next-statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2823 @findex f90-next-statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2824 @item C-c C-n |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2825 Move to the beginning of the next statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2826 (@code{fortran-next-statement}/@code{f90-next-statement}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2827 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2828 @kindex C-c C-p @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2829 @findex fortran-previous-statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2830 @findex f90-previous-statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2831 @item C-c C-p |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2832 Move to the beginning of the previous statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2833 (@code{fortran-previous-statement}/@code{f90-previous-statement}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2834 If there is no previous statement (i.e. if called from the first |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2835 statement in the buffer), move to the start of the buffer. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2836 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2837 @kindex C-c C-e @r{(F90 mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2838 @findex f90-next-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2839 @item C-c C-e |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2840 Move point forward to the start of the next code block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2841 (@code{f90-next-block}). A code block is a subroutine, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2842 @code{if}--@code{endif} statement, and so forth. This command exists |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2843 for F90 mode only, not Fortran mode. With a numeric argument, this |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2844 moves forward that many blocks. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2845 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2846 @kindex C-c C-a @r{(F90 mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2847 @findex f90-previous-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2848 @item C-c C-a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2849 Move point backward to the previous code block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2850 (@code{f90-previous-block}). This is like @code{f90-next-block}, but |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2851 moves backwards. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2852 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2853 @kindex C-M-n @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2854 @findex fortran-end-of-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2855 @findex f90-end-of-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2856 @item C-M-n |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2857 Move to the end of the current code block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2858 (@code{fortran-end-of-block}/@code{f90-end-of-block}). With a numeric |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2859 agument, move forward that number of blocks. The mark is set before |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2860 moving point. The F90 mode version of this command checks for |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2861 consistency of block types and labels (if present), but it does not |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2862 check the outermost block since that may be incomplete. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2863 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2864 @kindex C-M-p @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2865 @findex fortran-beginning-of-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2866 @findex f90-beginning-of-block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2867 @item C-M-p |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2868 Move to the start of the current code block |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2869 (@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2870 is like @code{fortran-end-of-block}, but moves backwards. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2871 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2872 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2873 @node Fortran Indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2874 @section Fortran Indentation |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2875 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2876 Special commands and features are needed for indenting Fortran code in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2877 order to make sure various syntactic entities (line numbers, comment line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2878 indicators and continuation line flags) appear in the columns that are |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2879 required for standard, fixed (or tab) format Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2880 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2881 @menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2882 * Commands: ForIndent Commands. Commands for indenting and filling Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2883 * Contline: ForIndent Cont. How continuation lines indent. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2884 * Numbers: ForIndent Num. How line numbers auto-indent. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2885 * Conv: ForIndent Conv. Conventions you must obey to avoid trouble. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2886 * Vars: ForIndent Vars. Variables controlling Fortran indent style. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2887 @end menu |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2888 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2889 @node ForIndent Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2890 @subsection Fortran Indentation and Filling Commands |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2891 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2892 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2893 @item C-M-j |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2894 Break the current line at point and set up a continuation line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2895 (@code{fortran-split-line}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2896 @item M-^ |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2897 Join this line to the previous line (@code{fortran-join-line}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2898 @item C-M-q |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2899 Indent all the lines of the subprogram point is in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2900 (@code{fortran-indent-subprogram}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2901 @item M-q |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2902 Fill a comment block or statement. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2903 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2904 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2905 @kindex C-M-q @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2906 @findex fortran-indent-subprogram |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2907 The key @kbd{C-M-q} runs @code{fortran-indent-subprogram}, a command |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2908 to reindent all the lines of the Fortran subprogram (function or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2909 subroutine) containing point. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2910 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2911 @kindex C-M-j @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2912 @findex fortran-split-line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2913 The key @kbd{C-M-j} runs @code{fortran-split-line}, which splits |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2914 a line in the appropriate fashion for Fortran. In a non-comment line, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2915 the second half becomes a continuation line and is indented |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2916 accordingly. In a comment line, both halves become separate comment |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2917 lines. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2918 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2919 @kindex M-^ @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2920 @kindex C-c C-d @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2921 @findex fortran-join-line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2922 @kbd{M-^} or @kbd{C-c C-d} runs the command @code{fortran-join-line}, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2923 which joins a continuation line back to the previous line, roughly as |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2924 the inverse of @code{fortran-split-line}. The point must be on a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2925 continuation line when this command is invoked. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2926 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2927 @kindex M-q @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2928 @kbd{M-q} in Fortran mode fills the comment block or statement that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2929 point is in. This removes any excess statement continuations. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2930 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2931 @node ForIndent Cont |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2932 @subsection Continuation Lines |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2933 @cindex Fortran continuation lines |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2934 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2935 @vindex fortran-continuation-string |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2936 Most Fortran77 compilers allow two ways of writing continuation lines. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2937 If the first non-space character on a line is in column 5, then that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2938 line is a continuation of the previous line. We call this @dfn{fixed |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2939 format}. (In GNU Emacs we always count columns from 0; but note that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2940 the Fortran standard counts from 1.) The variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2941 @code{fortran-continuation-string} specifies what character to put in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2942 column 5. A line that starts with a tab character followed by any digit |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2943 except @samp{0} is also a continuation line. We call this style of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2944 continuation @dfn{tab format}. (Fortran90 introduced ``free format'', |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2945 with another style of continuation lines). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2946 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2947 @vindex indent-tabs-mode @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2948 @vindex fortran-analyze-depth |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2949 @vindex fortran-tab-mode-default |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2950 Fortran mode can use either style of continuation line. When you |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2951 enter Fortran mode, it tries to deduce the proper continuation style |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2952 automatically from the buffer contents. It does this by scanning up to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2953 @code{fortran-analyze-depth} (default 100) lines from the start of the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2954 buffer. The first line that begins with either a tab character or six |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2955 spaces determines the choice. If the scan fails (for example, if the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2956 buffer is new and therefore empty), the value of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2957 @code{fortran-tab-mode-default} (@code{nil} for fixed format, and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2958 non-@code{nil} for tab format) is used. @samp{/t} in the mode line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2959 indicates tab format is selected. Fortran mode sets the value of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2960 @code{indent-tabs-mode} accordingly. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2961 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2962 If the text on a line starts with the Fortran continuation marker |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2963 @samp{$}, or if it begins with any non-whitespace character in column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2964 5, Fortran mode treats it as a continuation line. When you indent a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2965 continuation line with @key{TAB}, it converts the line to the current |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2966 continuation style. When you split a Fortran statement with |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2967 @kbd{C-M-j}, the continuation marker on the newline is created according |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2968 to the continuation style. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2969 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2970 The setting of continuation style affects several other aspects of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2971 editing in Fortran mode. In fixed format mode, the minimum column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2972 number for the body of a statement is 6. Lines inside of Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2973 blocks that are indented to larger column numbers always use only the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2974 space character for whitespace. In tab format mode, the minimum |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2975 column number for the statement body is 8, and the whitespace before |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2976 column 8 must always consist of one tab character. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2977 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2978 @node ForIndent Num |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2979 @subsection Line Numbers |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2980 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2981 If a number is the first non-whitespace in the line, Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2982 indentation assumes it is a line number and moves it to columns 0 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2983 through 4. (Columns always count from 0 in GNU Emacs.) |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2984 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2985 @vindex fortran-line-number-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2986 Line numbers of four digits or less are normally indented one space. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2987 The variable @code{fortran-line-number-indent} controls this; it |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2988 specifies the maximum indentation a line number can have. The default |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2989 value of the variable is 1. Fortran mode tries to prevent line number |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2990 digits passing column 4, reducing the indentation below the specified |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2991 maximum if necessary. If @code{fortran-line-number-indent} has the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2992 value 5, line numbers are right-justified to end in column 4. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2993 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2994 @vindex fortran-electric-line-number |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2995 Simply inserting a line number is enough to indent it according to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2996 these rules. As each digit is inserted, the indentation is recomputed. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2997 To turn off this feature, set the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2998 @code{fortran-electric-line-number} to @code{nil}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
2999 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3000 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3001 @node ForIndent Conv |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3002 @subsection Syntactic Conventions |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3003 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3004 Fortran mode assumes that you follow certain conventions that simplify |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3005 the task of understanding a Fortran program well enough to indent it |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3006 properly: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3007 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3008 @itemize @bullet |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3009 @item |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3010 Two nested @samp{do} loops never share a @samp{continue} statement. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3011 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3012 @item |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3013 Fortran keywords such as @samp{if}, @samp{else}, @samp{then}, @samp{do} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3014 and others are written without embedded whitespace or line breaks. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3015 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3016 Fortran compilers generally ignore whitespace outside of string |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3017 constants, but Fortran mode does not recognize these keywords if they |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3018 are not contiguous. Constructs such as @samp{else if} or @samp{end do} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3019 are acceptable, but the second word should be on the same line as the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3020 first and not on a continuation line. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3021 @end itemize |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3022 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3023 @noindent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3024 If you fail to follow these conventions, the indentation commands may |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3025 indent some lines unaesthetically. However, a correct Fortran program |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3026 retains its meaning when reindented even if the conventions are not |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3027 followed. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3028 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3029 @node ForIndent Vars |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3030 @subsection Variables for Fortran Indentation |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3031 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3032 @vindex fortran-do-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3033 @vindex fortran-if-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3034 @vindex fortran-structure-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3035 @vindex fortran-continuation-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3036 @vindex fortran-check-all-num@dots{} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3037 @vindex fortran-minimum-statement-indent@dots{} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3038 Several additional variables control how Fortran indentation works: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3039 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3040 @table @code |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3041 @item fortran-do-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3042 Extra indentation within each level of @samp{do} statement (default 3). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3043 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3044 @item fortran-if-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3045 Extra indentation within each level of @samp{if}, @samp{select case}, or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3046 @samp{where} statements (default 3). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3047 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3048 @item fortran-structure-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3049 Extra indentation within each level of @samp{structure}, @samp{union}, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3050 @samp{map}, or @samp{interface} statements (default 3). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3051 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3052 @item fortran-continuation-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3053 Extra indentation for bodies of continuation lines (default 5). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3054 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3055 @item fortran-check-all-num-for-matching-do |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3056 In Fortran77, a numbered @samp{do} statement is ended by any statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3057 with a matching line number. It is common (but not compulsory) to use a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3058 @samp{continue} statement for this purpose. If this variable has a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3059 non-@code{nil} value, indenting any numbered statement must check for a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3060 @samp{do} that ends there. If you always end @samp{do} statements with |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3061 a @samp{continue} line (or if you use the more modern @samp{enddo}), |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3062 then you can speed up indentation by setting this variable to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3063 @code{nil}. The default is @code{nil}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3064 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3065 @item fortran-blink-matching-if |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3066 If this is @code{t}, indenting an @samp{endif} (or @samp{enddo} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3067 statement moves the cursor momentarily to the matching @samp{if} (or |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3068 @samp{do}) statement to show where it is. The default is @code{nil}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3069 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3070 @item fortran-minimum-statement-indent-fixed |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3071 Minimum indentation for Fortran statements when using fixed format |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3072 continuation line style. Statement bodies are never indented less than |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3073 this much. The default is 6. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3074 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3075 @item fortran-minimum-statement-indent-tab |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3076 Minimum indentation for Fortran statements for tab format continuation line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3077 style. Statement bodies are never indented less than this much. The |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3078 default is 8. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3079 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3080 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3081 The variables controlling the indentation of comments are described in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3082 the following section. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3083 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3084 @node Fortran Comments |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3085 @section Fortran Comments |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3086 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3087 The usual Emacs comment commands assume that a comment can follow a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3088 line of code. In Fortran77, the standard comment syntax requires an |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3089 entire line to be just a comment. Therefore, Fortran mode replaces the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3090 standard Emacs comment commands and defines some new variables. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3091 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3092 @vindex fortran-comment-line-start |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3093 Fortran mode can also handle the Fortran90 comment syntax where comments |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3094 start with @samp{!} and can follow other text. Because only some Fortran77 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3095 compilers accept this syntax, Fortran mode will not insert such comments |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3096 unless you have said in advance to do so. To do this, set the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3097 @code{fortran-comment-line-start} to @samp{"!"}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3098 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3099 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3100 @item M-; |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3101 Align comment or insert new comment (@code{fortran-indent-comment}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3102 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3103 @item C-x ; |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3104 Applies to nonstandard @samp{!} comments only. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3105 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3106 @item C-c ; |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3107 Turn all lines of the region into comments, or (with argument) turn them back |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3108 into real code (@code{fortran-comment-region}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3109 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3110 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3111 @findex fortran-indent-comment |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3112 @kbd{M-;} in Fortran mode is redefined as the command |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3113 @code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3114 recognizes any kind of existing comment and aligns its text appropriately; |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3115 if there is no existing comment, a comment is inserted and aligned. But |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3116 inserting and aligning comments are not the same in Fortran mode as in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3117 other modes. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3118 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3119 When a new comment must be inserted, if the current line is blank, a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3120 full-line comment is inserted. On a non-blank line, a nonstandard @samp{!} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3121 comment is inserted if you have said you want to use them. Otherwise a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3122 full-line comment is inserted on a new line before the current line. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3123 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3124 Nonstandard @samp{!} comments are aligned like comments in other |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3125 languages, but full-line comments are different. In a standard full-line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3126 comment, the comment delimiter itself must always appear in column zero. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3127 What can be aligned is the text within the comment. You can choose from |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3128 three styles of alignment by setting the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3129 @code{fortran-comment-indent-style} to one of these values: |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3130 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3131 @vindex fortran-comment-indent-style |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3132 @vindex fortran-comment-line-extra-indent |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3133 @table @code |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3134 @item fixed |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3135 Align the text at a fixed column, which is the sum of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3136 @code{fortran-comment-line-extra-indent} and the minimum statement |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3137 indentation. This is the default. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3138 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3139 The minimum statement indentation is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3140 @code{fortran-minimum-statement-indent-fixed} for fixed format |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3141 continuation line style and @code{fortran-minimum-statement-indent-tab} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3142 for tab format style. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3143 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3144 @item relative |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3145 Align the text as if it were a line of code, but with an additional |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3146 @code{fortran-comment-line-extra-indent} columns of indentation. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3147 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3148 @item nil |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3149 Don't move text in full-line comments automatically. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3150 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3151 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3152 @vindex fortran-comment-indent-char |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3153 In addition, you can specify the character to be used to indent within |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3154 full-line comments by setting the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3155 @code{fortran-comment-indent-char} to the single-character string you want |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3156 to use. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3157 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3158 @vindex fortran-directive-re |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3159 Compiler directive lines, or preprocessor lines, have much the same |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3160 appearance as comment lines. It is important, though, that such lines |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3161 never be indented at all, no matter what the value of |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3162 @code{fortran-comment-indent-style}. The variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3163 @code{fortran-directive-re} is a regular expression that specifies which |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3164 lines are directives. Matching lines are never indented, and receive |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3165 distinctive font-locking. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3166 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3167 The normal Emacs comment command @kbd{C-x ;} has not been redefined. If |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3168 you use @samp{!} comments, this command can be used with them. Otherwise |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3169 it is useless in Fortran mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3170 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3171 @kindex C-c ; @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3172 @findex fortran-comment-region |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3173 @vindex fortran-comment-region |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3174 The command @kbd{C-c ;} (@code{fortran-comment-region}) turns all the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3175 lines of the region into comments by inserting the string @samp{C$$$} at |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3176 the front of each one. With a numeric argument, it turns the region |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3177 back into live code by deleting @samp{C$$$} from the front of each line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3178 in it. The string used for these comments can be controlled by setting |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3179 the variable @code{fortran-comment-region}. Note that here we have an |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3180 example of a command and a variable with the same name; these two uses |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3181 of the name never conflict because in Lisp and in Emacs it is always |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3182 clear from the context which one is meant. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3183 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3184 @node Fortran Autofill |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3185 @section Auto Fill in Fortran Mode |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3186 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3187 Fortran mode has specialized support for Auto Fill mode, which is a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3188 minor mode that automatically splits statements as you insert them |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3189 when they become too wide. Splitting a statement involves making |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3190 continuation lines using @code{fortran-continuation-string} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3191 (@pxref{ForIndent Cont}). This splitting happens when you type |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3192 @key{SPC}, @key{RET}, or @key{TAB}, and also in the Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3193 indentation commands. You activate Auto Fill in Fortran mode in the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3194 normal way. @xref{Auto Fill,,, emacs, the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3195 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3196 @vindex fortran-break-before-delimiters |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3197 Auto Fill breaks lines at spaces or delimiters when the lines get |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3198 longer than the desired width (the value of @code{fill-column}). The |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3199 delimiters (besides whitespace) that Auto Fill can break at are |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3200 @samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, @samp{<}, @samp{>}, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3201 and @samp{,}. The line break comes after the delimiter if the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3202 variable @code{fortran-break-before-delimiters} is @code{nil}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3203 Otherwise (and by default), the break comes before the delimiter. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3204 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3205 To enable Auto Fill in all Fortran buffers, add |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3206 @code{turn-on-auto-fill} to @code{fortran-mode-hook}. @xref{Hooks,,, |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3207 emacs, the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3208 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3209 @node Fortran Columns |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3210 @section Checking Columns in Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3211 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3212 @table @kbd |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3213 @item C-c C-r |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3214 Display a ``column ruler'' momentarily above the current line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3215 (@code{fortran-column-ruler}). |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3216 @item C-c C-w |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3217 Split the current window horizontally temporarily so that it is 72 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3218 columns wide (@code{fortran-window-create-momentarily}). This may |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3219 help you avoid making lines longer than the 72-character limit that |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3220 some Fortran compilers impose. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3221 @item C-u C-c C-w |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3222 Split the current window horizontally so that it is 72 columns wide |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3223 (@code{fortran-window-create}). You can then continue editing. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3224 @item M-x fortran-strip-sequence-nos |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3225 Delete all text in column 72 and beyond. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3226 @end table |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3227 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3228 @kindex C-c C-r @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3229 @findex fortran-column-ruler |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3230 The command @kbd{C-c C-r} (@code{fortran-column-ruler}) shows a column |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3231 ruler momentarily above the current line. The comment ruler is two lines |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3232 of text that show you the locations of columns with special significance in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3233 Fortran programs. Square brackets show the limits of the columns for line |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3234 numbers, and curly brackets show the limits of the columns for the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3235 statement body. Column numbers appear above them. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3236 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3237 Note that the column numbers count from zero, as always in GNU Emacs. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3238 As a result, the numbers may be one less than those you are familiar |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3239 with; but the positions they indicate in the line are standard for |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3240 Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3241 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3242 @vindex fortran-column-ruler-fixed |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3243 @vindex fortran-column-ruler-tabs |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3244 The text used to display the column ruler depends on the value of the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3245 variable @code{indent-tabs-mode}. If @code{indent-tabs-mode} is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3246 @code{nil}, then the value of the variable |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3247 @code{fortran-column-ruler-fixed} is used as the column ruler. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3248 Otherwise, the value of the variable @code{fortran-column-ruler-tab} is |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3249 displayed. By changing these variables, you can change the column ruler |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3250 display. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3251 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3252 @kindex C-c C-w @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3253 @findex fortran-window-create-momentarily |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3254 @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3255 splits the current window horizontally, making a window 72 columns |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3256 wide, so you can see any lines that are too long. Type a space to |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3257 restore the normal width. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3258 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3259 @kindex C-u C-c C-w @r{(Fortran mode)} |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3260 @findex fortran-window-create |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3261 You can also split the window horizontally and continue editing with |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3262 the split in place. To do this, use @kbd{C-u C-c C-w} (@code{M-x |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3263 fortran-window-create}). By editing in this window you can |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3264 immediately see when you make a line too wide to be correct Fortran. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3265 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3266 @findex fortran-strip-sequence-nos |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3267 The command @kbd{M-x fortran-strip-sequence-nos} deletes all text in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3268 column 72 and beyond, on all lines in the current buffer. This is the |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3269 easiest way to get rid of old sequence numbers. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3270 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3271 @node Fortran Abbrev |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3272 @section Fortran Keyword Abbrevs |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3273 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3274 Fortran mode provides many built-in abbrevs for common keywords and |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3275 declarations. These are the same sort of abbrev that you can define |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3276 yourself. To use them, you must turn on Abbrev mode. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3277 @xref{Abbrevs,,, emacs, the Emacs Manual}. |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3278 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3279 The built-in abbrevs are unusual in one way: they all start with a |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3280 semicolon. You cannot normally use semicolon in an abbrev, but Fortran |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3281 mode makes this possible by changing the syntax of semicolon to ``word |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3282 constituent.'' |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3283 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3284 For example, one built-in Fortran abbrev is @samp{;c} for |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3285 @samp{continue}. If you insert @samp{;c} and then insert a punctuation |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3286 character such as a space or a newline, the @samp{;c} expands automatically |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3287 to @samp{continue}, provided Abbrev mode is enabled.@refill |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3288 |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3289 Type @samp{;?} or @samp{;C-h} to display a list of all the built-in |
91970b147f39
* emacs-xtra.texi (Emerge, Picture Mode. Fortran): New chapters,
Chong Yidong <cyd@stupidchicken.com>
parents:
68639
diff
changeset
|
3290 Fortran abbrevs and what they stand for. |
61000
7493ddb113fc
(Advanced Calendar/Diary Usage): New section; move here from Emacs
Glenn Morris <rgm@gnu.org>
parents:
59996
diff
changeset
|
3291 |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3292 |
70437
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
3293 @node MS-DOS |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3294 @chapter Emacs and MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3295 @cindex MS-DOG |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3296 @cindex MS-DOS peculiarities |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3297 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3298 This section briefly describes the peculiarities of using Emacs on |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3299 the MS-DOS ``operating system'' (also known as ``MS-DOG''). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3300 Information about Emacs and Microsoft's current operating system |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3301 Windows (also known as ``Losedows) is in the main Emacs manual |
70437
67cae6fd5e56
Rename `MS-DOG' into `MS-DOS'.
Eli Zaretskii <eliz@gnu.org>
parents:
70154
diff
changeset
|
3302 (@pxref{Microsoft Systems,,, emacs, the Emacs Manual}). |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3303 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3304 If you build Emacs for MS-DOS, the binary will also run on Windows |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3305 3.X, Windows NT, Windows 9X/ME, Windows 2000, or OS/2 as a DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3306 application; all of this chapter applies for all of those systems, if |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3307 you use an Emacs that was built for MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3308 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3309 @xref{Text and Binary,,,emacs, the Emacs Manual}, for information |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3310 about Emacs' special handling of text files under MS-DOS (and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3311 Windows). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3312 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3313 @menu |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3314 * Keyboard: MS-DOS Keyboard. Keyboard conventions on MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3315 * Mouse: MS-DOS Mouse. Mouse conventions on MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3316 * Display: MS-DOS Display. Fonts, frames and display size on MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3317 * Files: MS-DOS File Names. File name conventions on MS-DOS. |
70154
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3318 * Printing: MS-DOS Printing. Printing specifics on MS-DOS. |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3319 * I18N: MS-DOS and MULE. Support for internationalization on MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3320 * Processes: MS-DOS Processes. Running subprocesses on MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3321 @end menu |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3322 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3323 @node MS-DOS Keyboard |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3324 @section Keyboard Usage on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3325 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3326 @kindex DEL @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3327 @kindex BS @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3328 The key that is called @key{DEL} in Emacs (because that's how it is |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3329 designated on most workstations) is known as @key{BS} (backspace) on a |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3330 PC. That is why the PC-specific terminal initialization remaps the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3331 @key{BS} key to act as @key{DEL}; the @key{DELETE} key is remapped to act |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3332 as @kbd{C-d} for the same reasons. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3333 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3334 @kindex C-g @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3335 @kindex C-BREAK @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3336 @cindex quitting on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3337 Emacs built for MS-DOS recognizes @kbd{C-@key{BREAK}} as a quit |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3338 character, just like @kbd{C-g}. This is because Emacs cannot detect |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3339 that you have typed @kbd{C-g} until it is ready for more input. As a |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3340 consequence, you cannot use @kbd{C-g} to stop a running command |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3341 (@pxref{Quitting,,,emacs, the Emacs Manual}). By contrast, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3342 @kbd{C-@key{BREAK}} @emph{is} detected as soon as you type it (as |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3343 @kbd{C-g} is on other systems), so it can be used to stop a running |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3344 command and for emergency escape (@pxref{Emergency Escape,,,emacs, the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3345 Emacs Manual}). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3346 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3347 @cindex Meta (under MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3348 @cindex Hyper (under MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3349 @cindex Super (under MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3350 @vindex dos-super-key |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3351 @vindex dos-hyper-key |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3352 The PC keyboard maps use the left @key{ALT} key as the @key{META} key. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3353 You have two choices for emulating the @key{SUPER} and @key{HYPER} keys: |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3354 choose either the right @key{CTRL} key or the right @key{ALT} key by |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3355 setting the variables @code{dos-hyper-key} and @code{dos-super-key} to 1 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3356 or 2 respectively. If neither @code{dos-super-key} nor |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3357 @code{dos-hyper-key} is 1, then by default the right @key{ALT} key is |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3358 also mapped to the @key{META} key. However, if the MS-DOS international |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3359 keyboard support program @file{KEYB.COM} is installed, Emacs will |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3360 @emph{not} map the right @key{ALT} to @key{META}, since it is used for |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3361 accessing characters like @kbd{~} and @kbd{@@} on non-US keyboard |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3362 layouts; in this case, you may only use the left @key{ALT} as @key{META} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3363 key. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3364 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3365 @kindex C-j @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3366 @vindex dos-keypad-mode |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3367 The variable @code{dos-keypad-mode} is a flag variable that controls |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3368 what key codes are returned by keys in the numeric keypad. You can also |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3369 define the keypad @key{ENTER} key to act like @kbd{C-j}, by putting the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3370 following line into your @file{_emacs} file: |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3371 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3372 @smallexample |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3373 ;; @r{Make the @key{ENTER} key from the numeric keypad act as @kbd{C-j}.} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3374 (define-key function-key-map [kp-enter] [?\C-j]) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3375 @end smallexample |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3376 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3377 @node MS-DOS Mouse |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3378 @section Mouse Usage on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3379 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3380 @cindex mouse support under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3381 Emacs on MS-DOS supports a mouse (on the default terminal only). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3382 The mouse commands work as documented, including those that use menus |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3383 and the menu bar (@pxref{Menu Bar,,,emacs, the Emacs Manual}). Scroll |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3384 bars don't work in MS-DOS Emacs. PC mice usually have only two |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3385 buttons; these act as @kbd{Mouse-1} and @kbd{Mouse-2}, but if you |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3386 press both of them together, that has the effect of @kbd{Mouse-3}. If |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3387 the mouse does have 3 buttons, Emacs detects that at startup, and all |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3388 the 3 buttons function normally, as on X. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3389 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3390 Help strings for menu-bar and pop-up menus are displayed in the echo |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3391 area when the mouse pointer moves across the menu items. Highlighting |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3392 of mouse-sensitive text (@pxref{Mouse References,,,emacs, the Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3393 Manual}) is also supported. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3394 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3395 @cindex mouse, set number of buttons |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3396 @findex msdos-set-mouse-buttons |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3397 Some versions of mouse drivers don't report the number of mouse |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3398 buttons correctly. For example, mice with a wheel report that they |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3399 have 3 buttons, but only 2 of them are passed to Emacs; the clicks on |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3400 the wheel, which serves as the middle button, are not passed. In |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3401 these cases, you can use the @kbd{M-x msdos-set-mouse-buttons} command |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3402 to tell Emacs how many mouse buttons to expect. You could make such a |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3403 setting permanent by adding this fragment to your @file{_emacs} init |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3404 file: |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3405 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3406 @example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3407 ;; @r{Treat the mouse like a 2-button mouse.} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3408 (msdos-set-mouse-buttons 2) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3409 @end example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3410 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3411 @cindex Windows clipboard support |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3412 Emacs built for MS-DOS supports clipboard operations when it runs on |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3413 Windows. Commands that put text on the kill ring, or yank text from |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3414 the ring, check the Windows clipboard first, just as Emacs does on the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3415 X Window System (@pxref{Mouse Commands,,,emacs, the Emacs Manual}). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3416 Only the primary selection and the cut buffer are supported by MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3417 Emacs on Windows; the secondary selection always appears as empty. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3418 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3419 Due to the way clipboard access is implemented by Windows, the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3420 length of text you can put into the clipboard is limited by the amount |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3421 of free DOS memory that is available to Emacs. Usually, up to 620KB of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3422 text can be put into the clipboard, but this limit depends on the system |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3423 configuration and is lower if you run Emacs as a subprocess of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3424 another program. If the killed text does not fit, Emacs outputs a |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3425 message saying so, and does not put the text into the clipboard. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3426 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3427 Null characters also cannot be put into the Windows clipboard. If the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3428 killed text includes null characters, Emacs does not put such text into |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3429 the clipboard, and displays in the echo area a message to that effect. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3430 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3431 @vindex dos-display-scancodes |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3432 The variable @code{dos-display-scancodes}, when non-@code{nil}, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3433 directs Emacs to display the @acronym{ASCII} value and the keyboard scan code of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3434 each keystroke; this feature serves as a complement to the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3435 @code{view-lossage} command, for debugging. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3436 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3437 @node MS-DOS Display |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3438 @section Display on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3439 @cindex faces under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3440 @cindex fonts, emulating under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3441 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3442 Display on MS-DOS cannot use font variants, like bold or italic, but |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3443 it does support multiple faces, each of which can specify a foreground |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3444 and a background color. Therefore, you can get the full functionality |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3445 of Emacs packages that use fonts (such as @code{font-lock}, Enriched |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3446 Text mode, and others) by defining the relevant faces to use different |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3447 colors. Use the @code{list-colors-display} command (@pxref{Frame |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3448 Parameters,,,emacs, the Emacs Manual}) and the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3449 @code{list-faces-display} command (@pxref{Faces,,,emacs, the Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3450 Manual}) to see what colors and faces are available and what they look |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3451 like. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3452 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3453 @xref{MS-DOS and MULE}, later in this chapter, for information on |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3454 how Emacs displays glyphs and characters that aren't supported by the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3455 native font built into the DOS display. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3456 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3457 @cindex cursor shape on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3458 When Emacs starts, it changes the cursor shape to a solid box. This |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3459 is for compatibility with other systems, where the box cursor is the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3460 default in Emacs. This default shape can be changed to a bar by |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3461 specifying the @code{cursor-type} parameter in the variable |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3462 @code{default-frame-alist} (@pxref{Creating Frames,,,emacs, the Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3463 Manual}). The MS-DOS terminal doesn't support a vertical-bar cursor, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3464 so the bar cursor is horizontal, and the @code{@var{width}} parameter, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3465 if specified by the frame parameters, actually determines its height. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3466 For this reason, the @code{bar} and @code{hbar} cursor types produce |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3467 the same effect on MS-DOS. As an extension, the bar cursor |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3468 specification can include the starting scan line of the cursor as well |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3469 as its width, like this: |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3470 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3471 @example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3472 '(cursor-type bar @var{width} . @var{start}) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3473 @end example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3474 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3475 @noindent |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3476 In addition, if the @var{width} parameter is negative, the cursor bar |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3477 begins at the top of the character cell. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3478 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3479 @cindex frames on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3480 The MS-DOS terminal can only display a single frame at a time. The |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3481 Emacs frame facilities work on MS-DOS much as they do on text-only |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3482 terminals (@pxref{Frames,,,emacs, the Emacs Manual}). When you run |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3483 Emacs from a DOS window on MS-Windows, you can make the visible frame |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3484 smaller than the full screen, but Emacs still cannot display more than |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3485 a single frame at a time. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3486 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3487 @cindex frame size under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3488 @findex mode4350 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3489 @findex mode25 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3490 The @code{mode4350} command switches the display to 43 or 50 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3491 lines, depending on your hardware; the @code{mode25} command switches |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3492 to the default 80x25 screen size. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3493 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3494 By default, Emacs only knows how to set screen sizes of 80 columns by |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3495 25, 28, 35, 40, 43 or 50 rows. However, if your video adapter has |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3496 special video modes that will switch the display to other sizes, you can |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3497 have Emacs support those too. When you ask Emacs to switch the frame to |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3498 @var{n} rows by @var{m} columns dimensions, it checks if there is a |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3499 variable called @code{screen-dimensions-@var{n}x@var{m}}, and if so, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3500 uses its value (which must be an integer) as the video mode to switch |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3501 to. (Emacs switches to that video mode by calling the BIOS @code{Set |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3502 Video Mode} function with the value of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3503 @code{screen-dimensions-@var{n}x@var{m}} in the @code{AL} register.) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3504 For example, suppose your adapter will switch to 66x80 dimensions when |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3505 put into video mode 85. Then you can make Emacs support this screen |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3506 size by putting the following into your @file{_emacs} file: |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3507 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3508 @example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3509 (setq screen-dimensions-66x80 85) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3510 @end example |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3511 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3512 Since Emacs on MS-DOS can only set the frame size to specific |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3513 supported dimensions, it cannot honor every possible frame resizing |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3514 request. When an unsupported size is requested, Emacs chooses the next |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3515 larger supported size beyond the specified size. For example, if you |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3516 ask for 36x80 frame, you will get 40x80 instead. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3517 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3518 The variables @code{screen-dimensions-@var{n}x@var{m}} are used only |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3519 when they exactly match the specified size; the search for the next |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3520 larger supported size ignores them. In the above example, even if your |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3521 VGA supports 38x80 dimensions and you define a variable |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3522 @code{screen-dimensions-38x80} with a suitable value, you will still get |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3523 40x80 screen when you ask for a 36x80 frame. If you want to get the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3524 38x80 size in this case, you can do it by setting the variable named |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3525 @code{screen-dimensions-36x80} with the same video mode value as |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3526 @code{screen-dimensions-38x80}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3527 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3528 Changing frame dimensions on MS-DOS has the effect of changing all the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3529 other frames to the new dimensions. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3530 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3531 @node MS-DOS File Names |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3532 @section File Names on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3533 @cindex file names under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3534 @cindex init file, default name under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3535 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3536 On MS-DOS, file names are case-insensitive and limited to eight |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3537 characters, plus optionally a period and three more characters. Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3538 knows enough about these limitations to handle file names that were |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3539 meant for other operating systems. For instance, leading dots |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3540 @samp{.} in file names are invalid in MS-DOS, so Emacs transparently |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3541 converts them to underscores @samp{_}; thus your default init file |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3542 (@pxref{Init File,,,emacs, the Emacs Manual}) is called @file{_emacs} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3543 on MS-DOS. Excess characters before or after the period are generally |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3544 ignored by MS-DOS itself; thus, if you visit the file |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3545 @file{LongFileName.EvenLongerExtension}, you will silently get |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3546 @file{longfile.eve}, but Emacs will still display the long file name |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3547 on the mode line. Other than that, it's up to you to specify file |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3548 names which are valid under MS-DOS; the transparent conversion as |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3549 described above only works on file names built into Emacs. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3550 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3551 @cindex backup file names on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3552 The above restrictions on the file names on MS-DOS make it almost |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3553 impossible to construct the name of a backup file (@pxref{Backup |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3554 Names,,,emacs, the Emacs Manual}) without losing some of the original |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3555 file name characters. For example, the name of a backup file for |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3556 @file{docs.txt} is @file{docs.tx~} even if single backup is used. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3557 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3558 @cindex file names under Windows 95/NT |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3559 @cindex long file names in DOS box under Windows 95/NT |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3560 If you run Emacs as a DOS application under Windows 9X, Windows ME, or |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3561 Windows 2000, you can turn on support for long file names. If you do |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3562 that, Emacs doesn't truncate file names or convert them to lower case; |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3563 instead, it uses the file names that you specify, verbatim. To enable |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3564 long file name support, set the environment variable @env{LFN} to |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3565 @samp{y} before starting Emacs. Unfortunately, Windows NT doesn't allow |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3566 DOS programs to access long file names, so Emacs built for MS-DOS will |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3567 only see their short 8+3 aliases. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3568 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3569 @cindex @env{HOME} directory under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3570 MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3571 that the directory where it is installed is the value of the @env{HOME} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3572 environment variable. That is, if your Emacs binary, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3573 @file{emacs.exe}, is in the directory @file{c:/utils/emacs/bin}, then |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3574 Emacs acts as if @env{HOME} were set to @samp{c:/utils/emacs}. In |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3575 particular, that is where Emacs looks for the init file @file{_emacs}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3576 With this in mind, you can use @samp{~} in file names as an alias for |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3577 the home directory, as you would on GNU or Unix. You can also set |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3578 @env{HOME} variable in the environment before starting Emacs; its |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3579 value will then override the above default behavior. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3580 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3581 Emacs on MS-DOS handles the directory name @file{/dev} specially, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3582 because of a feature in the emulator libraries of DJGPP that pretends |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3583 I/O devices have names in that directory. We recommend that you avoid |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3584 using an actual directory named @file{/dev} on any disk. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3585 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3586 @node MS-DOS Printing |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3587 @section Printing and MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3588 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3589 Printing commands, such as @code{lpr-buffer} |
70154
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3590 (@pxref{Printing,,,emacs, the Emacs Manual}) and |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3591 @code{ps-print-buffer} (@pxref{PostScript,,,emacs, the Emacs Manual}) |
70154
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3592 can work on MS-DOS by sending the output to one of the printer ports, |
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3593 if a Posix-style @code{lpr} program is unavailable. The same Emacs |
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3594 variables control printing on all systems, but in some cases they have |
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3595 different default values on MS-DOS. |
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3596 |
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3597 @xref{MS-Windows Printing,,,emacs, the Emacs Manual}, for details. |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3598 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3599 Some printers expect DOS codepage encoding of non-@acronym{ASCII} text, even |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3600 though they are connected to a Windows machine which uses a different |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3601 encoding for the same locale. For example, in the Latin-1 locale, DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3602 uses codepage 850 whereas Windows uses codepage 1252. @xref{MS-DOS and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3603 MULE}. When you print to such printers from Windows, you can use the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3604 @kbd{C-x RET c} (@code{universal-coding-system-argument}) command before |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3605 @kbd{M-x lpr-buffer}; Emacs will then convert the text to the DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3606 codepage that you specify. For example, @kbd{C-x RET c cp850-dos RET |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3607 M-x lpr-region RET} will print the region while converting it to the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3608 codepage 850 encoding. You may need to create the @code{cp@var{nnn}} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3609 coding system with @kbd{M-x codepage-setup}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3610 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3611 @vindex dos-printer |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3612 @vindex dos-ps-printer |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3613 For backwards compatibility, the value of @code{dos-printer} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3614 (@code{dos-ps-printer}), if it has a value, overrides the value of |
70154
ab05f8713897
(MS-DOS File Names): Remove section about backslashes and case-insensitivity
Eli Zaretskii <eliz@gnu.org>
parents:
69945
diff
changeset
|
3615 @code{printer-name} (@code{ps-printer-name}), on MS-DOS. |
69898
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3616 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3617 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3618 @node MS-DOS and MULE |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3619 @section International Support on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3620 @cindex international support @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3621 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3622 Emacs on MS-DOS supports the same international character sets as it |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3623 does on GNU, Unix and other platforms (@pxref{International,,,emacs, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3624 the Emacs Manual}), including coding systems for converting between |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3625 the different character sets. However, due to incompatibilities |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3626 between MS-DOS/MS-Windows and other systems, there are several |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3627 DOS-specific aspects of this support that you should be aware of. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3628 This section describes these aspects. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3629 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3630 The description below is largely specific to the MS-DOS port of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3631 Emacs, especially where it talks about practical implications for |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3632 Emacs users. For other operating systems, see the @file{code-pages.el} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3633 package, which implements support for MS-DOS- and MS-Windows-specific |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3634 encodings for all platforms other than MS-DOS. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3635 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3636 @table @kbd |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3637 @item M-x dos-codepage-setup |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3638 Set up Emacs display and coding systems as appropriate for the current |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3639 DOS codepage. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3640 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3641 @item M-x codepage-setup |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3642 Create a coding system for a certain DOS codepage. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3643 @end table |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3644 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3645 @cindex codepage, MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3646 @cindex DOS codepages |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3647 MS-DOS is designed to support one character set of 256 characters at |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3648 any given time, but gives you a variety of character sets to choose |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3649 from. The alternative character sets are known as @dfn{DOS codepages}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3650 Each codepage includes all 128 @acronym{ASCII} characters, but the other 128 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3651 characters (codes 128 through 255) vary from one codepage to another. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3652 Each DOS codepage is identified by a 3-digit number, such as 850, 862, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3653 etc. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3654 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3655 In contrast to X, which lets you use several fonts at the same time, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3656 MS-DOS normally doesn't allow use of several codepages in a single |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3657 session. MS-DOS was designed to load a single codepage at system |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3658 startup, and require you to reboot in order to change |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3659 it@footnote{Normally, one particular codepage is burnt into the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3660 display memory, while other codepages can be installed by modifying |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3661 system configuration files, such as @file{CONFIG.SYS}, and rebooting. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3662 While there is third-party software that allows changing the codepage |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3663 without rebooting, we describe here how a stock MS-DOS system |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3664 behaves.}. Much the same limitation applies when you run DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3665 executables on other systems such as MS-Windows. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3666 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3667 @cindex unibyte operation @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3668 If you invoke Emacs on MS-DOS with the @samp{--unibyte} option |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3669 (@pxref{Initial Options,,,emacs, the Emacs Manual}), Emacs does not |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3670 perform any conversion of non-@acronym{ASCII} characters. Instead, it |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3671 reads and writes any non-@acronym{ASCII} characters verbatim, and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3672 sends their 8-bit codes to the display verbatim. Thus, unibyte Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3673 on MS-DOS supports the current codepage, whatever it may be, but |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3674 cannot even represent any other characters. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3675 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3676 @vindex dos-codepage |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3677 For multibyte operation on MS-DOS, Emacs needs to know which |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3678 characters the chosen DOS codepage can display. So it queries the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3679 system shortly after startup to get the chosen codepage number, and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3680 stores the number in the variable @code{dos-codepage}. Some systems |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3681 return the default value 437 for the current codepage, even though the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3682 actual codepage is different. (This typically happens when you use the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3683 codepage built into the display hardware.) You can specify a different |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3684 codepage for Emacs to use by setting the variable @code{dos-codepage} in |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3685 your init file. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3686 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3687 @cindex language environment, automatic selection on @r{MS-DOS} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3688 Multibyte Emacs supports only certain DOS codepages: those which can |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3689 display Far-Eastern scripts, like the Japanese codepage 932, and those |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3690 that encode a single ISO 8859 character set. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3691 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3692 The Far-Eastern codepages can directly display one of the MULE |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3693 character sets for these countries, so Emacs simply sets up to use the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3694 appropriate terminal coding system that is supported by the codepage. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3695 The special features described in the rest of this section mostly |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3696 pertain to codepages that encode ISO 8859 character sets. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3697 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3698 For the codepages which correspond to one of the ISO character sets, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3699 Emacs knows the character set name based on the codepage number. Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3700 automatically creates a coding system to support reading and writing |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3701 files that use the current codepage, and uses this coding system by |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3702 default. The name of this coding system is @code{cp@var{nnn}}, where |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3703 @var{nnn} is the codepage number.@footnote{The standard Emacs coding |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3704 systems for ISO 8859 are not quite right for the purpose, because |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3705 typically the DOS codepage does not match the standard ISO character |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3706 codes. For example, the letter @samp{@,{c}} (@samp{c} with cedilla) has |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3707 code 231 in the standard Latin-1 character set, but the corresponding |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3708 DOS codepage 850 uses code 135 for this glyph.} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3709 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3710 @cindex mode line @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3711 All the @code{cp@var{nnn}} coding systems use the letter @samp{D} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3712 (for ``DOS'') as their mode-line mnemonic. Since both the terminal |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3713 coding system and the default coding system for file I/O are set to |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3714 the proper @code{cp@var{nnn}} coding system at startup, it is normal |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3715 for the mode line on MS-DOS to begin with @samp{-DD\-}. @xref{Mode |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3716 Line,,,emacs, the Emacs Manual}. Far-Eastern DOS terminals do not use |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3717 the @code{cp@var{nnn}} coding systems, and thus their initial mode |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3718 line looks like the Emacs default. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3719 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3720 Since the codepage number also indicates which script you are using, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3721 Emacs automatically runs @code{set-language-environment} to select the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3722 language environment for that script (@pxref{Language |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3723 Environments,,,emacs, the Emacs Manual}). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3724 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3725 If a buffer contains a character belonging to some other ISO 8859 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3726 character set, not the one that the chosen DOS codepage supports, Emacs |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3727 displays it using a sequence of @acronym{ASCII} characters. For example, if the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3728 current codepage doesn't have a glyph for the letter @samp{@`o} (small |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3729 @samp{o} with a grave accent), it is displayed as @samp{@{`o@}}, where |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3730 the braces serve as a visual indication that this is a single character. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3731 (This may look awkward for some non-Latin characters, such as those from |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3732 Greek or Hebrew alphabets, but it is still readable by a person who |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3733 knows the language.) Even though the character may occupy several |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3734 columns on the screen, it is really still just a single character, and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3735 all Emacs commands treat it as one. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3736 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3737 @cindex IBM graphics characters (MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3738 @cindex box-drawing characters (MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3739 @cindex line-drawing characters (MS-DOS) |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3740 Not all characters in DOS codepages correspond to ISO 8859 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3741 characters---some are used for other purposes, such as box-drawing |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3742 characters and other graphics. Emacs maps these characters to two |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3743 special character sets called @code{eight-bit-control} and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3744 @code{eight-bit-graphic}, and displays them as their IBM glyphs. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3745 However, you should be aware that other systems might display these |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3746 characters differently, so you should avoid them in text that might be |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3747 copied to a different operating system, or even to another DOS machine |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3748 that uses a different codepage. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3749 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3750 @vindex dos-unsupported-character-glyph |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3751 Emacs supports many other characters sets aside from ISO 8859, but it |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3752 cannot display them on MS-DOS. So if one of these multibyte characters |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3753 appears in a buffer, Emacs on MS-DOS displays them as specified by the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3754 @code{dos-unsupported-character-glyph} variable; by default, this glyph |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3755 is an empty triangle. Use the @kbd{C-u C-x =} command to display the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3756 actual code and character set of such characters. @xref{Position |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3757 Info,,,emacs, the Emacs Manual}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3758 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3759 @findex codepage-setup |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3760 By default, Emacs defines a coding system to support the current |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3761 codepage. To define a coding system for some other codepage (e.g., to |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3762 visit a file written on a DOS machine in another country), use the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3763 @kbd{M-x codepage-setup} command. It prompts for the 3-digit code of |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3764 the codepage, with completion, then creates the coding system for the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3765 specified codepage. You can then use the new coding system to read and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3766 write files, but you must specify it explicitly for the file command |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3767 when you want to use it (@pxref{Text Coding,,,emacs, the Emacs Manual}). |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3768 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3769 These coding systems are also useful for visiting a file encoded using |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3770 a DOS codepage, using Emacs running on some other operating system. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3771 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3772 @cindex MS-Windows codepages |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3773 MS-Windows provides its own codepages, which are different from the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3774 DOS codepages for the same locale. For example, DOS codepage 850 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3775 supports the same character set as Windows codepage 1252; DOS codepage |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3776 855 supports the same character set as Windows codepage 1251, etc. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3777 The MS-Windows version of Emacs uses the current codepage for display |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3778 when invoked with the @samp{-nw} option. Support for codepages in the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3779 Windows port of Emacs is part of the @file{code-pages.el} package. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3780 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3781 @node MS-DOS Processes |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3782 @section Subprocesses on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3783 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3784 @cindex compilation under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3785 @cindex inferior processes under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3786 @findex compile @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3787 @findex grep @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3788 Because MS-DOS is a single-process ``operating system,'' |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3789 asynchronous subprocesses are not available. In particular, Shell |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3790 mode and its variants do not work. Most Emacs features that use |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3791 asynchronous subprocesses also don't work on MS-DOS, including |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3792 Shell mode and GUD. When in doubt, try and see; commands that |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3793 don't work output an error message saying that asynchronous processes |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3794 aren't supported. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3795 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3796 Compilation under Emacs with @kbd{M-x compile}, searching files with |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3797 @kbd{M-x grep} and displaying differences between files with @kbd{M-x |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3798 diff} do work, by running the inferior processes synchronously. This |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3799 means you cannot do any more editing until the inferior process |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3800 finishes. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3801 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3802 Spell checking also works, by means of special support for synchronous |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3803 invocation of the @code{ispell} program. This is slower than the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3804 asynchronous invocation on other platforms |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3805 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3806 Instead of the Shell mode, which doesn't work on MS-DOS, you can use |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3807 the @kbd{M-x eshell} command. This invokes the Eshell package that |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3808 implements a Posix-like shell entirely in Emacs Lisp. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3809 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3810 By contrast, Emacs compiled as a native Windows application |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3811 @strong{does} support asynchronous subprocesses. @xref{Windows |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3812 Processes,,,emacs, the Emacs Manual}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3813 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3814 @cindex printing under MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3815 Printing commands, such as @code{lpr-buffer} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3816 (@pxref{Printing,,,emacs, the Emacs Manual}) and |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3817 @code{ps-print-buffer} (@pxref{PostScript,,,emacs, the Emacs Manual}), |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3818 work in MS-DOS by sending the output to one of the printer ports. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3819 @xref{MS-DOS Printing,,,emacs, the Emacs Manual}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3820 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3821 When you run a subprocess synchronously on MS-DOS, make sure the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3822 program terminates and does not try to read keyboard input. If the |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3823 program does not terminate on its own, you will be unable to terminate |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3824 it, because MS-DOS provides no general way to terminate a process. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3825 Pressing @kbd{C-c} or @kbd{C-@key{BREAK}} might sometimes help in these |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3826 cases. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3827 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3828 Accessing files on other machines is not supported on MS-DOS. Other |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3829 network-oriented commands such as sending mail, Web browsing, remote |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3830 login, etc., don't work either, unless network access is built into |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3831 MS-DOS with some network redirector. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3832 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3833 @cindex directory listing on MS-DOS |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3834 @vindex dired-listing-switches @r{(MS-DOS)} |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3835 Dired on MS-DOS uses the @code{ls-lisp} package where other |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3836 platforms use the system @code{ls} command. Therefore, Dired on |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3837 MS-DOS supports only some of the possible options you can mention in |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3838 the @code{dired-listing-switches} variable. The options that work are |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3839 @samp{-A}, @samp{-a}, @samp{-c}, @samp{-i}, @samp{-r}, @samp{-S}, |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3840 @samp{-s}, @samp{-t}, and @samp{-u}. |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3841 |
601830ae280c
move MS-DOS material to emacs-xtra.texi
Karl Berry <karl@gnu.org>
parents:
69681
diff
changeset
|
3842 |
56119 | 3843 @node Index |
3844 @unnumbered Index | |
3845 | |
3846 @printindex cp | |
3847 | |
3848 @bye | |
56131
0806d31e3c9c
Changes from arch/CVS synchronization
Miles Bader <miles@gnu.org>
parents:
56128
diff
changeset
|
3849 |
0806d31e3c9c
Changes from arch/CVS synchronization
Miles Bader <miles@gnu.org>
parents:
56128
diff
changeset
|
3850 @ignore |
0806d31e3c9c
Changes from arch/CVS synchronization
Miles Bader <miles@gnu.org>
parents:
56128
diff
changeset
|
3851 arch-tag: 75c33f13-32c6-41b6-9537-847a312e2e49 |
0806d31e3c9c
Changes from arch/CVS synchronization
Miles Bader <miles@gnu.org>
parents:
56128
diff
changeset
|
3852 @end ignore |