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