Mercurial > emacs
comparison etc/ONEWS @ 35782:061a65fa5a43
Move 19.x news from NEWS here.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Wed, 31 Jan 2001 15:19:32 +0000 |
parents | b75587b124c4 |
children | 19880a4faa73 |
comparison
equal
deleted
inserted
replaced
35781:ffdcf20f53f2 | 35782:061a65fa5a43 |
---|---|
1 GNU Emacs NEWS -- history of user-visible changes. 1992. | 1 GNU Emacs NEWS -- history of user-visible changes. 1992. |
2 Copyright (C) 1995 Free Software Foundation, Inc. | 2 Copyright (C) 1995, 2001 Free Software Foundation, Inc. |
3 See the end for copying conditions. | 3 See the end for copying conditions. |
4 | 4 |
5 For older news, see the file ONEWS.4. | 5 For older news, see the file ONEWS.4. |
6 | |
7 * Emacs 19.34 is a bug-fix release with no user-visible changes. | |
8 | |
9 * Changes in Emacs 19.33. | |
10 | |
11 ** Bibtex mode no longer turns on Auto Fill automatically. (No major | |
12 mode should do that--it is the user's choice.) | |
13 | |
14 ** The variable normal-auto-fill-function specifies the function to | |
15 use for auto-fill-function, if and when Auto Fill is turned on. | |
16 Major modes can set this locally to alter how Auto Fill works. | |
17 | |
18 * Editing Changes in Emacs 19.32 | |
19 | |
20 ** C-x f with no argument now signals an error. | |
21 To set the fill column at the current column, use C-u C-x f. | |
22 | |
23 ** Expanding dynamic abbrevs with M-/ is now smarter about case | |
24 conversion. If you type the abbreviation with mixed case, and it | |
25 matches the beginning of the expansion including case, then the | |
26 expansion is copied verbatim. Using SPC M-/ to copy an additional | |
27 word always copies it verbatim except when the previous copied word is | |
28 all caps. | |
29 | |
30 ** On a non-windowing terminal, which can display only one Emacs frame | |
31 at a time, creating a new frame with C-x 5 2 also selects that frame. | |
32 | |
33 When using a display that can show multiple frames at once, C-x 5 2 | |
34 does make the frame visible, but does not select it. This is the same | |
35 as in previous Emacs versions. | |
36 | |
37 ** You can use C-x 5 2 to create multiple frames on MSDOS, just as on a | |
38 non-X terminal on Unix. Of course, only one frame is visible at any | |
39 time, since your terminal doesn't have the ability to display multiple | |
40 frames. | |
41 | |
42 ** On Windows, set win32-pass-alt-to-system to a non-nil value | |
43 if you would like tapping the Alt key to invoke the Windows menu. | |
44 This feature is not enabled by default; since the Alt key is also the | |
45 Meta key, it is too easy and painful to activate this feature by | |
46 accident. | |
47 | |
48 ** The command apply-macro-to-region-lines repeats the last defined | |
49 keyboard macro once for each complete line within the current region. | |
50 It does this line by line, by moving point to the beginning of that | |
51 line and then executing the macro. | |
52 | |
53 This command is not new, but was never documented before. | |
54 | |
55 ** You can now use Mouse-1 to place the region around a string constant | |
56 (something surrounded by doublequote characters or other delimiter | |
57 characters of like syntax) by double-clicking on one of the delimiting | |
58 characters. | |
59 | |
60 ** Font Lock mode | |
61 | |
62 *** Font Lock support modes | |
63 | |
64 Font Lock can be configured to use Fast Lock mode and Lazy Lock mode (see | |
65 below) in a flexible way. Rather than adding the appropriate function to the | |
66 hook font-lock-mode-hook, you can use the new variable font-lock-support-mode | |
67 to control which modes have Fast Lock mode or Lazy Lock mode turned on when | |
68 Font Lock mode is enabled. | |
69 | |
70 For example, to use Fast Lock mode when Font Lock mode is turned on, put: | |
71 | |
72 (setq font-lock-support-mode 'fast-lock-mode) | |
73 | |
74 in your ~/.emacs. | |
75 | |
76 *** lazy-lock | |
77 | |
78 The lazy-lock package speeds up Font Lock mode by making fontification occur | |
79 only when necessary, such as when a previously unfontified part of the buffer | |
80 becomes visible in a window. When you create a buffer with Font Lock mode and | |
81 Lazy Lock mode turned on, the buffer is not fontified. When certain events | |
82 occur (such as scrolling), Lazy Lock makes sure that the visible parts of the | |
83 buffer are fontified. Lazy Lock also defers on-the-fly fontification until | |
84 Emacs has been idle for a given amount of time. | |
85 | |
86 To use this package, put in your ~/.emacs: | |
87 | |
88 (setq font-lock-support-mode 'lazy-lock-mode) | |
89 | |
90 To control the package behaviour, see the documentation for `lazy-lock-mode'. | |
91 | |
92 ** Changes in BibTeX mode. | |
93 | |
94 *** For all entries allow spaces and tabs between opening brace or | |
95 paren and key. | |
96 | |
97 *** Non-escaped double-quoted characters (as in `Sch"of') are now | |
98 supported. | |
99 | |
100 ** Gnus changes. | |
101 | |
102 Gnus, the Emacs news reader, has undergone further rewriting. Many new | |
103 commands and variables have been added. There should be no | |
104 significant incompatibilities between this Gnus version and the | |
105 previously released version, except in the message composition area. | |
106 | |
107 Below is a list of the more user-visible changes. Coding changes | |
108 between Gnus 5.1 and 5.2 are more extensive. | |
109 | |
110 *** A new message composition mode is used. All old customization | |
111 variables for mail-mode, rnews-reply-mode and gnus-msg are now | |
112 obsolete. | |
113 | |
114 *** Gnus is now able to generate "sparse" threads -- threads where | |
115 missing articles are represented by empty nodes. | |
116 | |
117 (setq gnus-build-sparse-threads 'some) | |
118 | |
119 *** Outgoing articles are stored on a special archive server. | |
120 | |
121 To disable this: (setq gnus-message-archive-group nil) | |
122 | |
123 *** Partial thread regeneration now happens when articles are | |
124 referred. | |
125 | |
126 *** Gnus can make use of GroupLens predictions: | |
127 | |
128 (setq gnus-use-grouplens t) | |
129 | |
130 *** A trn-line tree buffer can be displayed. | |
131 | |
132 (setq gnus-use-trees t) | |
133 | |
134 *** An nn-like pick-and-read minor mode is available for the summary | |
135 buffers. | |
136 | |
137 (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode) | |
138 | |
139 *** In binary groups you can use a special binary minor mode: | |
140 | |
141 `M-x gnus-binary-mode' | |
142 | |
143 *** Groups can be grouped in a folding topic hierarchy. | |
144 | |
145 (add-hook 'gnus-group-mode-hook 'gnus-topic-mode) | |
146 | |
147 *** Gnus can re-send and bounce mail. | |
148 | |
149 Use the `S D r' and `S D b'. | |
150 | |
151 *** Groups can now have a score, and bubbling based on entry frequency | |
152 is possible. | |
153 | |
154 (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group) | |
155 | |
156 *** Groups can be process-marked, and commands can be performed on | |
157 groups of groups. | |
158 | |
159 *** Caching is possible in virtual groups. | |
160 | |
161 *** nndoc now understands all kinds of digests, mail boxes, rnews news | |
162 batches, ClariNet briefs collections, and just about everything else. | |
163 | |
164 *** Gnus has a new backend (nnsoup) to create/read SOUP packets. | |
165 | |
166 *** The Gnus cache is much faster. | |
167 | |
168 *** Groups can be sorted according to many criteria. | |
169 | |
170 For instance: (setq gnus-group-sort-function 'gnus-group-sort-by-rank) | |
171 | |
172 *** New group parameters have been introduced to set list-address and | |
173 expiration times. | |
174 | |
175 *** All formatting specs allow specifying faces to be used. | |
176 | |
177 *** There are several more commands for setting/removing/acting on | |
178 process marked articles on the `M P' submap. | |
179 | |
180 *** The summary buffer can be limited to show parts of the available | |
181 articles based on a wide range of criteria. These commands have been | |
182 bound to keys on the `/' submap. | |
183 | |
184 *** Articles can be made persistent -- as an alternative to saving | |
185 articles with the `*' command. | |
186 | |
187 *** All functions for hiding article elements are now toggles. | |
188 | |
189 *** Article headers can be buttonized. | |
190 | |
191 (add-hook 'gnus-article-display-hook 'gnus-article-add-buttons-to-head) | |
192 | |
193 *** All mail backends support fetching articles by Message-ID. | |
194 | |
195 *** Duplicate mail can now be treated properly. See the | |
196 `nnmail-treat-duplicates' variable. | |
197 | |
198 *** All summary mode commands are available directly from the article | |
199 buffer. | |
200 | |
201 *** Frames can be part of `gnus-buffer-configuration'. | |
202 | |
203 *** Mail can be re-scanned by a daemonic process. | |
204 | |
205 *** Gnus can make use of NoCeM files to filter spam. | |
206 | |
207 (setq gnus-use-nocem t) | |
208 | |
209 *** Groups can be made permanently visible. | |
210 | |
211 (setq gnus-permanently-visible-groups "^nnml:") | |
212 | |
213 *** Many new hooks have been introduced to make customizing easier. | |
214 | |
215 *** Gnus respects the Mail-Copies-To header. | |
216 | |
217 *** Threads can be gathered by looking at the References header. | |
218 | |
219 (setq gnus-summary-thread-gathering-function | |
220 'gnus-gather-threads-by-references) | |
221 | |
222 *** Read articles can be stored in a special backlog buffer to avoid | |
223 refetching. | |
224 | |
225 (setq gnus-keep-backlog 50) | |
226 | |
227 *** A clean copy of the current article is always stored in a separate | |
228 buffer to allow easier treatment. | |
229 | |
230 *** Gnus can suggest where to save articles. See `gnus-split-methods'. | |
231 | |
232 *** Gnus doesn't have to do as much prompting when saving. | |
233 | |
234 (setq gnus-prompt-before-saving t) | |
235 | |
236 *** gnus-uu can view decoded files asynchronously while fetching | |
237 articles. | |
238 | |
239 (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view) | |
240 | |
241 *** Filling in the article buffer now works properly on cited text. | |
242 | |
243 *** Hiding cited text adds buttons to toggle hiding, and how much | |
244 cited text to hide is now customizable. | |
245 | |
246 (setq gnus-cited-lines-visible 2) | |
247 | |
248 *** Boring headers can be hidden. | |
249 | |
250 (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers) | |
251 | |
252 *** Default scoring values can now be set from the menu bar. | |
253 | |
254 *** Further syntax checking of outgoing articles have been added. | |
255 | |
256 The Gnus manual has been expanded. It explains all these new features | |
257 in greater detail. | |
258 | |
259 * Lisp Changes in Emacs 19.32 | |
260 | |
261 ** The function set-visited-file-name now accepts an optional | |
262 second argument NO-QUERY. If it is non-nil, then the user is not | |
263 asked for confirmation in the case where the specified file already | |
264 exists. | |
265 | |
266 ** The variable print-length applies to printing vectors and bitvectors, | |
267 as well as lists. | |
268 | |
269 ** The new function keymap-parent returns the parent keymap | |
270 of a given keymap. | |
271 | |
272 ** The new function set-keymap-parent specifies a new parent for a | |
273 given keymap. The arguments are KEYMAP and PARENT. PARENT must be a | |
274 keymap or nil. | |
275 | |
276 ** Sometimes menu keymaps use a command name, a symbol, which is really | |
277 an automatically generated alias for some other command, the "real" | |
278 name. In such a case, you should give that alias symbol a non-nil | |
279 menu-alias property. That property tells the menu system to look for | |
280 equivalent keys for the real name instead of equivalent keys for the | |
281 alias. | |
282 | |
283 * Editing Changes in Emacs 19.31 | |
284 | |
285 ** Freedom of the press restricted in the United States. | |
286 | |
287 Emacs has been censored in accord with the Communications Decency Act. | |
288 This includes removing some features of the doctor program. That law | |
289 was described by its supporters as a ban on pornography, but it bans | |
290 far more than that. The Emacs distribution has never contained any | |
291 pornography, but parts of it were nonetheless prohibited. | |
292 | |
293 For information on US government censorship of the Internet, and what | |
294 you can do to bring back freedom of the press, see the web site | |
295 `http://www.vtw.org/'. | |
296 | |
297 ** A note about C mode indentation customization. | |
298 | |
299 The old (Emacs 19.29) ways of specifying a C indentation style | |
300 do not normally work in the new implementation of C mode. | |
301 It has its own methods of customizing indentation, which are | |
302 much more powerful than the old C mode. See the Editing Programs | |
303 chapter of the manual for details. | |
304 | |
305 However, you can load the library cc-compat to make the old | |
306 customization variables take effect. | |
307 | |
308 ** Marking with the mouse. | |
309 | |
310 When you mark a region with the mouse, the region now remains | |
311 highlighted until the next input event, regardless of whether you are | |
312 using M-x transient-mark-mode. | |
313 | |
314 ** Improved Windows NT/95 support. | |
315 | |
316 *** Emacs now supports scroll bars on Windows NT and Windows 95. | |
317 | |
318 *** Emacs now supports subprocesses on Windows 95. (Subprocesses used | |
319 to work on NT only and not on 95.) | |
320 | |
321 *** There are difficulties with subprocesses, though, due to problems | |
322 in Windows, beyond the control of Emacs. They work fine as long as | |
323 you run Windows applications. The problems arise when you run a DOS | |
324 application in a subprocesses. Since current shells run as DOS | |
325 applications, these problems are significant. | |
326 | |
327 If you run a DOS application in a subprocess, then the application is | |
328 likely to busy-wait, which means that your machine will be 100% busy. | |
329 However, if you don't mind the temporary heavy load, the subprocess | |
330 will work OK as long as you tell it to terminate before you start any | |
331 other DOS application as a subprocess. | |
332 | |
333 Emacs is unable to terminate or interrupt a DOS subprocess. | |
334 You have to do this by providing input directly to the subprocess. | |
335 | |
336 If you run two DOS applications at the same time in two separate | |
337 subprocesses, even if one of them is asynchronous, you will probably | |
338 have to reboot your machine--until then, it will remain 100% busy. | |
339 Windows simply does not cope when one Windows process tries to run two | |
340 separate DOS subprocesses. Typing CTL-ALT-DEL and then choosing | |
341 Shutdown seems to work although it may take a few minutes. | |
342 | |
343 ** M-x resize-minibuffer-mode. | |
344 | |
345 This command, not previously mentioned in NEWS, toggles a mode in | |
346 which the minibuffer window expands to show as many lines as the | |
347 minibuffer contains. | |
348 | |
349 ** `title' frame parameter and resource. | |
350 | |
351 The `title' X resource now specifies just the frame title, nothing else. | |
352 It does not affect the name used for looking up other X resources. | |
353 It works by setting the new `title' frame parameter, which likewise | |
354 affects just the displayed title of the frame. | |
355 | |
356 The `name' parameter continues to do what it used to do: | |
357 it specifies the frame name for looking up X resources, | |
358 and also serves as the default for the displayed title | |
359 when the `title' parameter is unspecified or nil. | |
360 | |
361 ** Emacs now uses the X toolkit by default, if you have a new | |
362 enough version of X installed (X11R5 or newer). | |
363 | |
364 ** When you compile Emacs with the Motif widget set, Motif handles the | |
365 F10 key by activating the menu bar. To avoid confusion, the usual | |
366 Emacs binding of F10 is replaced with a no-op when using Motif. | |
367 | |
368 If you want to be able to use F10 in Emacs, you can rebind the Motif | |
369 menubar to some other key which you don't use. To do so, add | |
370 something like this to your X resources file. This example rebinds | |
371 the Motif menu bar activation key to S-F12: | |
372 | |
373 Emacs*defaultVirtualBindings: osfMenuBar : Shift<Key>F12 | |
374 | |
375 ** In overwrite mode, DEL now inserts spaces in most cases | |
376 to replace the characters it "deletes". | |
377 | |
378 ** The Rmail summary now shows the number of lines in each message. | |
379 | |
380 ** Rmail has a new command M-x unforward-rmail-message, which extracts | |
381 a forwarded message from the message that forwarded it. To use it, | |
382 select a message which contains a forwarded message and then type the command. | |
383 It inserts the forwarded message as a separate Rmail message | |
384 immediately after the selected one. | |
385 | |
386 This command also undoes the textual modifications that are standardly | |
387 made, as part of forwarding, by Rmail and other mail reader programs. | |
388 | |
389 ** Turning off saving of .saves-... files in your home directory. | |
390 | |
391 Each Emacs session writes a file named .saves-... in your home | |
392 directory to record which files M-x recover-session should recover. | |
393 If you exit Emacs normally with C-x C-c, it deletes that file. If | |
394 Emacs or the operating system crashes, the file remains for M-x | |
395 recover-session. | |
396 | |
397 You can turn off the writing of these files by setting | |
398 auto-save-list-file-name to nil. If you do this, M-x recover-session | |
399 will not work. | |
400 | |
401 Some previous Emacs versions failed to delete these files even on | |
402 normal exit. This is fixed now. If you are thinking of turning off | |
403 this feature because of past experiences with versions that had this | |
404 bug, it would make sense to check whether you still want to do so | |
405 now that the bug is fixed. | |
406 | |
407 ** Changes to Version Control (VC) | |
408 | |
409 There is a new variable, vc-follow-symlinks. It indicates what to do | |
410 when you visit a link to a file that is under version control. | |
411 Editing the file through the link bypasses the version control system, | |
412 which is dangerous and probably not what you want. | |
413 | |
414 If this variable is t, VC follows the link and visits the real file, | |
415 telling you about it in the echo area. If it is `ask' (the default), | |
416 VC asks for confirmation whether it should follow the link. If nil, | |
417 the link is visited and a warning displayed. | |
418 | |
419 ** iso-acc.el now lets you specify a choice of language. | |
420 Languages include "latin-1" (the default) and "latin-2" (which | |
421 is designed for entering ISO Latin-2 characters). | |
422 | |
423 There are also choices for specific human languages such as French and | |
424 Portuguese. These are subsets of Latin-1, which differ in that they | |
425 enable only the accent characters needed for particular language. | |
426 The other accent characters, not needed for the chosen language, | |
427 remain normal. | |
428 | |
429 ** Posting articles and sending mail now has M-TAB completion on various | |
430 header fields (Newsgroups, To, CC, ...). | |
431 | |
432 Completion in the Newsgroups header depends on the list of groups | |
433 known to your news reader. Completion in the Followup-To header | |
434 offers those groups which are in the Newsgroups header, since | |
435 Followup-To usually just holds one of those. | |
436 | |
437 Completion in fields that hold mail addresses works based on the list | |
438 of local users plus your aliases. Additionally, if your site provides | |
439 a mail directory or a specific host to use for any unrecognized user | |
440 name, you can arrange to query that host for completion also. (See the | |
441 documentation of variables `mail-directory-process' and | |
442 `mail-directory-stream'.) | |
443 | |
444 ** A greatly extended sgml-mode offers new features such as (to be configured) | |
445 skeletons with completing read for tags and attributes, typing named | |
446 characters including optionally all 8bit characters, making tags invisible | |
447 with optional alternate display text, skipping and deleting tag(pair)s. | |
448 | |
449 Note: since Emacs' syntax feature cannot limit the special meaning of ', " and | |
450 - to inside <>, for some texts the result, especially of font locking, may be | |
451 wrong (see `sgml-specials' if you get wrong results). | |
452 | |
453 The derived html-mode configures this with tags and attributes more or | |
454 less HTML3ish. It also offers optional quick keys like C-c 1 for | |
455 headline or C-c u for unordered list (see `html-quick-keys'). Edit / | |
456 Text Properties / Face or M-g combinations create tags as applicable. | |
457 Outline minor mode is supported and level 1 font-locking tries to | |
458 fontify tag contents (which only works when they fit on one line, due | |
459 to a limitation in font-lock). | |
460 | |
461 External viewing via browse-url can occur automatically upon saving. | |
462 | |
463 ** M-x imenu-add-to-menubar now adds to the menu bar for the current | |
464 buffer only. If you want to put an Imenu item in the menu bar for all | |
465 buffers that use a particular major mode, use the mode hook, as in | |
466 this example: | |
467 | |
468 (add-hook 'emacs-lisp-mode-hook | |
469 '(lambda () (imenu-add-to-menubar "Index"))) | |
470 | |
471 ** Changes in BibTeX mode. | |
472 | |
473 *** Field names may now contain digits, hyphens, and underscores. | |
474 | |
475 *** Font Lock mode is now supported. | |
476 | |
477 *** bibtex-make-optional-field is no longer interactive. | |
478 | |
479 *** If bibtex-maintain-sorted-entries is non-nil, inserting new | |
480 entries is now done with a faster algorithm. However, inserting | |
481 will fail in this case if the buffer contains invalid entries or | |
482 isn't in sorted order, so you should finish each entry with C-c C-c | |
483 (bibtex-close-entry) after you have inserted or modified it. | |
484 The default value of bibtex-maintain-sorted-entries is nil. | |
485 | |
486 *** Function `show-all' is no longer bound to a key, since C-u C-c C-q | |
487 does the same job. | |
488 | |
489 *** Entries with quotes inside quote-delimited fields (as `author = | |
490 "Stefan Sch{\"o}f"') are now supported. | |
491 | |
492 *** Case in field names doesn't matter anymore when searching for help | |
493 text. | |
494 | |
495 ** Font Lock mode | |
496 | |
497 *** Global Font Lock mode | |
498 | |
499 Font Lock mode can be turned on globally, in buffers that support it, by the | |
500 new command global-font-lock-mode. You can use the new variable | |
501 font-lock-global-modes to control which modes have Font Lock mode automagically | |
502 turned on. By default, this variable is set so that Font Lock mode is turned | |
503 on globally where the buffer mode supports it. | |
504 | |
505 For example, to automagically turn on Font Lock mode where supported, put: | |
506 | |
507 (global-font-lock-mode t) | |
508 | |
509 in your ~/.emacs. | |
510 | |
511 *** Local Refontification | |
512 | |
513 In Font Lock mode, editing a line automatically refontifies that line only. | |
514 However, if your change alters the syntactic context for following lines, | |
515 those lines remain incorrectly fontified. To refontify them, use the new | |
516 command M-g M-g (font-lock-fontify-block). | |
517 | |
518 In certain major modes, M-g M-g refontifies the entire current function. | |
519 (The variable font-lock-mark-block-function controls how to find the | |
520 current function.) In other major modes, M-g M-g refontifies 16 lines | |
521 above and below point. | |
522 | |
523 With a prefix argument N, M-g M-g refontifies N lines above and below point. | |
524 | |
525 ** Follow mode | |
526 | |
527 Follow mode is a new minor mode combining windows showing the same | |
528 buffer into one tall "virtual window". The windows are typically two | |
529 side-by-side windows. Follow mode makes them scroll together as if | |
530 they were a unit. To use it, go to a frame with just one window, | |
531 split it into two side-by-side windows using C-x 3, and then type M-x | |
532 follow-mode. | |
533 | |
534 M-x follow-mode turns off Follow mode if it is already enabled. | |
535 | |
536 To display two side-by-side windows and activate Follow mode, use the | |
537 command M-x follow-delete-other-windows-and-split. | |
538 | |
539 ** hide-show changes. | |
540 | |
541 The hooks hs-hide-hooks and hs-show-hooks have been renamed | |
542 to hs-hide-hook and hs-show-hook, to follow the convention for | |
543 normal hooks. | |
544 | |
545 ** Simula mode now has a menu containing the most important commands. | |
546 The new command simula-indent-exp is bound to C-M-q. | |
547 | |
548 ** etags can now handle programs written in Erlang. Files are | |
549 recognised by the extensions .erl and .hrl. The tagged lines are | |
550 those that begin a function, record, or macro. | |
551 | |
552 ** MSDOS Changes | |
553 | |
554 *** It is now possible to compile Emacs with the version 2 of DJGPP. | |
555 Compilation with DJGPP version 1 also still works. | |
556 | |
557 *** The documentation of DOS-specific aspects of Emacs was rewritten | |
558 and expanded; see the ``MS-DOS'' node in the on-line docs. | |
559 | |
560 *** Emacs now uses ~ for backup file names, not .bak. | |
561 | |
562 *** You can simulate mouse-3 on two-button mice by simultaneously | |
563 pressing both mouse buttons. | |
564 | |
565 *** A number of packages and commands which previously failed or had | |
566 restricted functionality on MS-DOS, now work. The most important ones | |
567 are: | |
568 | |
569 **** Printing (both with `M-x lpr-buffer' and with `ps-print' package) | |
570 now works. | |
571 | |
572 **** `Ediff' works (in a single-frame mode). | |
573 | |
574 **** `M-x display-time' can be used on MS-DOS (due to the new | |
575 implementation of Emacs timers, see below). | |
576 | |
577 **** `Dired' supports Unix-style shell wildcards. | |
578 | |
579 **** The `c-macro-expand' command now works as on other platforms. | |
580 | |
581 **** `M-x recover-session' works. | |
582 | |
583 **** `M-x list-colors-display' displays all the available colors. | |
584 | |
585 **** The `TPU-EDT' package works. | |
586 | |
587 * Lisp changes in Emacs 19.31. | |
588 | |
589 ** The function using-unix-filesystems on Windows NT and Windows 95 | |
590 tells Emacs to read and write files assuming that they reside on a | |
591 remote Unix filesystem. No CR/LF translation is done on any files in | |
592 this case. Invoking using-unix-filesystems with t activates this | |
593 behavior, and invoking it with any other value deactivates it. | |
594 | |
595 ** Change in system-type and system-configuration values. | |
596 | |
597 The value of system-type on a Linux-based GNU system is now `lignux', | |
598 not `linux'. This means that some programs which use `system-type' | |
599 need to be changed. The value of `system-configuration' will also | |
600 be different. | |
601 | |
602 It is generally recommended to use `system-configuration' rather | |
603 than `system-type'. | |
604 | |
605 See the file LINUX-GNU in this directory for more about this. | |
606 | |
607 ** The functions shell-command and dired-call-process | |
608 now run file name handlers for default-directory, if it has them. | |
609 | |
610 ** Undoing the deletion of text now restores the positions of markers | |
611 that pointed into or next to the deleted text. | |
612 | |
613 ** Timers created with run-at-time now work internally to Emacs, and | |
614 no longer use a separate process. Therefore, they now work more | |
615 reliably and can be used for shorter time delays. | |
616 | |
617 The new function run-with-timer is a convenient way to set up a timer | |
618 to run a specified amount of time after the present. A call looks | |
619 like this: | |
620 | |
621 (run-with-timer SECS REPEAT FUNCTION ARGS...) | |
622 | |
623 SECS says how many seconds should elapse before the timer happens. | |
624 It may be an integer or a floating point number. When the timer | |
625 becomes ripe, the action is to call FUNCTION with arguments ARGS. | |
626 | |
627 REPEAT gives the interval for repeating the timer (measured in | |
628 seconds). It may be an integer or a floating point number. nil or 0 | |
629 means don't repeat at all--call FUNCTION just once. | |
630 | |
631 *** with-timeout provides an easy way to do something but give | |
632 up if too much time passes. | |
633 | |
634 (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...) | |
635 | |
636 This executes BODY, but gives up after SECONDS seconds. | |
637 If it gives up, it runs the TIMEOUT-FORMS and returns the value | |
638 of the last one of them. Normally it returns the value of the last | |
639 form in BODY. | |
640 | |
641 *** You can now arrange to call a function whenever Emacs is idle for | |
642 a certain length of time. To do this, call run-with-idle-timer. A | |
643 call looks like this: | |
644 | |
645 (run-with-idle-timer SECS REPEAT FUNCTION ARGS...) | |
646 | |
647 SECS says how many seconds of idleness should elapse before the timer | |
648 runs. It may be an integer or a floating point number. When the | |
649 timer becomes ripe, the action is to call FUNCTION with arguments | |
650 ARGS. | |
651 | |
652 Emacs becomes idle whenever it finishes executing a keyboard or mouse | |
653 command. It remains idle until it receives another keyboard or mouse | |
654 command. | |
655 | |
656 REPEAT, if non-nil, means this timer should be activated again each | |
657 time Emacs becomes idle and remains idle for SECS seconds The timer | |
658 does not repeat if Emacs *remains* idle; it runs at most once after | |
659 each time Emacs becomes idle. | |
660 | |
661 If REPEAT is nil, the timer runs just once, the first time Emacs is | |
662 idle for SECS seconds. | |
663 | |
664 *** post-command-idle-hook is now obsolete; you shouldn't use it at | |
665 all, because it interferes with the idle timer mechanism. If your | |
666 programs use post-command-idle-hook, convert them to use idle timers | |
667 instead. | |
668 | |
669 *** y-or-n-p-with-timeout lets you ask a question but give up if | |
670 there is no answer within a certain time. | |
671 | |
672 (y-or-n-p-with-timeout PROMPT SECONDS DEFAULT-VALUE) | |
673 | |
674 asks the question PROMPT (just like y-or-n-p). If the user answers | |
675 within SECONDS seconds, it returns the answer that the user gave. | |
676 Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE. | |
677 | |
678 ** Minor change to `encode-time': you can now pass more than seven | |
679 arguments. If you do that, the first six arguments have the usual | |
680 meaning, the last argument is interpreted as the time zone, and the | |
681 arguments in between are ignored. | |
682 | |
683 This means that it works to use the list returned by `decode-time' as | |
684 the list of arguments for `encode-time'. | |
685 | |
686 ** The default value of load-path now includes the directory | |
687 /usr/local/share/emacs/VERSION/site-lisp In addition to | |
688 /usr/local/share/emacs/site-lisp. You can use this new directory for | |
689 site-specific Lisp packages that belong with a particular Emacs | |
690 version. | |
691 | |
692 It is not unusual for a Lisp package that works well in one Emacs | |
693 version to cause trouble in another. Sometimes packages need updating | |
694 for incompatible changes; sometimes they look at internal data that | |
695 has changed; sometimes the package has been installed in Emacs itself | |
696 and the installed version should be used. Whatever the reason for the | |
697 problem, this new feature makes it easier to solve. | |
698 | |
699 ** When your program contains a fixed file name (like .completions or | |
700 .abbrev.defs), the file name usually needs to be different on operating | |
701 systems with limited file name syntax. | |
702 | |
703 Now you can avoid ad-hoc conditionals by using the function | |
704 convert-standard-filename to convert the file name to a proper form | |
705 for each operating system. Here is an example of use, from the file | |
706 completions.el: | |
707 | |
708 (defvar save-completions-file-name | |
709 (convert-standard-filename "~/.completions") | |
710 "*The filename to save completions to.") | |
711 | |
712 This sets the variable save-completions-file-name to a value that | |
713 depends on the operating system, because the definition of | |
714 convert-standard-filename depends on the operating system. On | |
715 Unix-like systems, it returns the specified file name unchanged. On | |
716 MS-DOS, it adapts the name to fit the limitations of that system. | |
717 | |
718 ** The interactive spec N now returns the numeric prefix argument | |
719 rather than the raw prefix argument. (It still reads a number using the | |
720 minibuffer if there is no prefix argument at all.) | |
721 | |
722 ** When a process is deleted, this no longer disconnects the process | |
723 marker from its buffer position. | |
724 | |
725 ** The variable garbage-collection-messages now controls whether | |
726 Emacs displays a message at the beginning and end of garbage collection. | |
727 The default is nil, meaning there are no messages. | |
728 | |
729 ** The variable debug-ignored-errors specifies certain kinds of errors | |
730 that should not enter the debugger. Its value is a list of error | |
731 condition symbols and/or regular expressions. If the error has any | |
732 of the condition symbols listed, or if any of the regular expressions | |
733 matches the error message, then that error does not enter the debugger, | |
734 regardless of the value of debug-on-error. | |
735 | |
736 This variable is initialized to match certain common but uninteresting | |
737 errors that happen often during editing. | |
738 | |
739 ** The new function error-message-string converts an error datum | |
740 into its error message. The error datum is what condition-case | |
741 puts into the variable, to describe the error that happened. | |
742 | |
743 ** Anything that changes which buffer appears in a given window | |
744 now runs the window-scroll-functions for that window. | |
745 | |
746 ** The new function get-buffer-window-list returns a list of windows displaying | |
747 a buffer. The function is called with the buffer (a buffer object or a buffer | |
748 name) and two optional arguments specifying the minibuffer windows and frames | |
749 to search. Therefore this function takes optional args like next-window etc., | |
750 and not get-buffer-window. | |
751 | |
752 ** buffer-substring now runs the hook buffer-access-fontify-functions, | |
753 calling each function with two arguments--the range of the buffer | |
754 being accessed. buffer-substring-no-properties does not call them. | |
755 | |
756 If you use this feature, you should set the variable | |
757 buffer-access-fontified-property to a non-nil symbol, which is a | |
758 property name. Then, if all the characters in the buffer range have a | |
759 non-nil value for that property, the buffer-access-fontify-functions | |
760 are not called. When called, these functions should put a non-nil | |
761 property on the text that they fontify, so that they won't get called | |
762 over and over for the same text. | |
763 | |
764 ** Changes in lisp-mnt.el | |
765 | |
766 *** The lisp-mnt package can now recognize file headers that are written | |
767 in the formats used by the `what' command and the RCS `ident' command: | |
768 | |
769 ;; @(#) HEADER: text | |
770 ;; $HEADER: text $ | |
771 | |
772 in addition to the normal | |
773 | |
774 ;; HEADER: text | |
775 | |
776 *** The commands lm-verify and lm-synopsis are now interactive. lm-verify | |
777 checks that the library file has proper sections and headers, and | |
778 lm-synopsis extracts first line "synopsis'"information. | |
779 | |
780 | |
6 | 781 |
7 * Editing Changes in Emacs 19.30. | 782 * Editing Changes in Emacs 19.30. |
8 | 783 |
9 ** Be sure to recompile your byte-compiled Emacs Lisp files | 784 ** Be sure to recompile your byte-compiled Emacs Lisp files |
10 if you last compiled them with Emacs 19.28 or earlier. | 785 if you last compiled them with Emacs 19.28 or earlier. |
252 your working file with the latest version from the master. | 1027 your working file with the latest version from the master. |
253 | 1028 |
254 *** RCS customization. | 1029 *** RCS customization. |
255 | 1030 |
256 There is a new variable vc-consult-headers. If it is t (the default), | 1031 There is a new variable vc-consult-headers. If it is t (the default), |
257 VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.3 2000/11/02 13:34:50 gerd Exp $') and | 1032 VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.4 2000/11/20 16:15:34 gerd Exp $') and |
258 determines the state of the file from them, not from the master file. | 1033 determines the state of the file from them, not from the master file. |
259 This is fast and more reliable when you use branches. (The variable | 1034 This is fast and more reliable when you use branches. (The variable |
260 was already present in Emacs 19.29, but didn't get mentioned in the | 1035 was already present in Emacs 19.29, but didn't get mentioned in the |
261 NEWS.) | 1036 NEWS.) |
262 | 1037 |