annotate etc/OONEWS @ 27863:30eebaedce93

(read_minibuf): Cancel busy-cursor.
author Gerd Moellmann <gerd@gnu.org>
date Fri, 25 Feb 2000 13:31:28 +0000
parents e96ffe544684
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25853
Dave Love <fx@gnu.org>
parents:
diff changeset
1 GNU Emacs NEWS -- history of user-visible changes. 1992.
Dave Love <fx@gnu.org>
parents:
diff changeset
2 Copyright (C) 1992 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
3 See the end for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
4
Dave Love <fx@gnu.org>
parents:
diff changeset
5 For older news, see the file OOONEWS.
Dave Love <fx@gnu.org>
parents:
diff changeset
6
Dave Love <fx@gnu.org>
parents:
diff changeset
7 Changes in version 18.58.
Dave Love <fx@gnu.org>
parents:
diff changeset
8
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * RMAIL reply now properly parses nested comments in addesses.
Dave Love <fx@gnu.org>
parents:
diff changeset
10
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * The "visual bell" feature when used with X windows
Dave Love <fx@gnu.org>
parents:
diff changeset
12 now flashes only 1/4 of the window's total area. This is because
Dave Love <fx@gnu.org>
parents:
diff changeset
13 flashing the whole window is too slow on some systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
14
Dave Love <fx@gnu.org>
parents:
diff changeset
15 * `call-process' and `call-process-region' now return an indication
Dave Love <fx@gnu.org>
parents:
diff changeset
16 of the exit status of the subprocess: either a numeric exit code
Dave Love <fx@gnu.org>
parents:
diff changeset
17 or a string describing the signal which caused termination.
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19 * It is possible for regular expression matching to overflow the stack
Dave Love <fx@gnu.org>
parents:
diff changeset
20 of failure points. In the past, such overflow was treated as simple
Dave Love <fx@gnu.org>
parents:
diff changeset
21 failure to match. Now it causes an error.
Dave Love <fx@gnu.org>
parents:
diff changeset
22
Dave Love <fx@gnu.org>
parents:
diff changeset
23 * You can use C-u to end a numeric argument. Thus, type C-u 1 0 0 C-u 1
Dave Love <fx@gnu.org>
parents:
diff changeset
24 to insert 100 1's.
Dave Love <fx@gnu.org>
parents:
diff changeset
25
Dave Love <fx@gnu.org>
parents:
diff changeset
26 * Emacs now knows how to get resource values from the X server.
Dave Love <fx@gnu.org>
parents:
diff changeset
27
Dave Love <fx@gnu.org>
parents:
diff changeset
28 * Job control commands in shell mode work properly on more systems
Dave Love <fx@gnu.org>
parents:
diff changeset
29 because they now work by "typing" signal characters such as C-c.
Dave Love <fx@gnu.org>
parents:
diff changeset
30
Dave Love <fx@gnu.org>
parents:
diff changeset
31 * copy-keymap no longer recursively copies keymaps reached through
Dave Love <fx@gnu.org>
parents:
diff changeset
32 symbols' function definitions (i.e., those that have names). It does
Dave Love <fx@gnu.org>
parents:
diff changeset
33 copy nested keymaps that appear directly in the other copied keymaps.
Dave Love <fx@gnu.org>
parents:
diff changeset
34
Dave Love <fx@gnu.org>
parents:
diff changeset
35 Changes in version 18.56.
Dave Love <fx@gnu.org>
parents:
diff changeset
36
Dave Love <fx@gnu.org>
parents:
diff changeset
37 * C-g should now work to interrupt a running program
Dave Love <fx@gnu.org>
parents:
diff changeset
38 on all kinds of systems even when using X windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
39
Dave Love <fx@gnu.org>
parents:
diff changeset
40 * Quitting is inhibited while a filter or sentinel is running.
Dave Love <fx@gnu.org>
parents:
diff changeset
41 Those functions can run asynchronously while Emacs is waiting
Dave Love <fx@gnu.org>
parents:
diff changeset
42 for keyboard input, and if they allow quitting, they
Dave Love <fx@gnu.org>
parents:
diff changeset
43 make the behavior of C-g unpredictable.
Dave Love <fx@gnu.org>
parents:
diff changeset
44
Dave Love <fx@gnu.org>
parents:
diff changeset
45 * Storing text into the X windows cut buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
46 now clears out any selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
47
Dave Love <fx@gnu.org>
parents:
diff changeset
48 * The undo facility is completely rewritten, and now
Dave Love <fx@gnu.org>
parents:
diff changeset
49 uses Lisp data structures. It can record much more
Dave Love <fx@gnu.org>
parents:
diff changeset
50 information. You can use the variables undo-threshold
Dave Love <fx@gnu.org>
parents:
diff changeset
51 and undo-high-threshold to control how much.
Dave Love <fx@gnu.org>
parents:
diff changeset
52
Dave Love <fx@gnu.org>
parents:
diff changeset
53 * There is no longer a maximum screen height or width.
Dave Love <fx@gnu.org>
parents:
diff changeset
54
Dave Love <fx@gnu.org>
parents:
diff changeset
55 Changes in version 18.52.
Dave Love <fx@gnu.org>
parents:
diff changeset
56
Dave Love <fx@gnu.org>
parents:
diff changeset
57 * X windows version 10 is supported under system V.
Dave Love <fx@gnu.org>
parents:
diff changeset
58
Dave Love <fx@gnu.org>
parents:
diff changeset
59 * Pop-up menus are now supported with the same Lisp interface in
Dave Love <fx@gnu.org>
parents:
diff changeset
60 both version 10 and 11 of X windows.
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 * C-x 4 a is a new command to edit a change-log entry in another window.
Dave Love <fx@gnu.org>
parents:
diff changeset
63
Dave Love <fx@gnu.org>
parents:
diff changeset
64 * The emacs client program now allows an option +NNN to specify the
Dave Love <fx@gnu.org>
parents:
diff changeset
65 line number to go to in the file whose name follows. Thus,
Dave Love <fx@gnu.org>
parents:
diff changeset
66 emacsclient foo.c +45 bar.c
Dave Love <fx@gnu.org>
parents:
diff changeset
67 will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
Dave Love <fx@gnu.org>
parents:
diff changeset
68
Dave Love <fx@gnu.org>
parents:
diff changeset
69 * Dired allows empty directories to be deleted like files.
Dave Love <fx@gnu.org>
parents:
diff changeset
70
Dave Love <fx@gnu.org>
parents:
diff changeset
71 * When the terminal type is used to find a terminal-specific file to
Dave Love <fx@gnu.org>
parents:
diff changeset
72 run, Emacs now tries the entire terminal type first. If that doesn't
Dave Love <fx@gnu.org>
parents:
diff changeset
73 yield a file that exists, the last hyphen and what follows it is
Dave Love <fx@gnu.org>
parents:
diff changeset
74 stripped. If that doesn't yield a file that exists, the previous
Dave Love <fx@gnu.org>
parents:
diff changeset
75 hyphen is stripped, and so on until all hyphens are gone. For
Dave Love <fx@gnu.org>
parents:
diff changeset
76 example, if the terminal type is `aaa-48-foo', Emacs will try first
Dave Love <fx@gnu.org>
parents:
diff changeset
77 `term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
Dave Love <fx@gnu.org>
parents:
diff changeset
78
Dave Love <fx@gnu.org>
parents:
diff changeset
79 Underscores now receive the same treatment as hyphens.
Dave Love <fx@gnu.org>
parents:
diff changeset
80
Dave Love <fx@gnu.org>
parents:
diff changeset
81 * Texinfo features: @defun, etc. texinfo-show-structure.
Dave Love <fx@gnu.org>
parents:
diff changeset
82 New template commands. texinfo-format-region.
Dave Love <fx@gnu.org>
parents:
diff changeset
83
Dave Love <fx@gnu.org>
parents:
diff changeset
84 * The special "local variable" `eval' is now ignored if you are running
Dave Love <fx@gnu.org>
parents:
diff changeset
85 as root.
Dave Love <fx@gnu.org>
parents:
diff changeset
86
Dave Love <fx@gnu.org>
parents:
diff changeset
87 * New command `c-macro-expand' shows the result of C macro expansion
Dave Love <fx@gnu.org>
parents:
diff changeset
88 in the region. It works using the C preprocessor, so its results
Dave Love <fx@gnu.org>
parents:
diff changeset
89 are completely accurate.
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 * Errors in trying to auto save now flash error messages for a few seconds.
Dave Love <fx@gnu.org>
parents:
diff changeset
92
Dave Love <fx@gnu.org>
parents:
diff changeset
93 * Killing a buffer now sends SIGHUP to the buffer's process.
Dave Love <fx@gnu.org>
parents:
diff changeset
94
Dave Love <fx@gnu.org>
parents:
diff changeset
95 * New hooks.
Dave Love <fx@gnu.org>
parents:
diff changeset
96
Dave Love <fx@gnu.org>
parents:
diff changeset
97 ** `spell-region' now allows you to filter the text before spelling-checking.
Dave Love <fx@gnu.org>
parents:
diff changeset
98 If the value of `spell-filter' is non-nil, it is called, with no arguments,
Dave Love <fx@gnu.org>
parents:
diff changeset
99 looking at a temporary buffer containing a copy of the text to be checked.
Dave Love <fx@gnu.org>
parents:
diff changeset
100 It can alter the text freely before the spell program sees it.
Dave Love <fx@gnu.org>
parents:
diff changeset
101
Dave Love <fx@gnu.org>
parents:
diff changeset
102 ** The variable `lpr-command' now specifies the command to be used when
Dave Love <fx@gnu.org>
parents:
diff changeset
103 you use the commands to print text (such as M-x print-buffer).
Dave Love <fx@gnu.org>
parents:
diff changeset
104
Dave Love <fx@gnu.org>
parents:
diff changeset
105 ** Posting netnews now calls the value of `news-inews-hook' (if not nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
106 as a function of no arguments before the actual posting.
Dave Love <fx@gnu.org>
parents:
diff changeset
107
Dave Love <fx@gnu.org>
parents:
diff changeset
108 ** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
Dave Love <fx@gnu.org>
parents:
diff changeset
109 as a function of no arguments, each time a new message is selected.
Dave Love <fx@gnu.org>
parents:
diff changeset
110
Dave Love <fx@gnu.org>
parents:
diff changeset
111 ** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args
Dave Love <fx@gnu.org>
parents:
diff changeset
112 unless Emacs is running in batch mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
113
Dave Love <fx@gnu.org>
parents:
diff changeset
114 * New libraries.
Dave Love <fx@gnu.org>
parents:
diff changeset
115 See the source code of each library for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
116
Dave Love <fx@gnu.org>
parents:
diff changeset
117 ** icon.el: a major mode for editing programs written in Icon.
Dave Love <fx@gnu.org>
parents:
diff changeset
118
Dave Love <fx@gnu.org>
parents:
diff changeset
119 ** life.el: a simulator for the cellular automaton "life". Load the
Dave Love <fx@gnu.org>
parents:
diff changeset
120 library and run M-x life.
Dave Love <fx@gnu.org>
parents:
diff changeset
121
Dave Love <fx@gnu.org>
parents:
diff changeset
122 ** doctex.el: a library for converting the Emacs `etc/DOC' file of
Dave Love <fx@gnu.org>
parents:
diff changeset
123 documentation strings into TeX input.
Dave Love <fx@gnu.org>
parents:
diff changeset
124
Dave Love <fx@gnu.org>
parents:
diff changeset
125 ** saveconf.el: a library which records the arrangement of windows and
Dave Love <fx@gnu.org>
parents:
diff changeset
126 buffers when you exit Emacs, and automatically recreates the same
Dave Love <fx@gnu.org>
parents:
diff changeset
127 setup the next time you start Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
128
Dave Love <fx@gnu.org>
parents:
diff changeset
129 ** uncompress.el: a library that automatically uncompresses files
Dave Love <fx@gnu.org>
parents:
diff changeset
130 when you visit them.
Dave Love <fx@gnu.org>
parents:
diff changeset
131
Dave Love <fx@gnu.org>
parents:
diff changeset
132 ** c-fill.el: a mode for editing filled comments in C.
Dave Love <fx@gnu.org>
parents:
diff changeset
133
Dave Love <fx@gnu.org>
parents:
diff changeset
134 ** kermit.el: an extended version of shell-mode designed for running kermit.
Dave Love <fx@gnu.org>
parents:
diff changeset
135
Dave Love <fx@gnu.org>
parents:
diff changeset
136 ** spook.el: a library for adding some "distract the NSA" keywords to every
Dave Love <fx@gnu.org>
parents:
diff changeset
137 message you send.
Dave Love <fx@gnu.org>
parents:
diff changeset
138
Dave Love <fx@gnu.org>
parents:
diff changeset
139 ** hideif.el: a library for hiding parts of a C program based on preprocessor
Dave Love <fx@gnu.org>
parents:
diff changeset
140 conditionals.
Dave Love <fx@gnu.org>
parents:
diff changeset
141
Dave Love <fx@gnu.org>
parents:
diff changeset
142 ** autoinsert.el: a library to put in some initial text when you visit
Dave Love <fx@gnu.org>
parents:
diff changeset
143 a nonexistent file. The text used depends on the major mode, and
Dave Love <fx@gnu.org>
parents:
diff changeset
144 comes from a directory of files created by you.
Dave Love <fx@gnu.org>
parents:
diff changeset
145
Dave Love <fx@gnu.org>
parents:
diff changeset
146 * New programming features.
Dave Love <fx@gnu.org>
parents:
diff changeset
147
Dave Love <fx@gnu.org>
parents:
diff changeset
148 ** The variable `window-system-version' now contains the version number
Dave Love <fx@gnu.org>
parents:
diff changeset
149 of the window system you are using (if appropriate). When using X windows,
Dave Love <fx@gnu.org>
parents:
diff changeset
150 its value is either 10 or 11.
Dave Love <fx@gnu.org>
parents:
diff changeset
151
Dave Love <fx@gnu.org>
parents:
diff changeset
152 ** (interactive "N") uses the prefix argument if any; otherwise, it reads
Dave Love <fx@gnu.org>
parents:
diff changeset
153 a number using the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
154
Dave Love <fx@gnu.org>
parents:
diff changeset
155 ** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
Dave Love <fx@gnu.org>
parents:
diff changeset
156 The former allows you to get many kinds of system status information.
Dave Love <fx@gnu.org>
parents:
diff changeset
157 See its self-documentation for full details.
Dave Love <fx@gnu.org>
parents:
diff changeset
158 The second is used with the window system: it iconifies the Emacs window.
Dave Love <fx@gnu.org>
parents:
diff changeset
159
Dave Love <fx@gnu.org>
parents:
diff changeset
160 ** VMS: the new function `define-logical-name' allows you to create
Dave Love <fx@gnu.org>
parents:
diff changeset
161 job-wide logical names. The old function `define-dcl-symbol' has been
Dave Love <fx@gnu.org>
parents:
diff changeset
162 removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
163
Dave Love <fx@gnu.org>
parents:
diff changeset
164 Changes in version 18.50.
Dave Love <fx@gnu.org>
parents:
diff changeset
165
Dave Love <fx@gnu.org>
parents:
diff changeset
166 * X windows version 11 is supported.
Dave Love <fx@gnu.org>
parents:
diff changeset
167
Dave Love <fx@gnu.org>
parents:
diff changeset
168 Define X11 in config.h if you want X version 11 instead of version 10.
Dave Love <fx@gnu.org>
parents:
diff changeset
169
Dave Love <fx@gnu.org>
parents:
diff changeset
170 * The command M-x gdb runs the GDB debugger as an inferior.
Dave Love <fx@gnu.org>
parents:
diff changeset
171 It asks for the filename of the executable you want to debug.
Dave Love <fx@gnu.org>
parents:
diff changeset
172
Dave Love <fx@gnu.org>
parents:
diff changeset
173 GDB runs as an inferior with I/O through an Emacs buffer. All the
Dave Love <fx@gnu.org>
parents:
diff changeset
174 facilities of Shell mode are available. In addition, each time your
Dave Love <fx@gnu.org>
parents:
diff changeset
175 program stops, and each time you select a new stack frame, the source
Dave Love <fx@gnu.org>
parents:
diff changeset
176 code is displayed in another window with an arrow added to the line
Dave Love <fx@gnu.org>
parents:
diff changeset
177 where the program is executing.
Dave Love <fx@gnu.org>
parents:
diff changeset
178
Dave Love <fx@gnu.org>
parents:
diff changeset
179 Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
180 which send the GDB commands `step', `next', `stepi', `up', `down'
Dave Love <fx@gnu.org>
parents:
diff changeset
181 and `finish'.
Dave Love <fx@gnu.org>
parents:
diff changeset
182
Dave Love <fx@gnu.org>
parents:
diff changeset
183 In any source file, the commands C-x SPC tells GDB to set a breakpoint
Dave Love <fx@gnu.org>
parents:
diff changeset
184 on the current line.
Dave Love <fx@gnu.org>
parents:
diff changeset
185
Dave Love <fx@gnu.org>
parents:
diff changeset
186 * M-x calendar displays a three-month calendar.
Dave Love <fx@gnu.org>
parents:
diff changeset
187
Dave Love <fx@gnu.org>
parents:
diff changeset
188 * C-u 0 C-x C-s never makes a backup file.
Dave Love <fx@gnu.org>
parents:
diff changeset
189
Dave Love <fx@gnu.org>
parents:
diff changeset
190 This is a way you can explicitly request not to make a backup.
Dave Love <fx@gnu.org>
parents:
diff changeset
191
Dave Love <fx@gnu.org>
parents:
diff changeset
192 * `term-setup-hook' is for users only.
Dave Love <fx@gnu.org>
parents:
diff changeset
193
Dave Love <fx@gnu.org>
parents:
diff changeset
194 Emacs never uses this variable for internal purposes, so you can freely
Dave Love <fx@gnu.org>
parents:
diff changeset
195 set it in your `.emacs' file to make Emacs do something special after
Dave Love <fx@gnu.org>
parents:
diff changeset
196 loading any terminal-specific setup file from `lisp/term'.
Dave Love <fx@gnu.org>
parents:
diff changeset
197
Dave Love <fx@gnu.org>
parents:
diff changeset
198 * `copy-keymap' now copies recursive submaps.
Dave Love <fx@gnu.org>
parents:
diff changeset
199
Dave Love <fx@gnu.org>
parents:
diff changeset
200 * New overlay-arrow feature.
Dave Love <fx@gnu.org>
parents:
diff changeset
201
Dave Love <fx@gnu.org>
parents:
diff changeset
202 If you set the variable `overlay-arrow-string' to a string
Dave Love <fx@gnu.org>
parents:
diff changeset
203 and `overlay-arrow-position' to a marker, that string is displayed on
Dave Love <fx@gnu.org>
parents:
diff changeset
204 the screen at the position of that marker, hiding whatever text would
Dave Love <fx@gnu.org>
parents:
diff changeset
205 have appeared there. If that position isn't on the screen, or if
Dave Love <fx@gnu.org>
parents:
diff changeset
206 the buffer the marker points into isn't displayed, there is no effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
207
Dave Love <fx@gnu.org>
parents:
diff changeset
208 * -batch mode can read from the terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
209
Dave Love <fx@gnu.org>
parents:
diff changeset
210 It now works to use `read-char' to do terminal input in a noninteractive
Dave Love <fx@gnu.org>
parents:
diff changeset
211 Emacs run. End of file causes Emacs to exit.
Dave Love <fx@gnu.org>
parents:
diff changeset
212
Dave Love <fx@gnu.org>
parents:
diff changeset
213 * Variables `data-bytes-used' and `data-bytes-free' removed.
Dave Love <fx@gnu.org>
parents:
diff changeset
214
Dave Love <fx@gnu.org>
parents:
diff changeset
215 These variables cannot really work because the 24-bit range of an
Dave Love <fx@gnu.org>
parents:
diff changeset
216 integer in (most ports of) GNU Emacs is not large enough to hold their
Dave Love <fx@gnu.org>
parents:
diff changeset
217 values on many systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
218
Dave Love <fx@gnu.org>
parents:
diff changeset
219 Changes in version 18.45, since version 18.41.
Dave Love <fx@gnu.org>
parents:
diff changeset
220
Dave Love <fx@gnu.org>
parents:
diff changeset
221 * C indentation parameter `c-continued-brace-offset'.
Dave Love <fx@gnu.org>
parents:
diff changeset
222
Dave Love <fx@gnu.org>
parents:
diff changeset
223 This parameter's value is added to the indentation of any
Dave Love <fx@gnu.org>
parents:
diff changeset
224 line that is in a continuation context and starts with an open-brace.
Dave Love <fx@gnu.org>
parents:
diff changeset
225 For example, it applies to the open brace shown here:
Dave Love <fx@gnu.org>
parents:
diff changeset
226
Dave Love <fx@gnu.org>
parents:
diff changeset
227 if (x)
Dave Love <fx@gnu.org>
parents:
diff changeset
228 {
Dave Love <fx@gnu.org>
parents:
diff changeset
229
Dave Love <fx@gnu.org>
parents:
diff changeset
230 The default value is zero.
Dave Love <fx@gnu.org>
parents:
diff changeset
231
Dave Love <fx@gnu.org>
parents:
diff changeset
232 * Dabbrev expansion (Meta-/) preserves case.
Dave Love <fx@gnu.org>
parents:
diff changeset
233
Dave Love <fx@gnu.org>
parents:
diff changeset
234 When you use Meta-/ to search the buffer for an expansion of an
Dave Love <fx@gnu.org>
parents:
diff changeset
235 abbreviation, if the expansion found is all lower case except perhaps
Dave Love <fx@gnu.org>
parents:
diff changeset
236 for its first letter, then the case pattern of the abbreviation
Dave Love <fx@gnu.org>
parents:
diff changeset
237 is carried over to the expansion that replaces it.
Dave Love <fx@gnu.org>
parents:
diff changeset
238
Dave Love <fx@gnu.org>
parents:
diff changeset
239 * TeX-mode syntax.
Dave Love <fx@gnu.org>
parents:
diff changeset
240
Dave Love <fx@gnu.org>
parents:
diff changeset
241 \ is no longer given "escape character" syntax in TeX mode. It now
Dave Love <fx@gnu.org>
parents:
diff changeset
242 has the syntax of an ordinary punctuation character. As a result,
Dave Love <fx@gnu.org>
parents:
diff changeset
243 \[...\] and such like are considered to balance each other.
Dave Love <fx@gnu.org>
parents:
diff changeset
244
Dave Love <fx@gnu.org>
parents:
diff changeset
245 * Mail-mode automatic Reply-to field.
Dave Love <fx@gnu.org>
parents:
diff changeset
246
Dave Love <fx@gnu.org>
parents:
diff changeset
247 If the variable `mail-default-reply-to' is non-`nil', then each time
Dave Love <fx@gnu.org>
parents:
diff changeset
248 you start to compose a message, a Reply-to field is inserted with
Dave Love <fx@gnu.org>
parents:
diff changeset
249 its contents taken from the value of `mail-default-reply-to'.
Dave Love <fx@gnu.org>
parents:
diff changeset
250
Dave Love <fx@gnu.org>
parents:
diff changeset
251 * Where is your .emacs file?
Dave Love <fx@gnu.org>
parents:
diff changeset
252
Dave Love <fx@gnu.org>
parents:
diff changeset
253 If you run Emacs under `su', so your real and effective uids are
Dave Love <fx@gnu.org>
parents:
diff changeset
254 different, Emacs uses the home directory associated with the real uid
Dave Love <fx@gnu.org>
parents:
diff changeset
255 (the name you actually logged in under) to find the .emacs file.
Dave Love <fx@gnu.org>
parents:
diff changeset
256
Dave Love <fx@gnu.org>
parents:
diff changeset
257 Otherwise, Emacs uses the environment variable HOME to find the .emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
258 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
259
Dave Love <fx@gnu.org>
parents:
diff changeset
260 The .emacs file is not loaded at all if -batch is specified.
Dave Love <fx@gnu.org>
parents:
diff changeset
261
Dave Love <fx@gnu.org>
parents:
diff changeset
262 * Prolog mode is the default for ".pl" files.
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264 * File names are not case-sensitive on VMS.
Dave Love <fx@gnu.org>
parents:
diff changeset
265
Dave Love <fx@gnu.org>
parents:
diff changeset
266 On VMS systems, all file names that you specify are converted to upper
Dave Love <fx@gnu.org>
parents:
diff changeset
267 case. You can use either upper or lower case indiscriminately.
Dave Love <fx@gnu.org>
parents:
diff changeset
268
Dave Love <fx@gnu.org>
parents:
diff changeset
269 * VMS-only function 'define-dcl-symbol'.
Dave Love <fx@gnu.org>
parents:
diff changeset
270
Dave Love <fx@gnu.org>
parents:
diff changeset
271 This is a new name for the function formerly called
Dave Love <fx@gnu.org>
parents:
diff changeset
272 `define-logical-name'.
Dave Love <fx@gnu.org>
parents:
diff changeset
273
Dave Love <fx@gnu.org>
parents:
diff changeset
274 Editing Changes in Emacs 18
Dave Love <fx@gnu.org>
parents:
diff changeset
275
Dave Love <fx@gnu.org>
parents:
diff changeset
276 * Additional systems and machines are supported.
Dave Love <fx@gnu.org>
parents:
diff changeset
277
Dave Love <fx@gnu.org>
parents:
diff changeset
278 GNU Emacs now runs on Vax VMS. However, many facilities that are normally
Dave Love <fx@gnu.org>
parents:
diff changeset
279 implemented by running subprocesses do not work yet. This includes listing
Dave Love <fx@gnu.org>
parents:
diff changeset
280 a directory and sending mail. There are features for running subprocesses
Dave Love <fx@gnu.org>
parents:
diff changeset
281 but they are incompatible with those on Unix. I hope that some of
Dave Love <fx@gnu.org>
parents:
diff changeset
282 the VMS users can reimplement these features for VMS (compatibly for
Dave Love <fx@gnu.org>
parents:
diff changeset
283 the user, if possible).
Dave Love <fx@gnu.org>
parents:
diff changeset
284
Dave Love <fx@gnu.org>
parents:
diff changeset
285 VMS wizards are also asked to work on making the subprocess facilities
Dave Love <fx@gnu.org>
parents:
diff changeset
286 more upward compatible with those on Unix, and also to rewrite their
Dave Love <fx@gnu.org>
parents:
diff changeset
287 internals to use the same Lisp objects that are used on Unix to
Dave Love <fx@gnu.org>
parents:
diff changeset
288 represent processes.
Dave Love <fx@gnu.org>
parents:
diff changeset
289
Dave Love <fx@gnu.org>
parents:
diff changeset
290 In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
Dave Love <fx@gnu.org>
parents:
diff changeset
291 the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
Dave Love <fx@gnu.org>
parents:
diff changeset
292 Altos 3068 and Gould Unix systems are now supported. The IBM PC-RT is
Dave Love <fx@gnu.org>
parents:
diff changeset
293 supported under 4.2, but not yet under system V. The GEC 93 is close
Dave Love <fx@gnu.org>
parents:
diff changeset
294 to working. The port for the Elxsi is partly merged. See the file
Dave Love <fx@gnu.org>
parents:
diff changeset
295 MACHINES for full status information and machine-specific installation
Dave Love <fx@gnu.org>
parents:
diff changeset
296 advice.
Dave Love <fx@gnu.org>
parents:
diff changeset
297
Dave Love <fx@gnu.org>
parents:
diff changeset
298 * Searching is faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
299
Dave Love <fx@gnu.org>
parents:
diff changeset
300 Forward search for a text string, or for a regexp that is equivalent
Dave Love <fx@gnu.org>
parents:
diff changeset
301 to a text string, is now several times faster. Motion by lines and
Dave Love <fx@gnu.org>
parents:
diff changeset
302 counting lines is also faster.
Dave Love <fx@gnu.org>
parents:
diff changeset
303
Dave Love <fx@gnu.org>
parents:
diff changeset
304 * Memory usage improvements.
Dave Love <fx@gnu.org>
parents:
diff changeset
305
Dave Love <fx@gnu.org>
parents:
diff changeset
306 It is no longer possible to run out of memory during garbage
Dave Love <fx@gnu.org>
parents:
diff changeset
307 collection. As a result, running out of memory is never fatal. This
Dave Love <fx@gnu.org>
parents:
diff changeset
308 is due to a new garbage collection algorithm which compactifies
Dave Love <fx@gnu.org>
parents:
diff changeset
309 strings in place rather than copying them. Another consequence of the
Dave Love <fx@gnu.org>
parents:
diff changeset
310 change is a reduction in total memory usage and a slight increase in
Dave Love <fx@gnu.org>
parents:
diff changeset
311 garbage collection speed.
Dave Love <fx@gnu.org>
parents:
diff changeset
312
Dave Love <fx@gnu.org>
parents:
diff changeset
313 * Display changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
314
Dave Love <fx@gnu.org>
parents:
diff changeset
315 ** Editing above top of screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
316
Dave Love <fx@gnu.org>
parents:
diff changeset
317 When you delete or kill or alter text that reaches to the top of the
Dave Love <fx@gnu.org>
parents:
diff changeset
318 screen or above it, so that display would start in the middle of a
Dave Love <fx@gnu.org>
parents:
diff changeset
319 line, Emacs will usually attempt to scroll the text so that display
Dave Love <fx@gnu.org>
parents:
diff changeset
320 starts at the beginning of a line again.
Dave Love <fx@gnu.org>
parents:
diff changeset
321
Dave Love <fx@gnu.org>
parents:
diff changeset
322 ** Yanking in the minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
323
Dave Love <fx@gnu.org>
parents:
diff changeset
324 The message "Mark Set" is no longer printed when the minibuffer is
Dave Love <fx@gnu.org>
parents:
diff changeset
325 active. This is convenient with many commands, including C-y, that
Dave Love <fx@gnu.org>
parents:
diff changeset
326 normally print such a message.
Dave Love <fx@gnu.org>
parents:
diff changeset
327
Dave Love <fx@gnu.org>
parents:
diff changeset
328 ** Cursor appears in last line during y-or-n questions.
Dave Love <fx@gnu.org>
parents:
diff changeset
329
Dave Love <fx@gnu.org>
parents:
diff changeset
330 Questions that want a `y' or `n' answer now move the cursor
Dave Love <fx@gnu.org>
parents:
diff changeset
331 to the last line, following the question.
Dave Love <fx@gnu.org>
parents:
diff changeset
332
Dave Love <fx@gnu.org>
parents:
diff changeset
333 * Library loading changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
334
Dave Love <fx@gnu.org>
parents:
diff changeset
335 `load' now considers all possible suffixes (`.elc', `.el' and none)
Dave Love <fx@gnu.org>
parents:
diff changeset
336 for each directory in `load-path' before going on to the next directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
337 It now accepts an optional fourth argument which, if non-nil, says to
Dave Love <fx@gnu.org>
parents:
diff changeset
338 use no suffixes; then the file name must be given in full. The search
Dave Love <fx@gnu.org>
parents:
diff changeset
339 of the directories in `load-path' goes on as usual in this case, but
Dave Love <fx@gnu.org>
parents:
diff changeset
340 it too can be prevented by passing an absolute file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
341
Dave Love <fx@gnu.org>
parents:
diff changeset
342 The value of `load-path' no longer by default includes nil (meaning to
Dave Love <fx@gnu.org>
parents:
diff changeset
343 look in the current default directory). The idea is that `load' should
Dave Love <fx@gnu.org>
parents:
diff changeset
344 be used to search the path only for libraries to be found in the standard
Dave Love <fx@gnu.org>
parents:
diff changeset
345 places. If you want to override system libraries with your own, place
Dave Love <fx@gnu.org>
parents:
diff changeset
346 your own libraries in one special directory and add that directory to the
Dave Love <fx@gnu.org>
parents:
diff changeset
347 front of `load-path'.
Dave Love <fx@gnu.org>
parents:
diff changeset
348
Dave Love <fx@gnu.org>
parents:
diff changeset
349 The function `load' is no longer a command; that is to say, `M-x load'
Dave Love <fx@gnu.org>
parents:
diff changeset
350 is no longer allowed. Instead, there are two commands for loading files.
Dave Love <fx@gnu.org>
parents:
diff changeset
351 `M-x load-library' is equivalent to the old meaning of `M-x load'.
Dave Love <fx@gnu.org>
parents:
diff changeset
352 `M-x load-file' reads a file name with completion and defaulting
Dave Love <fx@gnu.org>
parents:
diff changeset
353 and then loads exactly that file, with no searching and no suffixes.
Dave Love <fx@gnu.org>
parents:
diff changeset
354
Dave Love <fx@gnu.org>
parents:
diff changeset
355 * Emulation of other editors.
Dave Love <fx@gnu.org>
parents:
diff changeset
356
Dave Love <fx@gnu.org>
parents:
diff changeset
357 ** `edt-emulation-on' starts emulating DEC's EDT editor.
Dave Love <fx@gnu.org>
parents:
diff changeset
358
Dave Love <fx@gnu.org>
parents:
diff changeset
359 Do `edt-emulation-off' to return Emacs to normal.
Dave Love <fx@gnu.org>
parents:
diff changeset
360
Dave Love <fx@gnu.org>
parents:
diff changeset
361 ** `vi-mode' and `vip-mode' starts emulating vi.
Dave Love <fx@gnu.org>
parents:
diff changeset
362
Dave Love <fx@gnu.org>
parents:
diff changeset
363 These are two different vi emulations provided by GNU Emacs users.
Dave Love <fx@gnu.org>
parents:
diff changeset
364 We are interested in feedback as to which emulation is preferable.
Dave Love <fx@gnu.org>
parents:
diff changeset
365
Dave Love <fx@gnu.org>
parents:
diff changeset
366 See the documentation and source code for these functions
Dave Love <fx@gnu.org>
parents:
diff changeset
367 for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
368
Dave Love <fx@gnu.org>
parents:
diff changeset
369 ** `set-gosmacs-bindings' emulates Gosling Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
370
Dave Love <fx@gnu.org>
parents:
diff changeset
371 This command changes many global bindings to resemble those of
Dave Love <fx@gnu.org>
parents:
diff changeset
372 Gosling Emacs. The previous bindings are saved and can be restored using
Dave Love <fx@gnu.org>
parents:
diff changeset
373 `set-gnu-bindings'.
Dave Love <fx@gnu.org>
parents:
diff changeset
374
Dave Love <fx@gnu.org>
parents:
diff changeset
375 * Emulation of a display terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
376
Dave Love <fx@gnu.org>
parents:
diff changeset
377 Within Emacs it is now possible to run programs (such as emacs or
Dave Love <fx@gnu.org>
parents:
diff changeset
378 supdup) which expect to do output to a visual display terminal.
Dave Love <fx@gnu.org>
parents:
diff changeset
379
Dave Love <fx@gnu.org>
parents:
diff changeset
380 See the function `terminal-emulator' for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
381
Dave Love <fx@gnu.org>
parents:
diff changeset
382 * New support for keypads and function keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
383
Dave Love <fx@gnu.org>
parents:
diff changeset
384 There is now a first attempt at terminal-independent support for
Dave Love <fx@gnu.org>
parents:
diff changeset
385 keypad and function keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
386
Dave Love <fx@gnu.org>
parents:
diff changeset
387 Emacs now defines a standard set of key-names for function and keypad
Dave Love <fx@gnu.org>
parents:
diff changeset
388 keys, and provides standard hooks for defining them. Most of the
Dave Love <fx@gnu.org>
parents:
diff changeset
389 standard key-names have default definitions built into Emacs; you can
Dave Love <fx@gnu.org>
parents:
diff changeset
390 override these in a terminal-independent manner. The default definitions
Dave Love <fx@gnu.org>
parents:
diff changeset
391 and the conventions for redefining them are in the file `lisp/keypad.el'.
Dave Love <fx@gnu.org>
parents:
diff changeset
392
Dave Love <fx@gnu.org>
parents:
diff changeset
393 These keys on the terminal normally work by sending sequences of
Dave Love <fx@gnu.org>
parents:
diff changeset
394 characters starting with ESC. The exact sequences used vary from
Dave Love <fx@gnu.org>
parents:
diff changeset
395 terminal to terminal. Emacs interprets them in two stages:
Dave Love <fx@gnu.org>
parents:
diff changeset
396 in the first stage, terminal-dependent sequences are mapped into
Dave Love <fx@gnu.org>
parents:
diff changeset
397 the standard key-names; then second stage maps the standard key-names
Dave Love <fx@gnu.org>
parents:
diff changeset
398 into their definitions in a terminal-independent fashion.
Dave Love <fx@gnu.org>
parents:
diff changeset
399
Dave Love <fx@gnu.org>
parents:
diff changeset
400 The terminal-specific file `term/$TERM.el' now is responsible only for
Dave Love <fx@gnu.org>
parents:
diff changeset
401 establishing the mapping from the terminal's escape sequences into
Dave Love <fx@gnu.org>
parents:
diff changeset
402 standard key-names. It no longer knows what Emacs commands are
Dave Love <fx@gnu.org>
parents:
diff changeset
403 assigned to the standard key-names.
Dave Love <fx@gnu.org>
parents:
diff changeset
404
Dave Love <fx@gnu.org>
parents:
diff changeset
405 One other change in terminal-specific files: if the value of the TERM
Dave Love <fx@gnu.org>
parents:
diff changeset
406 variable contains a hyphen, only the part before the first hyphen is
Dave Love <fx@gnu.org>
parents:
diff changeset
407 used in forming the name of the terminal-specific file. Thus, for
Dave Love <fx@gnu.org>
parents:
diff changeset
408 terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
Dave Love <fx@gnu.org>
parents:
diff changeset
409 than `term/aaa-48.el'.
Dave Love <fx@gnu.org>
parents:
diff changeset
410
Dave Love <fx@gnu.org>
parents:
diff changeset
411 * New startup command line options.
Dave Love <fx@gnu.org>
parents:
diff changeset
412
Dave Love <fx@gnu.org>
parents:
diff changeset
413 `-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
Dave Love <fx@gnu.org>
parents:
diff changeset
414 insert the contents of FILE into the current buffer at that point in
Dave Love <fx@gnu.org>
parents:
diff changeset
415 command line processing. This is like using the command M-x insert-file.
Dave Love <fx@gnu.org>
parents:
diff changeset
416
Dave Love <fx@gnu.org>
parents:
diff changeset
417 `-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
Dave Love <fx@gnu.org>
parents:
diff changeset
418 `-f', `-l', `-u' and `-q'.
Dave Love <fx@gnu.org>
parents:
diff changeset
419
Dave Love <fx@gnu.org>
parents:
diff changeset
420 `-nw' means don't use a window system. If you are using a terminal
Dave Love <fx@gnu.org>
parents:
diff changeset
421 emulator on the X window system and you want to run Emacs to work through
Dave Love <fx@gnu.org>
parents:
diff changeset
422 the terminal emulator instead of working directly with the window system,
Dave Love <fx@gnu.org>
parents:
diff changeset
423 use this switch.
Dave Love <fx@gnu.org>
parents:
diff changeset
424
Dave Love <fx@gnu.org>
parents:
diff changeset
425 * Buffer-sorting commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
426
Dave Love <fx@gnu.org>
parents:
diff changeset
427 Various M-x commands whose names start with `sort-' sort parts of
Dave Love <fx@gnu.org>
parents:
diff changeset
428 the region:
Dave Love <fx@gnu.org>
parents:
diff changeset
429
Dave Love <fx@gnu.org>
parents:
diff changeset
430 sort-lines divides the region into lines and sorts them alphabetically.
Dave Love <fx@gnu.org>
parents:
diff changeset
431 sort-pages divides into pages and sorts them alphabetically.
Dave Love <fx@gnu.org>
parents:
diff changeset
432 sort-paragraphs divides into paragraphs and sorts them alphabetically.
Dave Love <fx@gnu.org>
parents:
diff changeset
433 sort-fields divides into lines and sorts them alphabetically
Dave Love <fx@gnu.org>
parents:
diff changeset
434 according to one field in the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
435 The numeric argument specifies which field (counting
Dave Love <fx@gnu.org>
parents:
diff changeset
436 from field 1 at the beginning of the line). Fields in a line
Dave Love <fx@gnu.org>
parents:
diff changeset
437 are separated by whitespace.
Dave Love <fx@gnu.org>
parents:
diff changeset
438 sort-numeric-fields
Dave Love <fx@gnu.org>
parents:
diff changeset
439 is similar but converts the specified fields to numbers
Dave Love <fx@gnu.org>
parents:
diff changeset
440 and sorts them numerically.
Dave Love <fx@gnu.org>
parents:
diff changeset
441 sort-columns divides into lines and sorts them according to the contents
Dave Love <fx@gnu.org>
parents:
diff changeset
442 of a specified range of columns.
Dave Love <fx@gnu.org>
parents:
diff changeset
443
Dave Love <fx@gnu.org>
parents:
diff changeset
444 Refer to the self-documentation of these commands for full usage information.
Dave Love <fx@gnu.org>
parents:
diff changeset
445
Dave Love <fx@gnu.org>
parents:
diff changeset
446 * Changes in various commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
447
Dave Love <fx@gnu.org>
parents:
diff changeset
448 ** `occur' output now serves as a menu. `occur-menu' command deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
449
Dave Love <fx@gnu.org>
parents:
diff changeset
450 `M-x occur' now allows you to move quickly to any of the occurrences
Dave Love <fx@gnu.org>
parents:
diff changeset
451 listed. Select the `*Occur*' buffer that contains the output of `occur',
Dave Love <fx@gnu.org>
parents:
diff changeset
452 move point to the occurrence you want, and type C-c C-c.
Dave Love <fx@gnu.org>
parents:
diff changeset
453 This will move point to the same occurrence in the buffer that the
Dave Love <fx@gnu.org>
parents:
diff changeset
454 occurrences were found in.
Dave Love <fx@gnu.org>
parents:
diff changeset
455
Dave Love <fx@gnu.org>
parents:
diff changeset
456 The command `occur-menu' is thus obsolete, and has been deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
457
Dave Love <fx@gnu.org>
parents:
diff changeset
458 One way to get a list of matching lines without line numbers is to
Dave Love <fx@gnu.org>
parents:
diff changeset
459 copy the text to another buffer and use the command `keep-lines'.
Dave Love <fx@gnu.org>
parents:
diff changeset
460
Dave Love <fx@gnu.org>
parents:
diff changeset
461 ** Incremental search changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
462
Dave Love <fx@gnu.org>
parents:
diff changeset
463 Ordinary and regexp incremental searches now have distinct default
Dave Love <fx@gnu.org>
parents:
diff changeset
464 search strings. Thus, regexp searches recall only previous regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
465 searches.
Dave Love <fx@gnu.org>
parents:
diff changeset
466
Dave Love <fx@gnu.org>
parents:
diff changeset
467 If you exit an incremental search when the search string is empty,
Dave Love <fx@gnu.org>
parents:
diff changeset
468 the old default search string is kept. The default does not become
Dave Love <fx@gnu.org>
parents:
diff changeset
469 empty.
Dave Love <fx@gnu.org>
parents:
diff changeset
470
Dave Love <fx@gnu.org>
parents:
diff changeset
471 Reversing the direction of an incremental search with C-s or C-r
Dave Love <fx@gnu.org>
parents:
diff changeset
472 when the search string is empty now does not get the default search
Dave Love <fx@gnu.org>
parents:
diff changeset
473 string. It leaves the search string empty. A second C-s or C-r
Dave Love <fx@gnu.org>
parents:
diff changeset
474 will get the default search string. As a result, you can do a reverse
Dave Love <fx@gnu.org>
parents:
diff changeset
475 incremental regexp search with C-M-s C-r.
Dave Love <fx@gnu.org>
parents:
diff changeset
476
Dave Love <fx@gnu.org>
parents:
diff changeset
477 If you add a `*', `?' or `\|' to an incremental search regexp,
Dave Love <fx@gnu.org>
parents:
diff changeset
478 point will back up if that is appropriate. For example, if
Dave Love <fx@gnu.org>
parents:
diff changeset
479 you have searched for `ab' and add a `*', point moves to the
Dave Love <fx@gnu.org>
parents:
diff changeset
480 first match for `ab*', which may be before the match for `ab'
Dave Love <fx@gnu.org>
parents:
diff changeset
481 that was previously found.
Dave Love <fx@gnu.org>
parents:
diff changeset
482
Dave Love <fx@gnu.org>
parents:
diff changeset
483 If an incremental search is failing and you ask to repeat it,
Dave Love <fx@gnu.org>
parents:
diff changeset
484 it will start again from the beginning of the buffer (or the end,
Dave Love <fx@gnu.org>
parents:
diff changeset
485 if it is a backward search).
Dave Love <fx@gnu.org>
parents:
diff changeset
486
Dave Love <fx@gnu.org>
parents:
diff changeset
487 The search-controlling parameters `isearch-slow-speed' and
Dave Love <fx@gnu.org>
parents:
diff changeset
488 `isearch-slow-window-lines' have now been renamed to start with
Dave Love <fx@gnu.org>
parents:
diff changeset
489 `search' instead of `isearch'. Now all the parameters' names start
Dave Love <fx@gnu.org>
parents:
diff changeset
490 with `search'.
Dave Love <fx@gnu.org>
parents:
diff changeset
491
Dave Love <fx@gnu.org>
parents:
diff changeset
492 If `search-slow-window-lines' is negative, the slow search window
Dave Love <fx@gnu.org>
parents:
diff changeset
493 is put at the top of the screen, and the absolute value or the
Dave Love <fx@gnu.org>
parents:
diff changeset
494 negative number specifies the height of it.
Dave Love <fx@gnu.org>
parents:
diff changeset
495
Dave Love <fx@gnu.org>
parents:
diff changeset
496 ** Undo changes
Dave Love <fx@gnu.org>
parents:
diff changeset
497
Dave Love <fx@gnu.org>
parents:
diff changeset
498 The undo command now will mark the buffer as unmodified only when it is
Dave Love <fx@gnu.org>
parents:
diff changeset
499 identical to the contents of the visited file.
Dave Love <fx@gnu.org>
parents:
diff changeset
500
Dave Love <fx@gnu.org>
parents:
diff changeset
501 ** C-M-v in minibuffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
502
Dave Love <fx@gnu.org>
parents:
diff changeset
503 If while in the minibuffer you request help in a way that uses a
Dave Love <fx@gnu.org>
parents:
diff changeset
504 window to display something, then until you exit the minibuffer C-M-v
Dave Love <fx@gnu.org>
parents:
diff changeset
505 in the minibuffer window scrolls the window of help.
Dave Love <fx@gnu.org>
parents:
diff changeset
506
Dave Love <fx@gnu.org>
parents:
diff changeset
507 For example, if you request a list of possible completions, C-M-v can
Dave Love <fx@gnu.org>
parents:
diff changeset
508 be used reliably to scroll the completion list.
Dave Love <fx@gnu.org>
parents:
diff changeset
509
Dave Love <fx@gnu.org>
parents:
diff changeset
510 ** M-TAB command.
Dave Love <fx@gnu.org>
parents:
diff changeset
511
Dave Love <fx@gnu.org>
parents:
diff changeset
512 Meta-TAB performs completion on the Emacs Lisp symbol names. The sexp
Dave Love <fx@gnu.org>
parents:
diff changeset
513 in the buffer before point is compared against all existing nontrivial
Dave Love <fx@gnu.org>
parents:
diff changeset
514 Lisp symbols and completed as far as is uniquely determined by them.
Dave Love <fx@gnu.org>
parents:
diff changeset
515 Nontrivial symbols are those with either function definitions, values
Dave Love <fx@gnu.org>
parents:
diff changeset
516 or properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
517
Dave Love <fx@gnu.org>
parents:
diff changeset
518 If there are multiple possibilities for the very next character, a
Dave Love <fx@gnu.org>
parents:
diff changeset
519 list of possible completions is displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
520
Dave Love <fx@gnu.org>
parents:
diff changeset
521 ** Dynamic abbreviation package.
Dave Love <fx@gnu.org>
parents:
diff changeset
522
Dave Love <fx@gnu.org>
parents:
diff changeset
523 The new command Meta-/ expands an abbreviation in the buffer before point
Dave Love <fx@gnu.org>
parents:
diff changeset
524 by searching the buffer for words that start with the abbreviation.
Dave Love <fx@gnu.org>
parents:
diff changeset
525
Dave Love <fx@gnu.org>
parents:
diff changeset
526 ** Changes in saving kbd macros.
Dave Love <fx@gnu.org>
parents:
diff changeset
527
Dave Love <fx@gnu.org>
parents:
diff changeset
528 The commands `write-kbd-macro' and `append-kbd-macro' have been
Dave Love <fx@gnu.org>
parents:
diff changeset
529 deleted. The way to save a keyboard macro is to use the new command
Dave Love <fx@gnu.org>
parents:
diff changeset
530 `insert-kbd-macro', which inserts Lisp code to define the macro as
Dave Love <fx@gnu.org>
parents:
diff changeset
531 it is currently defined into the buffer before point. Visit a Lisp
Dave Love <fx@gnu.org>
parents:
diff changeset
532 file such as your Emacs init file `~/.emacs', insert the macro
Dave Love <fx@gnu.org>
parents:
diff changeset
533 definition (perhaps deleting an old definition for the same macro)
Dave Love <fx@gnu.org>
parents:
diff changeset
534 and then save the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
535
Dave Love <fx@gnu.org>
parents:
diff changeset
536 ** C-x ' command.
Dave Love <fx@gnu.org>
parents:
diff changeset
537
Dave Love <fx@gnu.org>
parents:
diff changeset
538 The new command C-x ' (expand-abbrev) expands the word before point as
Dave Love <fx@gnu.org>
parents:
diff changeset
539 an abbrev, even if abbrev-mode is not turned on.
Dave Love <fx@gnu.org>
parents:
diff changeset
540
Dave Love <fx@gnu.org>
parents:
diff changeset
541 ** Sending to inferior Lisp.
Dave Love <fx@gnu.org>
parents:
diff changeset
542
Dave Love <fx@gnu.org>
parents:
diff changeset
543 The command C-M-x in Lisp mode, which sends the current defun to
Dave Love <fx@gnu.org>
parents:
diff changeset
544 an inferior Lisp process, now works by writing the text into a temporary
Dave Love <fx@gnu.org>
parents:
diff changeset
545 file and actually sending only a `load'-form to load the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
546 As a result, it avoids the Unix bugs that used to strike when the
Dave Love <fx@gnu.org>
parents:
diff changeset
547 text was above a certain length.
Dave Love <fx@gnu.org>
parents:
diff changeset
548
Dave Love <fx@gnu.org>
parents:
diff changeset
549 With a prefix argument, this command now makes the inferior Lisp buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
550 appear on the screen and scrolls it so that the bottom is showing.
Dave Love <fx@gnu.org>
parents:
diff changeset
551
Dave Love <fx@gnu.org>
parents:
diff changeset
552 Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
Dave Love <fx@gnu.org>
parents:
diff changeset
553 exist to customize these feature for different Lisp implementations.
Dave Love <fx@gnu.org>
parents:
diff changeset
554
Dave Love <fx@gnu.org>
parents:
diff changeset
555 ** C-x n p now disabled.
Dave Love <fx@gnu.org>
parents:
diff changeset
556
Dave Love <fx@gnu.org>
parents:
diff changeset
557 The command C-x n p, a nonrecomended command which narrows to the current
Dave Love <fx@gnu.org>
parents:
diff changeset
558 page, is now initially disabled like C-x n n.
Dave Love <fx@gnu.org>
parents:
diff changeset
559
Dave Love <fx@gnu.org>
parents:
diff changeset
560 * Dealing with files.
Dave Love <fx@gnu.org>
parents:
diff changeset
561
Dave Love <fx@gnu.org>
parents:
diff changeset
562 ** C-x C-v generalized
Dave Love <fx@gnu.org>
parents:
diff changeset
563
Dave Love <fx@gnu.org>
parents:
diff changeset
564 This command is now allowed even if the current buffer is not visiting
Dave Love <fx@gnu.org>
parents:
diff changeset
565 a file. As usual, it kills the current buffer and replaces it with a
Dave Love <fx@gnu.org>
parents:
diff changeset
566 newly found file.
Dave Love <fx@gnu.org>
parents:
diff changeset
567
Dave Love <fx@gnu.org>
parents:
diff changeset
568 ** M-x recover-file improved; auto save file names changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
569
Dave Love <fx@gnu.org>
parents:
diff changeset
570 M-x recover-file now checks whether the last auto-save file is more
Dave Love <fx@gnu.org>
parents:
diff changeset
571 recent than the real visited file before offering to read in the
Dave Love <fx@gnu.org>
parents:
diff changeset
572 auto-save file. If the auto-save file is newer, a directory listing
Dave Love <fx@gnu.org>
parents:
diff changeset
573 containing the two files is displayed while you are asked whether you
Dave Love <fx@gnu.org>
parents:
diff changeset
574 want the auto save file.
Dave Love <fx@gnu.org>
parents:
diff changeset
575
Dave Love <fx@gnu.org>
parents:
diff changeset
576 Visiting a file also makes this check. If the auto-save file is more recent,
Dave Love <fx@gnu.org>
parents:
diff changeset
577 a message is printed suggesting that you consider using M-x recover file.
Dave Love <fx@gnu.org>
parents:
diff changeset
578
Dave Love <fx@gnu.org>
parents:
diff changeset
579 Auto save file names now by default have a `#' at the end as well
Dave Love <fx@gnu.org>
parents:
diff changeset
580 as at the beginning. This is so that `*.c' in a shell command
Dave Love <fx@gnu.org>
parents:
diff changeset
581 will never match auto save files.
Dave Love <fx@gnu.org>
parents:
diff changeset
582
Dave Love <fx@gnu.org>
parents:
diff changeset
583 On VMS, auto save file names are made by appending `_$' at the front
Dave Love <fx@gnu.org>
parents:
diff changeset
584 and `$' at the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
585
Dave Love <fx@gnu.org>
parents:
diff changeset
586 When you change the visited file name of a buffer, the auto save file
Dave Love <fx@gnu.org>
parents:
diff changeset
587 is now renamed to belong to the new visited file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
588
Dave Love <fx@gnu.org>
parents:
diff changeset
589 You can customize the way auto save file names are made by redefining
Dave Love <fx@gnu.org>
parents:
diff changeset
590 the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
Dave Love <fx@gnu.org>
parents:
diff changeset
591 both of which are defined in `files.el'.
Dave Love <fx@gnu.org>
parents:
diff changeset
592
Dave Love <fx@gnu.org>
parents:
diff changeset
593 ** Modifying a buffer whose file is changed on disk is detected instantly.
Dave Love <fx@gnu.org>
parents:
diff changeset
594
Dave Love <fx@gnu.org>
parents:
diff changeset
595 On systems where clash detection (locking of files being edited) is
Dave Love <fx@gnu.org>
parents:
diff changeset
596 implemented, Emacs also checks the first time you modify a buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
597 whether the file has changed on disk since it was last visited or saved.
Dave Love <fx@gnu.org>
parents:
diff changeset
598 If it has, you are asked to confirm that you want to change the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
599
Dave Love <fx@gnu.org>
parents:
diff changeset
600 ** Exiting Emacs offers to save `*mail*'.
Dave Love <fx@gnu.org>
parents:
diff changeset
601
Dave Love <fx@gnu.org>
parents:
diff changeset
602 Emacs can now know about buffers that it should offer to save on exit
Dave Love <fx@gnu.org>
parents:
diff changeset
603 even though they are not visiting files. This is done for any buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
604 which has a non-nil local value of `buffer-offer-save'. By default,
Dave Love <fx@gnu.org>
parents:
diff changeset
605 Mail mode provides such a local value.
Dave Love <fx@gnu.org>
parents:
diff changeset
606
Dave Love <fx@gnu.org>
parents:
diff changeset
607 ** Backup file changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
608
Dave Love <fx@gnu.org>
parents:
diff changeset
609 If a backup file cannot be written in the directory of the visited file
Dave Love <fx@gnu.org>
parents:
diff changeset
610 due to fascist file protection, a backup file is now written in your home
Dave Love <fx@gnu.org>
parents:
diff changeset
611 directory as `~/%backup%~'. Only one such file is made, ever, so only
Dave Love <fx@gnu.org>
parents:
diff changeset
612 the most recently made such backup is available.
Dave Love <fx@gnu.org>
parents:
diff changeset
613
Dave Love <fx@gnu.org>
parents:
diff changeset
614 When backup files are made by copying, the last-modification time of the
Dave Love <fx@gnu.org>
parents:
diff changeset
615 original file is now preserved in the backup copy.
Dave Love <fx@gnu.org>
parents:
diff changeset
616
Dave Love <fx@gnu.org>
parents:
diff changeset
617 ** Visiting remote files.
Dave Love <fx@gnu.org>
parents:
diff changeset
618
Dave Love <fx@gnu.org>
parents:
diff changeset
619 On an internet host, you can now visit and save files on any other
Dave Love <fx@gnu.org>
parents:
diff changeset
620 internet host directly from Emacs with the commands M-x ftp-find-file
Dave Love <fx@gnu.org>
parents:
diff changeset
621 and M-x ftp-write-file. Specify an argument of the form HOST:FILENAME.
Dave Love <fx@gnu.org>
parents:
diff changeset
622 Since standard internet FTP is used, the other host may be any kind
Dave Love <fx@gnu.org>
parents:
diff changeset
623 of machine and is not required to have any special facilities.
Dave Love <fx@gnu.org>
parents:
diff changeset
624
Dave Love <fx@gnu.org>
parents:
diff changeset
625 The first time any one remote host is accessed, you will be asked to
Dave Love <fx@gnu.org>
parents:
diff changeset
626 give the user name and password for use on that host. FTP is reinvoked
Dave Love <fx@gnu.org>
parents:
diff changeset
627 each time you ask to use it, but previously specified user names and
Dave Love <fx@gnu.org>
parents:
diff changeset
628 passwords are remembered automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
629
Dave Love <fx@gnu.org>
parents:
diff changeset
630 ** Dired `g' command.
Dave Love <fx@gnu.org>
parents:
diff changeset
631
Dave Love <fx@gnu.org>
parents:
diff changeset
632 `g' in Dired mode is equivalent to M-x revert-buffer; it causes the
Dave Love <fx@gnu.org>
parents:
diff changeset
633 current contents of the same directory to be read in.
Dave Love <fx@gnu.org>
parents:
diff changeset
634
Dave Love <fx@gnu.org>
parents:
diff changeset
635 * Changes in major modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
636
Dave Love <fx@gnu.org>
parents:
diff changeset
637 ** C mode indentation change.
Dave Love <fx@gnu.org>
parents:
diff changeset
638
Dave Love <fx@gnu.org>
parents:
diff changeset
639 The binding of Linefeed is no longer changed by C mode. It once again
Dave Love <fx@gnu.org>
parents:
diff changeset
640 has its normal meaning, which is to insert a newline and then indent
Dave Love <fx@gnu.org>
parents:
diff changeset
641 afterward.
Dave Love <fx@gnu.org>
parents:
diff changeset
642
Dave Love <fx@gnu.org>
parents:
diff changeset
643 The old definition did one additional thing: it reindented the line
Dave Love <fx@gnu.org>
parents:
diff changeset
644 before the new newline. This has been removed because it made the
Dave Love <fx@gnu.org>
parents:
diff changeset
645 command twice as slow. The only time it was really useful was after the
Dave Love <fx@gnu.org>
parents:
diff changeset
646 insertion of an `else', since the fact of starting with `else' may change
Dave Love <fx@gnu.org>
parents:
diff changeset
647 the way that line is indented. Now you will have to type TAB again
Dave Love <fx@gnu.org>
parents:
diff changeset
648 yourself to reindent the `else' properly.
Dave Love <fx@gnu.org>
parents:
diff changeset
649
Dave Love <fx@gnu.org>
parents:
diff changeset
650 If the variable `c-tab-always-indent' is set to `nil', the TAB command
Dave Love <fx@gnu.org>
parents:
diff changeset
651 in C mode, with no argument, will just insert a tab character if there
Dave Love <fx@gnu.org>
parents:
diff changeset
652 is non-whitespace preceding point on the current line. Giving it a
Dave Love <fx@gnu.org>
parents:
diff changeset
653 prefix argument will force reindentation of the line (as well as
Dave Love <fx@gnu.org>
parents:
diff changeset
654 of the compound statement that begins after point, if any).
Dave Love <fx@gnu.org>
parents:
diff changeset
655
Dave Love <fx@gnu.org>
parents:
diff changeset
656 ** Fortran mode now exists.
Dave Love <fx@gnu.org>
parents:
diff changeset
657
Dave Love <fx@gnu.org>
parents:
diff changeset
658 This mode provides commands for motion and indentation of Fortran code,
Dave Love <fx@gnu.org>
parents:
diff changeset
659 plus built-in abbrevs for Fortran keywords. For details, see the manual
Dave Love <fx@gnu.org>
parents:
diff changeset
660 or the on-line documentation of the command `fortran-mode'.
Dave Love <fx@gnu.org>
parents:
diff changeset
661
Dave Love <fx@gnu.org>
parents:
diff changeset
662 ** Scribe mode now exists.
Dave Love <fx@gnu.org>
parents:
diff changeset
663
Dave Love <fx@gnu.org>
parents:
diff changeset
664 This mode does something useful for editing files of Scribe input.
Dave Love <fx@gnu.org>
parents:
diff changeset
665 It is used automatically for files with names ending in ".mss".
Dave Love <fx@gnu.org>
parents:
diff changeset
666
Dave Love <fx@gnu.org>
parents:
diff changeset
667 ** Modula2 and Prolog modes now exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
668
Dave Love <fx@gnu.org>
parents:
diff changeset
669 These modes are for editing programs in the languages of the same names.
Dave Love <fx@gnu.org>
parents:
diff changeset
670 They can be selected with M-x modula-2-mode and M-x prolog-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
671
Dave Love <fx@gnu.org>
parents:
diff changeset
672 ** Telnet mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
673
Dave Love <fx@gnu.org>
parents:
diff changeset
674 The telnet mode special commands have now been assigned to C-c keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
675 Most of them are the same as in Shell mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
676
Dave Love <fx@gnu.org>
parents:
diff changeset
677 ** Picture mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
678
Dave Love <fx@gnu.org>
parents:
diff changeset
679 The special picture-mode commands to specify the direction of cursor
Dave Love <fx@gnu.org>
parents:
diff changeset
680 motion after insertion have been moved to C-c keys. The commands to
Dave Love <fx@gnu.org>
parents:
diff changeset
681 specify diagonal motion were already C-c keys; they are unchanged.
Dave Love <fx@gnu.org>
parents:
diff changeset
682 The keys to specify horizontal or vertical motion are now
Dave Love <fx@gnu.org>
parents:
diff changeset
683 C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
Dave Love <fx@gnu.org>
parents:
diff changeset
684
Dave Love <fx@gnu.org>
parents:
diff changeset
685 ** Nroff mode comments.
Dave Love <fx@gnu.org>
parents:
diff changeset
686
Dave Love <fx@gnu.org>
parents:
diff changeset
687 Comments are now supported in Nroff mode. The standard comment commands
Dave Love <fx@gnu.org>
parents:
diff changeset
688 such as M-; and C-x ; know how to insert, align and delete comments
Dave Love <fx@gnu.org>
parents:
diff changeset
689 that start with backslash-doublequote.
Dave Love <fx@gnu.org>
parents:
diff changeset
690
Dave Love <fx@gnu.org>
parents:
diff changeset
691 ** LaTeX mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
692
Dave Love <fx@gnu.org>
parents:
diff changeset
693 LaTeX mode now exists. Use M-x latex-mode to select this mode, and
Dave Love <fx@gnu.org>
parents:
diff changeset
694 M-x plain-tex-mode to select the previously existing mode for Plain
Dave Love <fx@gnu.org>
parents:
diff changeset
695 TeX. M-x tex-mode attempts to examine the contents of the buffer and
Dave Love <fx@gnu.org>
parents:
diff changeset
696 choose between latex-mode and plain-tex-mode accordingly; if the
Dave Love <fx@gnu.org>
parents:
diff changeset
697 buffer is empty or it cannot tell, the variable `TeX-default-mode'
Dave Love <fx@gnu.org>
parents:
diff changeset
698 controls the choice. Its value should be the symbol for the mode to
Dave Love <fx@gnu.org>
parents:
diff changeset
699 be used.
Dave Love <fx@gnu.org>
parents:
diff changeset
700
Dave Love <fx@gnu.org>
parents:
diff changeset
701 The facilities for running TeX on all or part of the buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
702 work with LaTeX as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
703
Dave Love <fx@gnu.org>
parents:
diff changeset
704 Some new commands available in both modes:
Dave Love <fx@gnu.org>
parents:
diff changeset
705
Dave Love <fx@gnu.org>
parents:
diff changeset
706 C-c C-l recenter the window showing the TeX output buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
707 so most recent line of output can be seen.
Dave Love <fx@gnu.org>
parents:
diff changeset
708 C-c C-k kill the TeX subprocess.
Dave Love <fx@gnu.org>
parents:
diff changeset
709 C-c C-q show the printer queue.
Dave Love <fx@gnu.org>
parents:
diff changeset
710 C-c C-f close a block (appropriate for LaTeX only).
Dave Love <fx@gnu.org>
parents:
diff changeset
711 If the current line contains a \begin{...},
Dave Love <fx@gnu.org>
parents:
diff changeset
712 this inserts an \end{...} on the following line
Dave Love <fx@gnu.org>
parents:
diff changeset
713 and puts point on a blank line between them.
Dave Love <fx@gnu.org>
parents:
diff changeset
714
Dave Love <fx@gnu.org>
parents:
diff changeset
715 ** Outline mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
716
Dave Love <fx@gnu.org>
parents:
diff changeset
717 Invisible lines in outline mode are now indicated by `...' at the
Dave Love <fx@gnu.org>
parents:
diff changeset
718 end of the previous visible line.
Dave Love <fx@gnu.org>
parents:
diff changeset
719
Dave Love <fx@gnu.org>
parents:
diff changeset
720 The special outline heading motion commands are now all on C-c keys.
Dave Love <fx@gnu.org>
parents:
diff changeset
721 A few new ones have been added. Here is a full list:
Dave Love <fx@gnu.org>
parents:
diff changeset
722
Dave Love <fx@gnu.org>
parents:
diff changeset
723 C-c C-n Move to next visible heading (formerly M-})
Dave Love <fx@gnu.org>
parents:
diff changeset
724 C-c C-p Move to previous visible heading (formerly M-{)
Dave Love <fx@gnu.org>
parents:
diff changeset
725 C-c C-f Move to next visible heading at the same level.
Dave Love <fx@gnu.org>
parents:
diff changeset
726 Thus, if point is on a level-2 heading line,
Dave Love <fx@gnu.org>
parents:
diff changeset
727 this command moves to the next visible level-2 heading.
Dave Love <fx@gnu.org>
parents:
diff changeset
728 C-c C-b Move to previous visible heading at the same level.
Dave Love <fx@gnu.org>
parents:
diff changeset
729 C-c C-u Move up to previous visible heading at a higher level.
Dave Love <fx@gnu.org>
parents:
diff changeset
730
Dave Love <fx@gnu.org>
parents:
diff changeset
731 The variable `outline-regexp' now controls recognition of heading lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
732 Any line whose beginning matches this regexp is a heading line.
Dave Love <fx@gnu.org>
parents:
diff changeset
733 The depth in outline structure is determined by the length of
Dave Love <fx@gnu.org>
parents:
diff changeset
734 the string that matches.
Dave Love <fx@gnu.org>
parents:
diff changeset
735
Dave Love <fx@gnu.org>
parents:
diff changeset
736 A line starting with a ^L (formfeed) is now by default considered
Dave Love <fx@gnu.org>
parents:
diff changeset
737 a header line.
Dave Love <fx@gnu.org>
parents:
diff changeset
738
Dave Love <fx@gnu.org>
parents:
diff changeset
739 * Mail reading and sending.
Dave Love <fx@gnu.org>
parents:
diff changeset
740
Dave Love <fx@gnu.org>
parents:
diff changeset
741 ** MH-E changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
742
Dave Love <fx@gnu.org>
parents:
diff changeset
743 MH-E has been extensively modified and improved since the v17 release.
Dave Love <fx@gnu.org>
parents:
diff changeset
744 It contains many new features, including commands to: extracted failed
Dave Love <fx@gnu.org>
parents:
diff changeset
745 messages, kill a draft message, undo changes to a mail folder, monitor
Dave Love <fx@gnu.org>
parents:
diff changeset
746 delivery of a letter, print multiple messages, page digests backwards,
Dave Love <fx@gnu.org>
parents:
diff changeset
747 insert signatures, and burst digests. Also, many commands have been
Dave Love <fx@gnu.org>
parents:
diff changeset
748 made to able to deal with named sequences of messages, instead of
Dave Love <fx@gnu.org>
parents:
diff changeset
749 single messages. MH-E also has had numerous bugs fixed and commands
Dave Love <fx@gnu.org>
parents:
diff changeset
750 made to run faster. Furthermore, its keybindings have been changed to
Dave Love <fx@gnu.org>
parents:
diff changeset
751 be compatible with Rmail and the rest of GNU Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
752
Dave Love <fx@gnu.org>
parents:
diff changeset
753 ** Mail mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
754
Dave Love <fx@gnu.org>
parents:
diff changeset
755 The C-c commands of mail mode have been rearranged:
Dave Love <fx@gnu.org>
parents:
diff changeset
756
Dave Love <fx@gnu.org>
parents:
diff changeset
757 C-c s, C-c c, C-c t and C-c b (move point to various header fields)
Dave Love <fx@gnu.org>
parents:
diff changeset
758 have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
Dave Love <fx@gnu.org>
parents:
diff changeset
759 C-f C-b. C-c C-f is for "field".
Dave Love <fx@gnu.org>
parents:
diff changeset
760
Dave Love <fx@gnu.org>
parents:
diff changeset
761 C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
Dave Love <fx@gnu.org>
parents:
diff changeset
762
Dave Love <fx@gnu.org>
parents:
diff changeset
763 Thus, C-c LETTER is always unassigned.
Dave Love <fx@gnu.org>
parents:
diff changeset
764
Dave Love <fx@gnu.org>
parents:
diff changeset
765 ** Rmail C-r command changed to w.
Dave Love <fx@gnu.org>
parents:
diff changeset
766
Dave Love <fx@gnu.org>
parents:
diff changeset
767 The Rmail command to edit the current message is now `w'. This change
Dave Love <fx@gnu.org>
parents:
diff changeset
768 has been made because people frequently type C-r while in Rmail hoping
Dave Love <fx@gnu.org>
parents:
diff changeset
769 to do a reverse incremental search. That now works.
Dave Love <fx@gnu.org>
parents:
diff changeset
770
Dave Love <fx@gnu.org>
parents:
diff changeset
771 * Rnews changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
772
Dave Love <fx@gnu.org>
parents:
diff changeset
773 ** Caesar rotation added.
Dave Love <fx@gnu.org>
parents:
diff changeset
774
Dave Love <fx@gnu.org>
parents:
diff changeset
775 The function news-caesar-buffer-body performs the rot13 code on the
Dave Love <fx@gnu.org>
parents:
diff changeset
776 body of a news message. You can also specify the number to rotate by,
Dave Love <fx@gnu.org>
parents:
diff changeset
777 as a prefix argument. The function is bound to C-c C-r in both
Dave Love <fx@gnu.org>
parents:
diff changeset
778 News mode and News Reply mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
779
Dave Love <fx@gnu.org>
parents:
diff changeset
780 ** rmail-output command added.
Dave Love <fx@gnu.org>
parents:
diff changeset
781
Dave Love <fx@gnu.org>
parents:
diff changeset
782 The C-o command has been bound to rmail-output in news-mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
783 This allows one to append an article to a file which is in either Unix
Dave Love <fx@gnu.org>
parents:
diff changeset
784 mail or RMAIL format.
Dave Love <fx@gnu.org>
parents:
diff changeset
785
Dave Love <fx@gnu.org>
parents:
diff changeset
786 ** news-reply-mode changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
787
Dave Love <fx@gnu.org>
parents:
diff changeset
788 The C-c commands of news reply mode have been rearranged and changed,
Dave Love <fx@gnu.org>
parents:
diff changeset
789 so that C-c LETTER is always unassigned:
Dave Love <fx@gnu.org>
parents:
diff changeset
790
Dave Love <fx@gnu.org>
parents:
diff changeset
791 C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
Dave Love <fx@gnu.org>
parents:
diff changeset
792
Dave Love <fx@gnu.org>
parents:
diff changeset
793 C-c c, C-c t, and C-c b (move to various mail header fields) have been
Dave Love <fx@gnu.org>
parents:
diff changeset
794 deleted (they make no sense for posting and replying to USENET).
Dave Love <fx@gnu.org>
parents:
diff changeset
795
Dave Love <fx@gnu.org>
parents:
diff changeset
796 C-c s (move to Subject: header field) has been reassigned as C-c C-f
Dave Love <fx@gnu.org>
parents:
diff changeset
797 C-s. C-c C-f is for "field". Several additional move to news header
Dave Love <fx@gnu.org>
parents:
diff changeset
798 field commands have been added.
Dave Love <fx@gnu.org>
parents:
diff changeset
799
Dave Love <fx@gnu.org>
parents:
diff changeset
800 The local news-reply-mode bindings now look like this:
Dave Love <fx@gnu.org>
parents:
diff changeset
801
Dave Love <fx@gnu.org>
parents:
diff changeset
802 C-c C-s news-inews (post the message) C-c C-c news-inews
Dave Love <fx@gnu.org>
parents:
diff changeset
803 C-c C-f move to a header field (and create it if there isn't):
Dave Love <fx@gnu.org>
parents:
diff changeset
804 C-c C-f C-n move to Newsgroups: C-c C-f C-s move to Subj:
Dave Love <fx@gnu.org>
parents:
diff changeset
805 C-c C-f C-f move to Followup-To: C-c C-f C-k move to Keywords:
Dave Love <fx@gnu.org>
parents:
diff changeset
806 C-c C-f C-d move to Distribution: C-c C-f C-a move to Summary:
Dave Love <fx@gnu.org>
parents:
diff changeset
807 C-c C-y news-reply-yank-original (insert current message, in NEWS).
Dave Love <fx@gnu.org>
parents:
diff changeset
808 C-c C-q mail-fill-yanked-message (fill what was yanked).
Dave Love <fx@gnu.org>
parents:
diff changeset
809 C-c C-r caesar rotate all letters by 13 places in the article's body (rot13).
Dave Love <fx@gnu.org>
parents:
diff changeset
810
Dave Love <fx@gnu.org>
parents:
diff changeset
811 * Changes in tags handling.
Dave Love <fx@gnu.org>
parents:
diff changeset
812
Dave Love <fx@gnu.org>
parents:
diff changeset
813 ** M-. (`find-tag') and similar commands now look first for an exact
Dave Love <fx@gnu.org>
parents:
diff changeset
814 match in the tags table, and try substring matches only afterward.
Dave Love <fx@gnu.org>
parents:
diff changeset
815
Dave Love <fx@gnu.org>
parents:
diff changeset
816 ** The new command `find-tag-regexp' visits successively the tags that
Dave Love <fx@gnu.org>
parents:
diff changeset
817 match a specified regular expression.
Dave Love <fx@gnu.org>
parents:
diff changeset
818
Dave Love <fx@gnu.org>
parents:
diff changeset
819 ** You can now use more than one tags table. Using `visit-tags-table'
Dave Love <fx@gnu.org>
parents:
diff changeset
820 to load a new tags table does not discard the other tables previously
Dave Love <fx@gnu.org>
parents:
diff changeset
821 loaded. The other tags commands use all the tags tables that are loaded;
Dave Love <fx@gnu.org>
parents:
diff changeset
822 the first tags table used is the one that mentions the current visited file.
Dave Love <fx@gnu.org>
parents:
diff changeset
823
Dave Love <fx@gnu.org>
parents:
diff changeset
824 ** Tags tables can now be told to "include" other tags tables. This means
Dave Love <fx@gnu.org>
parents:
diff changeset
825 the tags table gives the file names of other tags tables. Tags command
Dave Love <fx@gnu.org>
parents:
diff changeset
826 then search included tags tables after the including table (but before any
Dave Love <fx@gnu.org>
parents:
diff changeset
827 other tags tables you have loaded). Included tags tables can make it much
Dave Love <fx@gnu.org>
parents:
diff changeset
828 easier and more efficient to maintain a tags table for a large package with
Dave Love <fx@gnu.org>
parents:
diff changeset
829 many subdirectories--there is one tags table for each subdirectory, and a
Dave Love <fx@gnu.org>
parents:
diff changeset
830 master tags table that includes each subdirectory table. You use `-i'
Dave Love <fx@gnu.org>
parents:
diff changeset
831 options to `etags' when creating the tags table to give the file names of
Dave Love <fx@gnu.org>
parents:
diff changeset
832 the included tables.
Dave Love <fx@gnu.org>
parents:
diff changeset
833
Dave Love <fx@gnu.org>
parents:
diff changeset
834 ** You can now use the tags table for completion of names during
Dave Love <fx@gnu.org>
parents:
diff changeset
835 ordinary editing. The command M-TAB (except in Emacs Lisp mode)
Dave Love <fx@gnu.org>
parents:
diff changeset
836 completes the identifier in the buffer before point, using the set of
Dave Love <fx@gnu.org>
parents:
diff changeset
837 all tags as the list of possible completions.
Dave Love <fx@gnu.org>
parents:
diff changeset
838
Dave Love <fx@gnu.org>
parents:
diff changeset
839 ** `tags-query-replace' and `tags-search' changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
840
Dave Love <fx@gnu.org>
parents:
diff changeset
841 These functions no longer permanently create buffers for files that
Dave Love <fx@gnu.org>
parents:
diff changeset
842 are searched but that do not contain any matches for the search
Dave Love <fx@gnu.org>
parents:
diff changeset
843 pattern.
Dave Love <fx@gnu.org>
parents:
diff changeset
844
Dave Love <fx@gnu.org>
parents:
diff changeset
845 * Existing Emacs usable as a server.
Dave Love <fx@gnu.org>
parents:
diff changeset
846
Dave Love <fx@gnu.org>
parents:
diff changeset
847 Programs such as mailers that invoke "the editor" as an inferior
Dave Love <fx@gnu.org>
parents:
diff changeset
848 to edit some text can now be told to use an existing Emacs process
Dave Love <fx@gnu.org>
parents:
diff changeset
849 instead of creating a new editor.
Dave Love <fx@gnu.org>
parents:
diff changeset
850
Dave Love <fx@gnu.org>
parents:
diff changeset
851 To do this, you must have an Emacs process running and capable of
Dave Love <fx@gnu.org>
parents:
diff changeset
852 doing terminal I/O at the time you want to invoke it. This means that
Dave Love <fx@gnu.org>
parents:
diff changeset
853 either you are using a window system and give Emacs a separate window
Dave Love <fx@gnu.org>
parents:
diff changeset
854 or you run the other programs as inferiors of Emacs (such as, using
Dave Love <fx@gnu.org>
parents:
diff changeset
855 M-x shell).
Dave Love <fx@gnu.org>
parents:
diff changeset
856
Dave Love <fx@gnu.org>
parents:
diff changeset
857 First prepare the existing Emacs process by loading the `server'
Dave Love <fx@gnu.org>
parents:
diff changeset
858 library and executing M-x server-start. (Your .emacs can do this
Dave Love <fx@gnu.org>
parents:
diff changeset
859 automatically.)
Dave Love <fx@gnu.org>
parents:
diff changeset
860
Dave Love <fx@gnu.org>
parents:
diff changeset
861 Now tell the other programs to use, as "the editor", the Emacs client
Dave Love <fx@gnu.org>
parents:
diff changeset
862 program (etc/emacsclient, located in the same directory as this file).
Dave Love <fx@gnu.org>
parents:
diff changeset
863 This can be done by setting the environment variable EDITOR.
Dave Love <fx@gnu.org>
parents:
diff changeset
864
Dave Love <fx@gnu.org>
parents:
diff changeset
865 When another program invokes the emacsclient as "the editor", the
Dave Love <fx@gnu.org>
parents:
diff changeset
866 client actually transfers the file names to be edited to the existing
Dave Love <fx@gnu.org>
parents:
diff changeset
867 Emacs, which automatically visits the files.
Dave Love <fx@gnu.org>
parents:
diff changeset
868
Dave Love <fx@gnu.org>
parents:
diff changeset
869 When you are done editing a buffer for a client, do C-x # (server-edit).
Dave Love <fx@gnu.org>
parents:
diff changeset
870 This marks that buffer as done, and selects the next buffer that the client
Dave Love <fx@gnu.org>
parents:
diff changeset
871 asked for. When all the buffers requested by a client are marked in this
Dave Love <fx@gnu.org>
parents:
diff changeset
872 way, Emacs tells the client program to exit, so that the program that
Dave Love <fx@gnu.org>
parents:
diff changeset
873 invoked "the editor" will resume execution.
Dave Love <fx@gnu.org>
parents:
diff changeset
874
Dave Love <fx@gnu.org>
parents:
diff changeset
875 You can only have one server Emacs at a time, but multiple client programs
Dave Love <fx@gnu.org>
parents:
diff changeset
876 can put in requests at the same time.
Dave Love <fx@gnu.org>
parents:
diff changeset
877
Dave Love <fx@gnu.org>
parents:
diff changeset
878 The client/server work only on Berkeley Unix, since they use the Berkeley
Dave Love <fx@gnu.org>
parents:
diff changeset
879 sockets mechanism for their communication.
Dave Love <fx@gnu.org>
parents:
diff changeset
880
Dave Love <fx@gnu.org>
parents:
diff changeset
881 Changes in Lisp programming in Emacs version 18.
Dave Love <fx@gnu.org>
parents:
diff changeset
882
Dave Love <fx@gnu.org>
parents:
diff changeset
883 * Init file changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
884
Dave Love <fx@gnu.org>
parents:
diff changeset
885 ** Suffixes no longer accepted on `.emacs'.
Dave Love <fx@gnu.org>
parents:
diff changeset
886
Dave Love <fx@gnu.org>
parents:
diff changeset
887 Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
Dave Love <fx@gnu.org>
parents:
diff changeset
888 in place of `.emacs'. This is so that it will take less time to
Dave Love <fx@gnu.org>
parents:
diff changeset
889 find `.emacs'. If you want to compile your init file, give it another
Dave Love <fx@gnu.org>
parents:
diff changeset
890 name and make `.emacs' a link to the `.elc' file, or make it contain
Dave Love <fx@gnu.org>
parents:
diff changeset
891 a call to `load' to load the `.elc' file.
Dave Love <fx@gnu.org>
parents:
diff changeset
892
Dave Love <fx@gnu.org>
parents:
diff changeset
893 ** `default-profile' renamed to `default', and loaded after `.emacs'.
Dave Love <fx@gnu.org>
parents:
diff changeset
894
Dave Love <fx@gnu.org>
parents:
diff changeset
895 It used to be the case that the file `default-profile' was loaded if
Dave Love <fx@gnu.org>
parents:
diff changeset
896 and only if `.emacs' was not found.
Dave Love <fx@gnu.org>
parents:
diff changeset
897
Dave Love <fx@gnu.org>
parents:
diff changeset
898 Now the name `default-profile' is not used at all. Instead, a library
Dave Love <fx@gnu.org>
parents:
diff changeset
899 named `default' is loaded after the `.emacs' file. `default' is loaded
Dave Love <fx@gnu.org>
parents:
diff changeset
900 whether the `.emacs' file exists or not. However, loading of `default'
Dave Love <fx@gnu.org>
parents:
diff changeset
901 can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
Dave Love <fx@gnu.org>
parents:
diff changeset
902
Dave Love <fx@gnu.org>
parents:
diff changeset
903 In fact, you would call the default file `default.el' and probably would
Dave Love <fx@gnu.org>
parents:
diff changeset
904 byte-compile it to speed execution.
Dave Love <fx@gnu.org>
parents:
diff changeset
905
Dave Love <fx@gnu.org>
parents:
diff changeset
906 Note that for most purposes you are better off using a `site-init' library
Dave Love <fx@gnu.org>
parents:
diff changeset
907 since that will be loaded before the runnable Emacs is dumped. By using
Dave Love <fx@gnu.org>
parents:
diff changeset
908 a `site-init' library, you avoid taking up time each time Emacs is started.
Dave Love <fx@gnu.org>
parents:
diff changeset
909
Dave Love <fx@gnu.org>
parents:
diff changeset
910 ** inhibit-command-line has been eliminated.
Dave Love <fx@gnu.org>
parents:
diff changeset
911
Dave Love <fx@gnu.org>
parents:
diff changeset
912 This variable used to exist for .emacs files to set. It has been
Dave Love <fx@gnu.org>
parents:
diff changeset
913 eliminated because you can get the same effect by setting
Dave Love <fx@gnu.org>
parents:
diff changeset
914 command-line-args to nil and setting inhibit-startup-message to t.
Dave Love <fx@gnu.org>
parents:
diff changeset
915
Dave Love <fx@gnu.org>
parents:
diff changeset
916 * `apply' is more general.
Dave Love <fx@gnu.org>
parents:
diff changeset
917
Dave Love <fx@gnu.org>
parents:
diff changeset
918 `apply' now accepts any number of arguments. The first one is a function;
Dave Love <fx@gnu.org>
parents:
diff changeset
919 the rest are individual arguments to pass to that function, except for the
Dave Love <fx@gnu.org>
parents:
diff changeset
920 last, which is a list of arguments to pass.
Dave Love <fx@gnu.org>
parents:
diff changeset
921
Dave Love <fx@gnu.org>
parents:
diff changeset
922 Previously, `apply' required exactly two arguments. Its old behavior
Dave Love <fx@gnu.org>
parents:
diff changeset
923 follows as a special case of the new definition.
Dave Love <fx@gnu.org>
parents:
diff changeset
924
Dave Love <fx@gnu.org>
parents:
diff changeset
925 * New code-letter for `interactive'.
Dave Love <fx@gnu.org>
parents:
diff changeset
926
Dave Love <fx@gnu.org>
parents:
diff changeset
927 (interactive "NFoo: ") is like (interactive "nFoo: ") in reading
Dave Love <fx@gnu.org>
parents:
diff changeset
928 a number using the minibuffer to serve as the argument; however,
Dave Love <fx@gnu.org>
parents:
diff changeset
929 if a prefix argument was specified, it uses the prefix argument
Dave Love <fx@gnu.org>
parents:
diff changeset
930 value as the argument, and does not use the minibuffer at all.
Dave Love <fx@gnu.org>
parents:
diff changeset
931
Dave Love <fx@gnu.org>
parents:
diff changeset
932 This is used by the `goto-line' and `goto-char' commands.
Dave Love <fx@gnu.org>
parents:
diff changeset
933
Dave Love <fx@gnu.org>
parents:
diff changeset
934 * Semantics of variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
935
Dave Love <fx@gnu.org>
parents:
diff changeset
936 ** Built-in per-buffer variables improved.
Dave Love <fx@gnu.org>
parents:
diff changeset
937
Dave Love <fx@gnu.org>
parents:
diff changeset
938 Several built-in variables which in the past had a different value in
Dave Love <fx@gnu.org>
parents:
diff changeset
939 each buffer now behave exactly as if `make-variable-buffer-local' had
Dave Love <fx@gnu.org>
parents:
diff changeset
940 been done to them.
Dave Love <fx@gnu.org>
parents:
diff changeset
941
Dave Love <fx@gnu.org>
parents:
diff changeset
942 These variables are `tab-width', `ctl-arrow', `truncate-lines',
Dave Love <fx@gnu.org>
parents:
diff changeset
943 `fill-column', `left-margin', `mode-line-format', `abbrev-mode',
Dave Love <fx@gnu.org>
parents:
diff changeset
944 `overwrite-mode', `case-fold-search', `auto-fill-hook',
Dave Love <fx@gnu.org>
parents:
diff changeset
945 `selective-display', `selective-display-ellipses'.
Dave Love <fx@gnu.org>
parents:
diff changeset
946
Dave Love <fx@gnu.org>
parents:
diff changeset
947 To be precise, each variable has a default value which shows through
Dave Love <fx@gnu.org>
parents:
diff changeset
948 in most buffers and can be accessed with `default-value' and set with
Dave Love <fx@gnu.org>
parents:
diff changeset
949 `set-default'. Setting the variable with `setq' makes the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
950 local to the current buffer. Changing the default value has retroactive
Dave Love <fx@gnu.org>
parents:
diff changeset
951 effect on all buffers in which the variable is not local.
Dave Love <fx@gnu.org>
parents:
diff changeset
952
Dave Love <fx@gnu.org>
parents:
diff changeset
953 The variables `default-case-fold-search', etc., are now obsolete.
Dave Love <fx@gnu.org>
parents:
diff changeset
954 They now refer to the default value of the variable, which is not
Dave Love <fx@gnu.org>
parents:
diff changeset
955 quite the same behavior as before, but it should enable old init files
Dave Love <fx@gnu.org>
parents:
diff changeset
956 to continue to work.
Dave Love <fx@gnu.org>
parents:
diff changeset
957
Dave Love <fx@gnu.org>
parents:
diff changeset
958 ** New per-buffer variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
959
Dave Love <fx@gnu.org>
parents:
diff changeset
960 The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
Dave Love <fx@gnu.org>
parents:
diff changeset
961 are now per-buffer. They work just like `fill-column', etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
962
Dave Love <fx@gnu.org>
parents:
diff changeset
963 ** New function `setq-default'.
Dave Love <fx@gnu.org>
parents:
diff changeset
964
Dave Love <fx@gnu.org>
parents:
diff changeset
965 `setq-default' sets the default value of a variable, and uses the
Dave Love <fx@gnu.org>
parents:
diff changeset
966 same syntax that `setq' accepts: the variable name is not evaluated
Dave Love <fx@gnu.org>
parents:
diff changeset
967 and need not be quoted.
Dave Love <fx@gnu.org>
parents:
diff changeset
968
Dave Love <fx@gnu.org>
parents:
diff changeset
969 `(setq-default case-fold-search nil)' would make searches case-sensitive
Dave Love <fx@gnu.org>
parents:
diff changeset
970 in all buffers that do not have local values for `case-fold-search'.
Dave Love <fx@gnu.org>
parents:
diff changeset
971
Dave Love <fx@gnu.org>
parents:
diff changeset
972 You can set multiple variables sequentially, each with its own value,
Dave Love <fx@gnu.org>
parents:
diff changeset
973 in `setq-default' just as in `setq'.
Dave Love <fx@gnu.org>
parents:
diff changeset
974
Dave Love <fx@gnu.org>
parents:
diff changeset
975 ** Functions `global-set' and `global-value' deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
976
Dave Love <fx@gnu.org>
parents:
diff changeset
977 These functions were never used except by mistake by users expecting
Dave Love <fx@gnu.org>
parents:
diff changeset
978 the functionality of `set-default' and `default-value'.
Dave Love <fx@gnu.org>
parents:
diff changeset
979
Dave Love <fx@gnu.org>
parents:
diff changeset
980 * Changes in defaulting of major modes.
Dave Love <fx@gnu.org>
parents:
diff changeset
981
Dave Love <fx@gnu.org>
parents:
diff changeset
982 When `default-major-mode' is `nil', new buffers are supposed to
Dave Love <fx@gnu.org>
parents:
diff changeset
983 get their major mode from the buffer that is current. However,
Dave Love <fx@gnu.org>
parents:
diff changeset
984 certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
Dave Love <fx@gnu.org>
parents:
diff changeset
985 and others) are not reasonable to use in this way.
Dave Love <fx@gnu.org>
parents:
diff changeset
986
Dave Love <fx@gnu.org>
parents:
diff changeset
987 Now such modes' names have been given non-`nil' `mode-class' properties.
Dave Love <fx@gnu.org>
parents:
diff changeset
988 If the current buffer's mode has such a property, Fundamental mode is
Dave Love <fx@gnu.org>
parents:
diff changeset
989 used as the default for newly created buffers.
Dave Love <fx@gnu.org>
parents:
diff changeset
990
Dave Love <fx@gnu.org>
parents:
diff changeset
991 * `where-is-internal' requires additional arguments.
Dave Love <fx@gnu.org>
parents:
diff changeset
992
Dave Love <fx@gnu.org>
parents:
diff changeset
993 This function now accepts three arguments, two of them required:
Dave Love <fx@gnu.org>
parents:
diff changeset
994 DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
Dave Love <fx@gnu.org>
parents:
diff changeset
995 to use as the local map when doing the searching, and FIRST-ONLY,
Dave Love <fx@gnu.org>
parents:
diff changeset
996 which is nonzero to return only the first key found.
Dave Love <fx@gnu.org>
parents:
diff changeset
997
Dave Love <fx@gnu.org>
parents:
diff changeset
998 This function returns a list of keys (strings) whose definitions
Dave Love <fx@gnu.org>
parents:
diff changeset
999 (in the LOCAL-KEYMAP or the current global map) are DEFINITION.
Dave Love <fx@gnu.org>
parents:
diff changeset
1000
Dave Love <fx@gnu.org>
parents:
diff changeset
1001 If FIRST-ONLY is non-nil, it returns a single key (string).
Dave Love <fx@gnu.org>
parents:
diff changeset
1002
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 This function has changed incompatibly in that now two arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 are required when previously only one argument was allowed. To get
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 the old behavior of this function, write `(current-local-map)' as
Dave Love <fx@gnu.org>
parents:
diff changeset
1006 the expression for the second argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
1007
Dave Love <fx@gnu.org>
parents:
diff changeset
1008 The incompatibility is sad, but `nil' is a legitimate value for the
Dave Love <fx@gnu.org>
parents:
diff changeset
1009 second argument (it means there is no local keymap), so it cannot also
Dave Love <fx@gnu.org>
parents:
diff changeset
1010 serve as a default meaning to use the current local keymap.
Dave Love <fx@gnu.org>
parents:
diff changeset
1011
Dave Love <fx@gnu.org>
parents:
diff changeset
1012 * Abbrevs with hooks.
Dave Love <fx@gnu.org>
parents:
diff changeset
1013
Dave Love <fx@gnu.org>
parents:
diff changeset
1014 When an abbrev defined with a hook is expanded, it now performs the
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 usual replacement of the abbrev with the expansion before running the
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 hook. Previously the abbrev itself was deleted but the expansion was
Dave Love <fx@gnu.org>
parents:
diff changeset
1017 not inserted.
Dave Love <fx@gnu.org>
parents:
diff changeset
1018
Dave Love <fx@gnu.org>
parents:
diff changeset
1019 * Function `scan-buffer' deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
1020
Dave Love <fx@gnu.org>
parents:
diff changeset
1021 Use `search-forward' or `search-backward' in place of `scan-buffer'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 You will have to rearrange the arguments.
Dave Love <fx@gnu.org>
parents:
diff changeset
1023
Dave Love <fx@gnu.org>
parents:
diff changeset
1024 * X window interface improvements.
Dave Love <fx@gnu.org>
parents:
diff changeset
1025
Dave Love <fx@gnu.org>
parents:
diff changeset
1026 ** Detect release of mouse buttons.
Dave Love <fx@gnu.org>
parents:
diff changeset
1027
Dave Love <fx@gnu.org>
parents:
diff changeset
1028 Button-up events can now be detected. See the file `lisp/x-mouse.el'
Dave Love <fx@gnu.org>
parents:
diff changeset
1029 for details.
Dave Love <fx@gnu.org>
parents:
diff changeset
1030
Dave Love <fx@gnu.org>
parents:
diff changeset
1031 ** New pop-up menu facility.
Dave Love <fx@gnu.org>
parents:
diff changeset
1032
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 The new function `x-popup-menu' pops up a menu (in a X window)
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 and returns an indication of which selection the user made.
Dave Love <fx@gnu.org>
parents:
diff changeset
1035 For more information, see its self-documentation.
Dave Love <fx@gnu.org>
parents:
diff changeset
1036
Dave Love <fx@gnu.org>
parents:
diff changeset
1037 * M-x disassemble.
Dave Love <fx@gnu.org>
parents:
diff changeset
1038
Dave Love <fx@gnu.org>
parents:
diff changeset
1039 This command prints the disassembly of a byte-compiled Emacs Lisp function.
Dave Love <fx@gnu.org>
parents:
diff changeset
1040
Dave Love <fx@gnu.org>
parents:
diff changeset
1041 Would anyone like to interface this to the debugger?
Dave Love <fx@gnu.org>
parents:
diff changeset
1042
Dave Love <fx@gnu.org>
parents:
diff changeset
1043 * `insert-buffer-substring' can insert part of the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1044
Dave Love <fx@gnu.org>
parents:
diff changeset
1045 The old restriction that the text being inserted had to come from
Dave Love <fx@gnu.org>
parents:
diff changeset
1046 a different buffer is now lifted.
Dave Love <fx@gnu.org>
parents:
diff changeset
1047
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 When inserting text from the current buffer, the text to be inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
1049 is determined from the specified bounds before any copying takes place.
Dave Love <fx@gnu.org>
parents:
diff changeset
1050
Dave Love <fx@gnu.org>
parents:
diff changeset
1051 * New function `substitute-key-definition'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1052
Dave Love <fx@gnu.org>
parents:
diff changeset
1053 This is a new way to replace one command with another command as the
Dave Love <fx@gnu.org>
parents:
diff changeset
1054 binding of whatever keys may happen to refer to it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1055
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 (substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
Dave Love <fx@gnu.org>
parents:
diff changeset
1057 for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
Dave Love <fx@gnu.org>
parents:
diff changeset
1058 instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
1059
Dave Love <fx@gnu.org>
parents:
diff changeset
1060 * New function `insert-char'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1061
Dave Love <fx@gnu.org>
parents:
diff changeset
1062 Insert a specified character, a specified number of times.
Dave Love <fx@gnu.org>
parents:
diff changeset
1063
Dave Love <fx@gnu.org>
parents:
diff changeset
1064 * `mark-marker' changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1065
Dave Love <fx@gnu.org>
parents:
diff changeset
1066 When there is no mark, this now returns a marker that points
Dave Love <fx@gnu.org>
parents:
diff changeset
1067 nowhere, rather than `nil'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1068
Dave Love <fx@gnu.org>
parents:
diff changeset
1069 * `ding' accepts argument.
Dave Love <fx@gnu.org>
parents:
diff changeset
1070
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 When given an argument, the function `ding' does not terminate
Dave Love <fx@gnu.org>
parents:
diff changeset
1072 execution of a keyboard macro. Normally, `ding' does terminate
Dave Love <fx@gnu.org>
parents:
diff changeset
1073 all macros that are currently executing.
Dave Love <fx@gnu.org>
parents:
diff changeset
1074
Dave Love <fx@gnu.org>
parents:
diff changeset
1075 * New function `minibuffer-depth'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1076
Dave Love <fx@gnu.org>
parents:
diff changeset
1077 This function returns the current depth in minibuffer activations.
Dave Love <fx@gnu.org>
parents:
diff changeset
1078 The value is zero when the minibuffer is not in use.
Dave Love <fx@gnu.org>
parents:
diff changeset
1079 Values greater than one are possible if the user has entered the
Dave Love <fx@gnu.org>
parents:
diff changeset
1080 minibuffer recursively.
Dave Love <fx@gnu.org>
parents:
diff changeset
1081
Dave Love <fx@gnu.org>
parents:
diff changeset
1082 * New function `documentation-property'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1083
Dave Love <fx@gnu.org>
parents:
diff changeset
1084 (documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
Dave Love <fx@gnu.org>
parents:
diff changeset
1085 except that if the property value is a number `documentation-property'
Dave Love <fx@gnu.org>
parents:
diff changeset
1086 will take that number (or its absolute value) as a character position
Dave Love <fx@gnu.org>
parents:
diff changeset
1087 in the DOC file and return the string found there.
Dave Love <fx@gnu.org>
parents:
diff changeset
1088
Dave Love <fx@gnu.org>
parents:
diff changeset
1089 (documentation-property VAR 'variable-documentation) is the proper
Dave Love <fx@gnu.org>
parents:
diff changeset
1090 way for a Lisp program to get the documentation of variable VAR.
Dave Love <fx@gnu.org>
parents:
diff changeset
1091
Dave Love <fx@gnu.org>
parents:
diff changeset
1092 * New documentation-string expansion feature.
Dave Love <fx@gnu.org>
parents:
diff changeset
1093
Dave Love <fx@gnu.org>
parents:
diff changeset
1094 If a documentation string (for a variable or function) contains text
Dave Love <fx@gnu.org>
parents:
diff changeset
1095 of the form `\<FOO>', it means that all command names specified in
Dave Love <fx@gnu.org>
parents:
diff changeset
1096 `\[COMMAND]' construct from that point on should be turned into keys
Dave Love <fx@gnu.org>
parents:
diff changeset
1097 using the value of the variable FOO as the local keymap. Thus, for example,
Dave Love <fx@gnu.org>
parents:
diff changeset
1098
Dave Love <fx@gnu.org>
parents:
diff changeset
1099 `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
Dave Love <fx@gnu.org>
parents:
diff changeset
1100
Dave Love <fx@gnu.org>
parents:
diff changeset
1101 will expand into
Dave Love <fx@gnu.org>
parents:
diff changeset
1102
Dave Love <fx@gnu.org>
parents:
diff changeset
1103 "ESC C-x evaluates the defun containing point."
Dave Love <fx@gnu.org>
parents:
diff changeset
1104
Dave Love <fx@gnu.org>
parents:
diff changeset
1105 regardless of the current major mode, because ESC C-x is defined to
Dave Love <fx@gnu.org>
parents:
diff changeset
1106 run `eval-defun' in the keymap `emacs-lisp-mode-map'. The effect is
Dave Love <fx@gnu.org>
parents:
diff changeset
1107 to show the key for `eval-defun' in Emacs Lisp mode regardless of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1108 current major mode.
Dave Love <fx@gnu.org>
parents:
diff changeset
1109
Dave Love <fx@gnu.org>
parents:
diff changeset
1110 The `\<...>' construct applies to all `\[...]' constructs that follow it,
Dave Love <fx@gnu.org>
parents:
diff changeset
1111 up to the end of the documentation string or the next `\<...>'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1112
Dave Love <fx@gnu.org>
parents:
diff changeset
1113 Without `\<...>', the keys for commands specified in `\[...]' are found
Dave Love <fx@gnu.org>
parents:
diff changeset
1114 in the current buffer's local map.
Dave Love <fx@gnu.org>
parents:
diff changeset
1115
Dave Love <fx@gnu.org>
parents:
diff changeset
1116 The current global keymap is always searched second, whether `\<...>'
Dave Love <fx@gnu.org>
parents:
diff changeset
1117 has been used or not.
Dave Love <fx@gnu.org>
parents:
diff changeset
1118
Dave Love <fx@gnu.org>
parents:
diff changeset
1119 * Multiple hooks allowed in certain contexts.
Dave Love <fx@gnu.org>
parents:
diff changeset
1120
Dave Love <fx@gnu.org>
parents:
diff changeset
1121 The old hook variables `find-file-hook', `find-file-not-found-hook' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1122 `write-file-hook' have been replaced.
Dave Love <fx@gnu.org>
parents:
diff changeset
1123
Dave Love <fx@gnu.org>
parents:
diff changeset
1124 The replacements are `find-file-hooks', `find-file-not-found-hooks'
Dave Love <fx@gnu.org>
parents:
diff changeset
1125 and `write-file-hooks'. Each holds a list of functions to be called;
Dave Love <fx@gnu.org>
parents:
diff changeset
1126 by default, `nil', for no functions. The functions are called in
Dave Love <fx@gnu.org>
parents:
diff changeset
1127 order of appearance in the list.
Dave Love <fx@gnu.org>
parents:
diff changeset
1128
Dave Love <fx@gnu.org>
parents:
diff changeset
1129 In the case of `find-file-hooks', all the functions are executed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1130
Dave Love <fx@gnu.org>
parents:
diff changeset
1131 In the case of `find-file-not-found-hooks', if any of the functions
Dave Love <fx@gnu.org>
parents:
diff changeset
1132 returns non-`nil', the rest of the functions are not called.
Dave Love <fx@gnu.org>
parents:
diff changeset
1133
Dave Love <fx@gnu.org>
parents:
diff changeset
1134 In the case of `write-file-hooks', if any of the functions returns
Dave Love <fx@gnu.org>
parents:
diff changeset
1135 non-`nil', the rest of the functions are not called, and the file is
Dave Love <fx@gnu.org>
parents:
diff changeset
1136 considered to have been written already; so actual writing in the
Dave Love <fx@gnu.org>
parents:
diff changeset
1137 usual way is not done. If `write-file-hooks' is local to a buffer,
Dave Love <fx@gnu.org>
parents:
diff changeset
1138 it is set to its global value if `set-visited-file-name' is called
Dave Love <fx@gnu.org>
parents:
diff changeset
1139 (and thus by C-x C-w as well).
Dave Love <fx@gnu.org>
parents:
diff changeset
1140
Dave Love <fx@gnu.org>
parents:
diff changeset
1141 `find-file-not-found-hooks' and `write-file-hooks' can be used
Dave Love <fx@gnu.org>
parents:
diff changeset
1142 together to implement editing of files that are not stored as Unix
Dave Love <fx@gnu.org>
parents:
diff changeset
1143 files: stored in archives, or inside version control systems, or on
Dave Love <fx@gnu.org>
parents:
diff changeset
1144 other machines running other operating systems and accessible via ftp.
Dave Love <fx@gnu.org>
parents:
diff changeset
1145
Dave Love <fx@gnu.org>
parents:
diff changeset
1146 * New hooks for suspending Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
1147
Dave Love <fx@gnu.org>
parents:
diff changeset
1148 Suspending Emacs runs the hook `suspend-hook' before suspending
Dave Love <fx@gnu.org>
parents:
diff changeset
1149 and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1150 Running a hook is done by applying the variable's value to no arguments
Dave Love <fx@gnu.org>
parents:
diff changeset
1151 if the variable has a non-`nil' value. If `suspend-hook' returns
Dave Love <fx@gnu.org>
parents:
diff changeset
1152 non-`nil', then suspending is inhibited and so is running the
Dave Love <fx@gnu.org>
parents:
diff changeset
1153 `suspend-resume-hook'. The non-`nil' value means that the `suspend-hook'
Dave Love <fx@gnu.org>
parents:
diff changeset
1154 has done whatever suspending is required.
Dave Love <fx@gnu.org>
parents:
diff changeset
1155
Dave Love <fx@gnu.org>
parents:
diff changeset
1156 * Disabling commands can print a special message.
Dave Love <fx@gnu.org>
parents:
diff changeset
1157
Dave Love <fx@gnu.org>
parents:
diff changeset
1158 A command is disabled by giving it a non-`nil' `disabled' property.
Dave Love <fx@gnu.org>
parents:
diff changeset
1159 Now, if this property is a string, it is included in the message
Dave Love <fx@gnu.org>
parents:
diff changeset
1160 printed when the user tries to run the command.
Dave Love <fx@gnu.org>
parents:
diff changeset
1161
Dave Love <fx@gnu.org>
parents:
diff changeset
1162 * Emacs can open TCP connections.
Dave Love <fx@gnu.org>
parents:
diff changeset
1163
Dave Love <fx@gnu.org>
parents:
diff changeset
1164 The function `open-network-stream' opens a TCP connection to
Dave Love <fx@gnu.org>
parents:
diff changeset
1165 a specified host and service. Its value is a Lisp object that represents
Dave Love <fx@gnu.org>
parents:
diff changeset
1166 the connection. The object is a kind of "subprocess", and I/O are
Dave Love <fx@gnu.org>
parents:
diff changeset
1167 done like I/O to subprocesses.
Dave Love <fx@gnu.org>
parents:
diff changeset
1168
Dave Love <fx@gnu.org>
parents:
diff changeset
1169 * Display-related changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1170
Dave Love <fx@gnu.org>
parents:
diff changeset
1171 ** New mode-line control features.
Dave Love <fx@gnu.org>
parents:
diff changeset
1172
Dave Love <fx@gnu.org>
parents:
diff changeset
1173 The display of the mode line used to be controlled by a format-string
Dave Love <fx@gnu.org>
parents:
diff changeset
1174 that was the value of the variable `mode-line-format'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1175
Dave Love <fx@gnu.org>
parents:
diff changeset
1176 This variable still exists, but it now allows more general values,
Dave Love <fx@gnu.org>
parents:
diff changeset
1177 not just strings. Lists, cons cells and symbols are also meaningful.
Dave Love <fx@gnu.org>
parents:
diff changeset
1178
Dave Love <fx@gnu.org>
parents:
diff changeset
1179 The mode line contents are created by outputting various mode elements
Dave Love <fx@gnu.org>
parents:
diff changeset
1180 one after the other. Here are the kinds of objects that can be
Dave Love <fx@gnu.org>
parents:
diff changeset
1181 used as mode elements, and what they do in the display:
Dave Love <fx@gnu.org>
parents:
diff changeset
1182
Dave Love <fx@gnu.org>
parents:
diff changeset
1183 string the contents of the string are output to the mode line,
Dave Love <fx@gnu.org>
parents:
diff changeset
1184 and %-constructs are replaced by other text.
Dave Love <fx@gnu.org>
parents:
diff changeset
1185
Dave Love <fx@gnu.org>
parents:
diff changeset
1186 t or nil ignored; no output results.
Dave Love <fx@gnu.org>
parents:
diff changeset
1187
Dave Love <fx@gnu.org>
parents:
diff changeset
1188 symbol the symbol's value is used. If the value is a string,
Dave Love <fx@gnu.org>
parents:
diff changeset
1189 the string is output verbatim to the mode line
Dave Love <fx@gnu.org>
parents:
diff changeset
1190 (so %-constructs are not interpreted). Otherwise,
Dave Love <fx@gnu.org>
parents:
diff changeset
1191 the symbol's value is processed as a mode element.
Dave Love <fx@gnu.org>
parents:
diff changeset
1192
Dave Love <fx@gnu.org>
parents:
diff changeset
1193 list (whose first element is a string or list or cons cell)
Dave Love <fx@gnu.org>
parents:
diff changeset
1194 the elements of the list are treated as as mode elements,
Dave Love <fx@gnu.org>
parents:
diff changeset
1195 so that the output they generate is concatenated,
Dave Love <fx@gnu.org>
parents:
diff changeset
1196
Dave Love <fx@gnu.org>
parents:
diff changeset
1197 list (whose car is a symbol)
Dave Love <fx@gnu.org>
parents:
diff changeset
1198 if the symbol's value is non-nil, the second element of the
Dave Love <fx@gnu.org>
parents:
diff changeset
1199 list is treated as a mode element. Otherwise, the third
Dave Love <fx@gnu.org>
parents:
diff changeset
1200 element (if any) of the list is treated as a mode element.
Dave Love <fx@gnu.org>
parents:
diff changeset
1201
Dave Love <fx@gnu.org>
parents:
diff changeset
1202 cons (whose car is a positive integer)
Dave Love <fx@gnu.org>
parents:
diff changeset
1203 the cdr of the cons is used as a mode element, but
Dave Love <fx@gnu.org>
parents:
diff changeset
1204 the text it produces is padded, if necessary, to have
Dave Love <fx@gnu.org>
parents:
diff changeset
1205 at least the width specified by the integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1206
Dave Love <fx@gnu.org>
parents:
diff changeset
1207 cons (whose car is a negative integer)
Dave Love <fx@gnu.org>
parents:
diff changeset
1208 the cdr of the cons is used as a mode element, but
Dave Love <fx@gnu.org>
parents:
diff changeset
1209 the text it produces is truncated, if necessary, to have
Dave Love <fx@gnu.org>
parents:
diff changeset
1210 at most the width specified by the integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1211
Dave Love <fx@gnu.org>
parents:
diff changeset
1212 There is always one mode element to start with, that being the value of
Dave Love <fx@gnu.org>
parents:
diff changeset
1213 `mode-line-format', but if this value is a list then it leads to several
Dave Love <fx@gnu.org>
parents:
diff changeset
1214 more mode elements, which can lead to more, and so on.
Dave Love <fx@gnu.org>
parents:
diff changeset
1215
Dave Love <fx@gnu.org>
parents:
diff changeset
1216 There is one new %-construct for mode elements that are strings:
Dave Love <fx@gnu.org>
parents:
diff changeset
1217 `%n' displays ` Narrow' for a buffer that is narrowed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1218
Dave Love <fx@gnu.org>
parents:
diff changeset
1219 The default value of `mode-line-format' refers to several other variables.
Dave Love <fx@gnu.org>
parents:
diff changeset
1220 These variables are `mode-name', `mode-line-buffer-identification',
Dave Love <fx@gnu.org>
parents:
diff changeset
1221 `mode-line-process', `mode-line-modified', `global-mode-string' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1222 `minor-mode-alist'. The first four are local in every buffer in which they
Dave Love <fx@gnu.org>
parents:
diff changeset
1223 are changed from the default.
Dave Love <fx@gnu.org>
parents:
diff changeset
1224
Dave Love <fx@gnu.org>
parents:
diff changeset
1225 mode-name Name of buffer's major mode. Local in every buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1226
Dave Love <fx@gnu.org>
parents:
diff changeset
1227 mode-line-buffer-identification
Dave Love <fx@gnu.org>
parents:
diff changeset
1228 Normally the list ("Emacs: %17b"), it is responsible
Dave Love <fx@gnu.org>
parents:
diff changeset
1229 for displaying text to indicate what buffer is being shown
Dave Love <fx@gnu.org>
parents:
diff changeset
1230 and what kind of editing it is doing. `Emacs' means
Dave Love <fx@gnu.org>
parents:
diff changeset
1231 that a file of characters is being edited. Major modes
Dave Love <fx@gnu.org>
parents:
diff changeset
1232 such as Info and Dired which edit or view other kinds
Dave Love <fx@gnu.org>
parents:
diff changeset
1233 of data often change this value. This variables becomes
Dave Love <fx@gnu.org>
parents:
diff changeset
1234 local to the current buffer if it is setq'd.
Dave Love <fx@gnu.org>
parents:
diff changeset
1235
Dave Love <fx@gnu.org>
parents:
diff changeset
1236 mode-line-process
Dave Love <fx@gnu.org>
parents:
diff changeset
1237 Normally nil, this variable is responsible for displaying
Dave Love <fx@gnu.org>
parents:
diff changeset
1238 information about the process running in the current buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1239 M-x shell-mode and M-x compile alter this variable.
Dave Love <fx@gnu.org>
parents:
diff changeset
1240
Dave Love <fx@gnu.org>
parents:
diff changeset
1241 mode-line-modified
Dave Love <fx@gnu.org>
parents:
diff changeset
1242 This variable is responsible for displaying the indication
Dave Love <fx@gnu.org>
parents:
diff changeset
1243 of whether the current buffer is modified or read-only.
Dave Love <fx@gnu.org>
parents:
diff changeset
1244 By default its value is `("--%*%*-")'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1245
Dave Love <fx@gnu.org>
parents:
diff changeset
1246 minor-mode-alist
Dave Love <fx@gnu.org>
parents:
diff changeset
1247 This variable is responsible for displaying text for those
Dave Love <fx@gnu.org>
parents:
diff changeset
1248 minor modes that are currently enabled. Its value
Dave Love <fx@gnu.org>
parents:
diff changeset
1249 is a list of elements of the form (VARIABLE STRING),
Dave Love <fx@gnu.org>
parents:
diff changeset
1250 where STRING is to be displayed if VARIABLE's value
Dave Love <fx@gnu.org>
parents:
diff changeset
1251 (in the buffer whose mode line is being displayed)
Dave Love <fx@gnu.org>
parents:
diff changeset
1252 is non-nil. This variable is not made local to particular
Dave Love <fx@gnu.org>
parents:
diff changeset
1253 buffers, but loading some libraries may add elements to it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1254
Dave Love <fx@gnu.org>
parents:
diff changeset
1255 global-mode-string
Dave Love <fx@gnu.org>
parents:
diff changeset
1256 This variable is used to display the time, if you ask
Dave Love <fx@gnu.org>
parents:
diff changeset
1257 for that.
Dave Love <fx@gnu.org>
parents:
diff changeset
1258
Dave Love <fx@gnu.org>
parents:
diff changeset
1259 The idea of these variables is to eliminate the need for major modes
Dave Love <fx@gnu.org>
parents:
diff changeset
1260 to alter mode-line-format itself.
Dave Love <fx@gnu.org>
parents:
diff changeset
1261
Dave Love <fx@gnu.org>
parents:
diff changeset
1262 ** `window-point' valid for selected window.
Dave Love <fx@gnu.org>
parents:
diff changeset
1263
Dave Love <fx@gnu.org>
parents:
diff changeset
1264 The value returned by `window-point' used to be incorrect when its
Dave Love <fx@gnu.org>
parents:
diff changeset
1265 argument was the selected window. Now the value is correct.
Dave Love <fx@gnu.org>
parents:
diff changeset
1266
Dave Love <fx@gnu.org>
parents:
diff changeset
1267 ** Window configurations may be saved as Lisp objects.
Dave Love <fx@gnu.org>
parents:
diff changeset
1268
Dave Love <fx@gnu.org>
parents:
diff changeset
1269 The function `current-window-configuration' returns a special type of
Dave Love <fx@gnu.org>
parents:
diff changeset
1270 Lisp object that represents the current layout of windows: the
Dave Love <fx@gnu.org>
parents:
diff changeset
1271 sizes and positions of windows, which buffers appear in them, and
Dave Love <fx@gnu.org>
parents:
diff changeset
1272 which parts of the buffers appear on the screen.
Dave Love <fx@gnu.org>
parents:
diff changeset
1273
Dave Love <fx@gnu.org>
parents:
diff changeset
1274 The function `set-window-configuration' takes one argument, which must
Dave Love <fx@gnu.org>
parents:
diff changeset
1275 be a window configuration object, and restores that configuration.
Dave Love <fx@gnu.org>
parents:
diff changeset
1276
Dave Love <fx@gnu.org>
parents:
diff changeset
1277 ** New hook `temp-output-buffer-show-hook'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1278
Dave Love <fx@gnu.org>
parents:
diff changeset
1279 This hook allows you to control how help buffers are displayed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1280 Whenever `with-output-to-temp-buffer' has executed its body and wants
Dave Love <fx@gnu.org>
parents:
diff changeset
1281 to display the temp buffer, if this variable is bound and non-`nil'
Dave Love <fx@gnu.org>
parents:
diff changeset
1282 then its value is called with one argument, the temp buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1283 The hook function is solely responsible for displaying the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1284 The standard manner of display--making the buffer appear in a window--is
Dave Love <fx@gnu.org>
parents:
diff changeset
1285 used only if there is no hook function.
Dave Love <fx@gnu.org>
parents:
diff changeset
1286
Dave Love <fx@gnu.org>
parents:
diff changeset
1287 ** New function `minibuffer-window'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1288
Dave Love <fx@gnu.org>
parents:
diff changeset
1289 This function returns the window used (sometimes) for displaying
Dave Love <fx@gnu.org>
parents:
diff changeset
1290 the minibuffer. It can be used even when the minibuffer is not active.
Dave Love <fx@gnu.org>
parents:
diff changeset
1291
Dave Love <fx@gnu.org>
parents:
diff changeset
1292 ** New feature to `next-window'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1293
Dave Love <fx@gnu.org>
parents:
diff changeset
1294 If the optional second argument is neither `nil' nor `t', the minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1295 window is omitted from consideration even when active; if the starting
Dave Love <fx@gnu.org>
parents:
diff changeset
1296 window was the last non-minibuffer window, the value will be the first
Dave Love <fx@gnu.org>
parents:
diff changeset
1297 non-minibuffer window.
Dave Love <fx@gnu.org>
parents:
diff changeset
1298
Dave Love <fx@gnu.org>
parents:
diff changeset
1299 ** New variable `minibuffer-scroll-window'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1300
Dave Love <fx@gnu.org>
parents:
diff changeset
1301 When this variable is non-`nil', the command `scroll-other-window'
Dave Love <fx@gnu.org>
parents:
diff changeset
1302 uses it as the window to be scrolled. Displays of completion-lists
Dave Love <fx@gnu.org>
parents:
diff changeset
1303 set this variable to the window containing the display.
Dave Love <fx@gnu.org>
parents:
diff changeset
1304
Dave Love <fx@gnu.org>
parents:
diff changeset
1305 ** New argument to `sit-for'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1306
Dave Love <fx@gnu.org>
parents:
diff changeset
1307 A non-nil second argument to `sit-for' means do not redisplay;
Dave Love <fx@gnu.org>
parents:
diff changeset
1308 just wait for the specified time or until input is available.
Dave Love <fx@gnu.org>
parents:
diff changeset
1309
Dave Love <fx@gnu.org>
parents:
diff changeset
1310 ** Deleted function `set-minor-mode'; minor modes must be changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1311
Dave Love <fx@gnu.org>
parents:
diff changeset
1312 The function `set-minor-mode' has been eliminated. The display
Dave Love <fx@gnu.org>
parents:
diff changeset
1313 of minor mode names in the mode line is now controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
1314 variable `minor-mode-alist'. To specify display of a new minor
Dave Love <fx@gnu.org>
parents:
diff changeset
1315 mode, it is sufficient to add an element to this list. Once that
Dave Love <fx@gnu.org>
parents:
diff changeset
1316 is done, you can turn the mode on and off just by setting a variable,
Dave Love <fx@gnu.org>
parents:
diff changeset
1317 and the display will show its status automatically.
Dave Love <fx@gnu.org>
parents:
diff changeset
1318
Dave Love <fx@gnu.org>
parents:
diff changeset
1319 ** New variable `cursor-in-echo-area'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1320
Dave Love <fx@gnu.org>
parents:
diff changeset
1321 If this variable is non-nil, the screen cursor appears on the
Dave Love <fx@gnu.org>
parents:
diff changeset
1322 last line of the screen, at the end of the text displayed there.
Dave Love <fx@gnu.org>
parents:
diff changeset
1323
Dave Love <fx@gnu.org>
parents:
diff changeset
1324 Binding this variable to t is useful at times when reading single
Dave Love <fx@gnu.org>
parents:
diff changeset
1325 characters of input with `read-char'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1326
Dave Love <fx@gnu.org>
parents:
diff changeset
1327 ** New per-buffer variable `selective-display-ellipses'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1328
Dave Love <fx@gnu.org>
parents:
diff changeset
1329 If this variable is non-nil, an ellipsis (`...') appears on the screen
Dave Love <fx@gnu.org>
parents:
diff changeset
1330 at the end of each text line that is followed by invisible text.
Dave Love <fx@gnu.org>
parents:
diff changeset
1331
Dave Love <fx@gnu.org>
parents:
diff changeset
1332 If this variable is nil, no ellipses appear. Then there is no sign
Dave Love <fx@gnu.org>
parents:
diff changeset
1333 on the screen that invisible text is present.
Dave Love <fx@gnu.org>
parents:
diff changeset
1334
Dave Love <fx@gnu.org>
parents:
diff changeset
1335 Text is made invisible under the control of the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
1336 `selective-display'; this is how Outline mode and C-x $ work.
Dave Love <fx@gnu.org>
parents:
diff changeset
1337
Dave Love <fx@gnu.org>
parents:
diff changeset
1338 ** New variable `no-redraw-on-reenter'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1339
Dave Love <fx@gnu.org>
parents:
diff changeset
1340 If you set this variable non-nil, Emacs will not clear the screen when
Dave Love <fx@gnu.org>
parents:
diff changeset
1341 you resume it after suspending it. This is for the sake of terminals
Dave Love <fx@gnu.org>
parents:
diff changeset
1342 with multiple screens of memory, where the termcap entry has been set
Dave Love <fx@gnu.org>
parents:
diff changeset
1343 up to switch between screens when Emacs is suspended and resumed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1344
Dave Love <fx@gnu.org>
parents:
diff changeset
1345 ** New argument to `set-screen-height' or `set-screen-width'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1346
Dave Love <fx@gnu.org>
parents:
diff changeset
1347 These functions now take an optional second argument which says
Dave Love <fx@gnu.org>
parents:
diff changeset
1348 what significance the newly specified height or width has.
Dave Love <fx@gnu.org>
parents:
diff changeset
1349
Dave Love <fx@gnu.org>
parents:
diff changeset
1350 If the argument is nil, or absent, it means that Emacs should
Dave Love <fx@gnu.org>
parents:
diff changeset
1351 believe that the terminal height or width really is as just specified.
Dave Love <fx@gnu.org>
parents:
diff changeset
1352
Dave Love <fx@gnu.org>
parents:
diff changeset
1353 If the argument is t, it means Emacs should not believe that the
Dave Love <fx@gnu.org>
parents:
diff changeset
1354 terminal really is this high or wide, but it should use the
Dave Love <fx@gnu.org>
parents:
diff changeset
1355 specific height or width as the number of lines or columns to display.
Dave Love <fx@gnu.org>
parents:
diff changeset
1356 Thus, you could display only 24 lines on a screen known to have 48 lines.
Dave Love <fx@gnu.org>
parents:
diff changeset
1357
Dave Love <fx@gnu.org>
parents:
diff changeset
1358 What practical difference is there between using only 24 lines for display
Dave Love <fx@gnu.org>
parents:
diff changeset
1359 and really believing that the terminal has 24 lines?
Dave Love <fx@gnu.org>
parents:
diff changeset
1360
Dave Love <fx@gnu.org>
parents:
diff changeset
1361 1. The "real" height of the terminal says what the terminal command
Dave Love <fx@gnu.org>
parents:
diff changeset
1362 to move the cursor to the last line will do.
Dave Love <fx@gnu.org>
parents:
diff changeset
1363
Dave Love <fx@gnu.org>
parents:
diff changeset
1364 2. The "real" height of the terminal determines how much padding is
Dave Love <fx@gnu.org>
parents:
diff changeset
1365 needed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1366
Dave Love <fx@gnu.org>
parents:
diff changeset
1367 * File-related changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1368
Dave Love <fx@gnu.org>
parents:
diff changeset
1369 ** New parameter `backup-by-copying-when-mismatch'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1370
Dave Love <fx@gnu.org>
parents:
diff changeset
1371 If this variable is non-`nil', then when Emacs is about to save a
Dave Love <fx@gnu.org>
parents:
diff changeset
1372 file, it will create the backup file by copying if that would avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
1373 changing the file's uid or gid.
Dave Love <fx@gnu.org>
parents:
diff changeset
1374
Dave Love <fx@gnu.org>
parents:
diff changeset
1375 The default value of this variable is `nil', because usually it is
Dave Love <fx@gnu.org>
parents:
diff changeset
1376 useful to have the uid of a file change according to who edited it
Dave Love <fx@gnu.org>
parents:
diff changeset
1377 last. I recommend thet this variable be left normally `nil' and
Dave Love <fx@gnu.org>
parents:
diff changeset
1378 changed with a local variables list in those particular files where
Dave Love <fx@gnu.org>
parents:
diff changeset
1379 the uid needs to be preserved.
Dave Love <fx@gnu.org>
parents:
diff changeset
1380
Dave Love <fx@gnu.org>
parents:
diff changeset
1381 ** New parameter `file-precious-flag'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1382
Dave Love <fx@gnu.org>
parents:
diff changeset
1383 If this variable is non-`nil', saving the buffer tries to avoid
Dave Love <fx@gnu.org>
parents:
diff changeset
1384 leaving an incomplete file due to disk full or other I/O errors.
Dave Love <fx@gnu.org>
parents:
diff changeset
1385 It renames the old file before saving. If saving is successful,
Dave Love <fx@gnu.org>
parents:
diff changeset
1386 the renamed file is deleted; if saving gets an error, the renamed
Dave Love <fx@gnu.org>
parents:
diff changeset
1387 file is renamed back to the name you visited.
Dave Love <fx@gnu.org>
parents:
diff changeset
1388
Dave Love <fx@gnu.org>
parents:
diff changeset
1389 Backups are always made by copying for such files.
Dave Love <fx@gnu.org>
parents:
diff changeset
1390
Dave Love <fx@gnu.org>
parents:
diff changeset
1391 ** New variable `buffer-offer-save'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1392
Dave Love <fx@gnu.org>
parents:
diff changeset
1393 If the value of this variable is non-`nil' in a buffer then exiting
Dave Love <fx@gnu.org>
parents:
diff changeset
1394 Emacs will offer to save the buffer (if it is modified and nonempty)
Dave Love <fx@gnu.org>
parents:
diff changeset
1395 even if the buffer is not visiting a file. This variable is
Dave Love <fx@gnu.org>
parents:
diff changeset
1396 automatically made local to the current buffer whenever it is set.
Dave Love <fx@gnu.org>
parents:
diff changeset
1397
Dave Love <fx@gnu.org>
parents:
diff changeset
1398 ** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1399
Dave Love <fx@gnu.org>
parents:
diff changeset
1400 The third argument to these functions used to be `t' or `nil'; `t'
Dave Love <fx@gnu.org>
parents:
diff changeset
1401 meaning go ahead even if the specified new file name already has a file,
Dave Love <fx@gnu.org>
parents:
diff changeset
1402 and `nil' meaning to get an error.
Dave Love <fx@gnu.org>
parents:
diff changeset
1403
Dave Love <fx@gnu.org>
parents:
diff changeset
1404 Now if the third argument is a number it means to ask the user for
Dave Love <fx@gnu.org>
parents:
diff changeset
1405 confirmation in this case.
Dave Love <fx@gnu.org>
parents:
diff changeset
1406
Dave Love <fx@gnu.org>
parents:
diff changeset
1407 ** New optional argument to `copy-file'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1408
Dave Love <fx@gnu.org>
parents:
diff changeset
1409 If `copy-file' receives a non-nil fourth argument, it attempts
Dave Love <fx@gnu.org>
parents:
diff changeset
1410 to give the new copy the same time-of-last-modification that the
Dave Love <fx@gnu.org>
parents:
diff changeset
1411 original file has.
Dave Love <fx@gnu.org>
parents:
diff changeset
1412
Dave Love <fx@gnu.org>
parents:
diff changeset
1413 ** New function `file-newer-than-file-p'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1414
Dave Love <fx@gnu.org>
parents:
diff changeset
1415 (file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
Dave Love <fx@gnu.org>
parents:
diff changeset
1416 modified more recently than FILE2. If FILE1 does not exist, the value
Dave Love <fx@gnu.org>
parents:
diff changeset
1417 is always nil; otherwise, if FILE2 does not exist, the value is t.
Dave Love <fx@gnu.org>
parents:
diff changeset
1418 This is meant for use when FILE2 depends on FILE1, to see if changes
Dave Love <fx@gnu.org>
parents:
diff changeset
1419 in FILE1 make it necessary to recompute FILE2 from it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1420
Dave Love <fx@gnu.org>
parents:
diff changeset
1421 ** Changed function `file-exists-p'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1422
Dave Love <fx@gnu.org>
parents:
diff changeset
1423 This function is no longer the same as `file-readable-p'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1424 `file-exists-p' can now return t for a file that exists but which
Dave Love <fx@gnu.org>
parents:
diff changeset
1425 the fascists won't allow you to read.
Dave Love <fx@gnu.org>
parents:
diff changeset
1426
Dave Love <fx@gnu.org>
parents:
diff changeset
1427 ** New function `file-locked-p'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1428
Dave Love <fx@gnu.org>
parents:
diff changeset
1429 This function receives a file name as argument and returns `nil'
Dave Love <fx@gnu.org>
parents:
diff changeset
1430 if the file is not locked, `t' if locked by this Emacs, or a
Dave Love <fx@gnu.org>
parents:
diff changeset
1431 string giving the name of the user who has locked it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1432
Dave Love <fx@gnu.org>
parents:
diff changeset
1433 ** New function `file-name-sans-versions'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1434
Dave Love <fx@gnu.org>
parents:
diff changeset
1435 (file-name-sans-versions NAME) returns a substring of NAME, with any
Dave Love <fx@gnu.org>
parents:
diff changeset
1436 version numbers or other backup suffixes deleted from the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
1437
Dave Love <fx@gnu.org>
parents:
diff changeset
1438 ** New functions for directory names.
Dave Love <fx@gnu.org>
parents:
diff changeset
1439
Dave Love <fx@gnu.org>
parents:
diff changeset
1440 Although a directory is really a kind of file, specifying a directory
Dave Love <fx@gnu.org>
parents:
diff changeset
1441 uses a somewhat different syntax from specifying a file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1442 In Emacs, a directory name is used as part of a file name.
Dave Love <fx@gnu.org>
parents:
diff changeset
1443
Dave Love <fx@gnu.org>
parents:
diff changeset
1444 On Unix, the difference is small: a directory name ends in a slash,
Dave Love <fx@gnu.org>
parents:
diff changeset
1445 while a file name does not: thus, `/usr/rms/' to name a directory,
Dave Love <fx@gnu.org>
parents:
diff changeset
1446 while `/usr/rms' names the file which holds that directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
1447
Dave Love <fx@gnu.org>
parents:
diff changeset
1448 On VMS, the difference is considerable: `du:[rms.foo]' specifies a
Dave Love <fx@gnu.org>
parents:
diff changeset
1449 directory, but the name of the file that holds that directory is
Dave Love <fx@gnu.org>
parents:
diff changeset
1450 `du:[rms]foo.dir'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1451
Dave Love <fx@gnu.org>
parents:
diff changeset
1452 There are two new functions for converting between directory names
Dave Love <fx@gnu.org>
parents:
diff changeset
1453 and file names. `directory-file-name' takes a directory name and
Dave Love <fx@gnu.org>
parents:
diff changeset
1454 returns the name of the file in which that directory's data is stored.
Dave Love <fx@gnu.org>
parents:
diff changeset
1455 `file-name-as-directory' takes the name of a file and returns
Dave Love <fx@gnu.org>
parents:
diff changeset
1456 the corresponding directory name. These always understand Unix file name
Dave Love <fx@gnu.org>
parents:
diff changeset
1457 syntax; on VMS, they understand VMS syntax as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
1458
Dave Love <fx@gnu.org>
parents:
diff changeset
1459 For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
Dave Love <fx@gnu.org>
parents:
diff changeset
1460 and (directory-file-name "/usr/rms/") returns "/usr/rms".
Dave Love <fx@gnu.org>
parents:
diff changeset
1461 On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
Dave Love <fx@gnu.org>
parents:
diff changeset
1462 and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
Dave Love <fx@gnu.org>
parents:
diff changeset
1463
Dave Love <fx@gnu.org>
parents:
diff changeset
1464 ** Value of `file-attributes' changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1465
Dave Love <fx@gnu.org>
parents:
diff changeset
1466 The function file-attributes returns a list containing many kinds of
Dave Love <fx@gnu.org>
parents:
diff changeset
1467 information about a file. Now the list has eleven elements.
Dave Love <fx@gnu.org>
parents:
diff changeset
1468
Dave Love <fx@gnu.org>
parents:
diff changeset
1469 The tenth element is `t' if deleting the file and creating another
Dave Love <fx@gnu.org>
parents:
diff changeset
1470 file of the same name would result in a change in the file's group;
Dave Love <fx@gnu.org>
parents:
diff changeset
1471 `nil' if there would be no change. You can also think of this as
Dave Love <fx@gnu.org>
parents:
diff changeset
1472 comparing the file's group with the default group for files created in
Dave Love <fx@gnu.org>
parents:
diff changeset
1473 the same directory by you.
Dave Love <fx@gnu.org>
parents:
diff changeset
1474
Dave Love <fx@gnu.org>
parents:
diff changeset
1475 The eleventh element is the inode number of the file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1476
Dave Love <fx@gnu.org>
parents:
diff changeset
1477 ** VMS-only function `file-name-all-versions'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1478
Dave Love <fx@gnu.org>
parents:
diff changeset
1479 This function returns a list of all the completions, including version
Dave Love <fx@gnu.org>
parents:
diff changeset
1480 number, of a specified version-number-less file name. This is like
Dave Love <fx@gnu.org>
parents:
diff changeset
1481 `file-name-all-completions', except that the latter returns values
Dave Love <fx@gnu.org>
parents:
diff changeset
1482 that do not include version numbers.
Dave Love <fx@gnu.org>
parents:
diff changeset
1483
Dave Love <fx@gnu.org>
parents:
diff changeset
1484 ** VMS-only variable `vms-stmlf-recfm'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1485
Dave Love <fx@gnu.org>
parents:
diff changeset
1486 On a VMS system, if this variable is non-nil, Emacs will give newly
Dave Love <fx@gnu.org>
parents:
diff changeset
1487 created files the record format `stmlf'. This is necessary for files
Dave Love <fx@gnu.org>
parents:
diff changeset
1488 that must contain lines of arbitrary length, such as compiled Emacs
Dave Love <fx@gnu.org>
parents:
diff changeset
1489 Lisp.
Dave Love <fx@gnu.org>
parents:
diff changeset
1490
Dave Love <fx@gnu.org>
parents:
diff changeset
1491 When writing a new version of an existing file, Emacs always keeps
Dave Love <fx@gnu.org>
parents:
diff changeset
1492 the same record format as the previous version; so this variable has
Dave Love <fx@gnu.org>
parents:
diff changeset
1493 no effect.
Dave Love <fx@gnu.org>
parents:
diff changeset
1494
Dave Love <fx@gnu.org>
parents:
diff changeset
1495 This variable has no effect on Unix systems.
Dave Love <fx@gnu.org>
parents:
diff changeset
1496
Dave Love <fx@gnu.org>
parents:
diff changeset
1497 ** `insert-file-contents' on an empty file.
Dave Love <fx@gnu.org>
parents:
diff changeset
1498
Dave Love <fx@gnu.org>
parents:
diff changeset
1499 This no longer sets the buffer's "modified" flag.
Dave Love <fx@gnu.org>
parents:
diff changeset
1500
Dave Love <fx@gnu.org>
parents:
diff changeset
1501 ** New function (VMS only) `define-logical-name':
Dave Love <fx@gnu.org>
parents:
diff changeset
1502
Dave Love <fx@gnu.org>
parents:
diff changeset
1503 (define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
Dave Love <fx@gnu.org>
parents:
diff changeset
1504 LOGICAL whose translation is TRANSLATION. The new name applies to
Dave Love <fx@gnu.org>
parents:
diff changeset
1505 the current process only.
Dave Love <fx@gnu.org>
parents:
diff changeset
1506
Dave Love <fx@gnu.org>
parents:
diff changeset
1507 ** Deleted variable `ask-about-buffer-names'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1508
Dave Love <fx@gnu.org>
parents:
diff changeset
1509 If you want buffer names for files to be generated in a special way,
Dave Love <fx@gnu.org>
parents:
diff changeset
1510 you must redefine `create-file-buffer'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1511
Dave Love <fx@gnu.org>
parents:
diff changeset
1512 * Subprocess-related changes.
Dave Love <fx@gnu.org>
parents:
diff changeset
1513
Dave Love <fx@gnu.org>
parents:
diff changeset
1514 ** New function `process-list'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1515
Dave Love <fx@gnu.org>
parents:
diff changeset
1516 This function takes no arguments and returns a list of all
Dave Love <fx@gnu.org>
parents:
diff changeset
1517 of Emacs's asynchronous subprocesses.
Dave Love <fx@gnu.org>
parents:
diff changeset
1518
Dave Love <fx@gnu.org>
parents:
diff changeset
1519 ** New function `process-exit-status'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1520
Dave Love <fx@gnu.org>
parents:
diff changeset
1521 This function, given a process, process name or buffer as argument,
Dave Love <fx@gnu.org>
parents:
diff changeset
1522 returns the exit status code or signal number of the process.
Dave Love <fx@gnu.org>
parents:
diff changeset
1523 If the process has not yet exited or died, this function returns 0.
Dave Love <fx@gnu.org>
parents:
diff changeset
1524
Dave Love <fx@gnu.org>
parents:
diff changeset
1525 ** Process output ignores `buffer-read-only'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1526
Dave Love <fx@gnu.org>
parents:
diff changeset
1527 Output from a process will go into the process's buffer even if the
Dave Love <fx@gnu.org>
parents:
diff changeset
1528 buffer is read only.
Dave Love <fx@gnu.org>
parents:
diff changeset
1529
Dave Love <fx@gnu.org>
parents:
diff changeset
1530 ** Switching buffers in filter functions and sentinels.
Dave Love <fx@gnu.org>
parents:
diff changeset
1531
Dave Love <fx@gnu.org>
parents:
diff changeset
1532 Emacs no longer saves and restore the current buffer around calling
Dave Love <fx@gnu.org>
parents:
diff changeset
1533 the filter and sentinel functions, so these functions can now
Dave Love <fx@gnu.org>
parents:
diff changeset
1534 permanently alter the selected buffer in a straightforward manner.
Dave Love <fx@gnu.org>
parents:
diff changeset
1535
Dave Love <fx@gnu.org>
parents:
diff changeset
1536 ** Specifying environment variables for subprocesses.
Dave Love <fx@gnu.org>
parents:
diff changeset
1537
Dave Love <fx@gnu.org>
parents:
diff changeset
1538 When a subprocess is started with `start-process' or `call-process',
Dave Love <fx@gnu.org>
parents:
diff changeset
1539 the value of the variable `process-environment' is taken to
Dave Love <fx@gnu.org>
parents:
diff changeset
1540 specify the environment variables to give the subprocess. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1541 value should be a list of strings, each of the form "VAR=VALUE".
Dave Love <fx@gnu.org>
parents:
diff changeset
1542
Dave Love <fx@gnu.org>
parents:
diff changeset
1543 `process-environment' is initialized when Emacs starts up
Dave Love <fx@gnu.org>
parents:
diff changeset
1544 based on Emacs's environment.
Dave Love <fx@gnu.org>
parents:
diff changeset
1545
Dave Love <fx@gnu.org>
parents:
diff changeset
1546 ** New variable `process-connection-type'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1547
Dave Love <fx@gnu.org>
parents:
diff changeset
1548 If this variable is `nil', when a subprocess is created, Emacs uses
Dave Love <fx@gnu.org>
parents:
diff changeset
1549 a pipe rather than a pty to communicate with it. Normally this
Dave Love <fx@gnu.org>
parents:
diff changeset
1550 variable is `t', telling Emacs to use a pty if ptys are supported
Dave Love <fx@gnu.org>
parents:
diff changeset
1551 and one is available.
Dave Love <fx@gnu.org>
parents:
diff changeset
1552
Dave Love <fx@gnu.org>
parents:
diff changeset
1553 ** New function `waiting-for-user-input-p'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1554
Dave Love <fx@gnu.org>
parents:
diff changeset
1555 This function, given a subprocess as argument, returns `t' if that
Dave Love <fx@gnu.org>
parents:
diff changeset
1556 subprocess appears to be waiting for input sent from Emacs,
Dave Love <fx@gnu.org>
parents:
diff changeset
1557 or `nil' otherwise.
Dave Love <fx@gnu.org>
parents:
diff changeset
1558
Dave Love <fx@gnu.org>
parents:
diff changeset
1559 ** New hook `shell-set-directory-error-hook'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1560
Dave Love <fx@gnu.org>
parents:
diff changeset
1561 The value of this variable is called, with no arguments, whenever
Dave Love <fx@gnu.org>
parents:
diff changeset
1562 Shell mode gets an error trying to keep track of directory-setting
Dave Love <fx@gnu.org>
parents:
diff changeset
1563 commands (such as `cd' and `pushd') used in the shell buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1564
Dave Love <fx@gnu.org>
parents:
diff changeset
1565 * New functions `user-uid' and `user-real-uid'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1566
Dave Love <fx@gnu.org>
parents:
diff changeset
1567 These functions take no arguments and return, respectively,
Dave Love <fx@gnu.org>
parents:
diff changeset
1568 the effective uid and the real uid of the Emacs process.
Dave Love <fx@gnu.org>
parents:
diff changeset
1569 The value in each case is an integer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1570
Dave Love <fx@gnu.org>
parents:
diff changeset
1571 * New variable `print-escape-newlines' controls string printing.
Dave Love <fx@gnu.org>
parents:
diff changeset
1572
Dave Love <fx@gnu.org>
parents:
diff changeset
1573 If this variable is non-`nil', then when a Lisp string is printed
Dave Love <fx@gnu.org>
parents:
diff changeset
1574 by the Lisp printing function `prin1' or `print', newline characters
Dave Love <fx@gnu.org>
parents:
diff changeset
1575 are printed as `\n' rather than as a literal newline.
Dave Love <fx@gnu.org>
parents:
diff changeset
1576
Dave Love <fx@gnu.org>
parents:
diff changeset
1577 * New function `sysnetunam' on HPUX.
Dave Love <fx@gnu.org>
parents:
diff changeset
1578
Dave Love <fx@gnu.org>
parents:
diff changeset
1579 This function takes two arguments, a network address PATH and a
Dave Love <fx@gnu.org>
parents:
diff changeset
1580 login string LOGIN, and executes the system call `netunam'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1581 It returns `t' if the call succeeds, otherwise `nil'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1582
Dave Love <fx@gnu.org>
parents:
diff changeset
1583 News regarding installation:
Dave Love <fx@gnu.org>
parents:
diff changeset
1584
Dave Love <fx@gnu.org>
parents:
diff changeset
1585 * Many `s-...' file names changed.
Dave Love <fx@gnu.org>
parents:
diff changeset
1586
Dave Love <fx@gnu.org>
parents:
diff changeset
1587 Many `s-...' files have been renamed. All periods in such names,
Dave Love <fx@gnu.org>
parents:
diff changeset
1588 except the ones just before the final `h', have been changed to
Dave Love <fx@gnu.org>
parents:
diff changeset
1589 hyphens. Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1590
Dave Love <fx@gnu.org>
parents:
diff changeset
1591 This is so a Unix distribution can be moved mechanically to VMS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1592
Dave Love <fx@gnu.org>
parents:
diff changeset
1593 * `DOCSTR...' file now called `DOC-...'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1594
Dave Love <fx@gnu.org>
parents:
diff changeset
1595 The file of on-line documentation strings, that used to be
Dave Love <fx@gnu.org>
parents:
diff changeset
1596 `DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1597 This is so that it can port to VMS using the standard conventions
Dave Love <fx@gnu.org>
parents:
diff changeset
1598 for translating filenames for VMS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1599
Dave Love <fx@gnu.org>
parents:
diff changeset
1600 This file also now contains the doc strings for variables as
Dave Love <fx@gnu.org>
parents:
diff changeset
1601 well as functions.
Dave Love <fx@gnu.org>
parents:
diff changeset
1602
Dave Love <fx@gnu.org>
parents:
diff changeset
1603 * Emacs no longer uses floating point arithmetic.
Dave Love <fx@gnu.org>
parents:
diff changeset
1604
Dave Love <fx@gnu.org>
parents:
diff changeset
1605 This may make it easier to port to some machines.
Dave Love <fx@gnu.org>
parents:
diff changeset
1606
Dave Love <fx@gnu.org>
parents:
diff changeset
1607 * Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1608
Dave Love <fx@gnu.org>
parents:
diff changeset
1609 These macros exclusively are used to unpack a pointer from a Lisp_Object
Dave Love <fx@gnu.org>
parents:
diff changeset
1610 and to insert a pointer into a Lisp_Object. Redefining them may help
Dave Love <fx@gnu.org>
parents:
diff changeset
1611 port Emacs to machines in which all pointers to data objects have
Dave Love <fx@gnu.org>
parents:
diff changeset
1612 certain high bits set.
Dave Love <fx@gnu.org>
parents:
diff changeset
1613
Dave Love <fx@gnu.org>
parents:
diff changeset
1614 If `DATA_SEG_BITS' is defined, it should be a number which contains
Dave Love <fx@gnu.org>
parents:
diff changeset
1615 the high bits to be inclusive or'ed with pointers that are unpacked.
Dave Love <fx@gnu.org>
parents:
diff changeset
1616
Dave Love <fx@gnu.org>
parents:
diff changeset
1617 * New flag `HAVE_X_MENU'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1618
Dave Love <fx@gnu.org>
parents:
diff changeset
1619 Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
Dave Love <fx@gnu.org>
parents:
diff changeset
1620 to enable use of the Emacs interface to X Menus. On some operating
Dave Love <fx@gnu.org>
parents:
diff changeset
1621 systems, the rest of the X interface works properly but X Menus
Dave Love <fx@gnu.org>
parents:
diff changeset
1622 do not work; hence this separate flag. See the file `src/xmenu.c'
Dave Love <fx@gnu.org>
parents:
diff changeset
1623 for more information.
Dave Love <fx@gnu.org>
parents:
diff changeset
1624
Dave Love <fx@gnu.org>
parents:
diff changeset
1625 * Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1626
Dave Love <fx@gnu.org>
parents:
diff changeset
1627 * `HAVE_ALLOCA' prevents assembly of `alloca.s'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1628
Dave Love <fx@gnu.org>
parents:
diff changeset
1629 * `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1630
Dave Love <fx@gnu.org>
parents:
diff changeset
1631 SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
Dave Love <fx@gnu.org>
parents:
diff changeset
1632 rather than those that come with Emacs.
Dave Love <fx@gnu.org>
parents:
diff changeset
1633
Dave Love <fx@gnu.org>
parents:
diff changeset
1634 Use this only if absolutely necessary, because if it is used you do
Dave Love <fx@gnu.org>
parents:
diff changeset
1635 not get warnings when space is getting low.
Dave Love <fx@gnu.org>
parents:
diff changeset
1636
Dave Love <fx@gnu.org>
parents:
diff changeset
1637 * New flags to control unexec.
Dave Love <fx@gnu.org>
parents:
diff changeset
1638
Dave Love <fx@gnu.org>
parents:
diff changeset
1639 See the file `unexec.c' for a long comment on the compilation
Dave Love <fx@gnu.org>
parents:
diff changeset
1640 switches that suffice to make it work on many machines.
Dave Love <fx@gnu.org>
parents:
diff changeset
1641
Dave Love <fx@gnu.org>
parents:
diff changeset
1642 * `PNTR_COMPARISON_TYPE'
Dave Love <fx@gnu.org>
parents:
diff changeset
1643
Dave Love <fx@gnu.org>
parents:
diff changeset
1644 Pointers that need to be compared for ordering are converted to this type
Dave Love <fx@gnu.org>
parents:
diff changeset
1645 first. Normally this is `unsigned int'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1646
Dave Love <fx@gnu.org>
parents:
diff changeset
1647 * `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1648
Dave Love <fx@gnu.org>
parents:
diff changeset
1649 These flags just say whether certain system calls are available.
Dave Love <fx@gnu.org>
parents:
diff changeset
1650
Dave Love <fx@gnu.org>
parents:
diff changeset
1651 * New macros control compiler switches, linker switches and libraries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1652
Dave Love <fx@gnu.org>
parents:
diff changeset
1653 The m- and s- files can now control in a modular fashion the precise
Dave Love <fx@gnu.org>
parents:
diff changeset
1654 arguments passed to `cc' and `ld'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1655
Dave Love <fx@gnu.org>
parents:
diff changeset
1656 LIBS_STANDARD defines the standard C libraries. Default is `-lc'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1657 LIBS_DEBUG defines the extra libraries to use when debugging. Default `-lg'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1658 LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1659 LIBS_MACHINE can be defined by the m- file to specify extra libraries.
Dave Love <fx@gnu.org>
parents:
diff changeset
1660 LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
Dave Love <fx@gnu.org>
parents:
diff changeset
1661 It is defined by default in a complicated fashion but the m- or s- file
Dave Love <fx@gnu.org>
parents:
diff changeset
1662 can override it.
Dave Love <fx@gnu.org>
parents:
diff changeset
1663
Dave Love <fx@gnu.org>
parents:
diff changeset
1664 LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
Dave Love <fx@gnu.org>
parents:
diff changeset
1665 The default is `-X' on BSD systems except those few that use COFF object files.
Dave Love <fx@gnu.org>
parents:
diff changeset
1666 LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
Dave Love <fx@gnu.org>
parents:
diff changeset
1667
Dave Love <fx@gnu.org>
parents:
diff changeset
1668 C_DEBUG_SWITCH defines the switches to give `cc' when debugging. Default `-g'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1669 C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize. Default `-O'.
Dave Love <fx@gnu.org>
parents:
diff changeset
1670 C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
Dave Love <fx@gnu.org>
parents:
diff changeset
1671
Dave Love <fx@gnu.org>
parents:
diff changeset
1672 For older news, see the file OONEWS.
Dave Love <fx@gnu.org>
parents:
diff changeset
1673
Dave Love <fx@gnu.org>
parents:
diff changeset
1674 ----------------------------------------------------------------------
Dave Love <fx@gnu.org>
parents:
diff changeset
1675 Copyright information:
Dave Love <fx@gnu.org>
parents:
diff changeset
1676
Dave Love <fx@gnu.org>
parents:
diff changeset
1677 Copyright (C) 1992 Free Software Foundation, Inc.
Dave Love <fx@gnu.org>
parents:
diff changeset
1678
Dave Love <fx@gnu.org>
parents:
diff changeset
1679 Permission is granted to anyone to make or distribute verbatim copies
Dave Love <fx@gnu.org>
parents:
diff changeset
1680 of this document as received, in any medium, provided that the
Dave Love <fx@gnu.org>
parents:
diff changeset
1681 copyright notice and this permission notice are preserved,
Dave Love <fx@gnu.org>
parents:
diff changeset
1682 thus giving the recipient permission to redistribute in turn.
Dave Love <fx@gnu.org>
parents:
diff changeset
1683
Dave Love <fx@gnu.org>
parents:
diff changeset
1684 Permission is granted to distribute modified versions
Dave Love <fx@gnu.org>
parents:
diff changeset
1685 of this document, or of portions of it,
Dave Love <fx@gnu.org>
parents:
diff changeset
1686 under the above conditions, provided also that they
Dave Love <fx@gnu.org>
parents:
diff changeset
1687 carry prominent notices stating who last changed them.
Dave Love <fx@gnu.org>
parents:
diff changeset
1688
Dave Love <fx@gnu.org>
parents:
diff changeset
1689 Local variables:
Dave Love <fx@gnu.org>
parents:
diff changeset
1690 mode: text
Dave Love <fx@gnu.org>
parents:
diff changeset
1691 end: