Mercurial > emacs
comparison etc/NEWS @ 90159:08185296b491
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-44
Merge from emacs--cvs-trunk--0
Patches applied:
* emacs--cvs-trunk--0 (patch 272-288)
- src/xdisp.c (dump_glyph_row): Don't display overlay_arrow_p field.
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 67)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Thu, 05 May 2005 00:04:55 +0000 |
parents | e1fbb019c538 8b86bc77d515 |
children | 62afea0771d8 |
comparison
equal
deleted
inserted
replaced
90158:bf4846baba9a | 90159:08185296b491 |
---|---|
90 eight-bit-control/eight-bit-graphic charsets aren't now in the range | 90 eight-bit-control/eight-bit-graphic charsets aren't now in the range |
91 128-255. | 91 128-255. |
92 | 92 |
93 * Installation Changes in Emacs 22.1 | 93 * Installation Changes in Emacs 22.1 |
94 | 94 |
95 ** Emacs includes now support for loading image libraries on demand. | 95 --- |
96 (Currently this feature is only used on MS Windows.) You can configure | 96 ** Emacs now supports new configure options `--program-prefix', |
97 the supported image types and their associated dynamic libraries by | 97 `--program-suffix' and `--program-transform-name' that affect the names of |
98 setting the variable `image-library-alist'. | 98 installed programs. |
99 | 99 |
100 --- | 100 --- |
101 ** New translations of the Emacs Tutorial are available in the following | 101 ** Emacs can now be built without sound support. |
102 languages: Brasilian, Bulgarian, Chinese (both with simplified and | |
103 traditional characters), French, and Italian. Type `C-u C-h t' to | |
104 choose one of them in case your language setup doesn't automatically | |
105 select the right one. | |
106 | 102 |
107 --- | 103 --- |
108 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' | 104 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' |
109 when you run configure. This requires Gtk+ 2.0 or newer. This port | 105 when you run configure. This requires Gtk+ 2.0 or newer. This port |
110 provides a way to display multilingual text in menus (with some caveats). | 106 provides a way to display multilingual text in menus (with some caveats). |
111 | 107 |
112 --- | 108 --- |
113 ** Emacs can now be built without sound support. | |
114 | |
115 --- | |
116 ** The `emacsserver' program has been removed, replaced with elisp code. | 109 ** The `emacsserver' program has been removed, replaced with elisp code. |
117 | |
118 --- | |
119 ** Emacs now supports new configure options `--program-prefix', | |
120 `--program-suffix' and `--program-transform-name' that affect the names of | |
121 installed programs. | |
122 | 110 |
123 --- | 111 --- |
124 ** By default, Emacs now uses a setgid helper program to update game | 112 ** By default, Emacs now uses a setgid helper program to update game |
125 scores. The directory ${localstatedir}/games/emacs is the normal | 113 scores. The directory ${localstatedir}/games/emacs is the normal |
126 place for game scores to be stored. This may be controlled by the | 114 place for game scores to be stored. This may be controlled by the |
135 Emacs with Leim. | 123 Emacs with Leim. |
136 | 124 |
137 +++ | 125 +++ |
138 ** The Emacs Lisp Reference Manual is now part of the distribution. | 126 ** The Emacs Lisp Reference Manual is now part of the distribution. |
139 | 127 |
140 The ELisp reference manual in Info format is built as part of the | 128 The Emacs Lisp Reference Manual in Info format is built as part of the |
141 Emacs build procedure and installed together with the Emacs User | 129 Emacs build procedure and installed together with the Emacs User |
142 Manual. A menu item was added to the menu bar that makes it easy | 130 Manual. A menu item was added to the menu bar that makes it easy |
143 accessible (Help->More Manuals->Emacs Lisp Reference). | 131 accessible (Help->More Manuals->Emacs Lisp Reference). |
144 | 132 |
145 --- | 133 --- |
150 together with the Emacs User Manual, into the Info directory. A menu | 138 together with the Emacs User Manual, into the Info directory. A menu |
151 item was added to the menu bar that makes it easy accessible | 139 item was added to the menu bar that makes it easy accessible |
152 (Help->More Manuals->Introduction to Emacs Lisp). | 140 (Help->More Manuals->Introduction to Emacs Lisp). |
153 | 141 |
154 --- | 142 --- |
143 ** New translations of the Emacs Tutorial are available in the | |
144 following languages: Brasilian Portuguese, Bulgarian, Chinese (both | |
145 with simplified and traditional characters), French, and Italian. | |
146 Type `C-u C-h t' to choose one of them in case your language setup | |
147 doesn't automatically select the right one. | |
148 | |
149 --- | |
150 ** A French translation of the `Emacs Survival Guide' is available. | |
151 | |
152 --- | |
153 ** Emacs now includes support for loading image libraries on demand. | |
154 (Currently this feature is only used on MS Windows.) You can configure | |
155 the supported image types and their associated dynamic libraries by | |
156 setting the variable `image-library-alist'. | |
157 | |
158 --- | |
155 ** Support for Cygwin was added. | 159 ** Support for Cygwin was added. |
156 | 160 |
157 --- | 161 --- |
158 ** Support for FreeBSD/Alpha has been added. | 162 ** Support for FreeBSD/Alpha has been added. |
159 | 163 |
171 ** Mac OS 9 port now uses the Carbon API by default. You can also | 175 ** Mac OS 9 port now uses the Carbon API by default. You can also |
172 create non-Carbon build by specifying `NonCarbon' as a target. See | 176 create non-Carbon build by specifying `NonCarbon' as a target. See |
173 the files mac/README and mac/INSTALL for build instructions. | 177 the files mac/README and mac/INSTALL for build instructions. |
174 | 178 |
175 --- | 179 --- |
176 ** A French translation of the `Emacs Survival Guide' is available. | |
177 | |
178 --- | |
179 ** Building with -DENABLE_CHECKING does not automatically build with union | 180 ** Building with -DENABLE_CHECKING does not automatically build with union |
180 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. | 181 types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
181 | |
182 | 182 |
183 * Changes in Emacs 22.1 | 183 * Startup Changes in Emacs 22.1 |
184 | 184 |
185 ** New command line option -Q or --quick. | |
186 This is like using -q --no-site-file, but in addition it also disables | |
187 the fancy startup screen. | |
188 | |
189 +++ | |
190 ** New command line option -D or --basic-display. | |
191 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | |
192 the blinking cursor. | |
193 | |
194 +++ | |
195 ** New command line option -nbc or --no-blinking-cursor disables | |
196 the blinking cursor on graphical terminals. | |
197 | |
198 +++ | |
199 ** The command line option --no-windows has been changed to | |
200 --no-window-system. The old one still works, but is deprecated. | |
201 | |
202 +++ | |
203 ** The -f option, used from the command line to call a function, | |
204 now reads arguments for the function interactively if it is | |
205 an interactively callable function. | |
206 | |
207 +++ | |
208 ** Emacs can now be invoked in full-screen mode on a windowed display. | |
209 When Emacs is invoked on a window system, the new command-line options | |
210 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | |
211 whose width, height, or both width and height take up the entire | |
212 screen size. (For now, this does not work with some window managers.) | |
213 | |
214 +++ | |
215 ** Emacs now displays a splash screen by default even if command-line | |
216 arguments were given. The new command-line option --no-splash | |
217 disables the splash screen; see also the variable | |
218 `inhibit-startup-message' (which is also aliased as | |
219 `inhibit-splash-screen'). | |
220 | |
221 +++ | |
222 ** New user option `inhibit-startup-buffer-menu'. | |
223 When loading many files, for instance with `emacs *', Emacs normally | |
224 displays a buffer menu. This option turns the buffer menu off. | |
225 | |
226 +++ | |
227 ** Init file changes | |
228 You can now put the init files .emacs and .emacs_SHELL under | |
229 ~/.emacs.d or directly under ~. Emacs will find them in either place. | |
230 | |
231 +++ | |
232 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs | |
233 automatically at startup, if it exists. When Emacs offers to save | |
234 modified buffers, it saves the abbrevs too if they have changed. It | |
235 can do this either silently or asking for confirmation first, | |
236 according to the value of `save-abbrevs'. | |
237 | |
238 | |
239 * Editing Changes in Emacs 22.1 | |
240 | |
241 +++ | |
242 ** The mode line position information now comes before the major mode. | |
243 When the file is maintained under version control, that information | |
244 appears between the position information and the major mode. | |
245 | |
246 +++ | |
247 ** M-g is now a prefix key. | |
248 M-g g and M-g M-g run goto-line. | |
249 M-g n and M-g M-n run next-error (like C-x `). | |
250 M-g p and M-g M-p run previous-error. | |
251 | |
252 +++ | |
253 ** M-o now is the prefix key for setting text properties; | |
254 M-o M-o requests refontification. | |
255 | |
256 +++ | |
257 ** C-u M-x goto-line now switches to the most recent previous buffer, | |
258 and goes to the specified line in that buffer. | |
259 | |
260 When goto-line starts to execute, if there's a number in the buffer at | |
261 point then it acts as the default argument for the minibuffer. | |
262 | |
263 +++ | |
264 ** You can now switch buffers in a cyclic order with C-x C-left and | |
265 (prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right | |
266 can be used as well. | |
267 | |
268 +++ | |
269 ** The old bindings C-M-delete and C-M-backspace have been deleted, | |
270 since there are situations where one or the other will shut down | |
271 the operating system or your X server. | |
272 | |
273 +++ | |
274 ** `undo-only' does an undo which does not redo any previous undo. | |
275 | |
276 +++ | |
277 ** When the undo information of the current command gets really large | |
278 (beyond the value of `undo-outer-limit'), Emacs discards it and warns | |
279 you about it. | |
280 | |
281 +++ | |
282 ** M-SPC (just-one-space) when given a numeric argument N | |
283 converts whitespace around point to N spaces. | |
284 | |
285 +++ | |
286 ** line-move-ignore-invisible now defaults to t. | |
287 | |
288 --- | |
289 ** New commands to operate on pairs of open and close characters: | |
290 `insert-pair', `delete-pair', `raise-sexp'. | |
291 | |
292 --- | |
293 ** New command `kill-whole-line' kills an entire line at once. | |
294 By default, it is bound to C-S-<backspace>. | |
295 | |
296 +++ | |
297 ** Yanking text now discards certain text properties that can | |
298 be inconvenient when you did not expect them. The variable | |
299 `yank-excluded-properties' specifies which ones. Insertion | |
300 of register contents and rectangles also discards these properties. | |
301 | |
302 +++ | |
303 ** The default values of paragraph-start and indent-line-function have | |
304 been changed to reflect those used in Text mode rather than those used | |
305 in Indented-Text mode. | |
306 | |
307 +++ | |
308 ** Movement commands `beginning-of-buffer', `end-of-buffer', | |
309 `beginning-of-defun', `end-of-defun' do not set the mark if the mark | |
310 is already active in Transient Mark mode. | |
311 | |
312 ** Mark Changes: | |
313 | |
314 +++ | |
315 *** A prefix argument is no longer required to repeat a jump to a | |
316 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the | |
317 mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. | |
318 | |
319 +++ | |
320 *** Marking commands extend the region when invoked multiple times. If | |
321 you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or | |
322 C-M-h (mark-defun) repeatedly, the marked region extends each time, so | |
323 you can mark the next two sexps with M-C-SPC M-C-SPC, for example. | |
324 This feature also works for mark-end-of-sentence, if you bind that to | |
325 a key. It also extends the region when the mark is active in Transient | |
326 Mark mode, regardless of the last command. To start a new region with | |
327 one of marking commands in Transient Mark mode, you can deactivate the | |
328 active region with C-g, or set the new mark with C-SPC. | |
329 | |
330 +++ | |
331 *** M-h (mark-paragraph) now accepts a prefix arg. | |
332 With positive arg, M-h marks the current and the following paragraphs; | |
333 if the arg is negative, it marks the current and the preceding | |
334 paragraphs. | |
335 | |
336 +++ | |
337 *** Some commands do something special in Transient Mark mode when the | |
338 mark is active--for instance, they limit their operation to the | |
339 region. Even if you don't normally use Transient Mark mode, you might | |
340 want to get this behavior from a particular command. There are two | |
341 ways you can enable Transient Mark mode and activate the mark, for one | |
342 command only. | |
343 | |
344 One method is to type C-SPC C-SPC; this enables Transient Mark mode | |
345 and sets the mark at point. The other method is to type C-u C-x C-x. | |
346 This enables Transient Mark mode temporarily but does not alter the | |
347 mark or the region. | |
348 | |
349 After these commands, Transient Mark mode remains enabled until you | |
350 deactivate the mark. That typically happens when you type a command | |
351 that alters the buffer, but you can also deactivate the mark by typing | |
352 C-g. | |
353 | |
354 ** Help command changes: | |
355 | |
356 +++ | |
357 *** Changes in C-h bindings: | |
358 | |
359 C-h e displays the *Messages* buffer. | |
360 | |
361 C-h followed by a control character is used for displaying files | |
362 that do not change: | |
363 | |
364 C-h C-f displays the FAQ. | |
365 C-h C-e displays the PROBLEMS file. | |
366 | |
367 The info-search bindings on C-h C-f, C-h C-k and C-h C-i | |
368 have been moved to C-h F, C-h K and C-h S. | |
369 | |
370 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. | |
371 | |
372 - C-h c and C-h k report the actual command (after possible remapping) | |
373 run by the key sequence. | |
374 | |
375 - C-h w and C-h f on a command which has been remapped now report the | |
376 command it is remapped to, and the keys which can be used to run | |
377 that command. | |
378 | |
379 For example, if C-k is bound to kill-line, and kill-line is remapped | |
380 to new-kill-line, these commands now report: | |
381 | |
382 - C-h c and C-h k C-k reports: | |
383 C-k runs the command new-kill-line | |
384 | |
385 - C-h w and C-h f kill-line reports: | |
386 kill-line is remapped to new-kill-line which is on C-k, <deleteline> | |
387 | |
388 - C-h w and C-h f new-kill-line reports: | |
389 new-kill-line is on C-k | |
390 | |
391 --- | |
392 *** Help commands `describe-function' and `describe-key' now show function | |
393 arguments in lowercase italics on displays that support it. To change the | |
394 default, customize face `help-argument-name' or redefine the function | |
395 `help-default-arg-highlight'. | |
396 | |
397 +++ | |
398 *** C-h v and C-h f commands now include a hyperlink to the C source for | |
399 variables and functions defined in C (if the C source is available). | |
400 | |
401 +++ | |
402 *** Help mode now only makes hyperlinks for faces when the face name is | |
403 preceded or followed by the word `face'. It no longer makes | |
404 hyperlinks for variables without variable documentation, unless | |
405 preceded by one of the words `variable' or `option'. It now makes | |
406 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | |
407 enclosed in single quotes and preceded by `info anchor' or `Info | |
408 anchor' (in addition to earlier `info node' and `Info node'). | |
409 | |
410 +++ | |
411 *** The new command `describe-char' (C-u C-x =) pops up a buffer with | |
412 description various information about a character, including its | |
413 encodings and syntax, its text properties, how to input, overlays, and | |
414 widgets at point. You can get more information about some of them, by | |
415 clicking on mouse-sensitive areas or moving there and pressing RET. | |
416 | |
417 +++ | |
418 *** New command `display-local-help' displays any local help at point | |
419 in the echo area. It is bound to `C-h .'. It normally displays the | |
420 same string that would be displayed on mouse-over using the | |
421 `help-echo' property, but, in certain cases, it can display a more | |
422 keyboard oriented alternative. | |
423 | |
424 +++ | |
425 *** New user option `help-at-pt-display-when-idle' allows to | |
426 automatically show the help provided by `display-local-help' on | |
427 point-over, after suitable idle time. The amount of idle time is | |
428 determined by the user option `help-at-pt-timer-delay' and defaults | |
429 to one second. This feature is turned off by default. | |
430 | |
431 ** Buffer Menu changes | |
432 | |
433 +++ | |
434 *** New command `Buffer-menu-toggle-files-only' toggles display of file | |
435 buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu | |
436 mode. | |
437 | |
438 +++ | |
439 *** `buffer-menu' and `list-buffers' now list buffers whose names begin | |
440 with a space, when those buffers are visiting files. Normally buffers | |
441 whose names begin with space are omitted. | |
442 | |
443 --- | |
444 *** The new options `buffers-menu-show-directories' and | |
445 `buffers-menu-show-status' let you control how buffers are displayed | |
446 in the menu dropped down when you click "Buffers" from the menu bar. | |
447 | |
448 `buffers-menu-show-directories' controls whether the menu displays | |
449 leading directories as part of the file name visited by the buffer. | |
450 If its value is `unless-uniquify', the default, directories are | |
451 shown unless uniquify-buffer-name-style' is non-nil. The value of nil | |
452 and t turn the display of directories off and on, respectively. | |
453 | |
454 `buffers-menu-show-status' controls whether the Buffers menu includes | |
455 the modified and read-only status of the buffers. By default it is | |
456 t, and the status is shown. | |
457 | |
458 Setting these variables directly does not take effect until next time | |
459 the Buffers menu is regenerated. | |
460 | |
461 ** File Operation Changes: | |
462 | |
463 +++ | |
464 *** find-file-read-only visits multiple files in read-only mode, | |
465 when the file name contains wildcard characters. | |
466 | |
467 +++ | |
468 *** find-alternate-file replaces the current file with multiple files, | |
469 when the file name contains wildcard characters. | |
470 | |
471 +++ | |
472 *** Auto Compression mode is now enabled by default. | |
473 | |
474 --- | |
475 *** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. | |
476 | |
477 Since the default input is the current directory, this has the effect | |
478 of specifying the current directory. Normally that means to visit the | |
479 directory with Dired. | |
480 | |
481 +++ | |
482 *** When you are root, and you visit a file whose modes specify | |
483 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | |
484 want to make the buffer writable. (As root, you can in fact alter the | |
485 file.) | |
486 | |
487 +++ | |
488 *** C-x s (save-some-buffers) now offers an option `d' to diff a buffer | |
489 against its file, so you can see what changes you would be saving. | |
490 | |
491 +++ | |
492 *** The commands copy-file, rename-file, make-symbolic-link and | |
493 add-name-to-file, when given a directory as the "new name" argument, | |
494 convert it to a file name by merging in the within-directory part of | |
495 the existing file's name. (This is the same convention that shell | |
496 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | |
497 /tmp RET copies ~/foo to /tmp/foo. | |
498 | |
499 --- | |
500 *** When used interactively, `format-write-file' now asks for confirmation | |
501 before overwriting an existing file, unless a prefix argument is | |
502 supplied. This behavior is analogous to `write-file'. | |
503 | |
504 --- | |
505 *** The variable `auto-save-file-name-transforms' now has a third element that | |
506 controls whether or not the function `make-auto-save-file-name' will | |
507 attempt to construct a unique auto-save name (e.g. for remote files). | |
508 | |
509 +++ | |
510 *** If the user visits a file larger than `large-file-warning-threshold', | |
511 Emacs prompts her for confirmation. | |
512 | |
513 +++ | |
514 *** require-final-newline now has two new possible values: | |
515 | |
516 `visit' means add a newline (as an undoable change) if it's needed | |
517 when visiting the file. | |
518 | |
519 `visit-save' means add a newline (as an undoable change) if it's | |
520 needed when visiting the file, and also add a newline if it's needed | |
521 when saving the file. | |
522 | |
523 +++ | |
524 *** The new option mode-require-final-newline controls how certain | |
525 major modes enable require-final-newline. Any major mode that's | |
526 designed for a kind of file that should normally end in a newline | |
527 sets require-final-newline based on mode-require-final-newline. | |
528 So you can customize mode-require-final-newline to control what these | |
529 modes do. | |
530 | |
531 +++ | |
532 ** The max size of buffers and integers has been doubled. | |
533 On 32bit machines, it is now 256M (i.e. 268435455). | |
534 | |
535 ** Minibuffer changes: | |
536 | |
537 +++ | |
538 *** There's a new face `minibuffer-prompt'. | |
539 Emacs adds this face to the list of text properties stored in the | |
540 variable `minibuffer-prompt-properties', which is used to display the | |
541 prompt string. | |
542 | |
543 --- | |
544 *** Enhanced visual feedback in *Completions* buffer. | |
545 | |
546 Completions lists use faces to highlight what all completions | |
547 have in common and where they begin to differ. | |
548 | |
549 The common prefix shared by all possible completions uses the face | |
550 `completions-common-part', while the first character that isn't the | |
551 same uses the face `completions-first-difference'. By default, | |
552 `completions-common-part' inherits from `default', and | |
553 `completions-first-difference' inherits from `bold'. The idea of | |
554 `completions-common-part' is that you can use it to make the common | |
555 parts less visible than normal, so that the rest of the differing | |
556 parts is, by contrast, slightly highlighted. | |
557 | |
558 +++ | |
559 *** File-name completion can now ignore directories. | |
560 If an element of the list in `completion-ignored-extensions' ends in a | |
561 slash `/', it indicates a subdirectory that should be ignored when | |
562 completing file names. Elements of `completion-ignored-extensions' | |
563 which do not end in a slash are never considered when a completion | |
564 candidate is a directory. | |
565 | |
566 +++ | |
567 *** The completion commands TAB, SPC and ? in the minibuffer apply only | |
568 to the text before point. If there is text in the buffer after point, | |
569 it remains unchanged. | |
570 | |
571 +++ | |
572 *** New user option `history-delete-duplicates'. | |
573 If set to t when adding a new history element, all previous identical | |
574 elements are deleted. | |
575 | |
576 ** Redisplay Changes | |
577 | |
578 +++ | |
579 *** Control characters and escape glyphs are now shown in the new | |
580 escape-glyph face. | |
581 | |
582 +++ | |
583 *** Non-breaking space and hyphens are now prefixed with an escape | |
584 character, unless the new user variable `show-nonbreak-escape' is set | |
585 to nil. | |
586 | |
587 +++ | |
588 *** The parameters of automatic hscrolling can now be customized. | |
589 The variable `hscroll-margin' determines how many columns away from | |
590 the window edge point is allowed to get before automatic hscrolling | |
591 will horizontally scroll the window. The default value is 5. | |
592 | |
593 The variable `hscroll-step' determines how many columns automatic | |
594 hscrolling scrolls the window when point gets too close to the | |
595 window edge. If its value is zero, the default, Emacs scrolls the | |
596 window so as to center point. If its value is an integer, it says how | |
597 many columns to scroll. If the value is a floating-point number, it | |
598 gives the fraction of the window's width to scroll the window. | |
599 | |
600 The variable `automatic-hscrolling' was renamed to | |
601 `auto-hscroll-mode'. The old name is still available as an alias. | |
602 | |
603 *** Moving or scrolling through images (and other lines) taller that | |
604 the window now works sensible, by automatically adjusting the window's | |
605 vscroll property. | |
606 | |
607 +++ | |
608 *** In graphical mode, with a C program, GUD Tooltips have been extended to | |
609 display the #define directive associated with an identifier when program is | |
610 not executing. | |
611 | |
612 +++ | |
613 *** The new face `mode-line-inactive' is used to display the mode line | |
614 of non-selected windows. The `mode-line' face is now used to display | |
615 the mode line of the currently selected window. | |
616 | |
617 The new variable `mode-line-in-non-selected-windows' controls whether | |
618 the `mode-line-inactive' face is used. | |
619 | |
620 +++ | |
621 *** You can now customize the use of window fringes. To control this | |
622 for all frames, use M-x fringe-mode or the Show/Hide submenu of the | |
623 top-level Options menu, or customize the `fringe-mode' variable. To | |
624 control this for a specific frame, use the command M-x | |
625 set-fringe-style. | |
626 | |
627 +++ | |
628 *** The buffer boundaries (i.e. first and last line in the buffer) may | |
629 now be marked with angle bitmaps in the fringes. In addition, up and | |
630 down arrow bitmaps may be shown at the top and bottom of the left or | |
631 right fringe if the window can be scrolled in either direction. | |
632 | |
633 This behavior is activated by setting the buffer-local variable | |
634 `indicate-buffer-boundaries' to a non-nil value. The default value of | |
635 this variable is found in `default-indicate-buffer-boundaries'. | |
636 | |
637 If value is `left' or `right', both angle and arrow bitmaps are | |
638 displayed in the left or right fringe, resp. | |
639 | |
640 Value may also be an alist which specifies the presense and position | |
641 of each bitmap individually. | |
642 | |
643 For example, ((top . left) (t . right)) places the top angle bitmap | |
644 in left fringe, the bottom angle bitmap in right fringe, and both | |
645 arrow bitmaps in right fringe. To show just the angle bitmaps in the | |
646 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | |
647 | |
648 +++ | |
649 *** On window systems, lines which are exactly as wide as the window | |
650 (not counting the final newline character) are no longer broken into | |
651 two lines on the display (with just the newline on the second line). | |
652 Instead, the newline now "overflows" into the right fringe, and the | |
653 cursor will be displayed in the fringe when positioned on that newline. | |
654 | |
655 The new user option 'overflow-newline-into-fringe' may be set to nil to | |
656 revert to the old behavior of continuing such lines. | |
657 | |
658 +++ | |
659 *** When display margins are present in a window, the fringes are now | |
660 displayed between the margins and the buffer's text area, rather than | |
661 at the edges of the window. | |
662 | |
663 +++ | |
664 *** A window may now have individual fringe and scroll-bar settings, | |
665 in addition to the individual display margin settings. | |
666 | |
667 Such individual settings are now preserved when windows are split | |
668 horizontally or vertically, a saved window configuration is restored, | |
669 or when the frame is resized. | |
670 | |
671 ** Cursor Display Changes | |
672 | |
673 +++ | |
674 *** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | |
675 now controlled by the variable `blink-cursor-alist'. | |
676 | |
677 +++ | |
678 *** The X resource cursorBlink can be used to turn off cursor blinking. | |
679 | |
680 +++ | |
681 *** Emacs can produce an underscore-like (horizontal bar) cursor. | |
682 The underscore cursor is set by putting `(cursor-type . hbar)' in | |
683 default-frame-alist. It supports variable heights, like the `bar' | |
684 cursor does. | |
685 | |
686 +++ | |
687 *** Display of hollow cursors now obeys the buffer-local value (if any) | |
688 of `cursor-in-non-selected-windows' in the buffer that the cursor | |
689 appears in. | |
690 | |
691 +++ | |
692 *** The variable `cursor-in-non-selected-windows' can now be set to any | |
693 of the recognized cursor types. | |
694 | |
695 +++ | |
696 ** font-lock-lines-before specifies a number of lines before the | |
697 current line that should be refontified when you change the buffer. | |
698 The default value is 1. | |
699 | |
700 --- | |
701 ** JIT-lock changes | |
702 | |
703 *** The default settings for JIT stealth lock parameters are changed. | |
704 The default value for the user option jit-lock-stealth-time is now 16 | |
705 instead of 3, and the default value of jit-lock-stealth-nice is now | |
706 0.5 instead of 0.125. The new defaults should lower the CPU usage | |
707 when Emacs is fontifying in the background. | |
708 | |
709 | |
710 *** jit-lock can now be delayed with `jit-lock-defer-time'. | |
711 | |
712 If this variable is non-nil, its value should be the amount of Emacs | |
713 idle time in seconds to wait before starting fontification. For | |
714 example, if you set `jit-lock-defer-time' to 0.25, fontification will | |
715 only happen after 0.25s of idle time. | |
716 | |
717 *** contextual refontification is now separate from stealth fontification. | |
718 | |
719 jit-lock-defer-contextually is renamed jit-lock-contextually and | |
720 jit-lock-context-time determines the delay after which contextual | |
721 refontification takes place. | |
722 | |
723 ** Menu Bar changes | |
724 | |
725 --- | |
726 *** A menu item "Show/Hide" was added to the top-level menu "Options". | |
727 This menu allows you to turn various display features on and off (such | |
728 as the fringes, the tool bar, the speedbar, and the menu bar itself). | |
729 You can also move the vertical scroll bar to either side here or turn | |
730 it off completely. There is also a menu-item to toggle displaying of | |
731 current date and time, current line and column number in the | |
732 mode-line. | |
733 | |
734 --- | |
735 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | |
736 | |
737 +++ | |
738 ** You can now customize fill-nobreak-predicate to control where | |
739 filling can break lines. The value is now normally a list of | |
740 functions, but it can also be a single function, for compatibility. | |
741 | |
742 We provide two sample predicates, fill-single-word-nobreak-p and | |
743 fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. | |
744 | |
745 +++ | |
746 ** New display feature: focus follows the mouse from one Emacs window | |
747 to another, even within a frame. If you set the variable | |
748 mouse-autoselect-window to non-nil value, moving the mouse to a | |
749 different Emacs window will select that window (minibuffer window can | |
750 be selected only when it is active). The default is nil, so that this | |
751 feature is not enabled. | |
752 | |
753 +++ | |
754 ** On X, when the window manager requires that you click on a frame to | |
755 select it (give it focus), the selected window and cursor position | |
756 normally changes according to the mouse click position. If you set | |
757 the variable x-mouse-click-focus-ignore-position to t, the selected | |
758 window and cursor position do not change when you click on a frame | |
759 to give it focus. | |
760 | |
761 +++ | |
762 ** When you specify a frame size with --geometry, the size applies to | |
763 all frames you create. A position specified with --geometry only | |
764 affects the initial frame. | |
765 | |
766 +++ | |
767 ** `special-display-buffer-names' and `special-display-regexps' now | |
768 understand two new boolean pseudo-frame-parameters `same-frame' and | |
769 `same-window'. | |
770 | |
771 --- | |
772 ** New commands `scan-buf-next-region' and `scan-buf-previous-region' | |
773 move to the start of the next (previous, respectively) region with | |
774 non-nil help-echo property and display any help found there in the | |
775 echo area, using `display-local-help'. | |
776 | |
777 +++ | |
778 ** In processing a local variables list, Emacs strips the prefix and | |
779 suffix are from every line before processing all the lines. | |
780 | |
781 +++ | |
782 ** `apply-macro-to-region-lines' now operates on all lines that begin | |
783 in the region, rather than on all complete lines in the region. | |
784 | |
785 +++ | |
786 ** You can now follow links by clicking Mouse-1 on the link. | |
787 | |
788 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 | |
789 click to follow a link, whereas most other applications use a Mouse-1 | |
790 click for both purposes, depending on whether you click outside or | |
791 inside a link. Now the behavior of a Mouse-1 click has been changed | |
792 to match this context-sentitive dual behavior. | |
793 | |
794 Depending on the current mode, a Mouse-2 click in Emacs may do much | |
795 more than just follow a link, so the new Mouse-1 behavior is only | |
796 activated for modes which explicitly mark a clickable text as a "link" | |
797 (see the new function `mouse-on-link-p' for details). The Lisp | |
798 packages that are included in release 22.1 have been adapted to do | |
799 this, but external packages may not yet support this. However, there | |
800 is no risk in using such packages, as the worst thing that could | |
801 happen is that you get the original Mouse-1 behavior when you click | |
802 on a link, which typically means that you set point where you click. | |
803 | |
804 If you want to get the original Mouse-1 action also inside a link, you | |
805 just need to press the Mouse-1 button a little longer than a normal | |
806 click (i.e. press and hold the Mouse-1 button for half a second before | |
807 you release it). | |
808 | |
809 Dragging the Mouse-1 inside a link still performs the original | |
810 drag-mouse-1 action, typically copy the text. | |
811 | |
812 You can customize the new Mouse-1 behavior via the new user options | |
813 `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. | |
814 | |
815 +++ | |
816 ** Emacs normally highlights mouse sensitive text whenever the mouse | |
817 is over the text. By setting the new variable `mouse-highlight', you | |
818 can optionally enable mouse highlighting only after you move the | |
819 mouse, so that highlighting disappears when you press a key. You can | |
820 also disable mouse highlighting. | |
821 | |
822 +++ | |
823 ** You can now customize if selecting a region by dragging the mouse | |
824 shall not copy the selected text to the kill-ring by setting the new | |
825 variable mouse-drag-copy-region to nil. | |
826 | |
827 --- | |
828 ** mouse-wheels can now scroll a specific fraction of the window | |
829 (rather than a fixed number of lines) and the scrolling is `progressive'. | |
830 | |
831 --- | |
832 ** Unexpected yanking of text due to accidental clicking on the mouse | |
833 wheel button (typically mouse-2) during wheel scrolling is now avoided. | |
834 This behavior can be customized via the mouse-wheel-click-event and | |
835 mouse-wheel-inhibit-click-time variables. | |
836 | |
837 +++ | |
838 ** Under X, mouse-wheel-mode is turned on by default. | |
839 | |
840 +++ | |
841 ** M-x setenv now expands environment variables of the form `$foo' and | |
842 `${foo}' in the specified new value of the environment variable. To | |
843 include a `$' in the value, use `$$'. | |
844 | |
845 +++ | |
846 ** Unquoted `$' in file names do not signal an error any more when | |
847 the corresponding environment variable does not exist. | |
848 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | |
849 is only rarely needed. | |
850 | |
851 --- | |
852 ** Language environment and various default coding systems are setup | |
853 more correctly according to the current locale name. If the locale | |
854 name doesn't specify a charset, the default is what glibc defines. | |
855 This change may result in using the different coding systems as | |
856 default in some locale (e.g. vi_VN). | |
857 | |
858 +++ | |
859 ** The default for the paper size (variable ps-paper-type) is taken | |
860 from the locale. | |
861 | |
862 +++ | |
863 ** The keyboard-coding-system is now automatically set based on your | |
864 current locale settings if you are not using a window system. This | |
865 may mean that the META key doesn't work but generates non-ASCII | |
866 characters instead, depending on how the terminal (or terminal | |
867 emulator) works. Use `set-keyboard-coding-system' (or customize | |
868 keyboard-coding-system) if you prefer META to work (the old default) | |
869 or if the locale doesn't describe the character set actually generated | |
870 by the keyboard. See Info node `Single-Byte Character Support'. | |
871 | |
872 +++ | |
873 ** The new command `revert-buffer-with-coding-system' (C-x RET r) | |
874 revisits the current file using a coding system that you specify. | |
875 | |
876 +++ | |
877 ** New command `recode-region' decodes the region again by a specified | |
878 coding system. | |
879 | |
880 +++ | |
881 ** The new command `recode-file-name' changes the encoding of the name | |
882 of a file. | |
883 | |
884 --- | |
885 ** New command `ucs-insert' inserts a character specified by its | |
886 unicode. | |
887 | |
888 +++ | |
889 ** The new command `set-file-name-coding-system' (C-x RET F) sets | |
890 coding system for encoding and decoding file names. A new menu item | |
891 (Options->Mule->Set Coding Systems->For File Name) invokes this | |
892 command. | |
893 | |
894 +++ | |
895 ** New command quail-show-key shows what key (or key sequence) to type | |
896 in the current input method to input a character at point. | |
897 | |
898 +++ | |
899 ** Limited support for character `unification' has been added. | |
900 Emacs now knows how to translate between different representations of | |
901 the same characters in various Emacs charsets according to standard | |
902 Unicode mappings. This applies mainly to characters in the ISO 8859 | |
903 sets plus some other 8-bit sets, but can be extended. For instance, | |
904 translation works amongst the Emacs ...-iso8859-... charsets and the | |
905 mule-unicode-... ones. | |
906 | |
907 By default this translation happens automatically on encoding. | |
908 Self-inserting characters are translated to make the input conformant | |
909 with the encoding of the buffer in which it's being used, where | |
910 possible. | |
911 | |
912 You can force a more complete unification with the user option | |
913 unify-8859-on-decoding-mode. That maps all the Latin-N character sets | |
914 into Unicode characters (from the latin-iso8859-1 and | |
915 mule-unicode-0100-24ff charsets) on decoding. Note that this mode | |
916 will often effectively clobber data with an iso-2022 encoding. | |
917 | |
918 --- | |
919 ** There is support for decoding Greek and Cyrillic characters into | |
920 either Unicode (the mule-unicode charsets) or the iso-8859 charsets, | |
921 when possible. The latter are more space-efficient. This is | |
922 controlled by user option utf-fragment-on-decoding. | |
923 | |
924 --- | |
925 ** New language environments: French, Ukrainian, Tajik, | |
926 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, | |
927 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, | |
928 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up | |
929 automatically according to the locale.) | |
930 | |
931 --- | |
932 ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, | |
933 ukrainian-computer, belarusian, bulgarian-bds, russian-computer, | |
934 vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, | |
935 latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, | |
936 bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, | |
937 tamil-inscript. | |
938 | |
939 --- | |
940 ** New input method chinese-sisheng for inputting Chinese Pinyin | |
941 characters. | |
942 | |
943 --- | |
185 ** Improved Thai support. A new minor mode `thai-word-mode' (which is | 944 ** Improved Thai support. A new minor mode `thai-word-mode' (which is |
186 automatically activated if you select Thai as a language | 945 automatically activated if you select Thai as a language |
187 environment) changes key bindings of most word-oriented commands to | 946 environment) changes key bindings of most word-oriented commands to |
188 versions which recognize Thai words. Affected commands are | 947 versions which recognize Thai words. Affected commands are |
189 M-f (forward-word) | 948 M-f (forward-word) |
191 M-d (kill-word) | 950 M-d (kill-word) |
192 M-DEL (backward-kill-word) | 951 M-DEL (backward-kill-word) |
193 M-t (transpose-words) | 952 M-t (transpose-words) |
194 M-q (fill-paragraph) | 953 M-q (fill-paragraph) |
195 | 954 |
196 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | 955 --- |
197 | 956 ** Indian support has been updated. |
198 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. | 957 The in-is13194 coding system is now Unicode-based. CDAC fonts are |
199 | 958 assumed. There is a framework for supporting various |
200 --- | 959 Indian scripts, but currently only Devanagari, Malayalam and Tamil are |
201 ** Language environment and various default coding systems are setup | 960 supported. |
202 more correctly according to the current locale name. If the locale | 961 |
203 name doesn't specify a charset, the default is what glibc defines. | 962 --- |
204 This change may result in using the different coding systems as | 963 ** A UTF-7 coding system is available in the library `utf-7'. |
205 default in some locale (e.g. vi_VN). | 964 |
206 | 965 --- |
207 +++ | 966 ** The utf-8/16 coding systems have been enhanced. |
208 ** The commands copy-file, rename-file, make-symbolic-link and | 967 By default, untranslatable utf-8 sequences are simply composed into |
209 add-name-to-file, when given a directory as the "new name" argument, | 968 single quasi-characters. User option `utf-translate-cjk-mode' (it is |
210 convert it to a file name by merging in the within-directory part of | 969 turned on by default) arranges to translate many utf-8 CJK character |
211 the existing file's name. (This is the same convention that shell | 970 sequences into real Emacs characters in a similar way to the Mule-UCS |
212 commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | 971 system. As this loads a fairly big data on demand, people who are not |
213 /tmp RET copies ~/foo to /tmp/foo. | 972 interested in CJK characters may want to customize it to nil. |
214 | 973 You can augment/amend the CJK translation via hash tables |
215 +++ | 974 `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 |
216 ** M-o now is the prefix key for setting text properties; | 975 coding system now also encodes characters from most of Emacs's |
217 M-o M-o requests refontification. | 976 one-dimensional internal charsets, specifically the ISO-8859 ones. |
218 | 977 The utf-16 coding system is affected similarly. |
219 +++ | 978 |
220 ** M-g is now a prefix key. | 979 --- |
221 | 980 ** A new coding system `euc-tw' has been added for traditional Chinese |
222 M-g g and M-g M-g run goto-line. | 981 in CNS encoding; it accepts both Big 5 and CNS as input; on saving, |
223 M-g n and M-g M-n run next-error (like C-x `). | 982 Big 5 is then converted to CNS. |
224 M-g p and M-g M-p run previous-error. | 983 |
225 | 984 --- |
226 +++ | 985 ** Many new coding systems are available by loading the `code-pages' |
227 ** font-lock-lines-before specifies a number of lines before the | 986 library. These include complete versions of most of those in |
228 current line that should be refontified when you change the buffer. | 987 codepage.el, based on Unicode mappings. `codepage-setup' is now |
229 The default value is 1. | 988 obsolete and is used only in the MS-DOS port of Emacs. windows-1252 |
230 | 989 and windows-1251 are preloaded since the former is so common and the |
231 +++ | 990 latter is used by GNU locales. |
232 ** C-u M-x goto-line now switches to the most recent previous buffer, | 991 |
233 and goes to the specified line in that buffer. | 992 --- |
234 | 993 ** New variable `utf-translate-cjk-unicode-range' controls which |
235 When goto-line starts to execute, if there's a number in the buffer at | 994 Unicode characters to translate in `utf-translate-cjk-mode'. |
236 point then it acts as the default argument for the minibuffer. | 995 |
237 | 996 --- |
238 --- | 997 ** iso-10646-1 (`Unicode') fonts can be used to display any range of |
239 ** Emacs now responds to mouse-clicks on the mode-line, header-line and | 998 characters encodable by the utf-8 coding system. Just specify the |
240 display margin, when run in an xterm. | 999 fontset appropriately. |
241 | 1000 |
242 +++ | 1001 +++ |
243 ** M-SPC (just-one-space) when given a numeric argument N | 1002 ** Vertical scrolling is now possible within incremental search. |
244 converts whitespace around point to N spaces. | 1003 To enable this feature, customize the new user option |
245 | 1004 `isearch-allow-scroll'. User written commands which satisfy stringent |
246 +++ | 1005 constraints can be marked as "scrolling commands". See the Emacs manual |
247 ** Control characters and escape glyphs are now shown in the new | 1006 for details. |
248 escape-glyph face. | 1007 |
249 | 1008 +++ |
250 +++ | 1009 ** C-w in incremental search now grabs either a character or a word, |
251 ** Non-breaking space and hyphens are now prefixed with an escape | 1010 making the decision in a heuristic way. This new job is done by the |
252 character, unless the new user variable `show-nonbreak-escape' is set | 1011 command `isearch-yank-word-or-char'. To restore the old behavior, |
253 to nil. | 1012 bind C-w to `isearch-yank-word' in `isearch-mode-map'. |
254 | 1013 |
255 --- | 1014 +++ |
256 ** The type-break package now allows `type-break-file-name' to be nil | 1015 ** C-y in incremental search now grabs the next line if point is already |
257 and if so, doesn't store any data across sessions. This is handy if | 1016 at the end of a line. |
258 you don't want the .type-break file in your home directory or are | 1017 |
259 annoyed by the need for interaction when you kill Emacs. | 1018 +++ |
260 | 1019 ** C-M-w deletes and C-M-y grabs a character in isearch mode. |
261 --- | 1020 Another method to grab a character is to enter the minibuffer by `M-e' |
262 ** display-battery has been replaced by display-battery-mode. | 1021 and to type `C-f' at the end of the search string in the minibuffer. |
263 | 1022 |
264 --- | 1023 +++ |
265 ** calculator.el now has radix grouping mode, which is available when | 1024 ** M-% typed in isearch mode invokes `query-replace' or |
266 `calculator-output-radix' is non-nil. In this mode a separator | 1025 `query-replace-regexp' (depending on search mode) with the current |
267 character is used every few digits, making it easier to see byte | 1026 search string used as the string to replace. |
268 boundries etc. For more info, see the documentation of the variable | 1027 |
269 `calculator-radix-grouping-mode'. | 1028 +++ |
270 | 1029 ** Isearch no longer adds `isearch-resume' commands to the command |
271 +++ | 1030 history by default. To enable this feature, customize the new |
272 ** You can now follow links by clicking Mouse-1 on the link. | 1031 user option `isearch-resume-in-command-history'. |
273 | 1032 |
274 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 | 1033 --- |
275 click to follow a link, whereas most other applications use a Mouse-1 | 1034 ** New user option `query-replace-skip-read-only': when non-nil, |
276 click for both purposes, depending on whether you click outside or | 1035 `query-replace' and related functions simply ignore |
277 inside a link. Now the behavior of a Mouse-1 click has been changed | 1036 a match if part of it has a read-only property. |
278 to match this context-sentitive dual behavior. | 1037 |
279 | 1038 +++ |
280 Depending on the current mode, a Mouse-2 click in Emacs may do much | 1039 ** When used interactively, the commands `query-replace-regexp' and |
281 more than just follow a link, so the new Mouse-1 behavior is only | 1040 `replace-regexp' allow \,expr to be used in a replacement string, |
282 activated for modes which explicitly mark a clickable text as a "link" | 1041 where expr is an arbitrary Lisp expression evaluated at replacement |
283 (see the new function `mouse-on-link-p' for details). The Lisp | 1042 time. In many cases, this will be more convenient than using |
284 packages that are included in release 22.1 have been adapted to do | 1043 `query-replace-regexp-eval'. `\#' in a replacement string now refers |
285 this, but external packages may not yet support this. However, there | 1044 to the count of replacements already made by the replacement command. |
286 is no risk in using such packages, as the worst thing that could | 1045 All regular expression replacement commands now allow `\?' in the |
287 happen is that you get the original Mouse-1 behavior when you click | 1046 replacement string to specify a position where the replacement string |
288 on a link, which typically means that you set point where you click. | 1047 can be edited for each replacement. |
289 | 1048 |
290 If you want to get the original Mouse-1 action also inside a link, you | 1049 +++ |
291 just need to press the Mouse-1 button a little longer than a normal | 1050 ** query-replace uses isearch lazy highlighting when the new user option |
292 click (i.e. press and hold the Mouse-1 button for half a second before | 1051 `query-replace-lazy-highlight' is non-nil. |
293 you release it). | 1052 |
294 | 1053 --- |
295 Dragging the Mouse-1 inside a link still performs the original | 1054 ** The current match in query-replace is highlighted in new face |
296 drag-mouse-1 action, typically copy the text. | 1055 `query-replace' which by default inherits from isearch face. |
297 | 1056 |
298 You can customize the new Mouse-1 behavior via the new user options | 1057 +++ |
299 `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. | 1058 ** M-x compare-windows now can automatically skip non-matching text to |
300 | 1059 resync points in both windows. |
301 +++ | 1060 |
302 ** require-final-newline now has two new possible values: | 1061 +++ |
303 | 1062 ** The commands M-x customize-face and M-x customize-face-other-window |
304 `visit' means add a newline (as an undoable change) if it's needed | 1063 now look at the character after point. If a face or faces are |
305 when visiting the file. | 1064 specified for that character, the commands by default customize those |
306 | 1065 faces. |
307 `visit-save' means add a newline (as an undoable change) if it's | 1066 |
308 needed when visiting the file, and also add a newline if it's needed | 1067 --- |
309 when saving the file. | 1068 ** The face-customization widget has been reworked to be less confusing. |
310 | 1069 In particular, when you enable a face attribute using the corresponding |
311 +++ | 1070 check-box, there's no longer a redundant `*' option in value selection |
312 ** The new option mode-require-final-newline controls how certain | 1071 for that attribute; the values you can choose are only those which make |
313 major modes enable require-final-newline. Any major mode that's | 1072 sense for the attribute. When an attribute is de-selected by unchecking |
314 designed for a kind of file that should normally end in a newline | 1073 its check-box, then the (now ignored, but still present temporarily in |
315 sets require-final-newline based on mode-require-final-newline. | 1074 case you re-select the attribute) value is hidden. |
316 So you can customize mode-require-final-newline to control what these | 1075 |
317 modes do. | 1076 +++ |
318 | 1077 ** When you set or reset a variable's value in a Customize buffer, |
319 +++ | 1078 the previous value becomes the "backup value" of the variable. |
320 ** When the undo information of the current command gets really large | 1079 You can go back to that backup value by selecting "Use Backup Value" |
321 (beyond the value of `undo-outer-limit'), Emacs discards it and warns | 1080 under the "[State]" button. |
322 you about it. | 1081 |
323 | 1082 ** Dired mode: |
324 +++ | 1083 |
325 ** line-move-ignore-invisible now defaults to t. | 1084 --- |
1085 *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | |
1086 dired-ignored, dired-directory, dired-symlink, dired-warning | |
1087 introduced for Dired mode instead of font-lock faces. | |
1088 | |
1089 +++ | |
1090 *** New Dired command `dired-compare-directories' marks files | |
1091 with different file attributes in two dired buffers. | |
1092 | |
1093 +++ | |
1094 *** New Dired command `dired-do-touch' (bound to T) changes timestamps | |
1095 of marked files with the value entered in the minibuffer. | |
1096 | |
1097 +++ | |
1098 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now | |
1099 control substitution of the file names only when they are surrounded | |
1100 by whitespace. This means you can now use them as shell wildcards | |
1101 too. If you want to use just plain `*' as a wildcard, type `*""'; the | |
1102 doublequotes make no difference in the shell, but they prevent | |
1103 special treatment in `dired-do-shell-command'. | |
1104 | |
1105 +++ | |
1106 *** In Dired, the w command now copies the current line's file name | |
1107 into the kill ring. With a zero prefix arg, copies absolute file names. | |
1108 | |
1109 +++ | |
1110 ** The variables dired-free-space-program and dired-free-space-args | |
1111 have been renamed to directory-free-space-program and | |
1112 directory-free-space-args, and they now apply whenever Emacs puts a | |
1113 directory listing into a buffer. | |
1114 | |
1115 +++ | |
1116 ** Dired-x: | |
1117 | |
1118 +++ | |
1119 *** Omitting files is now a minor mode, dired-omit-mode. The mode toggling | |
1120 command is bound to M-o. A new command dired-mark-omitted, bound to * O, | |
1121 marks omitted files. The variable dired-omit-files-p is obsoleted, use the | |
1122 mode toggling function instead. | |
326 | 1123 |
327 +++ | 1124 +++ |
328 ** In Outline mode, hide-body no longer hides lines at the top | 1125 ** In Outline mode, hide-body no longer hides lines at the top |
329 of the file that precede the first header line. | 1126 of the file that precede the first header line. |
330 | 1127 |
331 +++ | 1128 +++ |
332 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | 1129 ** Occur, Info, and comint-derived modes now support using |
333 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | 1130 M-x font-lock-mode to toggle fontification. The variable |
334 and `C-c C-r'. | 1131 `Info-fontify' is no longer applicable; to disable fontification, |
335 | 1132 remove `turn-on-font-lock' from `Info-mode-hook'. |
336 +++ | |
337 ** In processing a local variables list, Emacs strips the prefix and | |
338 suffix are from every line before processing all the lines. | |
339 | |
340 +++ | |
341 ** `apply-macro-to-region-lines' now operates on all lines that begin | |
342 in the region, rather than on all complete lines in the region. | |
343 | |
344 --- | |
345 ** global-whitespace-mode is a new alias for whitespace-global-mode. | |
346 | |
347 +++ | |
348 ** There are now two new regular expression operators, \_< and \_>, | |
349 for matching the beginning and end of a symbol. A symbol is a | |
350 non-empty sequence of either word or symbol constituent characters, as | |
351 specified by the syntax table. | |
352 --- | |
353 *** rx.el has new corresponding `symbol-end' and `symbol-start' elements. | |
354 | |
355 +++ | |
356 ** Passing resources on the command line now works on MS Windows. | |
357 You can use --xrm to pass resource settings to Emacs, overriding any | |
358 existing values. For example: | |
359 | |
360 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | |
361 | |
362 will start up Emacs on an initial frame of 100x20 with red background, | |
363 irrespective of geometry or background setting on the Windows registry. | |
364 | 1133 |
365 --- | 1134 --- |
366 ** The terminal emulation code in term.el has been improved, it can | 1135 ** The terminal emulation code in term.el has been improved, it can |
367 run most curses applications now. | 1136 run most curses applications now. |
368 | |
369 ** New features in evaluation commands | |
370 | |
371 +++ | |
372 *** The function `eval-defun' (C-M-x) called on defface reinitializes | |
373 the face to the value specified in the defface expression. | |
374 | |
375 +++ | |
376 *** Typing C-x C-e twice prints the value of the integer result | |
377 in additional formats (octal, hexadecimal, character) specified | |
378 by the new function `eval-expression-print-format'. The same | |
379 function also defines the result format for `eval-expression' (M-:), | |
380 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | |
381 | |
382 --- | |
383 ** New input method chinese-sisheng for inputting Chinese Pinyin | |
384 characters. | |
385 | |
386 +++ | |
387 ** New command quail-show-key shows what key (or key sequence) to type | |
388 in the current input method to input a character at point. | |
389 | |
390 +++ | |
391 ** You can now switch buffers in a cyclic order with C-x C-left and | |
392 (prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right | |
393 can be used as well. | |
394 | |
395 --- | |
396 ** Commands winner-redo and winner-undo, from winner.el, are now bound to | |
397 C-c <left> and C-c <right>, respectively. This is an incompatible change. | |
398 | |
399 --- | |
400 ** Help commands `describe-function' and `describe-key' now show function | |
401 arguments in lowercase italics on displays that support it. To change the | |
402 default, customize face `help-argument-name' or redefine the function | |
403 `help-default-arg-highlight'. | |
404 | 1137 |
405 --- | 1138 --- |
406 ** The comint prompt can now be made read-only, using the new user | 1139 ** The comint prompt can now be made read-only, using the new user |
407 option `comint-prompt-read-only'. This is not enabled by default, | 1140 option `comint-prompt-read-only'. This is not enabled by default, |
408 except in IELM buffers. The read-only status of IELM prompts can be | 1141 except in IELM buffers. The read-only status of IELM prompts can be |
423 not the case, then `comint-kill-region' behaves just like | 1156 not the case, then `comint-kill-region' behaves just like |
424 `kill-region' if read-only are involved: it copies the text to the | 1157 `kill-region' if read-only are involved: it copies the text to the |
425 kill-ring, but does not delete it. | 1158 kill-ring, but does not delete it. |
426 | 1159 |
427 +++ | 1160 +++ |
1161 ** The new command `comint-insert-previous-argument' in comint-derived | |
1162 modes (shell-mode etc) inserts arguments from previous command lines, | |
1163 like bash's `ESC .' binding. It is bound by default to `C-c .', but | |
1164 otherwise behaves quite similarly to the bash version. | |
1165 | |
1166 ** `comint-use-prompt-regexp-instead-of-fields' has been renamed | |
1167 `comint-use-prompt-regexp'. The old name has been kept as an alias, | |
1168 but declared obsolete. | |
1169 | |
1170 +++ | |
1171 ** Telnet now prompts you for a port number with C-u M-x telnet. | |
1172 | |
1173 --- | |
1174 ** M-x compile has become more robust and reliable | |
1175 | |
1176 Quite a few more kinds of messages are recognized. Messages that are | |
1177 recognized as warnings or informational come in orange or green, instead of | |
1178 red. Informational messages are by default skipped with `next-error' | |
1179 (controlled by `compilation-skip-threshold'). | |
1180 | |
1181 Location data is collected on the fly as the *compilation* buffer changes. | |
1182 This means you could modify messages to make them point to different files. | |
1183 This also means you can not go to locations of messages you may have deleted. | |
1184 | |
1185 The variable `compilation-error-regexp-alist' has now become customizable. If | |
1186 you had added your own regexps to this, you'll probably need to include a | |
1187 leading `^', otherwise they'll match anywhere on a line. There is now also a | |
1188 `compilation-mode-font-lock-keywords' and it nicely handles all the checks | |
1189 that configure outputs and -o options so you see at a glance where you are. | |
1190 | |
1191 The new file etc/compilation.txt gives examples of each type of message. | |
1192 | |
1193 ** Compilation mode enhancements: | |
1194 | |
1195 +++ | |
1196 *** New user option `compilation-environment'. | |
1197 This option allows you to specify environment variables for inferior | |
1198 compilation processes without affecting the environment that all | |
1199 subprocesses inherit. | |
1200 | |
1201 +++ | |
1202 ** Grep has been decoupled from compilation mode setup. | |
1203 | |
1204 --- | |
1205 *** There's a new separate package grep.el. | |
1206 | |
1207 --- | |
1208 *** M-x grep has been adapted to new compile | |
1209 | |
1210 Hits are fontified in green, and hits in binary files in orange. Grep buffers | |
1211 can be saved and automatically revisited with the new Grep mode. | |
1212 | |
1213 --- | |
1214 *** Grep commands now have their own submenu and customization group. | |
1215 | |
1216 +++ | |
1217 *** `grep-find' is now also available under the name `find-grep' where | |
1218 people knowing `find-grep-dired' would probably expect it. | |
1219 | |
1220 --- | |
1221 *** The new variables `grep-window-height', `grep-auto-highlight', and | |
1222 `grep-scroll-output' can be used to override the corresponding | |
1223 compilation mode settings for grep commands. | |
1224 | |
1225 +++ | |
1226 *** New option `grep-highlight-matches' highlightes matches in *grep* | |
1227 buffer. It uses a special feature of some grep programs which accept | |
1228 --color option to output markers around matches. When going to the next | |
1229 match with `next-error' the exact match is highlighted in the source | |
1230 buffer. Otherwise, if `grep-highlight-matches' is nil, the whole | |
1231 source line is highlighted. | |
1232 | |
1233 +++ | |
1234 *** New key bindings in grep output window: | |
1235 SPC and DEL scrolls window up and down. C-n and C-p moves to next and | |
1236 previous match in the grep window. RET jumps to the source line of | |
1237 the current match. `n' and `p' shows next and previous match in | |
1238 other window, but does not switch buffer. `{' and `}' jumps to the | |
1239 previous or next file in the grep output. TAB also jumps to the next | |
1240 file. | |
1241 | |
1242 +++ | |
1243 ** M-x grep now tries to avoid appending `/dev/null' to the command line | |
1244 by using GNU grep `-H' option instead. M-x grep automatically | |
1245 detects whether this is possible or not the first time it is invoked. | |
1246 When `-H' is used, the grep command line supplied by the user is passed | |
1247 unchanged to the system to execute, which allows more complicated | |
1248 command lines to be used than was possible before. | |
1249 | |
1250 +++ | |
1251 ** New options `next-error-highlight' and `next-error-highlight-no-select' | |
1252 specify the method of highlighting of the corresponding source line | |
1253 in new face `next-error'. | |
1254 | |
1255 +++ | |
1256 ** A new minor mode `next-error-follow-minor-mode' can be used in | |
1257 compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the | |
1258 modes that can use `next-error'). In this mode, cursor motion in the | |
1259 buffer causes automatic display in another window of the corresponding | |
1260 matches, compilation errors, etc. This minor mode can be toggled with | |
1261 C-c C-f. | |
1262 | |
1263 +++ | |
1264 ** M-x diff uses diff-mode instead of compilation-mode. | |
1265 | |
1266 +++ | |
1267 ** In the *Occur* buffer, `o' switches to it in another window, and | |
1268 C-o displays the current line's occurrence in another window without | |
1269 switching to it. | |
1270 | |
1271 +++ | |
428 ** You can now use next-error (C-x `) and previous-error to advance to | 1272 ** You can now use next-error (C-x `) and previous-error to advance to |
429 the next/previous matching line found by M-x occur. | 1273 the next/previous matching line found by M-x occur. |
430 | 1274 |
431 +++ | 1275 +++ |
432 ** Telnet now prompts you for a port number with C-u M-x telnet. | 1276 ** The new command `multi-occur' is just like `occur', except it can |
433 | 1277 search multiple buffers. There is also a new command |
434 +++ | 1278 `multi-occur-by-filename-regexp' which allows you to specify the |
435 ** New command line option -Q or --quick. | 1279 buffers to search by their filename. Internally, Occur mode has been |
436 | 1280 rewritten, and now uses font-lock, among other changes. |
437 This is like using -q --no-site-file, but in addition it also disables | 1281 |
438 the fancy startup screen. | 1282 +++ |
439 | 1283 ** font-lock: in modes like C and Lisp where the fontification assumes that |
440 +++ | 1284 an open-paren in column 0 is always outside of any string or comment, |
441 ** New command line option -D or --basic-display. | 1285 font-lock now highlights any such open-paren-in-column-zero in bold-red |
442 | 1286 if it is inside a string or a comment, to indicate that it can cause |
443 Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | 1287 trouble with fontification and/or indentation. |
444 the blinking cursor. | 1288 |
445 | 1289 ** Enhancements to apropos commands: |
446 +++ | 1290 |
447 ** New command line option -nbc or --no-blinking-cursor disables | 1291 +++ |
448 the blinking cursor on graphical terminals. | 1292 *** The apropos commands now accept a list of words to match. |
449 | 1293 When more than one word is specified, at least two of those words must |
450 +++ | 1294 be present for an item to match. Regular expression matching is still |
451 ** C-h v and C-h f commands now include a hyperlink to the C source for | 1295 available. |
452 variables and functions defined in C (if the C source is available). | 1296 |
453 | 1297 +++ |
454 --- | 1298 *** The new option `apropos-sort-by-scores' causes the matching items |
455 ** When used interactively, `format-write-file' now asks for confirmation | 1299 to be sorted according to their score. The score for an item is a |
456 before overwriting an existing file, unless a prefix argument is | 1300 number calculated to indicate how well the item matches the words or |
457 supplied. This behavior is analogous to `write-file'. | 1301 regular expression that you entered to the apropos command. The best |
458 | 1302 match is listed first, and the calculated score is shown for each |
459 +++ | 1303 matching item. |
460 ** You can now use Auto Revert mode to `tail' a file. | 1304 |
1305 +++ | |
1306 ** You can have several Emacs servers on the same machine. | |
1307 | |
1308 % emacs --eval '(setq server-name "foo")' -f server-start & | |
1309 % emacs --eval '(setq server-name "bar")' -f server-start & | |
1310 % emacsclient -s foo file1 | |
1311 % emacsclient -s bar file2 | |
1312 | |
1313 +++ | |
1314 ** The `emacsclient' command understands the options `--eval' and | |
1315 `--display' which tell Emacs respectively to evaluate the given elisp | |
1316 expression and to use the given display when visiting files. | |
1317 | |
1318 +++ | |
1319 ** User option `server-mode' can be used to start a server process. | |
1320 | |
1321 +++ | |
1322 ** New user option `add-log-always-start-new-record'. | |
1323 When this option is enabled, M-x add-change-log-entry always | |
1324 starts a new record regardless of when the last record is. | |
1325 | |
1326 ** Menu support: | |
1327 | |
1328 --- | |
1329 *** Dialogs and menus pop down if you type C-g. | |
1330 | |
1331 --- | |
1332 *** The menu item "Open File..." has been split into two items, "New File..." | |
1333 and "Open File...". "Open File..." now opens only existing files. This is | |
1334 to support existing GUI file selection dialogs better. | |
1335 | |
1336 +++ | |
1337 *** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be | |
1338 disabled by customizing the variable `use-file-dialog'. | |
1339 | |
1340 ** X Windows Support: | |
1341 | |
1342 +++ | |
1343 *** Emacs now supports drag and drop for X. Dropping a file on a window | |
1344 opens it, dropping text inserts the text. Dropping a file on a dired | |
1345 buffer copies or moves the file to that directory. | |
1346 | |
1347 +++ | |
1348 *** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | |
1349 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | |
1350 and `x-super-keysym' can be used to choose which keysyms Emacs should | |
1351 use for the modifiers. For example, the following two lines swap | |
1352 Meta and Alt: | |
1353 (setq x-alt-keysym 'meta) | |
1354 (setq x-meta-keysym 'alt) | |
1355 | |
1356 +++ | |
1357 *** The X resource useXIM can be used to turn off use of XIM, which may | |
1358 speed up Emacs with slow networking to the X server. | |
1359 | |
1360 If the configure option `--without-xim' was used to turn off use of | |
1361 XIM by default, the X resource useXIM can be used to turn it on. | |
1362 | |
1363 --- | |
1364 *** The new variable `x-select-request-type' controls how Emacs | |
1365 requests X selection. The default value is nil, which means that | |
1366 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, | |
1367 and use the more appropriately result. | |
1368 | |
1369 --- | |
1370 *** The scrollbar under LessTif or Motif has a smoother drag-scrolling. | |
1371 On the other hand, the size of the thumb does not represent the actual | |
1372 amount of text shown any more (only a crude approximation of it). | |
1373 | |
1374 --- | |
1375 *** The pop up menus for Lucid now stay up if you do a fast click and can | |
1376 be navigated with the arrow keys (like Gtk+, Mac and W32). | |
1377 | |
1378 +++ | |
1379 *** The Lucid menus can display multilingual text in your locale. You have | |
1380 to explicitly specify a fontSet resource for this to work, for example | |
1381 `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | |
1382 | |
1383 --- | |
1384 *** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | |
1385 ESC, like they do for Gtk+, Mac and W32. | |
1386 | |
1387 +++ | |
1388 ** For Gtk+ version 2.4, you can make Emacs use the old file dialog | |
1389 by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use | |
1390 the new dialog. | |
1391 | |
1392 ** Xterm support: | |
1393 | |
1394 --- | |
1395 *** Emacs now responds to mouse-clicks on the mode-line, header-line and | |
1396 display margin, when run in an xterm. | |
1397 | |
1398 --- | |
1399 *** Improved key bindings support when running in an xterm. | |
1400 When emacs is running in an xterm more key bindings are available. The | |
1401 following should work: | |
1402 {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. | |
1403 These key bindings work on xterm from X.org 6.8, they might not work on | |
1404 some older versions of xterm, or on some proprietary versions. | |
1405 | |
1406 ** Changes in support of colors on character terminals | |
1407 | |
1408 +++ | |
1409 *** The new command-line option --color=MODE lets you specify a standard | |
1410 mode for a tty color support. It is meant to be used on character | |
1411 terminals whose capabilities are not set correctly in the terminal | |
1412 database, or with terminal emulators which support colors, but don't | |
1413 set the TERM environment variable to a name of a color-capable | |
1414 terminal. "emacs --color" uses the same color commands as GNU `ls' | |
1415 when invoked with "ls --color", so if your terminal can support colors | |
1416 in "ls --color", it will support "emacs --color" as well. See the | |
1417 user manual for the possible values of the MODE parameter. | |
1418 | |
1419 --- | |
1420 *** Emacs now supports several character terminals which provide more | |
1421 than 8 colors. For example, for `xterm', 16-color, 88-color, and | |
1422 256-color modes are supported. Emacs automatically notes at startup | |
1423 the extended number of colors, and defines the appropriate entries for | |
1424 all of these colors. | |
1425 | |
1426 +++ | |
1427 *** Emacs now uses the full range of available colors for the default | |
1428 faces when running on a color terminal, including 16-, 88-, and | |
1429 256-color xterms. This means that when you run "emacs -nw" on an | |
1430 88-color or 256-color xterm, you will see essentially the same face | |
1431 colors as on X. | |
1432 | |
1433 --- | |
1434 *** There's a new support for colors on `rxvt' terminal emulator. | |
1435 | |
1436 --- | |
1437 ** M-x view-file and commands that use it now avoid interfering | |
1438 with special modes such as Tar mode. | |
1439 | |
1440 +++ | |
1441 ** Filesets are collections of files. You can define a fileset in | |
1442 various ways, such as based on a directory tree or based on | |
1443 program files that include other program files. | |
1444 | |
1445 Once you have defined a fileset, you can perform various operations on | |
1446 all the files in it, such as visiting them or searching and replacing | |
1447 in them. | |
1448 | |
1449 --- | |
1450 ** Commands winner-redo and winner-undo, from winner.el, are now bound to | |
1451 C-c <left> and C-c <right>, respectively. This is an incompatible change. | |
1452 | |
1453 --- | |
1454 ** global-whitespace-mode is a new alias for whitespace-global-mode. | |
1455 | |
1456 +++ | |
1457 ** The command `list-text-properties-at' has been deleted because | |
1458 C-u C-x = gives the same information and more. | |
1459 | |
1460 * New modes and packages in Emacs 22.1 | |
1461 | |
1462 +++ | |
1463 ** New package benchmark.el contains simple support for convenient | |
1464 timing measurements of code (including the garbage collection component). | |
1465 | |
1466 +++ | |
1467 ** Calc is now part of the Emacs distribution. | |
1468 | |
1469 Calc is an advanced desk calculator and mathematical tool written in | |
1470 Emacs Lisp. Its documentation is in a separate manual; within Emacs, | |
1471 type "C-h i m calc RET" to read that manual. A reference card is | |
1472 available in `etc/calccard.tex' and `etc/calccard.ps'. | |
1473 | |
1474 --- | |
1475 ** `cfengine-mode' is a major mode for editing GNU Cfengine | |
1476 configuration files. | |
1477 | |
1478 +++ | |
1479 ** The new package conf-mode.el handles thousands of configuration files, with | |
1480 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | |
1481 var : value, var value or keyword var value) and sections ([section] or | |
1482 section { }). Many files under /etc/, or with suffixes like .cf through | |
1483 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | |
1484 recognized. | |
1485 | |
1486 --- | |
1487 ** CUA mode is now part of the Emacs distribution. | |
1488 | |
1489 The new cua package provides CUA-like keybindings using C-x for | |
1490 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. | |
1491 With cua, the region can be set and extended using shifted movement | |
1492 keys (like pc-selection-mode) and typed text replaces the active | |
1493 region (like delete-selection-mode). Do not enable these modes with | |
1494 cua-mode. Customize the variable `cua-mode' to enable cua. | |
1495 | |
1496 In addition, cua provides unified rectangle support with visible | |
1497 rectangle highlighting: Use S-return to start a rectangle, extend it | |
1498 using the movement commands (or mouse-3), and cut or copy it using C-x | |
1499 or C-c (using C-w and M-w also works). | |
1500 | |
1501 Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to | |
1502 fill it with blanks or another character, use M-u or M-l to upcase or | |
1503 downcase the rectangle, use M-i to increment the numbers in the | |
1504 rectangle, use M-n to fill the rectangle with a numeric sequence (such | |
1505 as 10 20 30...), use M-r to replace a regexp in the rectangle, and use | |
1506 M-' or M-/ to restrict command on the rectangle to a subset of the | |
1507 rows. See the commentary in cua-base.el for more rectangle commands. | |
1508 | |
1509 Cua also provides unified support for registers: Use a numeric | |
1510 prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and | |
1511 C-v to cut or copy into register 0-9, or paste from register 0-9. | |
1512 | |
1513 The last text deleted (not killed) is automatically stored in | |
1514 register 0. This includes text deleted by typing text. | |
1515 | |
1516 Finally, cua provides a global mark which is set using S-C-space. | |
1517 When the global mark is active, any text which is cut or copied is | |
1518 automatically inserted at the global mark position. See the | |
1519 commentary in cua-base.el for more global mark related commands. | |
1520 | |
1521 The features of cua also works with the standard emacs bindings for | |
1522 kill, copy, yank, and undo. If you want to use cua mode, but don't | |
1523 want the C-x, C-c, C-v, and C-z bindings, you may customize the | |
1524 `cua-enable-cua-keys' variable. | |
1525 | |
1526 Note: This version of cua mode is not backwards compatible with older | |
1527 versions of cua.el and cua-mode.el. To ensure proper operation, you | |
1528 must remove older versions of cua.el or cua-mode.el as well as the | |
1529 loading and customization of those packages from the .emacs file. | |
1530 | |
1531 +++ | |
1532 ** The new package dns-mode.el add syntax highlight of DNS master files. | |
1533 The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used | |
1534 to increment the SOA serial. | |
1535 | |
1536 --- | |
1537 ** The new global minor mode `file-name-shadow-mode' modifies the way | |
1538 filenames being entered by the user in the minibuffer are displayed, so | |
1539 that it's clear when part of the entered filename will be ignored due to | |
1540 emacs' filename parsing rules. The ignored portion can be made dim, | |
1541 invisible, or otherwise less visually noticable. The display method may | |
1542 be displayed by customizing the variable `file-name-shadow-properties'. | |
1543 | |
1544 +++ | |
1545 ** The new package flymake.el does on-the-fly syntax checking of program | |
1546 source files. See the Flymake's Info manual for more details. | |
1547 | |
1548 --- | |
1549 ** The new Lisp library fringe.el controls the appearance of fringes. | |
1550 | |
1551 --- | |
1552 ** GDB-Script-mode is used for files like .gdbinit. | |
1553 | |
1554 +++ | |
1555 ** The new package gdb-ui.el provides an enhanced graphical interface to | |
1556 GDB. You can interact with GDB through the GUD buffer in the usual way, but | |
1557 there are also further buffers which control the execution and describe the | |
1558 state of your program. It separates the input/output of your program from | |
1559 that of GDB and watches expressions in the speedbar. It also uses features of | |
1560 Emacs 21 such as the display margin for breakpoints, and the toolbar. | |
1561 | |
1562 Use M-x gdba to start GDB-UI. | |
1563 | |
1564 --- | |
1565 ** The new package ibuffer provides a powerful, completely | |
1566 customizable replacement for buff-menu.el. | |
1567 | |
1568 --- | |
1569 ** Ido mode is now part of the Emacs distribution. | |
1570 | |
1571 The ido (interactively do) package is an extension of the iswitchb | |
1572 package to do interactive opening of files and directories in addition | |
1573 to interactive buffer switching. Ido is a superset of iswitchb (with | |
1574 a few exceptions), so don't enable both packages. | |
1575 | |
1576 +++ | |
1577 ** Image files are normally visited in Image mode, which lets you toggle | |
1578 between viewing the image and viewing the text using C-c C-c. | |
1579 | |
1580 +++ | |
1581 ** The new keypad setup package provides several common bindings for | |
1582 the numeric keypad which is available on most keyboards. The numeric | |
1583 keypad typically has the digits 0 to 9, a decimal point, keys marked | |
1584 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad | |
1585 package only controls the use of the digit and decimal keys. | |
1586 | |
1587 By customizing the variables `keypad-setup', `keypad-shifted-setup', | |
1588 `keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by | |
1589 using the function `keypad-setup', you can rebind all digit keys and | |
1590 the decimal key of the keypad in one step for each of the four | |
1591 possible combinations of the Shift key state (not pressed/pressed) and | |
1592 the NumLock toggle state (off/on). | |
1593 | |
1594 The choices for the keypad keys in each of the above states are: | |
1595 `Plain numeric keypad' where the keys generates plain digits, | |
1596 `Numeric keypad with decimal key' where the character produced by the | |
1597 decimal key can be customized individually (for internationalization), | |
1598 `Numeric Prefix Arg' where the keypad keys produce numeric prefix args | |
1599 for emacs editing commands, `Cursor keys' and `Shifted Cursor keys' | |
1600 where the keys work like (shifted) arrow keys, home/end, etc., and | |
1601 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) | |
1602 are left unspecified and can be bound individually through the global | |
1603 or local keymaps. | |
1604 | |
1605 +++ | |
1606 ** The new kmacro package provides a simpler user interface to | |
1607 emacs' keyboard macro facilities. | |
1608 | |
1609 Basically, it uses two function keys (default F3 and F4) like this: | |
1610 F3 starts a macro, F4 ends the macro, and pressing F4 again executes | |
1611 the last macro. While defining the macro, F3 inserts a counter value | |
1612 which automatically increments every time the macro is executed. | |
1613 | |
1614 There is now a keyboard macro ring which stores the most recently | |
1615 defined macros. | |
1616 | |
1617 The C-x C-k sequence is now a prefix for the kmacro keymap which | |
1618 defines bindings for moving through the keyboard macro ring, | |
1619 C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, | |
1620 manipulating the macro counter and format via C-x C-k C-c, | |
1621 C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el | |
1622 for more commands. | |
1623 | |
1624 The normal macro bindings C-x (, C-x ), and C-x e now interfaces to | |
1625 the keyboard macro ring. | |
1626 | |
1627 The C-x e command now automatically terminates the current macro | |
1628 before calling it, if used while defining a macro. | |
1629 | |
1630 In addition, when ending or calling a macro with C-x e, the macro can | |
1631 be repeated immediately by typing just the `e'. You can customize | |
1632 this behavior via the variable kmacro-call-repeat-key and | |
1633 kmacro-call-repeat-with-arg. | |
1634 | |
1635 Keyboard macros can now be debugged and edited interactively. | |
1636 C-x C-k SPC steps through the last keyboard macro one key sequence | |
1637 at a time, prompting for the actions to take. | |
1638 | |
1639 +++ | |
1640 ** The new package longlines.el provides a minor mode for editing text | |
1641 files composed of long lines, based on the `use-hard-newlines' | |
1642 mechanism. The long lines are broken up by inserting soft newlines, | |
1643 which are automatically removed when saving the file to disk or | |
1644 copying into the kill ring, clipboard, etc. By default, Longlines | |
1645 mode inserts soft newlines automatically during editing, a behavior | |
1646 referred to as "soft word wrap" in other text editors. This is | |
1647 similar to Refill mode, but more reliable. To turn the word wrap | |
1648 feature off, set `longlines-auto-wrap' to nil. | |
1649 | |
1650 --- | |
1651 ** The old Octave mode bindings C-c f and C-c i have been changed | |
1652 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate | |
1653 bindings on control characters--thus, C-c C-i C-b is the same as | |
1654 C-c C-i b, and so on. | |
1655 | |
1656 ** The printing package is now part of the Emacs distribution. | |
1657 | |
1658 If you enable the printing package by including (require 'printing) in | |
1659 the .emacs file, the normal Print item on the File menu is replaced | |
1660 with a Print sub-menu which allows you to preview output through | |
1661 ghostview, use ghostscript to print (if you don't have a PostScript | |
1662 printer) or send directly to printer a PostScript code generated by | |
1663 `ps-print' package. Use M-x pr-help for more information. | |
1664 | |
1665 +++ | |
1666 ** The new python.el package is used to edit Python and Jython programs. | |
1667 | |
1668 --- | |
1669 ** The minor mode Reveal mode makes text visible on the fly as you | |
1670 move your cursor into hidden regions of the buffer. | |
1671 It should work with any package that uses overlays to hide parts | |
1672 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | |
1673 | |
1674 There is also Global Reveal mode which affects all buffers. | |
1675 | |
1676 --- | |
1677 ** The ruler-mode.el library provides a minor mode for displaying an | |
1678 "active" ruler in the header line. You can use the mouse to visually | |
1679 change the `fill-column', `window-margins' and `tab-stop-list' | |
1680 settings. | |
1681 | |
1682 +++ | |
1683 ** SES mode (ses-mode) is a new major mode for creating and editing | |
1684 spreadsheet files. Besides the usual Emacs features (intuitive command | |
1685 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | |
1686 viral immunity and import/export of tab-separated values. | |
1687 | |
1688 +++ | |
1689 ** The new global minor mode `size-indication-mode' (off by default) | |
1690 shows the size of accessible part of the buffer on the mode line. | |
1691 | |
1692 +++ | |
1693 ** The new package table.el implements editable, WYSIWYG, embedded | |
1694 `text tables' in Emacs buffers. It simulates the effect of putting | |
1695 these tables in a special major mode. The package emulates WYSIWYG | |
1696 table editing available in modern word processors. The package also | |
1697 can generate a table source in typesetting and markup languages such | |
1698 as latex and html from the visually laid out text table. | |
1699 | |
1700 +++ | |
1701 ** The thumbs.el package allows you to preview image files as thumbnails | |
1702 and can be invoked from a Dired buffer. | |
1703 | |
1704 +++ | |
1705 ** Tramp is now part of the distribution. | |
1706 | |
1707 This package is similar to Ange-FTP: it allows you to edit remote | |
1708 files. But whereas Ange-FTP uses FTP to access the remote host, | |
1709 Tramp uses a shell connection. The shell connection is always used | |
1710 for filename completion and directory listings and suchlike, but for | |
1711 the actual file transfer, you can choose between the so-called | |
1712 `inline' methods (which transfer the files through the shell | |
1713 connection using base64 or uu encoding) and the `out-of-band' methods | |
1714 (which invoke an external copying program such as `rcp' or `scp' or | |
1715 `rsync' to do the copying). | |
1716 | |
1717 Shell connections can be acquired via `rsh', `ssh', `telnet' and also | |
1718 `su' and `sudo'. Ange-FTP is still supported via the `ftp' method. | |
1719 | |
1720 If you want to disable Tramp you should set | |
1721 | |
1722 (setq tramp-default-method "ftp") | |
1723 | |
1724 --- | |
1725 ** The library tree-widget.el provides a new widget to display a set | |
1726 of hierarchical data as an outline. For example, the tree-widget is | |
1727 well suited to display a hierarchy of directories and files. | |
1728 | |
1729 --- | |
1730 ** The URL package (which had been part of W3) is now part of Emacs. | |
1731 | |
1732 --- | |
1733 ** New minor mode, Visible mode, toggles invisibility in the current buffer. | |
1734 When enabled, it makes all invisible text visible. When disabled, it | |
1735 restores the previous value of `buffer-invisibility-spec'. | |
1736 | |
1737 +++ | |
1738 ** The wdired.el package allows you to use normal editing commands on Dired | |
1739 buffers to change filenames, permissions, etc... | |
1740 | |
1741 * Changes in specialized modes and packages: | |
1742 | |
1743 +++ | |
1744 ** There is a new user option `mail-default-directory' that allows you | |
1745 to specify the value of `default-directory' for mail buffers. This | |
1746 directory is used for auto-save files of mail buffers. It defaults to | |
1747 "~/". | |
1748 | |
1749 +++ | |
1750 ** Emacs can now indicate in the mode-line the presence of new e-mail | |
1751 in a directory or in a file. See the documentation of the user option | |
1752 `display-time-mail-directory'. | |
1753 | |
1754 --- | |
1755 ** PO translation files are decoded according to their MIME headers | |
1756 when Emacs visits them. | |
1757 | |
1758 ** Info mode: | |
1759 | |
1760 +++ | |
1761 *** A numeric prefix argument of `info' selects an Info buffer | |
1762 with the number appended to the *info* buffer name (e.g. "*info*<2>"). | |
1763 | |
1764 --- | |
1765 *** isearch in Info uses Info-search and searches through multiple nodes. | |
1766 Before leaving the initial Info node isearch fails once with the error | |
1767 message [initial node], and with subsequent C-s/C-r continues through | |
1768 other nodes. When isearch fails for the rest of the manual, it wraps | |
1769 aroung the whole manual to the top/final node. The user option | |
1770 `Info-isearch-search' controls whether to use Info-search for isearch, | |
1771 or the default isearch search function that wraps around the current | |
1772 Info node. | |
1773 | |
1774 *** New search commands: `Info-search-case-sensitively' (bound to S), | |
1775 `Info-search-backward', and `Info-search-next' which repeats the last | |
1776 search without prompting for a new search string. | |
1777 | |
1778 *** New command `Info-history-forward' (bound to r and new toolbar icon) | |
1779 moves forward in history to the node you returned from after using | |
1780 `Info-history-back' (renamed from `Info-last'). | |
1781 | |
1782 *** New command `Info-history' (bound to L) displays a menu of visited nodes. | |
1783 | |
1784 *** New command `Info-toc' (bound to T) creates a node with table of contents | |
1785 from the tree structure of menus of the current Info file. | |
1786 | |
1787 *** New command `info-apropos' searches the indices of the known | |
1788 Info files on your system for a string, and builds a menu of the | |
1789 possible matches. | |
1790 | |
1791 *** New command `Info-copy-current-node-name' (bound to w) copies | |
1792 the current Info node name into the kill ring. With a zero prefix | |
1793 arg, puts the node name inside the `info' function call. | |
1794 | |
1795 --- | |
1796 *** New face `info-xref-visited' distinguishes visited nodes from unvisited | |
1797 and a new option `Info-fontify-visited-nodes' to control this. | |
1798 | |
1799 *** http and ftp links in Info are now operational: they look like cross | |
1800 references and following them calls `browse-url'. | |
1801 | |
1802 +++ | |
1803 *** Info now hides node names in menus and cross references by default. | |
1804 If you prefer the old behavior, you can set the new user option | |
1805 `Info-hide-note-references' to nil. | |
1806 | |
1807 --- | |
1808 *** Images in Info pages are supported. | |
1809 Info pages show embedded images, in Emacs frames with image support. | |
1810 Info documentation that includes images, processed with makeinfo | |
1811 version 4.7 or newer, compiles to Info pages with embedded images. | |
1812 | |
1813 +++ | |
1814 *** The default value for `Info-scroll-prefer-subnodes' is now nil. | |
1815 | |
1816 --- | |
1817 *** Info-index offers completion. | |
1818 | |
1819 ** Lisp mode changes: | |
1820 | |
1821 --- | |
1822 *** Lisp mode now uses font-lock-doc-face for the docstrings. | |
1823 | |
1824 +++ | |
1825 *** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the | |
1826 list starting after point. | |
1827 | |
1828 *** New features in evaluation commands | |
1829 | |
1830 +++ | |
1831 *** The function `eval-defun' (C-M-x) called on defface reinitializes | |
1832 the face to the value specified in the defface expression. | |
1833 | |
1834 +++ | |
1835 *** Typing C-x C-e twice prints the value of the integer result | |
1836 in additional formats (octal, hexadecimal, character) specified | |
1837 by the new function `eval-expression-print-format'. The same | |
1838 function also defines the result format for `eval-expression' (M-:), | |
1839 `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | |
1840 | |
1841 +++ | |
1842 ** CC Mode changes. | |
1843 | |
1844 *** Font lock support. | |
1845 CC Mode now provides font lock support for all its languages. This | |
1846 supersedes the font lock patterns that have been in the core font lock | |
1847 package for C, C++, Java and Objective-C. Like indentation, font | |
1848 locking is done in a uniform way across all languages (except the new | |
1849 AWK mode - see below). That means that the new font locking will be | |
1850 different from the old patterns in various details for most languages. | |
1851 | |
1852 The main goal of the font locking in CC Mode is accuracy, to provide a | |
1853 dependable aid in recognizing the various constructs. Some, like | |
1854 strings and comments, are easy to recognize while others like | |
1855 declarations and types can be very tricky. CC Mode can go to great | |
1856 lengths to recognize declarations and casts correctly, especially when | |
1857 the types aren't recognized by standard patterns. This is a fairly | |
1858 demanding analysis which can be slow on older hardware, and it can | |
1859 therefore be disabled by choosing a lower decoration level with the | |
1860 variable font-lock-maximum-decoration. | |
1861 | |
1862 Note that the most demanding font lock level has been tuned with lazy | |
1863 fontification in mind, i.e. there should be a support mode that waits | |
1864 with the fontification until the text is actually shown | |
1865 (e.g. Just-in-time Lock mode, which is the default, or Lazy Lock | |
1866 mode). Fontifying a file with several thousand lines in one go can | |
1867 take the better part of a minute. | |
1868 | |
1869 **** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables | |
1870 are now used by CC Mode to recognize identifiers that are certain to | |
1871 be types. (They are also used in cases that aren't related to font | |
1872 locking.) At the maximum decoration level, types are often recognized | |
1873 properly anyway, so these variables should be fairly restrictive and | |
1874 not contain patterns for uncertain types. | |
1875 | |
1876 **** Support for documentation comments. | |
1877 There is a "plugin" system to fontify documentation comments like | |
1878 Javadoc and the markup within them. It's independent of the host | |
1879 language, so it's possible to e.g. turn on Javadoc font locking in C | |
1880 buffers. See the variable c-doc-comment-style for details. | |
1881 | |
1882 Currently two kinds of doc comment styles are recognized: Suns Javadoc | |
1883 and Autodoc which is used in Pike. This is by no means a complete | |
1884 list of the most common tools; if your doc comment extractor of choice | |
1885 is missing then please drop a note to bug-cc-mode@gnu.org. | |
1886 | |
1887 **** Better handling of C++ templates. | |
1888 As a side effect of the more accurate font locking, C++ templates are | |
1889 now handled much better. The angle brackets that delimit them are | |
1890 given parenthesis syntax so that they can be navigated like other | |
1891 parens. | |
1892 | |
1893 This also improves indentation of templates, although there still is | |
1894 work to be done in that area. E.g. it's required that multiline | |
1895 template clauses are written in full and then refontified to be | |
1896 recognized, and the indentation of nested templates is a bit odd and | |
1897 not as configurable as it ought to be. | |
1898 | |
1899 **** Improved handling of Objective-C and CORBA IDL. | |
1900 Especially the support for Objective-C and IDL has gotten an overhaul. | |
1901 The special "@" declarations in Objective-C are handled correctly. | |
1902 All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and | |
1903 handled correctly, also wrt indentation. | |
1904 | |
1905 *** Support for the AWK language. | |
1906 Support for the AWK language has been introduced. The implementation is | |
1907 based around GNU AWK version 3.1, but it should work pretty well with | |
1908 any AWK. As yet, not all features of CC Mode have been adapted for AWK. | |
1909 Here is a summary: | |
1910 | |
1911 **** Indentation Engine | |
1912 The CC Mode indentation engine fully supports AWK mode. | |
1913 | |
1914 AWK mode handles code formatted in the conventional AWK fashion: `{'s | |
1915 which start actions, user-defined functions, or compound statements are | |
1916 placed on the same line as the associated construct; the matching `}'s | |
1917 are normally placed under the start of the respective pattern, function | |
1918 definition, or structured statement. | |
1919 | |
1920 The predefined indentation functions haven't yet been adapted for AWK | |
1921 mode, though some of them may work serendipitously. There shouldn't be | |
1922 any problems writing custom indentation functions for AWK mode. | |
1923 | |
1924 The command C-c C-q (c-indent-defun) hasn't yet been adapted for AWK, | |
1925 though in practice it works properly nearly all the time. Should it | |
1926 fail, explicitly set the region around the function (using C-u C-SPC: | |
1927 C-M-h probably won't work either) then do C-M-\ (indent-region). | |
1928 | |
1929 **** Font Locking | |
1930 There is a single level of font locking in AWK mode, rather than the | |
1931 three distinct levels the other modes have. There are several | |
1932 idiosyncrasies in AWK mode's font-locking due to the peculiarities of | |
1933 the AWK language itself. | |
1934 | |
1935 **** Comment Commands | |
1936 M-; (indent-for-comment) works fine. None of the other CC Mode | |
1937 comment formatting commands have yet been adapted for AWK mode. | |
1938 | |
1939 **** Movement Commands | |
1940 Most of the movement commands work in AWK mode. The most important | |
1941 exceptions are M-a (c-beginning-of-statement) and M-e | |
1942 (c-end-of-statement) which haven't yet been adapted. | |
1943 | |
1944 The notion of "defun" has been augmented to include AWK pattern-action | |
1945 pairs. C-M-a (c-awk-beginning-of-defun) and C-M-e (c-awk-end-of-defun) | |
1946 recognise these pattern-action pairs, as well as user defined | |
1947 functions. | |
1948 | |
1949 **** Auto-newline Insertion and Clean-ups | |
1950 Auto-newline insertion hasn't yet been adapted for AWK. Some of | |
1951 the clean-ups can actually convert good AWK code into syntactically | |
1952 invalid code. These features are best disabled in AWK buffers. | |
1953 | |
1954 *** New syntactic symbols in IDL mode. | |
1955 The top level constructs "module" and "composition" (from CIDL) are | |
1956 now handled like "namespace" in C++: They are given syntactic symbols | |
1957 module-open, module-close, inmodule, composition-open, | |
1958 composition-close, and incomposition. | |
1959 | |
1960 *** New functions to do hungry delete without enabling hungry delete mode. | |
1961 The functions c-hungry-backspace and c-hungry-delete-forward can be | |
1962 bound to keys to get this feature without toggling a mode. | |
1963 Contributed by Kevin Ryde. | |
1964 | |
1965 *** Better control over require-final-newline. The variable that | |
1966 controls how to handle a final newline when the buffer is saved, | |
1967 require-final-newline, is now customizable on a per-mode basis through | |
1968 c-require-final-newline. That is a list of modes, and only those | |
1969 modes set require-final-newline. By default that's C, C++ and | |
1970 Objective-C. | |
1971 | |
1972 The specified modes set require-final-newline based on | |
1973 mode-require-final-newline, as usual. | |
1974 | |
1975 *** Format change for syntactic context elements. | |
1976 The elements in the syntactic context returned by c-guess-basic-syntax | |
1977 and stored in c-syntactic-context has been changed somewhat to allow | |
1978 attaching more information. They are now lists instead of single cons | |
1979 cells. E.g. a line that previously had the syntactic analysis | |
1980 | |
1981 ((inclass . 11) (topmost-intro . 13)) | |
1982 | |
1983 is now analysed as | |
1984 | |
1985 ((inclass 11) (topmost-intro 13)) | |
1986 | |
1987 In some cases there are more than one position given for a syntactic | |
1988 symbol. | |
1989 | |
1990 This change might affect code that call c-guess-basic-syntax directly, | |
1991 and custom lineup functions if they use c-syntactic-context. However, | |
1992 the argument given to lineup functions is still a single cons cell | |
1993 with nil or an integer in the cdr. | |
1994 | |
1995 *** API changes for derived modes. | |
1996 There have been extensive changes "under the hood" which can affect | |
1997 derived mode writers. Some of these changes are likely to cause | |
1998 incompatibilities with existing derived modes, but on the other hand | |
1999 care has now been taken to make it possible to extend and modify CC | |
2000 Mode with less risk of such problems in the future. | |
2001 | |
2002 **** New language variable system. | |
2003 See the comment blurb near the top of cc-langs.el. | |
2004 | |
2005 **** New initialization functions. | |
2006 The initialization procedure has been split up into more functions to | |
2007 give better control: c-basic-common-init, c-font-lock-init, and | |
2008 c-init-language-vars. | |
2009 | |
2010 *** Changes in analysis of nested syntactic constructs. | |
2011 The syntactic analysis engine has better handling of cases where | |
2012 several syntactic constructs appear nested on the same line. They are | |
2013 now handled as if each construct started on a line of its own. | |
2014 | |
2015 This means that CC Mode now indents some cases differently, and | |
2016 although it's more consistent there might be cases where the old way | |
2017 gave results that's more to one's liking. So if you find a situation | |
2018 where you think that the indentation has become worse, please report | |
2019 it to bug-cc-mode@gnu.org. | |
2020 | |
2021 **** New syntactic symbol substatement-label. | |
2022 This symbol is used when a label is inserted between a statement and | |
2023 its substatement. E.g: | |
2024 | |
2025 if (x) | |
2026 x_is_true: | |
2027 do_stuff(); | |
2028 | |
2029 *** Better handling of multiline macros. | |
2030 | |
2031 **** Syntactic indentation inside macros. | |
2032 The contents of multiline #define's are now analyzed and indented | |
2033 syntactically just like other code. This can be disabled by the new | |
2034 variable c-syntactic-indentation-in-macros. A new syntactic symbol | |
2035 cpp-define-intro has been added to control the initial indentation | |
2036 inside #define's. | |
2037 | |
2038 **** New lineup function c-lineup-cpp-define. | |
2039 Now used by default to line up macro continuation lines. The behavior | |
2040 of this function closely mimics the indentation one gets if the macro | |
2041 is indented while the line continuation backslashes are temporarily | |
2042 removed. If syntactic indentation in macros is turned off, it works | |
2043 much line c-lineup-dont-change, which was used earlier, but handles | |
2044 empty lines within the macro better. | |
2045 | |
2046 **** Automatically inserted newlines continues the macro if used within one. | |
2047 This applies to the newlines inserted by the auto-newline mode, and to | |
2048 c-context-line-break and c-context-open-line. | |
2049 | |
2050 **** Better alignment of line continuation backslashes. | |
2051 c-backslash-region tries to adapt to surrounding backslashes. New | |
2052 variable c-backslash-max-column which put a limit on how far out | |
2053 backslashes can be moved. | |
2054 | |
2055 **** Automatic alignment of line continuation backslashes. | |
2056 This is controlled by the new variable c-auto-align-backslashes. It | |
2057 affects c-context-line-break, c-context-open-line and newlines | |
2058 inserted in auto-newline mode. | |
2059 | |
2060 **** Line indentation works better inside macros. | |
2061 Regardless whether syntactic indentation and syntactic indentation | |
2062 inside macros are enabled or not, line indentation now ignores the | |
2063 line continuation backslashes. This is most noticeable when syntactic | |
2064 indentation is turned off and there are empty lines (save for the | |
2065 backslash) in the macro. | |
2066 | |
2067 *** indent-for-comment is more customizable. | |
2068 The behavior of M-; (indent-for-comment) is now configurable through | |
2069 the variable c-indent-comment-alist. The indentation behavior based | |
2070 on the preceding code on the line, e.g. to get two spaces after #else | |
2071 and #endif but indentation to comment-column in most other cases | |
2072 (something which was hardcoded earlier). | |
2073 | |
2074 *** New function c-context-open-line. | |
2075 It's the open-line equivalent of c-context-line-break. | |
2076 | |
2077 *** New lineup functions | |
2078 | |
2079 **** c-lineup-string-cont | |
2080 This lineup function lines up a continued string under the one it | |
2081 continues. E.g: | |
2082 | |
2083 result = prefix + "A message " | |
2084 "string."; <- c-lineup-string-cont | |
2085 | |
2086 **** c-lineup-cascaded-calls | |
2087 Lines up series of calls separated by "->" or ".". | |
2088 | |
2089 **** c-lineup-knr-region-comment | |
2090 Gives (what most people think is) better indentation of comments in | |
2091 the "K&R region" between the function header and its body. | |
2092 | |
2093 **** c-lineup-gcc-asm-reg | |
2094 Provides better indentation inside asm blocks. Contributed by Kevin | |
2095 Ryde. | |
2096 | |
2097 **** c-lineup-argcont | |
2098 Lines up continued function arguments after the preceding comma. | |
2099 Contributed by Kevin Ryde. | |
2100 | |
2101 *** Better caching of the syntactic context. | |
2102 CC Mode caches the positions of the opening parentheses (of any kind) | |
2103 of the lists surrounding the point. Those positions are used in many | |
2104 places as anchor points for various searches. The cache is now | |
2105 improved so that it can be reused to a large extent when the point is | |
2106 moved. The less it moves, the less needs to be recalculated. | |
2107 | |
2108 The effect is that CC Mode should be fast most of the time even when | |
2109 opening parens are hung (i.e. aren't in column zero). It's typically | |
2110 only the first time after the point is moved far down in a complex | |
2111 file that it'll take noticeable time to find out the syntactic | |
2112 context. | |
2113 | |
2114 *** Statements are recognized in a more robust way. | |
2115 Statements are recognized most of the time even when they occur in an | |
2116 "invalid" context, e.g. in a function argument. In practice that can | |
2117 happen when macros are involved. | |
2118 | |
2119 *** Improved the way c-indent-exp chooses the block to indent. | |
2120 It now indents the block for the closest sexp following the point | |
2121 whose closing paren ends on a different line. This means that the | |
2122 point doesn't have to be immediately before the block to indent. | |
2123 Also, only the block and the closing line is indented; the current | |
2124 line is left untouched. | |
2125 | |
2126 *** Added toggle for syntactic indentation. | |
2127 The function c-toggle-syntactic-indentation can be used to toggle | |
2128 syntactic indentation. | |
2129 | |
2130 --- | |
2131 ** Perl mode has a new variable `perl-indent-continued-arguments'. | |
2132 | |
2133 ** Fortran mode changes: | |
2134 | |
2135 --- | |
2136 *** Fortran mode does more font-locking by default. Use level 3 | |
2137 highlighting for the old default. | |
2138 | |
2139 +++ | |
2140 *** Fortran mode has a new variable `fortran-directive-re'. | |
2141 Adapt this to match the format of any compiler directives you use. | |
2142 Lines that match are never indented, and are given distinctive font-locking. | |
2143 | |
2144 +++ | |
2145 *** F90 mode and Fortran mode have new navigation commands | |
2146 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | |
2147 `f90-previous-block', `fortran-end-of-block', | |
2148 `fortran-beginning-of-block'. | |
2149 | |
2150 --- | |
2151 *** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). | |
2152 It cannot deal with every code format, but ought to handle a sizeable | |
2153 majority. | |
2154 | |
2155 --- | |
2156 *** The new function `f90-backslash-not-special' can be used to change | |
2157 the syntax of backslashes in F90 buffers. | |
2158 | |
2159 --- | |
2160 ** Prolog mode has a new variable `prolog-font-lock-keywords' | |
2161 to support use of font-lock. | |
2162 | |
2163 ** HTML/SGML changes: | |
2164 | |
2165 --- | |
2166 *** Emacs now tries to set up buffer coding systems for HTML/XML files | |
2167 automatically. | |
2168 | |
2169 +++ | |
2170 *** SGML mode has indentation and supports XML syntax. | |
2171 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. | |
2172 When this option is enabled, SGML tags are inserted in XML style, | |
2173 i.e., there is always a closing tag. | |
2174 By default, its setting is inferred on a buffer-by-buffer basis | |
2175 from the file name or buffer contents. | |
2176 | |
2177 +++ | |
2178 *** `xml-mode' is now an alias for `sgml-mode', which has XML support. | |
2179 | |
2180 ** TeX modes: | |
2181 | |
2182 +++ | |
2183 *** C-c C-c prompts for a command to run, and tries to offer a good default. | |
2184 | |
2185 +++ | |
2186 *** The user option `tex-start-options-string' has been replaced | |
2187 by two new user options: `tex-start-options', which should hold | |
2188 command-line options to feed to TeX, and `tex-start-commands' which should hold | |
2189 TeX commands to use at startup. | |
2190 | |
2191 --- | |
2192 *** verbatim environments are now highlighted in courier by font-lock | |
2193 and super/sub-scripts are made into super/sub-scripts. | |
2194 | |
2195 +++ | |
2196 *** New major mode doctex-mode for *.dtx files. | |
2197 | |
2198 ** BibTeX mode: | |
2199 *** The new command bibtex-url browses a URL for the BibTeX entry at | |
2200 point (bound to C-c C-l and mouse-2, RET on clickable fields). | |
2201 | |
2202 *** The new command bibtex-entry-update (bound to C-c C-u) updates | |
2203 an existing BibTeX entry. | |
2204 | |
2205 *** New `bibtex-entry-format' option `required-fields', enabled by default. | |
2206 | |
2207 *** bibtex-maintain-sorted-entries can take values `plain', | |
2208 `crossref', and `entry-class' which control the sorting scheme used | |
2209 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | |
2210 scheme `entry-class'. TAB completion for reference keys and | |
2211 automatic detection of duplicates does not require anymore that | |
2212 bibtex-maintain-sorted-entries is non-nil. | |
2213 | |
2214 *** If the new variable bibtex-parse-keys-fast is non-nil, | |
2215 use fast but simplified algorithm for parsing BibTeX keys. | |
2216 | |
2217 *** If the new variable bibtex-autoadd-commas is non-nil, | |
2218 automatically add missing commas at end of BibTeX fields. | |
2219 | |
2220 *** The new variable bibtex-autofill-types contains a list of entry | |
2221 types for which fields are filled automatically (if possible). | |
2222 | |
2223 *** The new command bibtex-complete completes word fragment before | |
2224 point according to context (bound to M-tab). | |
2225 | |
2226 *** The new commands bibtex-find-entry and bibtex-find-crossref | |
2227 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | |
2228 Crossref fields are clickable (bound to mouse-2, RET). | |
2229 | |
2230 *** In BibTeX mode the command fill-paragraph (bound to M-q) fills | |
2231 individual fields of a BibTeX entry. | |
2232 | |
2233 *** The new variables bibtex-files and bibtex-file-path define a set | |
2234 of BibTeX files that are searched for entry keys. | |
2235 | |
2236 *** The new command bibtex-validate-globally checks for duplicate keys | |
2237 in multiple BibTeX files. | |
2238 | |
2239 *** The new command bibtex-copy-summary-as-kill pushes summary | |
2240 of BibTeX entry to kill ring (bound to C-c C-t). | |
2241 | |
2242 +++ | |
2243 ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | |
2244 by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | |
2245 and `C-c C-r'. | |
2246 | |
2247 ** GUD changes: | |
2248 | |
2249 +++ | |
2250 *** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | |
2251 counter to the specified source line (the one where point is). | |
2252 | |
2253 --- | |
2254 *** GUD mode has its own tool bar for controlling execution of the inferior | |
2255 and other common debugger commands. | |
2256 | |
2257 --- | |
2258 ** GUD mode improvements for jdb: | |
2259 | |
2260 *** Search for source files using jdb classpath and class | |
2261 information. Fast startup since there is no need to scan all | |
2262 source files up front. There is also no need to create and maintain | |
2263 lists of source directories to scan. Look at `gud-jdb-use-classpath' | |
2264 and `gud-jdb-classpath' customization variables documentation. | |
2265 | |
2266 *** Supports the standard breakpoint (gud-break, gud-clear) | |
2267 set/clear operations from java source files under the classpath, stack | |
2268 traversal (gud-up, gud-down), and run until current stack finish | |
2269 (gud-finish). | |
2270 | |
2271 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | |
2272 (Java 1.1 jdb). | |
2273 | |
2274 *** The previous method of searching for source files has been | |
2275 preserved in case someone still wants/needs to use it. | |
2276 Set gud-jdb-use-classpath to nil. | |
2277 | |
2278 Added Customization Variables | |
2279 | |
2280 *** gud-jdb-command-name. What command line to use to invoke jdb. | |
2281 | |
2282 *** gud-jdb-use-classpath. Allows selection of java source file searching | |
2283 method: set to t for new method, nil to scan gud-jdb-directories for | |
2284 java sources (previous method). | |
2285 | |
2286 *** gud-jdb-directories. List of directories to scan and search for java | |
2287 classes using the original gud-jdb method (if gud-jdb-use-classpath | |
2288 is nil). | |
2289 | |
2290 Minor Improvements | |
2291 | |
2292 *** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS | |
2293 instead of the OpenSSL based "starttls" tool. For backwards | |
2294 compatibility, it prefers "starttls", but you can toggle | |
2295 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | |
2296 "starttls" tool). | |
2297 | |
2298 *** Do not allow debugger output history variable to grow without bounds. | |
2299 | |
2300 ** Auto-Revert changes: | |
2301 | |
2302 +++ | |
2303 *** You can now use Auto Revert mode to `tail' a file. | |
461 If point is at the end of a file buffer before reverting, Auto Revert | 2304 If point is at the end of a file buffer before reverting, Auto Revert |
462 mode keeps it at the end after reverting. Similarly if point is | 2305 mode keeps it at the end after reverting. Similarly if point is |
463 displayed at the end of a file buffer in any window, it stays at | 2306 displayed at the end of a file buffer in any window, it stays at |
464 the end of the buffer in that window. This allows to tail a file: | 2307 the end of the buffer in that window. This allows to tail a file: |
465 just put point at the end of the buffer and it stays there. This | 2308 just put point at the end of the buffer and it stays there. This |
470 then you can tail the file more efficiently by using the new minor | 2313 then you can tail the file more efficiently by using the new minor |
471 mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | 2314 mode Auto Revert Tail mode. The function `auto-revert-tail-mode' |
472 toggles this mode. | 2315 toggles this mode. |
473 | 2316 |
474 +++ | 2317 +++ |
475 ** Auto Revert mode is now more careful to avoid excessive reverts and | 2318 *** Auto Revert mode is now more careful to avoid excessive reverts and |
476 other potential problems when deciding which non-file buffers to | 2319 other potential problems when deciding which non-file buffers to |
477 revert. This matters especially if Global Auto Revert mode is enabled | 2320 revert. This matters especially if Global Auto Revert mode is enabled |
478 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert | 2321 and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert |
479 mode only reverts a non-file buffer if the buffer has a non-nil | 2322 mode only reverts a non-file buffer if the buffer has a non-nil |
480 `revert-buffer-function' and a non-nil `buffer-stale-function', which | 2323 `revert-buffer-function' and a non-nil `buffer-stale-function', which |
481 decides whether the buffer should be reverted. Currently, this means | 2324 decides whether the buffer should be reverted. Currently, this means |
482 that auto reverting works for Dired buffers (although this may not | 2325 that auto reverting works for Dired buffers (although this may not |
483 work properly on all operating systems) and for the Buffer Menu. | 2326 work properly on all operating systems) and for the Buffer Menu. |
484 | 2327 |
485 +++ | 2328 +++ |
486 ** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | 2329 *** If the new user option `auto-revert-check-vc-info' is non-nil, Auto |
487 Revert mode reliably updates version control info (such as the version | 2330 Revert mode reliably updates version control info (such as the version |
488 control number in the mode line), in all version controlled buffers in | 2331 control number in the mode line), in all version controlled buffers in |
489 which it is active. If the option is nil, the default, then this info | 2332 which it is active. If the option is nil, the default, then this info |
490 only gets updated whenever the buffer gets reverted. | 2333 only gets updated whenever the buffer gets reverted. |
491 | 2334 |
492 +++ | 2335 --- |
493 ** New command `Buffer-menu-toggle-files-only' toggles display of file | 2336 ** recentf changes. |
494 buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu | 2337 |
495 mode. | 2338 The recent file list is now automatically cleanup when recentf mode is |
496 | 2339 enabled. The new option `recentf-auto-cleanup' controls when to do |
497 --- | 2340 automatic cleanup. |
498 ** M-x compile has become more robust and reliable | 2341 |
499 | 2342 The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' |
500 Quite a few more kinds of messages are recognized. Messages that are | 2343 and provides a more general mechanism to customize which file names to |
501 recognized as warnings or informational come in orange or green, instead of | 2344 keep in the recent list. |
502 red. Informational messages are by default skipped with `next-error' | 2345 |
503 (controlled by `compilation-skip-threshold'). | 2346 With the more advanced option: `recentf-filename-handler', you can |
504 | 2347 specify a function that transforms filenames handled by recentf. For |
505 Location data is collected on the fly as the *compilation* buffer changes. | 2348 example, if set to `file-truename', the same file will not be in the |
506 This means you could modify messages to make them point to different files. | 2349 recent list with different symbolic links. |
507 This also means you can not go to locations of messages you may have deleted. | 2350 |
508 | 2351 To follow naming convention, `recentf-menu-append-commands-flag' |
509 The variable `compilation-error-regexp-alist' has now become customizable. If | 2352 replaces the misnamed option `recentf-menu-append-commands-p'. The |
510 you had added your own regexps to this, you'll probably need to include a | 2353 old name remains available as alias, but has been marked obsolete. |
511 leading `^', otherwise they'll match anywhere on a line. There is now also a | |
512 `compilation-mode-font-lock-keywords' and it nicely handles all the checks | |
513 that configure outputs and -o options so you see at a glance where you are. | |
514 | |
515 The new file etc/compilation.txt gives examples of each type of message. | |
516 | |
517 ** Compilation mode enhancements: | |
518 | |
519 +++ | |
520 *** New user option `compilation-environment'. | |
521 This option allows you to specify environment variables for inferior | |
522 compilation processes without affecting the environment that all | |
523 subprocesses inherit. | |
524 | |
525 +++ | |
526 ** Grep has been decoupled from compilation mode setup. | |
527 | |
528 --- | |
529 *** There's a new separate package grep.el. | |
530 | |
531 --- | |
532 *** M-x grep has been adapted to new compile | |
533 | |
534 Hits are fontified in green, and hits in binary files in orange. Grep buffers | |
535 can be saved and automatically revisited with the new Grep mode. | |
536 | |
537 --- | |
538 *** Grep commands now have their own submenu and customization group. | |
539 | |
540 +++ | |
541 *** `grep-find' is now also available under the name `find-grep' where | |
542 people knowing `find-grep-dired' would probably expect it. | |
543 | |
544 --- | |
545 *** The new variables `grep-window-height', `grep-auto-highlight', and | |
546 `grep-scroll-output' can be used to override the corresponding | |
547 compilation mode settings for grep commands. | |
548 | |
549 +++ | |
550 *** New option `grep-highlight-matches' highlightes matches in *grep* | |
551 buffer. It uses a special feature of some grep programs which accept | |
552 --color option to output markers around matches. When going to the next | |
553 match with `next-error' the exact match is highlighted in the source | |
554 buffer. Otherwise, if `grep-highlight-matches' is nil, the whole | |
555 source line is highlighted. | |
556 | |
557 +++ | |
558 *** New key bindings in grep output window: | |
559 SPC and DEL scrolls window up and down. C-n and C-p moves to next and | |
560 previous match in the grep window. RET jumps to the source line of | |
561 the current match. `n' and `p' shows next and previous match in | |
562 other window, but does not switch buffer. `{' and `}' jumps to the | |
563 previous or next file in the grep output. TAB also jumps to the next | |
564 file. | |
565 | |
566 +++ | |
567 ** New options `next-error-highlight' and `next-error-highlight-no-select' | |
568 specify the method of highlighting of the corresponding source line | |
569 in new face `next-error'. | |
570 | |
571 +++ | |
572 ** A new minor mode `next-error-follow-minor-mode' can be used in | |
573 compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the | |
574 modes that can use `next-error'). In this mode, cursor motion in the | |
575 buffer causes automatic display in another window of the corresponding | |
576 matches, compilation errors, etc. This minor mode can be toggled with | |
577 C-c C-f. | |
578 | |
579 +++ | |
580 ** M-x diff uses diff-mode instead of compilation-mode. | |
581 | |
582 +++ | |
583 ** M-x compare-windows now can automatically skip non-matching text to | |
584 resync points in both windows. | |
585 | |
586 --- | |
587 ** New command `strokes-global-set-stroke-string'. | |
588 This is like `strokes-global-set-stroke', but it allows you to bind | |
589 the stroke directly to a string to insert. This is convenient for | |
590 using strokes as an input method. | |
591 | |
592 ** Gnus package | |
593 | |
594 --- | |
595 *** Gnus now includes Sieve and PGG | |
596 Sieve is a library for managing Sieve scripts. PGG is a library to handle | |
597 PGP/MIME. | |
598 | |
599 --- | |
600 *** There are many news features, bug fixes and improvements. | |
601 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | |
602 | 2354 |
603 +++ | 2355 +++ |
604 ** Desktop package | 2356 ** Desktop package |
605 | 2357 |
606 +++ | 2358 +++ |
655 Customize the new option `save-place-forget-unreadable-files' to nil | 2407 Customize the new option `save-place-forget-unreadable-files' to nil |
656 to get the old behavior. The new options `save-place-save-skipped' | 2408 to get the old behavior. The new options `save-place-save-skipped' |
657 and `save-place-skip-check-regexp' allow further fine-tuning of this | 2409 and `save-place-skip-check-regexp' allow further fine-tuning of this |
658 feature. | 2410 feature. |
659 | 2411 |
660 +++ | 2412 ** EDiff changes. |
661 ** You can have several Emacs servers on the same machine. | 2413 |
662 | 2414 +++ |
663 % emacs --eval '(setq server-name "foo")' -f server-start & | 2415 *** When comparing directories. |
664 % emacs --eval '(setq server-name "bar")' -f server-start & | 2416 Typing D brings up a buffer that lists the differences between the contents of |
665 % emacsclient -s foo file1 | 2417 directories. Now it is possible to use this buffer to copy the missing files |
666 % emacsclient -s bar file2 | 2418 from one directory to another. |
667 | 2419 |
668 +++ | 2420 +++ |
669 ** On window systems, lines which are exactly as wide as the window | 2421 *** When comparing files or buffers. |
670 (not counting the final newline character) are no longer broken into | 2422 Typing the = key now offers to perform the word-by-word comparison of the |
671 two lines on the display (with just the newline on the second line). | 2423 currently highlighted regions in an inferior Ediff session. If you answer 'n' |
672 Instead, the newline now "overflows" into the right fringe, and the | 2424 then it reverts to the old behavior and asks the user to select regions for |
673 cursor will be displayed in the fringe when positioned on that newline. | 2425 comparison. |
674 | 2426 |
675 The new user option 'overflow-newline-into-fringe' may be set to nil to | 2427 *** The new command `ediff-backup' compares a file with its most recent |
676 revert to the old behavior of continuing such lines. | 2428 backup using `ediff'. If you specify the name of a backup file, |
677 | 2429 `ediff-backup' compares it with the file of which it is a backup. |
678 +++ | 2430 |
679 ** The buffer boundaries (i.e. first and last line in the buffer) may | 2431 +++ |
680 now be marked with angle bitmaps in the fringes. In addition, up and | 2432 ** Etags changes. |
681 down arrow bitmaps may be shown at the top and bottom of the left or | 2433 |
682 right fringe if the window can be scrolled in either direction. | 2434 *** New regular expressions features |
683 | 2435 |
684 This behavior is activated by setting the buffer-local variable | 2436 **** New syntax for regular expressions, multi-line regular expressions. |
685 `indicate-buffer-boundaries' to a non-nil value. The default value of | 2437 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained |
686 this variable is found in `default-indicate-buffer-boundaries'. | 2438 only for backward compatibility. The new equivalent syntax is |
687 | 2439 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, |
688 If value is `left' or `right', both angle and arrow bitmaps are | 2440 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or |
689 displayed in the left or right fringe, resp. | 2441 more characters among `i' (ignore case), `m' (multi-line) and `s' |
690 | 2442 (single-line). The `m' and `s' modifiers behave as in Perl regular |
691 Value may also be an alist which specifies the presense and position | 2443 expressions: `m' allows regexps to match more than one line, while `s' |
692 of each bitmap individually. | 2444 (which implies `m') means that `.' matches newlines. The ability to |
693 | 2445 span newlines allows writing of much more powerful regular expressions |
694 For example, ((top . left) (t . right)) places the top angle bitmap | 2446 and rapid prototyping for tagging new languages. |
695 in left fringe, the bottom angle bitmap in right fringe, and both | 2447 |
696 arrow bitmaps in right fringe. To show just the angle bitmaps in the | 2448 **** Regular expressions can use char escape sequences as in Gcc. |
697 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | 2449 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, |
698 | 2450 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, |
699 +++ | 2451 CR, TAB, VT, |
700 ** New command `display-local-help' displays any local help at point | 2452 |
701 in the echo area. It is bound to `C-h .'. It normally displays the | 2453 **** Regular expressions can be bound to a given language. |
702 same string that would be displayed on mouse-over using the | 2454 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags |
703 `help-echo' property, but, in certain cases, it can display a more | 2455 only for files of language LANGUAGE, and ignored otherwise. This is |
704 keyboard oriented alternative. | 2456 particularly useful when storing regexps in a file. |
705 | 2457 |
706 +++ | 2458 **** Regular expressions can be read from a file. |
707 ** New user option `help-at-pt-display-when-idle' allows to | 2459 The --regex=@regexfile option means read the regexps from a file, one |
708 automatically show the help provided by `display-local-help' on | 2460 per line. Lines beginning with space or tab are ignored. |
709 point-over, after suitable idle time. The amount of idle time is | 2461 |
710 determined by the user option `help-at-pt-timer-delay' and defaults | 2462 *** New language parsing features |
711 to one second. This feature is turned off by default. | 2463 |
712 | 2464 **** The `::' qualifier triggers C++ parsing in C file. |
713 --- | 2465 Previously, only the `template' and `class' keywords had this effect. |
714 ** New commands `scan-buf-next-region' and `scan-buf-previous-region' | 2466 |
715 move to the start of the next (previous, respectively) region with | 2467 **** The gnucc __attribute__ keyword is now recognised and ignored. |
716 non-nil help-echo property and display any help found there in the | 2468 |
717 echo area, using `display-local-help'. | 2469 **** New language HTML. |
718 | 2470 Title and h1, h2, h3 are tagged. Also, tags are generated when name= is |
719 +++ | 2471 used inside an anchor and whenever id= is used. |
720 ** Help mode now only makes hyperlinks for faces when the face name is | 2472 |
721 preceded or followed by the word `face'. It no longer makes | 2473 **** In Makefiles, constants are tagged. |
722 hyperlinks for variables without variable documentation, unless | 2474 If you want the old behavior instead, thus avoiding to increase the |
723 preceded by one of the words `variable' or `option'. It now makes | 2475 size of the tags file, use the --no-globals option. |
724 hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | 2476 |
725 enclosed in single quotes and preceded by `info anchor' or `Info | 2477 **** New language Lua. |
726 anchor' (in addition to earlier `info node' and `Info node'). | 2478 All functions are tagged. |
727 | 2479 |
728 +++ | 2480 **** In Perl, packages are tags. |
729 ** The max size of buffers and integers has been doubled. | 2481 Subroutine tags are named from their package. You can jump to sub tags |
730 On 32bit machines, it is now 256M (i.e. 268435455). | 2482 as you did before, by the sub name, or additionally by looking for |
731 | 2483 package::sub. |
732 +++ | 2484 |
733 ** The -f option, used from the command line to call a function, | 2485 **** In Prolog, etags creates tags for rules in addition to predicates. |
734 now reads arguments for the function interactively if it is | 2486 |
735 an interactively callable function. | 2487 **** New language PHP. |
2488 Tags are functions, classes and defines. | |
2489 If the --members option is specified to etags, tags are variables also. | |
2490 | |
2491 **** New default keywords for TeX. | |
2492 The new keywords are def, newcommand, renewcommand, newenvironment and | |
2493 renewenvironment. | |
2494 | |
2495 *** Honour #line directives. | |
2496 When Etags parses an input file that contains C preprocessor's #line | |
2497 directives, it creates tags using the file name and line number | |
2498 specified in those directives. This is useful when dealing with code | |
2499 created from Cweb source files. When Etags tags the generated file, it | |
2500 writes tags pointing to the source file. | |
2501 | |
2502 *** New option --parse-stdin=FILE. | |
2503 This option is mostly useful when calling etags from programs. It can | |
2504 be used (only once) in place of a file name on the command line. Etags | |
2505 reads from standard input and marks the produced tags as belonging to | |
2506 the file FILE. | |
2507 | |
2508 ** VC Changes | |
2509 | |
2510 +++ | |
2511 *** The key C-x C-q no longer checks files in or out, it only changes | |
2512 the read-only state of the buffer (toggle-read-only). We made this | |
2513 change because we held a poll and found that many users were unhappy | |
2514 with the previous behavior. If you do prefer this behavior, you | |
2515 can bind `vc-toggle-read-only' to C-x C-q in your .emacs: | |
2516 | |
2517 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | |
2518 | |
2519 The function `vc-toggle-read-only' will continue to exist. | |
2520 | |
2521 +++ | |
2522 *** There is a new user option `vc-cvs-global-switches' that allows | |
2523 you to specify switches that are passed to any CVS command invoked | |
2524 by VC. These switches are used as "global options" for CVS, which | |
2525 means they are inserted before the command name. For example, this | |
2526 allows you to specify a compression level using the "-z#" option for | |
2527 CVS. | |
2528 | |
2529 +++ | |
2530 *** New backends for Subversion and Meta-CVS. | |
2531 | |
2532 +++ | |
2533 *** vc-annotate-mode enhancements | |
2534 | |
2535 In vc-annotate mode, you can now use the following key bindings for | |
2536 enhanced functionality to browse the annotations of past revisions, or | |
2537 to view diffs or log entries directly from vc-annotate-mode: | |
2538 | |
2539 P: annotates the previous revision | |
2540 N: annotates the next revision | |
2541 J: annotates the revision at line | |
2542 A: annotates the revision previous to line | |
2543 D: shows the diff of the revision at line with its previous revision | |
2544 L: shows the log of the revision at line | |
2545 W: annotates the workfile (most up to date) version | |
2546 | |
2547 ** pcl-cvs changes: | |
2548 | |
2549 +++ | |
2550 *** In pcl-cvs mode, there is a new `d y' command to view the diffs | |
2551 between the local version of the file and yesterday's head revision | |
2552 in the repository. | |
2553 | |
2554 +++ | |
2555 *** In pcl-cvs mode, there is a new `d r' command to view the changes | |
2556 anyone has committed to the repository since you last executed | |
2557 "checkout", "update" or "commit". That means using cvs diff options | |
2558 -rBASE -rHEAD. | |
2559 | |
2560 ** Gnus package | |
2561 | |
2562 --- | |
2563 *** Gnus now includes Sieve and PGG | |
2564 Sieve is a library for managing Sieve scripts. PGG is a library to handle | |
2565 PGP/MIME. | |
2566 | |
2567 --- | |
2568 *** There are many news features, bug fixes and improvements. | |
2569 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | |
2570 | |
2571 --- | |
2572 ** Rmail now displays 5-digit message ids in its summary buffer. | |
2573 | |
2574 +++ | |
2575 ** Support for `movemail' from GNU mailutils was added to Rmail. | |
2576 This version of `movemail' allows to read mail from a wide range of | |
2577 mailbox formats, including remote POP3 and IMAP4 mailboxes with or | |
2578 without TLS encryption. If GNU mailutils is installed on the system | |
2579 and its version of `movemail' can be found in exec-path, it will be | |
2580 used instead of the native one. | |
2581 | |
2582 --- | |
2583 ** MH-E changes. | |
2584 | |
2585 Upgraded to MH-E version 7.82. There have been major changes since | |
2586 version 5.0.2; see MH-E-NEWS for details. | |
2587 | |
2588 ** Calendar changes: | |
2589 | |
2590 +++ | |
2591 *** There is a new calendar package, icalendar.el, that can be used to | |
2592 convert Emacs diary entries to/from the iCalendar format. | |
2593 | |
2594 +++ | |
2595 *** Diary sexp entries can have custom marking in the calendar. | |
2596 Diary sexp functions which only apply to certain days (such as | |
2597 `diary-block' or `diary-cyclic') now take an optional parameter MARK, | |
2598 which is the name of a face or a single-character string indicating | |
2599 how to highlight the day in the calendar display. Specifying a | |
2600 single-character string as @var{mark} places the character next to the | |
2601 day in the calendar. Specifying a face highlights the day with that | |
2602 face. This lets you have different colors or markings for vacations, | |
2603 appointments, paydays or anything else using a sexp. | |
2604 | |
2605 +++ | |
2606 *** The new function `calendar-goto-day-of-year' (g D) prompts for a | |
2607 year and day number, and moves to that date. Negative day numbers | |
2608 count backward from the end of the year. | |
2609 | |
2610 +++ | |
2611 *** The new Calendar function `calendar-goto-iso-week' (g w) | |
2612 prompts for a year and a week number, and moves to the first | |
2613 day of that ISO week. | |
2614 | |
2615 --- | |
2616 *** The new variable `calendar-minimum-window-height' affects the | |
2617 window generated by the function `generate-calendar-window'. | |
2618 | |
2619 --- | |
2620 *** The functions `holiday-easter-etc' and `holiday-advent' now take | |
2621 optional arguments, in order to only report on the specified holiday | |
2622 rather than all. This makes customization of variables such as | |
2623 `christian-holidays' simpler. | |
2624 | |
2625 --- | |
2626 *** The function `simple-diary-display' now by default sets a header line. | |
2627 This can be controlled through the variables `diary-header-line-flag' | |
2628 and `diary-header-line-format'. | |
2629 | |
2630 +++ | |
2631 *** The procedure for activating appointment reminders has changed: use | |
2632 the new function `appt-activate'. The new variable | |
2633 `appt-display-format' controls how reminders are displayed, replacing | |
2634 appt-issue-message, appt-visible, and appt-msg-window. | |
2635 | |
2636 +++ | |
2637 *** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | |
2638 and `diary-from-outlook-rmail' can be used to import diary entries | |
2639 from Outlook-format appointments in mail messages. The variable | |
2640 `diary-outlook-formats' can be customized to recognize additional | |
2641 formats. | |
736 | 2642 |
737 --- | 2643 --- |
738 ** sql changes. | 2644 ** sql changes. |
739 | 2645 |
740 *** The variable `sql-product' controls the highlightng of different | 2646 *** The variable `sql-product' controls the highlightng of different |
805 *** Added SQL->Start SQLi Session menu entry which calls the | 2711 *** Added SQL->Start SQLi Session menu entry which calls the |
806 appropriate sql-interactive-mode wrapper for the current setting of | 2712 appropriate sql-interactive-mode wrapper for the current setting of |
807 `sql-product'. | 2713 `sql-product'. |
808 | 2714 |
809 --- | 2715 --- |
810 ** M-x view-file and commands that use it now avoid interfering | 2716 *** Support for the SQLite interpreter has been added to sql.el by calling |
811 with special modes such as Tar mode. | 2717 'sql-sqlite'. |
812 | 2718 |
813 ** Enhancements to apropos commands: | 2719 ** FFAP changes: |
814 | |
815 +++ | |
816 *** The apropos commands now accept a list of words to match. | |
817 When more than one word is specified, at least two of those words must | |
818 be present for an item to match. Regular expression matching is still | |
819 available. | |
820 | |
821 +++ | |
822 *** The new option `apropos-sort-by-scores' causes the matching items | |
823 to be sorted according to their score. The score for an item is a | |
824 number calculated to indicate how well the item matches the words or | |
825 regular expression that you entered to the apropos command. The best | |
826 match is listed first, and the calculated score is shown for each | |
827 matching item. | |
828 | |
829 +++ | |
830 ** The old bindings C-M-delete and C-M-backspace have been deleted, | |
831 since there are situations where one or the other will shut down | |
832 the operating system or your X server. | |
833 | |
834 --- | |
835 ** New minor mode, Visible mode, toggles invisibility in the current buffer. | |
836 When enabled, it makes all invisible text visible. When disabled, it | |
837 restores the previous value of `buffer-invisibility-spec'. | |
838 | |
839 --- | |
840 ** New command `kill-whole-line' kills an entire line at once. | |
841 By default, it is bound to C-S-<backspace>. | |
842 | |
843 --- | |
844 ** New commands to operate on pairs of open and close characters: | |
845 `insert-pair', `delete-pair', `raise-sexp'. | |
846 | |
847 +++ | |
848 ** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the | |
849 list starting after point. | |
850 | |
851 ** Dired mode: | |
852 | |
853 --- | |
854 *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | |
855 dired-ignored, dired-directory, dired-symlink, dired-warning | |
856 introduced for Dired mode instead of font-lock faces. | |
857 | |
858 *** New Dired command `dired-compare-directories' marks files | |
859 with different file attributes in two dired buffers. | |
860 | |
861 +++ | |
862 *** New Dired command `dired-do-touch' (bound to T) changes timestamps | |
863 of marked files with the value entered in the minibuffer. | |
864 | |
865 +++ | |
866 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now | |
867 control substitution of the file names only when they are surrounded | |
868 by whitespace. This means you can now use them as shell wildcards | |
869 too. If you want to use just plain `*' as a wildcard, type `*""'; the | |
870 doublequotes make no difference in the shell, but they prevent | |
871 special treatment in `dired-do-shell-command'. | |
872 | |
873 +++ | |
874 *** In Dired, the w command now copies the current line's file name | |
875 into the kill ring. With a zero prefix arg, copies absolute file names. | |
876 | |
877 +++ | |
878 ** Dired-x: | |
879 | |
880 +++ | |
881 *** Omitting files is now a minor mode, dired-omit-mode. The mode toggling | |
882 command is bound to M-o. A new command dired-mark-omitted, bound to M-O, | |
883 marks omitted files. The variable dired-omit-files-p is obsoleted, use the | |
884 mode toggling function instead. | |
885 | |
886 +++ | |
887 ** find-file-read-only visits multiple files in read-only mode, | |
888 when the file name contains wildcard characters. | |
889 | |
890 +++ | |
891 ** find-alternate-file replaces the current file with multiple files, | |
892 when the file name contains wildcard characters. | |
893 | |
894 ** FFAP | |
895 | 2720 |
896 +++ | 2721 +++ |
897 *** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), | 2722 *** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), |
898 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | 2723 C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), |
899 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | 2724 C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), |
901 | 2726 |
902 --- | 2727 --- |
903 *** FFAP accepts wildcards in a file name by default. C-x C-f passes | 2728 *** FFAP accepts wildcards in a file name by default. C-x C-f passes |
904 it to `find-file' with non-nil WILDCARDS argument, which visits | 2729 it to `find-file' with non-nil WILDCARDS argument, which visits |
905 multiple files, and C-x d passes it to `dired'. | 2730 multiple files, and C-x d passes it to `dired'. |
906 | |
907 ** Info mode: | |
908 | |
909 +++ | |
910 *** A numeric prefix argument of `info' selects an Info buffer | |
911 with the number appended to the *info* buffer name (e.g. "*info*<2>"). | |
912 | |
913 --- | |
914 *** isearch in Info uses Info-search and searches through multiple nodes. | |
915 Before leaving the initial Info node isearch fails once with the error | |
916 message [initial node], and with subsequent C-s/C-r continues through | |
917 other nodes. When isearch fails for the rest of the manual, it wraps | |
918 aroung the whole manual to the top/final node. The user option | |
919 `Info-isearch-search' controls whether to use Info-search for isearch, | |
920 or the default isearch search function that wraps around the current | |
921 Info node. | |
922 | |
923 *** New search commands: `Info-search-case-sensitively' (bound to S), | |
924 `Info-search-backward', and `Info-search-next' which repeats the last | |
925 search without prompting for a new search string. | |
926 | |
927 *** New command `Info-history-forward' (bound to r and new toolbar icon) | |
928 moves forward in history to the node you returned from after using | |
929 `Info-history-back' (renamed from `Info-last'). | |
930 | |
931 *** New command `Info-history' (bound to L) displays a menu of visited nodes. | |
932 | |
933 *** New command `Info-toc' (bound to T) creates a node with table of contents | |
934 from the tree structure of menus of the current Info file. | |
935 | |
936 *** New command `info-apropos' searches the indices of the known | |
937 Info files on your system for a string, and builds a menu of the | |
938 possible matches. | |
939 | |
940 *** New command `Info-copy-current-node-name' (bound to w) copies | |
941 the current Info node name into the kill ring. With a zero prefix | |
942 arg, puts the node name inside the `info' function call. | |
943 | |
944 --- | |
945 *** New face `info-xref-visited' distinguishes visited nodes from unvisited | |
946 and a new option `Info-fontify-visited-nodes' to control this. | |
947 | |
948 *** http and ftp links in Info are now operational: they look like cross | |
949 references and following them calls `browse-url'. | |
950 | |
951 +++ | |
952 *** Info now hides node names in menus and cross references by default. | |
953 If you prefer the old behavior, you can set the new user option | |
954 `Info-hide-note-references' to nil. | |
955 | |
956 --- | |
957 *** Images in Info pages are supported. | |
958 Info pages show embedded images, in Emacs frames with image support. | |
959 Info documentation that includes images, processed with makeinfo | |
960 version 4.7 or newer, compiles to Info pages with embedded images. | |
961 | |
962 +++ | |
963 *** The default value for `Info-scroll-prefer-subnodes' is now nil. | |
964 | |
965 --- | |
966 *** Info-index offers completion. | |
967 | |
968 --- | |
969 ** Support for the SQLite interpreter has been added to sql.el by calling | |
970 'sql-sqlite'. | |
971 | |
972 ** BibTeX mode: | |
973 *** The new command bibtex-url browses a URL for the BibTeX entry at | |
974 point (bound to C-c C-l and mouse-2, RET on clickable fields). | |
975 | |
976 *** The new command bibtex-entry-update (bound to C-c C-u) updates | |
977 an existing BibTeX entry. | |
978 | |
979 *** New `bibtex-entry-format' option `required-fields', enabled by default. | |
980 | |
981 *** bibtex-maintain-sorted-entries can take values `plain', | |
982 `crossref', and `entry-class' which control the sorting scheme used | |
983 for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | |
984 scheme `entry-class'. TAB completion for reference keys and | |
985 automatic detection of duplicates does not require anymore that | |
986 bibtex-maintain-sorted-entries is non-nil. | |
987 | |
988 *** If the new variable bibtex-parse-keys-fast is non-nil, | |
989 use fast but simplified algorithm for parsing BibTeX keys. | |
990 | |
991 *** If the new variable bibtex-autoadd-commas is non-nil, | |
992 automatically add missing commas at end of BibTeX fields. | |
993 | |
994 *** The new variable bibtex-autofill-types contains a list of entry | |
995 types for which fields are filled automatically (if possible). | |
996 | |
997 *** The new command bibtex-complete completes word fragment before | |
998 point according to context (bound to M-tab). | |
999 | |
1000 *** The new commands bibtex-find-entry and bibtex-find-crossref | |
1001 locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | |
1002 Crossref fields are clickable (bound to mouse-2, RET). | |
1003 | |
1004 *** In BibTeX mode the command fill-paragraph (bound to M-q) fills | |
1005 individual fields of a BibTeX entry. | |
1006 | |
1007 *** The new variables bibtex-files and bibtex-file-path define a set | |
1008 of BibTeX files that are searched for entry keys. | |
1009 | |
1010 *** The new command bibtex-validate-globally checks for duplicate keys | |
1011 in multiple BibTeX files. | |
1012 | |
1013 *** The new command bibtex-copy-summary-as-kill pushes summary | |
1014 of BibTeX entry to kill ring (bound to C-c C-t). | |
1015 | |
1016 +++ | |
1017 ** When display margins are present in a window, the fringes are now | |
1018 displayed between the margins and the buffer's text area, rather than | |
1019 at the edges of the window. | |
1020 | |
1021 +++ | |
1022 ** A window may now have individual fringe and scroll-bar settings, | |
1023 in addition to the individual display margin settings. | |
1024 | |
1025 Such individual settings are now preserved when windows are split | |
1026 horizontally or vertically, a saved window configuration is restored, | |
1027 or when the frame is resized. | |
1028 | |
1029 +++ | |
1030 ** New functions frame-current-scroll-bars and window-current-scroll-bars. | |
1031 | |
1032 These functions return the current locations of the vertical and | |
1033 horizontal scroll bars in a frame or window. | |
1034 | |
1035 +++ | |
1036 ** Emacs now supports drag and drop for X. Dropping a file on a window | |
1037 opens it, dropping text inserts the text. Dropping a file on a dired | |
1038 buffer copies or moves the file to that directory. | |
1039 | |
1040 +++ | |
1041 ** Under X, mouse-wheel-mode is turned on by default. | |
1042 | |
1043 +++ | |
1044 ** The X resource useXIM can be used to turn off use of XIM, which may | |
1045 speed up Emacs with slow networking to the X server. | |
1046 | |
1047 If the configure option `--without-xim' was used to turn off use of | |
1048 XIM by default, the X resource useXIM can be used to turn it on. | |
1049 | |
1050 +++ | |
1051 ** The X resource cursorBlink can be used to turn off cursor blinking. | |
1052 | |
1053 +++ | |
1054 ** `undo-only' does an undo which does not redo any previous undo. | |
1055 | |
1056 --- | |
1057 ** `uniquify-strip-common-suffix' tells uniquify to prefer | |
1058 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. | |
1059 | |
1060 +++ | |
1061 ** If the user visits a file larger than `large-file-warning-threshold', | |
1062 Emacs prompts her for confirmation. | |
1063 | |
1064 --- | |
1065 ** A UTF-7 coding system is available in the library `utf-7'. | |
1066 | |
1067 --- | |
1068 ** GUD mode has its own tool bar for controlling execution of the inferior | |
1069 and other common debugger commands. | |
1070 | |
1071 --- | |
1072 ** recentf changes. | |
1073 | |
1074 The recent file list is now automatically cleanup when recentf mode is | |
1075 enabled. The new option `recentf-auto-cleanup' controls when to do | |
1076 automatic cleanup. | |
1077 | |
1078 The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' | |
1079 and provides a more general mechanism to customize which file names to | |
1080 keep in the recent list. | |
1081 | |
1082 With the more advanced option: `recentf-filename-handler', you can | |
1083 specify a function that transforms filenames handled by recentf. For | |
1084 example, if set to `file-truename', the same file will not be in the | |
1085 recent list with different symbolic links. | |
1086 | |
1087 To follow naming convention, `recentf-menu-append-commands-flag' | |
1088 replaces the misnamed option `recentf-menu-append-commands-p'. The | |
1089 old name remains available as alias, but has been marked obsolete. | |
1090 | |
1091 +++ | |
1092 ** The default for the paper size (variable ps-paper-type) is taken | |
1093 from the locale. | |
1094 | |
1095 +++ | |
1096 ** Init file changes | |
1097 | |
1098 You can now put the init files .emacs and .emacs_SHELL under | |
1099 ~/.emacs.d or directly under ~. Emacs will find them in either place. | |
1100 | |
1101 --- | |
1102 ** partial-completion-mode now does partial completion on directory names. | |
1103 | 2731 |
1104 --- | 2732 --- |
1105 ** skeleton.el now supports using - to mark the skeleton-point without | 2733 ** skeleton.el now supports using - to mark the skeleton-point without |
1106 interregion interaction. @ has reverted to only setting | 2734 interregion interaction. @ has reverted to only setting |
1107 skeleton-positions and no longer sets skeleton-point. Skeletons | 2735 skeleton-positions and no longer sets skeleton-point. Skeletons |
1108 which used @ to mark skeleton-point independent of _ should now use - | 2736 which used @ to mark skeleton-point independent of _ should now use - |
1109 instead. The updated skeleton-insert docstring explains these new | 2737 instead. The updated skeleton-insert docstring explains these new |
1110 features along with other details of skeleton construction. | 2738 features along with other details of skeleton construction. |
1111 | 2739 |
1112 --- | 2740 --- |
1113 ** MH-E changes. | 2741 ** New variable `hs-set-up-overlay' allows customization of the overlay |
1114 | 2742 used to effect hiding for hideshow minor mode. Integration with isearch |
1115 Upgraded to MH-E version 7.82. There have been major changes since | 2743 handles the overlay property `display' specially, preserving it during |
1116 version 5.0.2; see MH-E-NEWS for details. | 2744 temporary overlay showing in the course of an isearch operation. |
1117 | 2745 |
1118 +++ | 2746 +++ |
1119 ** The `emacsclient' command understands the options `--eval' and | 2747 ** hide-ifdef-mode now uses overlays rather than selective-display |
1120 `--display' which tell Emacs respectively to evaluate the given elisp | 2748 to hide its text. This should be mostly transparent but slightly |
1121 expression and to use the given display when visiting files. | 2749 changes the behavior of motion commands like C-e and C-p. |
1122 | 2750 |
1123 +++ | 2751 --- |
1124 ** User option `server-mode' can be used to start a server process. | 2752 ** partial-completion-mode now does partial completion on directory names. |
1125 | 2753 |
1126 +++ | 2754 --- |
1127 ** The mode line position information now comes before the major mode. | 2755 ** The type-break package now allows `type-break-file-name' to be nil |
1128 When the file is maintained under version control, that information | 2756 and if so, doesn't store any data across sessions. This is handy if |
1129 appears between the position information and the major mode. | 2757 you don't want the .type-break file in your home directory or are |
1130 | 2758 annoyed by the need for interaction when you kill Emacs. |
1131 +++ | |
1132 ** C-x s (save-some-buffers) now offers an option `d' to diff a buffer | |
1133 against its file, so you can see what changes you would be saving. | |
1134 | |
1135 +++ | |
1136 ** You can now customize the use of window fringes. To control this | |
1137 for all frames, use M-x fringe-mode or the Show/Hide submenu of the | |
1138 top-level Options menu, or customize the `fringe-mode' variable. To | |
1139 control this for a specific frame, use the command M-x | |
1140 set-fringe-style. | |
1141 | |
1142 +++ | |
1143 ** There is a new user option `mail-default-directory' that allows you | |
1144 to specify the value of `default-directory' for mail buffers. This | |
1145 directory is used for auto-save files of mail buffers. It defaults to | |
1146 "~/". | |
1147 | |
1148 +++ | |
1149 ** When you are root, and you visit a file whose modes specify | |
1150 read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | |
1151 want to make the buffer writable. (As root, you can in fact alter the | |
1152 file.) | |
1153 | |
1154 +++ | |
1155 ** The new command `revert-buffer-with-coding-system' (C-x RET r) | |
1156 revisits the current file using a coding system that you specify. | |
1157 | |
1158 +++ | |
1159 ** The new command `recode-file-name' changes the encoding of the name | |
1160 of a file. | |
1161 | 2759 |
1162 --- | 2760 --- |
1163 ** `ps-print' can now print characters from the mule-unicode charsets. | 2761 ** `ps-print' can now print characters from the mule-unicode charsets. |
1164 | 2762 |
1165 Printing text with characters from the mule-unicode-* sets works with | 2763 Printing text with characters from the mule-unicode-* sets works with |
1166 ps-print, provided that you have installed the appropriate BDF fonts. | 2764 ps-print, provided that you have installed the appropriate BDF fonts. |
1167 See the file INSTALL for URLs where you can find these fonts. | 2765 See the file INSTALL for URLs where you can find these fonts. |
1168 | 2766 |
1169 --- | 2767 --- |
1170 ** The new options `buffers-menu-show-directories' and | 2768 ** New command `strokes-global-set-stroke-string'. |
1171 `buffers-menu-show-status' let you control how buffers are displayed | 2769 This is like `strokes-global-set-stroke', but it allows you to bind |
1172 in the menu dropped down when you click "Buffers" from the menu bar. | 2770 the stroke directly to a string to insert. This is convenient for |
1173 | 2771 using strokes as an input method. |
1174 `buffers-menu-show-directories' controls whether the menu displays | 2772 |
1175 leading directories as part of the file name visited by the buffer. | 2773 --- |
1176 If its value is `unless-uniquify', the default, directories are | 2774 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
1177 shown unless uniquify-buffer-name-style' is non-nil. The value of nil | 2775 |
1178 and t turn the display of directories off and on, respectively. | 2776 +++ |
1179 | 2777 ** You can now disable pc-selection-mode after enabling it. |
1180 `buffers-menu-show-status' controls whether the Buffers menu includes | 2778 M-x pc-selection-mode behaves like a proper minor mode, and with no |
1181 the modified and read-only status of the buffers. By default it is | 2779 argument it toggles the mode. |
1182 t, and the status is shown. | 2780 |
1183 | 2781 Turning off PC-Selection mode restores the global key bindings |
1184 Setting these variables directly does not take effect until next time | 2782 that were replaced by turning on the mode. |
1185 the Buffers menu is regenerated. | 2783 |
1186 | 2784 --- |
1187 +++ | 2785 ** `uniquify-strip-common-suffix' tells uniquify to prefer |
1188 ** The commands M-x customize-face and M-x customize-face-other-window | 2786 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. |
1189 now look at the character after point. If a face or faces are | 2787 |
1190 specified for that character, the commands by default customize those | 2788 --- |
1191 faces. | 2789 ** Support for `magic cookie' standout modes has been removed. |
1192 | 2790 Emacs will still work on terminals that require magic cookies in order |
1193 --- | 2791 to use standout mode, however they will not be able to display |
1194 ** New language environments: French, Ukrainian, Tajik, | 2792 mode-lines in inverse-video. |
1195 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, | |
1196 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, | |
1197 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up | |
1198 automatically according to the locale.) | |
1199 | |
1200 --- | |
1201 ** Indian support has been updated. | |
1202 The in-is13194 coding system is now Unicode-based. CDAC fonts are | |
1203 assumed. There is a framework for supporting various | |
1204 Indian scripts, but currently only Devanagari, Malayalam and Tamil are | |
1205 supported. | |
1206 | |
1207 --- | |
1208 ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, | |
1209 ukrainian-computer, belarusian, bulgarian-bds, russian-computer, | |
1210 vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, | |
1211 latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, | |
1212 bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, | |
1213 tamil-inscript. | |
1214 | |
1215 --- | |
1216 ** A new coding system `euc-tw' has been added for traditional Chinese | |
1217 in CNS encoding; it accepts both Big 5 and CNS as input; on saving, | |
1218 Big 5 is then converted to CNS. | |
1219 | |
1220 --- | |
1221 ** Many new coding systems are available by loading the `code-pages' | |
1222 library. These include complete versions of most of those in | |
1223 codepage.el, based on Unicode mappings. `codepage-setup' is now | |
1224 obsolete and is used only in the MS-DOS port of Emacs. windows-1252 | |
1225 and windows-1251 are preloaded since the former is so common and the | |
1226 latter is used by GNU locales. | |
1227 | |
1228 --- | |
1229 ** The utf-8/16 coding systems have been enhanced. | |
1230 By default, untranslatable utf-8 sequences are simply composed into | |
1231 single quasi-characters. User option `utf-translate-cjk-mode' (it is | |
1232 turned on by default) arranges to translate many utf-8 CJK character | |
1233 sequences into real Emacs characters in a similar way to the Mule-UCS | |
1234 system. As this loads a fairly big data on demand, people who are not | |
1235 interested in CJK characters may want to customize it to nil. | |
1236 You can augment/amend the CJK translation via hash tables | |
1237 `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 | |
1238 coding system now also encodes characters from most of Emacs's | |
1239 one-dimensional internal charsets, specifically the ISO-8859 ones. | |
1240 The utf-16 coding system is affected similarly. | |
1241 | |
1242 --- | |
1243 ** New variable `utf-translate-cjk-unicode-range' controls which | |
1244 Unicode characters to translate in `utf-translate-cjk-mode'. | |
1245 | |
1246 --- | |
1247 ** iso-10646-1 (`Unicode') fonts can be used to display any range of | |
1248 characters encodable by the utf-8 coding system. Just specify the | |
1249 fontset appropriately. | |
1250 | |
1251 --- | |
1252 ** New command `ucs-insert' inserts a character specified by its | |
1253 unicode. | |
1254 | |
1255 +++ | |
1256 ** Limited support for character `unification' has been added. | |
1257 Emacs now knows how to translate between different representations of | |
1258 the same characters in various Emacs charsets according to standard | |
1259 Unicode mappings. This applies mainly to characters in the ISO 8859 | |
1260 sets plus some other 8-bit sets, but can be extended. For instance, | |
1261 translation works amongst the Emacs ...-iso8859-... charsets and the | |
1262 mule-unicode-... ones. | |
1263 | |
1264 By default this translation happens automatically on encoding. | |
1265 Self-inserting characters are translated to make the input conformant | |
1266 with the encoding of the buffer in which it's being used, where | |
1267 possible. | |
1268 | |
1269 You can force a more complete unification with the user option | |
1270 unify-8859-on-decoding-mode. That maps all the Latin-N character sets | |
1271 into Unicode characters (from the latin-iso8859-1 and | |
1272 mule-unicode-0100-24ff charsets) on decoding. Note that this mode | |
1273 will often effectively clobber data with an iso-2022 encoding. | |
1274 | |
1275 --- | |
1276 ** There is support for decoding Greek and Cyrillic characters into | |
1277 either Unicode (the mule-unicode charsets) or the iso-8859 charsets, | |
1278 when possible. The latter are more space-efficient. This is | |
1279 controlled by user option utf-fragment-on-decoding. | |
1280 | |
1281 +++ | |
1282 ** The new command `set-file-name-coding-system' (C-x RET F) sets | |
1283 coding system for encoding and decoding file names. A new menu item | |
1284 (Options->Mule->Set Coding Systems->For File Name) invokes this | |
1285 command. | |
1286 | |
1287 --- | |
1288 ** The scrollbar under LessTif or Motif has a smoother drag-scrolling. | |
1289 On the other hand, the size of the thumb does not represent the actual | |
1290 amount of text shown any more (only a crude approximation of it). | |
1291 | |
1292 --- | |
1293 ** The pop up menus for Lucid now stay up if you do a fast click and can | |
1294 be navigated with the arrow keys (like Gtk+, Mac and W32). | |
1295 | |
1296 +++ | |
1297 ** The Lucid menus can display multilingual text in your locale. You have | |
1298 to explicitly specify a fontSet resource for this to work, for example | |
1299 `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | |
1300 | |
1301 --- | |
1302 ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | |
1303 ESC, like they do for Gtk+, Mac and W32. | |
1304 | |
1305 --- | |
1306 ** Dialogs and menus pop down when pressing C-g. | |
1307 | |
1308 --- | |
1309 ** The menu item "Open File..." has been split into two items, "New File..." | |
1310 and "Open File...". "Open File..." now opens only existing files. This is | |
1311 to support existing GUI file selection dialogs better. | |
1312 | |
1313 +++ | |
1314 ** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be | |
1315 disabled by customizing the variable `use-file-dialog'. | |
1316 | |
1317 +++ | |
1318 ** For Gtk+ version 2.4, you can make Emacs use the old file dialog | |
1319 by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use | |
1320 the new dialog. | |
1321 | |
1322 +++ | |
1323 ** Emacs can produce an underscore-like (horizontal bar) cursor. | |
1324 The underscore cursor is set by putting `(cursor-type . hbar)' in | |
1325 default-frame-alist. It supports variable heights, like the `bar' | |
1326 cursor does. | |
1327 | |
1328 +++ | |
1329 ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | |
1330 now controlled by the variable `blink-cursor-alist'. | |
1331 | |
1332 ** Filesets are collections of files. You can define a fileset in | |
1333 various ways, such as based on a directory tree or based on | |
1334 program files that include other program files. | |
1335 | |
1336 Once you have defined a fileset, you can perform various operations on | |
1337 all the files in it, such as visiting them or searching and replacing | |
1338 in them. | |
1339 | |
1340 --- | |
1341 ** PO translation files are decoded according to their MIME headers | |
1342 when Emacs visits them. | |
1343 | 2793 |
1344 --- | 2794 --- |
1345 ** The game `mpuz' is enhanced. | 2795 ** The game `mpuz' is enhanced. |
1346 | 2796 |
1347 `mpuz' now allows the 2nd factor not to have two identical digits. By | 2797 `mpuz' now allows the 2nd factor not to have two identical digits. By |
1348 default, all trivial operations involving whole lines are performed | 2798 default, all trivial operations involving whole lines are performed |
1349 automatically. The game uses faces for better visual feedback. | 2799 automatically. The game uses faces for better visual feedback. |
1350 | 2800 |
1351 --- | 2801 --- |
1352 ** The new variable `x-select-request-type' controls how Emacs | 2802 ** display-battery has been replaced by display-battery-mode. |
1353 requests X selection. The default value is nil, which means that | 2803 |
1354 Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, | 2804 --- |
1355 and use the more appropriately result. | 2805 ** calculator.el now has radix grouping mode, which is available when |
1356 | 2806 `calculator-output-radix' is non-nil. In this mode a separator |
1357 +++ | 2807 character is used every few digits, making it easier to see byte |
1358 ** The parameters of automatic hscrolling can now be customized. | 2808 boundries etc. For more info, see the documentation of the variable |
1359 The variable `hscroll-margin' determines how many columns away from | 2809 `calculator-radix-grouping-mode'. |
1360 the window edge point is allowed to get before automatic hscrolling | 2810 |
1361 will horizontally scroll the window. The default value is 5. | 2811 --- |
1362 | 2812 ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. |
1363 The variable `hscroll-step' determines how many columns automatic | 2813 |
1364 hscrolling scrolls the window when point gets too close to the | 2814 --- |
1365 window edge. If its value is zero, the default, Emacs scrolls the | 2815 ** iso-acc.el is now obsolete. Use one of the latin input methods instead. |
1366 window so as to center point. If its value is an integer, it says how | 2816 |
1367 many columns to scroll. If the value is a floating-point number, it | 2817 --- |
1368 gives the fraction of the window's width to scroll the window. | 2818 ** cplus-md.el has been removed to avoid problems with Custom. |
1369 | 2819 |
1370 The variable `automatic-hscrolling' was renamed to | 2820 * Changes for non-free operating systems |
1371 `auto-hscroll-mode'. The old name is still available as an alias. | 2821 |
1372 | 2822 +++ |
1373 ** TeX modes: | 2823 ** Passing resources on the command line now works on MS Windows. |
1374 | 2824 You can use --xrm to pass resource settings to Emacs, overriding any |
1375 *** C-c C-c prompts for a command to run, and tries to offer a good default. | 2825 existing values. For example: |
1376 | 2826 |
1377 +++ | 2827 emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" |
1378 *** The user option `tex-start-options-string' has been replaced | 2828 |
1379 by two new user options: `tex-start-options', which should hold | 2829 will start up Emacs on an initial frame of 100x20 with red background, |
1380 command-line options to feed to TeX, and `tex-start-commands' which should hold | 2830 irrespective of geometry or background setting on the Windows registry. |
1381 TeX commands to use at startup. | |
1382 | |
1383 --- | |
1384 *** verbatim environments are now highlighted in courier by font-lock | |
1385 and super/sub-scripts are made into super/sub-scripts. | |
1386 | |
1387 +++ | |
1388 *** New major mode doctex-mode for *.dtx files. | |
1389 | |
1390 +++ | |
1391 ** New display feature: focus follows the mouse from one Emacs window | |
1392 to another, even within a frame. If you set the variable | |
1393 mouse-autoselect-window to non-nil value, moving the mouse to a | |
1394 different Emacs window will select that window (minibuffer window can | |
1395 be selected only when it is active). The default is nil, so that this | |
1396 feature is not enabled. | |
1397 | |
1398 +++ | |
1399 ** On X, when the window manager requires that you click on a frame to | |
1400 select it (give it focus), the selected window and cursor position | |
1401 normally changes according to the mouse click position. If you set | |
1402 the variable x-mouse-click-focus-ignore-position to t, the selected | |
1403 window and cursor position do not change when you click on a frame | |
1404 to give it focus. | |
1405 | |
1406 +++ | |
1407 ** The new command `describe-char' (C-u C-x =) pops up a buffer with | |
1408 description various information about a character, including its | |
1409 encodings and syntax, its text properties, how to input, overlays, and | |
1410 widgets at point. You can get more information about some of them, by | |
1411 clicking on mouse-sensitive areas or moving there and pressing RET. | |
1412 | |
1413 +++ | |
1414 ** The new command `multi-occur' is just like `occur', except it can | |
1415 search multiple buffers. There is also a new command | |
1416 `multi-occur-by-filename-regexp' which allows you to specify the | |
1417 buffers to search by their filename. Internally, Occur mode has been | |
1418 rewritten, and now uses font-lock, among other changes. | |
1419 | |
1420 +++ | |
1421 ** The default values of paragraph-start and indent-line-function have | |
1422 been changed to reflect those used in Text mode rather than those used | |
1423 in Indented-Text mode. | |
1424 | |
1425 --- | |
1426 ** New user option `query-replace-skip-read-only': when non-nil, | |
1427 `query-replace' and related functions simply ignore | |
1428 a match if part of it has a read-only property. | |
1429 | |
1430 +++ | |
1431 ** When used interactively, the commands `query-replace-regexp' and | |
1432 `replace-regexp' allow \,expr to be used in a replacement string, | |
1433 where expr is an arbitrary Lisp expression evaluated at replacement | |
1434 time. In many cases, this will be more convenient than using | |
1435 `query-replace-regexp-eval'. `\#' in a replacement string now refers | |
1436 to the count of replacements already made by the replacement command. | |
1437 All regular expression replacement commands now allow `\?' in the | |
1438 replacement string to specify a position where the replacement string | |
1439 can be edited for each replacement. | |
1440 | |
1441 +++ | |
1442 ** query-replace uses isearch lazy highlighting when the new user option | |
1443 `query-replace-lazy-highlight' is non-nil. | |
1444 | |
1445 --- | |
1446 ** The current match in query-replace is highlighted in new face | |
1447 `query-replace' which by default inherits from isearch face. | |
1448 | |
1449 +++ | |
1450 ** Emacs normally highlights mouse sensitive text whenever the mouse | |
1451 is over the text. By setting the new variable `mouse-highlight', you | |
1452 can optionally enable mouse highlighting only after you move the | |
1453 mouse, so that highlighting disappears when you press a key. You can | |
1454 also disable mouse highlighting. | |
1455 | |
1456 +++ | |
1457 ** You can now customize if selecting a region by dragging the mouse | |
1458 shall not copy the selected text to the kill-ring by setting the new | |
1459 variable mouse-drag-copy-region to nil. | |
1460 | |
1461 +++ | |
1462 ** font-lock: in modes like C and Lisp where the fontification assumes that | |
1463 an open-paren in column 0 is always outside of any string or comment, | |
1464 font-lock now highlights any such open-paren-in-column-zero in bold-red | |
1465 if it is inside a string or a comment, to indicate that it can cause | |
1466 trouble with fontification and/or indentation. | |
1467 | |
1468 +++ | |
1469 ** There's a new face `minibuffer-prompt'. | |
1470 Emacs adds this face to the list of text properties stored in the | |
1471 variable `minibuffer-prompt-properties', which is used to display the | |
1472 prompt string. | |
1473 | |
1474 +++ | |
1475 ** The new face `mode-line-inactive' is used to display the mode line | |
1476 of non-selected windows. The `mode-line' face is now used to display | |
1477 the mode line of the currently selected window. | |
1478 | |
1479 The new variable `mode-line-in-non-selected-windows' controls whether | |
1480 the `mode-line-inactive' face is used. | |
1481 | |
1482 --- | |
1483 ** A menu item "Show/Hide" was added to the top-level menu "Options". | |
1484 This menu allows you to turn various display features on and off (such | |
1485 as the fringes, the tool bar, the speedbar, and the menu bar itself). | |
1486 You can also move the vertical scroll bar to either side here or turn | |
1487 it off completely. There is also a menu-item to toggle displaying of | |
1488 current date and time, current line and column number in the | |
1489 mode-line. | |
1490 | |
1491 --- | |
1492 ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | |
1493 | |
1494 +++ | |
1495 ** Emacs can now indicate in the mode-line the presence of new e-mail | |
1496 in a directory or in a file. See the documentation of the user option | |
1497 `display-time-mail-directory'. | |
1498 | |
1499 --- | |
1500 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. | |
1501 | |
1502 +++ | |
1503 ** You can now disable pc-selection-mode after enabling it. | |
1504 M-x pc-selection-mode behaves like a proper minor mode, and with no | |
1505 argument it toggles the mode. | |
1506 | |
1507 Turning off PC-Selection mode restores the global key bindings | |
1508 that were replaced by turning on the mode. | |
1509 | |
1510 +++ | |
1511 ** Emacs now displays a splash screen by default even if command-line | |
1512 arguments were given. The new command-line option --no-splash | |
1513 disables the splash screen; see also the variable | |
1514 `inhibit-startup-message' (which is also aliased as | |
1515 `inhibit-splash-screen'). | |
1516 | |
1517 ** Changes in support of colors on character terminals | |
1518 | |
1519 +++ | |
1520 *** The new command-line option --color=MODE lets you specify a standard | |
1521 mode for a tty color support. It is meant to be used on character | |
1522 terminals whose capabilities are not set correctly in the terminal | |
1523 database, or with terminal emulators which support colors, but don't | |
1524 set the TERM environment variable to a name of a color-capable | |
1525 terminal. "emacs --color" uses the same color commands as GNU `ls' | |
1526 when invoked with "ls --color", so if your terminal can support colors | |
1527 in "ls --color", it will support "emacs --color" as well. See the | |
1528 user manual for the possible values of the MODE parameter. | |
1529 | |
1530 --- | |
1531 *** Emacs now supports several character terminals which provide more | |
1532 than 8 colors. For example, for `xterm', 16-color, 88-color, and | |
1533 256-color modes are supported. Emacs automatically notes at startup | |
1534 the extended number of colors, and defines the appropriate entries for | |
1535 all of these colors. | |
1536 | |
1537 +++ | |
1538 *** Emacs now uses the full range of available colors for the default | |
1539 faces when running on a color terminal, including 16-, 88-, and | |
1540 256-color xterms. This means that when you run "emacs -nw" on an | |
1541 88-color or 256-color xterm, you will see essentially the same face | |
1542 colors as on X. | |
1543 | |
1544 --- | |
1545 *** There's a new support for colors on `rxvt' terminal emulator. | |
1546 | |
1547 +++ | |
1548 ** Emacs can now be invoked in full-screen mode on a windowed display. | |
1549 | |
1550 When Emacs is invoked on a window system, the new command-line options | |
1551 `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | |
1552 whose width, height, or both width and height take up the entire | |
1553 screen size. (For now, this does not work with some window managers.) | |
1554 | |
1555 --- | |
1556 ** Emacs now tries to set up buffer coding systems for HTML/XML files | |
1557 automatically. | |
1558 | |
1559 +++ | |
1560 ** The new command `comint-insert-previous-argument' in comint-derived | |
1561 modes (shell-mode etc) inserts arguments from previous command lines, | |
1562 like bash's `ESC .' binding. It is bound by default to `C-c .', but | |
1563 otherwise behaves quite similarly to the bash version. | |
1564 | |
1565 +++ | |
1566 ** Changes in C-h bindings: | |
1567 | |
1568 C-h e displays the *Messages* buffer. | |
1569 | |
1570 C-h followed by a control character is used for displaying files | |
1571 that do not change: | |
1572 | |
1573 C-h C-f displays the FAQ. | |
1574 C-h C-e displays the PROBLEMS file. | |
1575 | |
1576 The info-search bindings on C-h C-f, C-h C-k and C-h C-i | |
1577 have been moved to C-h F, C-h K and C-h S. | |
1578 | |
1579 C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. | |
1580 | |
1581 - C-h c and C-h k report the actual command (after possible remapping) | |
1582 run by the key sequence. | |
1583 | |
1584 - C-h w and C-h f on a command which has been remapped now report the | |
1585 command it is remapped to, and the keys which can be used to run | |
1586 that command. | |
1587 | |
1588 For example, if C-k is bound to kill-line, and kill-line is remapped | |
1589 to new-kill-line, these commands now report: | |
1590 | |
1591 - C-h c and C-h k C-k reports: | |
1592 C-k runs the command new-kill-line | |
1593 | |
1594 - C-h w and C-h f kill-line reports: | |
1595 kill-line is remapped to new-kill-line which is on C-k, <deleteline> | |
1596 | |
1597 - C-h w and C-h f new-kill-line reports: | |
1598 new-kill-line is on C-k | |
1599 | |
1600 +++ | |
1601 ** Vertical scrolling is now possible within incremental search. | |
1602 To enable this feature, customize the new user option | |
1603 `isearch-allow-scroll'. User written commands which satisfy stringent | |
1604 constraints can be marked as "scrolling commands". See the Emacs manual | |
1605 for details. | |
1606 | |
1607 +++ | |
1608 ** C-w in incremental search now grabs either a character or a word, | |
1609 making the decision in a heuristic way. This new job is done by the | |
1610 command `isearch-yank-word-or-char'. To restore the old behavior, | |
1611 bind C-w to `isearch-yank-word' in `isearch-mode-map'. | |
1612 | |
1613 +++ | |
1614 ** C-y in incremental search now grabs the next line if point is already | |
1615 at the end of a line. | |
1616 | |
1617 +++ | |
1618 ** C-M-w deletes and C-M-y grabs a character in isearch mode. | |
1619 Another method to grab a character is to enter the minibuffer by `M-e' | |
1620 and to type `C-f' at the end of the search string in the minibuffer. | |
1621 | |
1622 +++ | |
1623 ** M-% typed in isearch mode invokes `query-replace' or | |
1624 `query-replace-regexp' (depending on search mode) with the current | |
1625 search string used as the string to replace. | |
1626 | |
1627 +++ | |
1628 ** Isearch no longer adds `isearch-resume' commands to the command | |
1629 history by default. To enable this feature, customize the new | |
1630 user option `isearch-resume-in-command-history'. | |
1631 | |
1632 +++ | |
1633 ** New user option `history-delete-duplicates'. | |
1634 If set to t when adding a new history element, all previous identical | |
1635 elements are deleted. | |
1636 | |
1637 +++ | |
1638 ** Yanking text now discards certain text properties that can | |
1639 be inconvenient when you did not expect them. The variable | |
1640 `yank-excluded-properties' specifies which ones. Insertion | |
1641 of register contents and rectangles also discards these properties. | |
1642 | |
1643 +++ | |
1644 ** Occur, Info, and comint-derived modes now support using | |
1645 M-x font-lock-mode to toggle fontification. The variable | |
1646 `Info-fontify' is no longer applicable; to disable fontification, | |
1647 remove `turn-on-font-lock' from `Info-mode-hook'. | |
1648 | |
1649 +++ | |
1650 ** M-x grep now tries to avoid appending `/dev/null' to the command line | |
1651 by using GNU grep `-H' option instead. M-x grep automatically | |
1652 detects whether this is possible or not the first time it is invoked. | |
1653 When `-H' is used, the grep command line supplied by the user is passed | |
1654 unchanged to the system to execute, which allows more complicated | |
1655 command lines to be used than was possible before. | |
1656 | |
1657 --- | |
1658 ** The face-customization widget has been reworked to be less confusing. | |
1659 In particular, when you enable a face attribute using the corresponding | |
1660 check-box, there's no longer a redundant `*' option in value selection | |
1661 for that attribute; the values you can choose are only those which make | |
1662 sense for the attribute. When an attribute is de-selected by unchecking | |
1663 its check-box, then the (now ignored, but still present temporarily in | |
1664 case you re-select the attribute) value is hidden. | |
1665 | |
1666 +++ | |
1667 ** When you set or reset a variable's value in a Customize buffer, | |
1668 the previous value becomes the "backup value" of the variable. | |
1669 You can go back to that backup value by selecting "Use Backup Value" | |
1670 under the "[State]" button. | |
1671 | |
1672 --- | |
1673 ** The new customization type `float' specifies numbers with floating | |
1674 point (no integers are allowed). | |
1675 | |
1676 +++ | |
1677 ** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | |
1678 counter to the specified source line (the one where point is). | |
1679 | |
1680 --- | |
1681 ** GUD mode improvements for jdb: | |
1682 | |
1683 *** Search for source files using jdb classpath and class | |
1684 information. Fast startup since there is no need to scan all | |
1685 source files up front. There is also no need to create and maintain | |
1686 lists of source directories to scan. Look at `gud-jdb-use-classpath' | |
1687 and `gud-jdb-classpath' customization variables documentation. | |
1688 | |
1689 *** Supports the standard breakpoint (gud-break, gud-clear) | |
1690 set/clear operations from java source files under the classpath, stack | |
1691 traversal (gud-up, gud-down), and run until current stack finish | |
1692 (gud-finish). | |
1693 | |
1694 *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | |
1695 (Java 1.1 jdb). | |
1696 | |
1697 *** The previous method of searching for source files has been | |
1698 preserved in case someone still wants/needs to use it. | |
1699 Set gud-jdb-use-classpath to nil. | |
1700 | |
1701 Added Customization Variables | |
1702 | |
1703 *** gud-jdb-command-name. What command line to use to invoke jdb. | |
1704 | |
1705 *** gud-jdb-use-classpath. Allows selection of java source file searching | |
1706 method: set to t for new method, nil to scan gud-jdb-directories for | |
1707 java sources (previous method). | |
1708 | |
1709 *** gud-jdb-directories. List of directories to scan and search for java | |
1710 classes using the original gud-jdb method (if gud-jdb-use-classpath | |
1711 is nil). | |
1712 | |
1713 Minor Improvements | |
1714 | |
1715 *** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS | |
1716 instead of the OpenSSL based "starttls" tool. For backwards | |
1717 compatibility, it prefers "starttls", but you can toggle | |
1718 `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | |
1719 "starttls" tool). | |
1720 | |
1721 *** Do not allow debugger output history variable to grow without bounds. | |
1722 | |
1723 +++ | |
1724 ** hide-ifdef-mode now uses overlays rather than selective-display | |
1725 to hide its text. This should be mostly transparent but slightly | |
1726 changes the behavior of motion commands like C-e and C-p. | |
1727 | |
1728 +++ | |
1729 ** Unquoted `$' in file names do not signal an error any more when | |
1730 the corresponding environment variable does not exist. | |
1731 Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | |
1732 is only rarely needed. | |
1733 | |
1734 --- | |
1735 ** JIT-lock changes | |
1736 *** jit-lock can now be delayed with `jit-lock-defer-time'. | |
1737 | |
1738 If this variable is non-nil, its value should be the amount of Emacs | |
1739 idle time in seconds to wait before starting fontification. For | |
1740 example, if you set `jit-lock-defer-time' to 0.25, fontification will | |
1741 only happen after 0.25s of idle time. | |
1742 | |
1743 *** contextual refontification is now separate from stealth fontification. | |
1744 | |
1745 jit-lock-defer-contextually is renamed jit-lock-contextually and | |
1746 jit-lock-context-time determines the delay after which contextual | |
1747 refontification takes place. | |
1748 | |
1749 +++ | |
1750 ** Marking commands extend the region when invoked multiple times. If | |
1751 you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or | |
1752 C-M-h (mark-defun) repeatedly, the marked region extends each time, so | |
1753 you can mark the next two sexps with M-C-SPC M-C-SPC, for example. | |
1754 This feature also works for mark-end-of-sentence, if you bind that to | |
1755 a key. It also extends the region when the mark is active in Transient | |
1756 Mark mode, regardless of the last command. To start a new region with | |
1757 one of marking commands in Transient Mark mode, you can deactivate the | |
1758 active region with C-g, or set the new mark with C-SPC. | |
1759 | |
1760 +++ | |
1761 ** Some commands do something special in Transient Mark mode when the | |
1762 mark is active--for instance, they limit their operation to the | |
1763 region. Even if you don't normally use Transient Mark mode, you might | |
1764 want to get this behavior from a particular command. There are two | |
1765 ways you can enable Transient Mark mode and activate the mark, for one | |
1766 command only. | |
1767 | |
1768 One method is to type C-SPC C-SPC; this enables Transient Mark mode | |
1769 and sets the mark at point. The other method is to type C-u C-x C-x. | |
1770 This enables Transient Mark mode temporarily but does not alter the | |
1771 mark or the region. | |
1772 | |
1773 After these commands, Transient Mark mode remains enabled until you | |
1774 deactivate the mark. That typically happens when you type a command | |
1775 that alters the buffer, but you can also deactivate the mark by typing | |
1776 C-g. | |
1777 | |
1778 +++ | |
1779 ** A prefix argument is no longer required to repeat a jump to a | |
1780 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the | |
1781 mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. | |
1782 | |
1783 +++ | |
1784 ** Movement commands `beginning-of-buffer', `end-of-buffer', | |
1785 `beginning-of-defun', `end-of-defun' do not set the mark if the mark | |
1786 is already active in Transient Mark mode. | |
1787 | |
1788 +++ | |
1789 ** In the *Occur* buffer, `o' switches to it in another window, and | |
1790 C-o displays the current line's occurrence in another window without | |
1791 switching to it. | |
1792 | |
1793 +++ | |
1794 ** When you specify a frame size with --geometry, the size applies to | |
1795 all frames you create. A position specified with --geometry only | |
1796 affects the initial frame. | |
1797 | |
1798 +++ | |
1799 ** M-h (mark-paragraph) now accepts a prefix arg. | |
1800 With positive arg, M-h marks the current and the following paragraphs; | |
1801 if the arg is negative, it marks the current and the preceding | |
1802 paragraphs. | |
1803 | |
1804 +++ | |
1805 ** The variables dired-free-space-program and dired-free-space-args | |
1806 have been renamed to directory-free-space-program and | |
1807 directory-free-space-args, and they now apply whenever Emacs puts a | |
1808 directory listing into a buffer. | |
1809 | |
1810 --- | |
1811 ** mouse-wheels can now scroll a specific fraction of the window | |
1812 (rather than a fixed number of lines) and the scrolling is `progressive'. | |
1813 | |
1814 --- | |
1815 ** Unexpected yanking of text due to accidental clicking on the mouse | |
1816 wheel button (typically mouse-2) during wheel scrolling is now avoided. | |
1817 This behavior can be customized via the mouse-wheel-click-event and | |
1818 mouse-wheel-inhibit-click-time variables. | |
1819 | |
1820 +++ | |
1821 ** The keyboard-coding-system is now automatically set based on your | |
1822 current locale settings if you are not using a window system. This | |
1823 may mean that the META key doesn't work but generates non-ASCII | |
1824 characters instead, depending on how the terminal (or terminal | |
1825 emulator) works. Use `set-keyboard-coding-system' (or customize | |
1826 keyboard-coding-system) if you prefer META to work (the old default) | |
1827 or if the locale doesn't describe the character set actually generated | |
1828 by the keyboard. See Info node `Single-Byte Character Support'. | |
1829 | |
1830 +++ | |
1831 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs | |
1832 automatically at startup, if it exists. When Emacs offers to save | |
1833 modified buffers, it saves the abbrevs too if they have changed. It | |
1834 can do this either silently or asking for confirmation first, | |
1835 according to the value of `save-abbrevs'. | |
1836 | |
1837 +++ | |
1838 ** Display of hollow cursors now obeys the buffer-local value (if any) | |
1839 of `cursor-in-non-selected-windows' in the buffer that the cursor | |
1840 appears in. | |
1841 | |
1842 +++ | |
1843 ** The variable `cursor-in-non-selected-windows' can now be set to any | |
1844 of the recognized cursor types. | |
1845 | |
1846 --- | |
1847 ** The variable `auto-save-file-name-transforms' now has a third element that | |
1848 controls whether or not the function `make-auto-save-file-name' will | |
1849 attempt to construct a unique auto-save name (e.g. for remote files). | |
1850 | |
1851 +++ | |
1852 ** There is a new calendar package, icalendar.el, that can be used to | |
1853 convert Emacs diary entries to/from the iCalendar format. | |
1854 | |
1855 +++ | |
1856 ** Diary sexp entries can have custom marking in the calendar. | |
1857 Diary sexp functions which only apply to certain days (such as | |
1858 `diary-block' or `diary-cyclic') now take an optional parameter MARK, | |
1859 which is the name of a face or a single-character string indicating | |
1860 how to highlight the day in the calendar display. Specifying a | |
1861 single-character string as @var{mark} places the character next to the | |
1862 day in the calendar. Specifying a face highlights the day with that | |
1863 face. This lets you have different colors or markings for vacations, | |
1864 appointments, paydays or anything else using a sexp. | |
1865 | |
1866 +++ | |
1867 ** The new function `calendar-goto-day-of-year' (g D) prompts for a | |
1868 year and day number, and moves to that date. Negative day numbers | |
1869 count backward from the end of the year. | |
1870 | |
1871 +++ | |
1872 ** The new Calendar function `calendar-goto-iso-week' (g w) | |
1873 prompts for a year and a week number, and moves to the first | |
1874 day of that ISO week. | |
1875 | |
1876 --- | |
1877 ** The new variable `calendar-minimum-window-height' affects the | |
1878 window generated by the function `generate-calendar-window'. | |
1879 | |
1880 --- | |
1881 ** The functions `holiday-easter-etc' and `holiday-advent' now take | |
1882 optional arguments, in order to only report on the specified holiday | |
1883 rather than all. This makes customization of variables such as | |
1884 `christian-holidays' simpler. | |
1885 | |
1886 --- | |
1887 ** The function `simple-diary-display' now by default sets a header line. | |
1888 This can be controlled through the variables `diary-header-line-flag' | |
1889 and `diary-header-line-format'. | |
1890 | |
1891 +++ | |
1892 ** The procedure for activating appointment reminders has changed: use | |
1893 the new function `appt-activate'. The new variable | |
1894 `appt-display-format' controls how reminders are displayed, replacing | |
1895 appt-issue-message, appt-visible, and appt-msg-window. | |
1896 | |
1897 +++ | |
1898 ** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | |
1899 and `diary-from-outlook-rmail' can be used to import diary entries | |
1900 from Outlook-format appointments in mail messages. The variable | |
1901 `diary-outlook-formats' can be customized to recognize additional | |
1902 formats. | |
1903 | |
1904 | |
1905 ** VC Changes | |
1906 | |
1907 +++ | |
1908 *** The key C-x C-q no longer checks files in or out, it only changes | |
1909 the read-only state of the buffer (toggle-read-only). We made this | |
1910 change because we held a poll and found that many users were unhappy | |
1911 with the previous behavior. If you do prefer this behavior, you | |
1912 can bind `vc-toggle-read-only' to C-x C-q in your .emacs: | |
1913 | |
1914 (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | |
1915 | |
1916 The function `vc-toggle-read-only' will continue to exist. | |
1917 | |
1918 +++ | |
1919 *** There is a new user option `vc-cvs-global-switches' that allows | |
1920 you to specify switches that are passed to any CVS command invoked | |
1921 by VC. These switches are used as "global options" for CVS, which | |
1922 means they are inserted before the command name. For example, this | |
1923 allows you to specify a compression level using the "-z#" option for | |
1924 CVS. | |
1925 | |
1926 +++ | |
1927 *** New backends for Subversion and Meta-CVS. | |
1928 | |
1929 ** EDiff changes. | |
1930 | |
1931 +++ | |
1932 *** When comparing directories. | |
1933 Typing D brings up a buffer that lists the differences between the contents of | |
1934 directories. Now it is possible to use this buffer to copy the missing files | |
1935 from one directory to another. | |
1936 | |
1937 +++ | |
1938 *** When comparing files or buffers. | |
1939 Typing the = key now offers to perform the word-by-word comparison of the | |
1940 currently highlighted regions in an inferior Ediff session. If you answer 'n' | |
1941 then it reverts to the old behavior and asks the user to select regions for | |
1942 comparison. | |
1943 | |
1944 *** The new command `ediff-backup' compares a file with its most recent | |
1945 backup using `ediff'. If you specify the name of a backup file, | |
1946 `ediff-backup' compares it with the file of which it is a backup. | |
1947 | |
1948 +++ | |
1949 ** Etags changes. | |
1950 | |
1951 *** New regular expressions features | |
1952 | |
1953 **** New syntax for regular expressions, multi-line regular expressions. | |
1954 The syntax --ignore-case-regexp=/regex/ is now undocumented and retained | |
1955 only for backward compatibility. The new equivalent syntax is | |
1956 --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | |
1957 where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | |
1958 more characters among `i' (ignore case), `m' (multi-line) and `s' | |
1959 (single-line). The `m' and `s' modifiers behave as in Perl regular | |
1960 expressions: `m' allows regexps to match more than one line, while `s' | |
1961 (which implies `m') means that `.' matches newlines. The ability to | |
1962 span newlines allows writing of much more powerful regular expressions | |
1963 and rapid prototyping for tagging new languages. | |
1964 | |
1965 **** Regular expressions can use char escape sequences as in Gcc. | |
1966 The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, | |
1967 respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | |
1968 CR, TAB, VT, | |
1969 | |
1970 **** Regular expressions can be bound to a given language. | |
1971 The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags | |
1972 only for files of language LANGUAGE, and ignored otherwise. This is | |
1973 particularly useful when storing regexps in a file. | |
1974 | |
1975 **** Regular expressions can be read from a file. | |
1976 The --regex=@regexfile option means read the regexps from a file, one | |
1977 per line. Lines beginning with space or tab are ignored. | |
1978 | |
1979 *** New language parsing features | |
1980 | |
1981 **** The `::' qualifier triggers C++ parsing in C file. | |
1982 Previously, only the `template' and `class' keywords had this effect. | |
1983 | |
1984 **** The gnucc __attribute__ keyword is now recognised and ignored. | |
1985 | |
1986 **** New language HTML. | |
1987 Title and h1, h2, h3 are tagged. Also, tags are generated when name= is | |
1988 used inside an anchor and whenever id= is used. | |
1989 | |
1990 **** In Makefiles, constants are tagged. | |
1991 If you want the old behavior instead, thus avoiding to increase the | |
1992 size of the tags file, use the --no-globals option. | |
1993 | |
1994 **** New language Lua. | |
1995 All functions are tagged. | |
1996 | |
1997 **** In Perl, packages are tags. | |
1998 Subroutine tags are named from their package. You can jump to sub tags | |
1999 as you did before, by the sub name, or additionally by looking for | |
2000 package::sub. | |
2001 | |
2002 **** In Prolog, etags creates tags for rules in addition to predicates. | |
2003 | |
2004 **** New language PHP. | |
2005 Tags are functions, classes and defines. | |
2006 If the --members option is specified to etags, tags are variables also. | |
2007 | |
2008 **** New default keywords for TeX. | |
2009 The new keywords are def, newcommand, renewcommand, newenvironment and | |
2010 renewenvironment. | |
2011 | |
2012 *** Honour #line directives. | |
2013 When Etags parses an input file that contains C preprocessor's #line | |
2014 directives, it creates tags using the file name and line number | |
2015 specified in those directives. This is useful when dealing with code | |
2016 created from Cweb source files. When Etags tags the generated file, it | |
2017 writes tags pointing to the source file. | |
2018 | |
2019 *** New option --parse-stdin=FILE. | |
2020 This option is mostly useful when calling etags from programs. It can | |
2021 be used (only once) in place of a file name on the command line. Etags | |
2022 reads from standard input and marks the produced tags as belonging to | |
2023 the file FILE. | |
2024 | |
2025 +++ | |
2026 ** CC Mode changes. | |
2027 | |
2028 *** Font lock support. | |
2029 CC Mode now provides font lock support for all its languages. This | |
2030 supersedes the font lock patterns that have been in the core font lock | |
2031 package for C, C++, Java and Objective-C. Like indentation, font | |
2032 locking is done in a uniform way across all languages (except the new | |
2033 AWK mode - see below). That means that the new font locking will be | |
2034 different from the old patterns in various details for most languages. | |
2035 | |
2036 The main goal of the font locking in CC Mode is accuracy, to provide a | |
2037 dependable aid in recognizing the various constructs. Some, like | |
2038 strings and comments, are easy to recognize while others like | |
2039 declarations and types can be very tricky. CC Mode can go to great | |
2040 lengths to recognize declarations and casts correctly, especially when | |
2041 the types aren't recognized by standard patterns. This is a fairly | |
2042 demanding analysis which can be slow on older hardware, and it can | |
2043 therefore be disabled by choosing a lower decoration level with the | |
2044 variable font-lock-maximum-decoration. | |
2045 | |
2046 Note that the most demanding font lock level has been tuned with lazy | |
2047 fontification in mind, i.e. there should be a support mode that waits | |
2048 with the fontification until the text is actually shown | |
2049 (e.g. Just-in-time Lock mode, which is the default, or Lazy Lock | |
2050 mode). Fontifying a file with several thousand lines in one go can | |
2051 take the better part of a minute. | |
2052 | |
2053 **** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables | |
2054 are now used by CC Mode to recognize identifiers that are certain to | |
2055 be types. (They are also used in cases that aren't related to font | |
2056 locking.) At the maximum decoration level, types are often recognized | |
2057 properly anyway, so these variables should be fairly restrictive and | |
2058 not contain patterns for uncertain types. | |
2059 | |
2060 **** Support for documentation comments. | |
2061 There is a "plugin" system to fontify documentation comments like | |
2062 Javadoc and the markup within them. It's independent of the host | |
2063 language, so it's possible to e.g. turn on Javadoc font locking in C | |
2064 buffers. See the variable c-doc-comment-style for details. | |
2065 | |
2066 Currently two kinds of doc comment styles are recognized: Suns Javadoc | |
2067 and Autodoc which is used in Pike. This is by no means a complete | |
2068 list of the most common tools; if your doc comment extractor of choice | |
2069 is missing then please drop a note to bug-cc-mode@gnu.org. | |
2070 | |
2071 **** Better handling of C++ templates. | |
2072 As a side effect of the more accurate font locking, C++ templates are | |
2073 now handled much better. The angle brackets that delimit them are | |
2074 given parenthesis syntax so that they can be navigated like other | |
2075 parens. | |
2076 | |
2077 This also improves indentation of templates, although there still is | |
2078 work to be done in that area. E.g. it's required that multiline | |
2079 template clauses are written in full and then refontified to be | |
2080 recognized, and the indentation of nested templates is a bit odd and | |
2081 not as configurable as it ought to be. | |
2082 | |
2083 **** Improved handling of Objective-C and CORBA IDL. | |
2084 Especially the support for Objective-C and IDL has gotten an overhaul. | |
2085 The special "@" declarations in Objective-C are handled correctly. | |
2086 All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and | |
2087 handled correctly, also wrt indentation. | |
2088 | |
2089 *** Support for the AWK language. | |
2090 Support for the AWK language has been introduced. The implementation is | |
2091 based around GNU AWK version 3.1, but it should work pretty well with | |
2092 any AWK. As yet, not all features of CC Mode have been adapted for AWK. | |
2093 Here is a summary: | |
2094 | |
2095 **** Indentation Engine | |
2096 The CC Mode indentation engine fully supports AWK mode. | |
2097 | |
2098 AWK mode handles code formatted in the conventional AWK fashion: `{'s | |
2099 which start actions, user-defined functions, or compound statements are | |
2100 placed on the same line as the associated construct; the matching `}'s | |
2101 are normally placed under the start of the respective pattern, function | |
2102 definition, or structured statement. | |
2103 | |
2104 The predefined indentation functions haven't yet been adapted for AWK | |
2105 mode, though some of them may work serendipitously. There shouldn't be | |
2106 any problems writing custom indentation functions for AWK mode. | |
2107 | |
2108 The command C-c C-q (c-indent-defun) hasn't yet been adapted for AWK, | |
2109 though in practice it works properly nearly all the time. Should it | |
2110 fail, explicitly set the region around the function (using C-u C-SPC: | |
2111 C-M-h probably won't work either) then do C-M-\ (indent-region). | |
2112 | |
2113 **** Font Locking | |
2114 There is a single level of font locking in AWK mode, rather than the | |
2115 three distinct levels the other modes have. There are several | |
2116 idiosyncrasies in AWK mode's font-locking due to the peculiarities of | |
2117 the AWK language itself. | |
2118 | |
2119 **** Comment Commands | |
2120 M-; (indent-for-comment) works fine. None of the other CC Mode | |
2121 comment formatting commands have yet been adapted for AWK mode. | |
2122 | |
2123 **** Movement Commands | |
2124 Most of the movement commands work in AWK mode. The most important | |
2125 exceptions are M-a (c-beginning-of-statement) and M-e | |
2126 (c-end-of-statement) which haven't yet been adapted. | |
2127 | |
2128 The notion of "defun" has been augmented to include AWK pattern-action | |
2129 pairs. C-M-a (c-awk-beginning-of-defun) and C-M-e (c-awk-end-of-defun) | |
2130 recognise these pattern-action pairs, as well as user defined | |
2131 functions. | |
2132 | |
2133 **** Auto-newline Insertion and Clean-ups | |
2134 Auto-newline insertion hasn't yet been adapted for AWK. Some of | |
2135 the clean-ups can actually convert good AWK code into syntactically | |
2136 invalid code. These features are best disabled in AWK buffers. | |
2137 | |
2138 *** New syntactic symbols in IDL mode. | |
2139 The top level constructs "module" and "composition" (from CIDL) are | |
2140 now handled like "namespace" in C++: They are given syntactic symbols | |
2141 module-open, module-close, inmodule, composition-open, | |
2142 composition-close, and incomposition. | |
2143 | |
2144 *** New functions to do hungry delete without enabling hungry delete mode. | |
2145 The functions c-hungry-backspace and c-hungry-delete-forward can be | |
2146 bound to keys to get this feature without toggling a mode. | |
2147 Contributed by Kevin Ryde. | |
2148 | |
2149 *** Better control over require-final-newline. The variable that | |
2150 controls how to handle a final newline when the buffer is saved, | |
2151 require-final-newline, is now customizable on a per-mode basis through | |
2152 c-require-final-newline. That is a list of modes, and only those | |
2153 modes set require-final-newline. By default that's C, C++ and | |
2154 Objective-C. | |
2155 | |
2156 The specified modes set require-final-newline based on | |
2157 mode-require-final-newline, as usual. | |
2158 | |
2159 *** Format change for syntactic context elements. | |
2160 The elements in the syntactic context returned by c-guess-basic-syntax | |
2161 and stored in c-syntactic-context has been changed somewhat to allow | |
2162 attaching more information. They are now lists instead of single cons | |
2163 cells. E.g. a line that previously had the syntactic analysis | |
2164 | |
2165 ((inclass . 11) (topmost-intro . 13)) | |
2166 | |
2167 is now analysed as | |
2168 | |
2169 ((inclass 11) (topmost-intro 13)) | |
2170 | |
2171 In some cases there are more than one position given for a syntactic | |
2172 symbol. | |
2173 | |
2174 This change might affect code that call c-guess-basic-syntax directly, | |
2175 and custom lineup functions if they use c-syntactic-context. However, | |
2176 the argument given to lineup functions is still a single cons cell | |
2177 with nil or an integer in the cdr. | |
2178 | |
2179 *** API changes for derived modes. | |
2180 There have been extensive changes "under the hood" which can affect | |
2181 derived mode writers. Some of these changes are likely to cause | |
2182 incompatibilities with existing derived modes, but on the other hand | |
2183 care has now been taken to make it possible to extend and modify CC | |
2184 Mode with less risk of such problems in the future. | |
2185 | |
2186 **** New language variable system. | |
2187 See the comment blurb near the top of cc-langs.el. | |
2188 | |
2189 **** New initialization functions. | |
2190 The initialization procedure has been split up into more functions to | |
2191 give better control: c-basic-common-init, c-font-lock-init, and | |
2192 c-init-language-vars. | |
2193 | |
2194 *** Changes in analysis of nested syntactic constructs. | |
2195 The syntactic analysis engine has better handling of cases where | |
2196 several syntactic constructs appear nested on the same line. They are | |
2197 now handled as if each construct started on a line of its own. | |
2198 | |
2199 This means that CC Mode now indents some cases differently, and | |
2200 although it's more consistent there might be cases where the old way | |
2201 gave results that's more to one's liking. So if you find a situation | |
2202 where you think that the indentation has become worse, please report | |
2203 it to bug-cc-mode@gnu.org. | |
2204 | |
2205 **** New syntactic symbol substatement-label. | |
2206 This symbol is used when a label is inserted between a statement and | |
2207 its substatement. E.g: | |
2208 | |
2209 if (x) | |
2210 x_is_true: | |
2211 do_stuff(); | |
2212 | |
2213 *** Better handling of multiline macros. | |
2214 | |
2215 **** Syntactic indentation inside macros. | |
2216 The contents of multiline #define's are now analyzed and indented | |
2217 syntactically just like other code. This can be disabled by the new | |
2218 variable c-syntactic-indentation-in-macros. A new syntactic symbol | |
2219 cpp-define-intro has been added to control the initial indentation | |
2220 inside #define's. | |
2221 | |
2222 **** New lineup function c-lineup-cpp-define. | |
2223 Now used by default to line up macro continuation lines. The behavior | |
2224 of this function closely mimics the indentation one gets if the macro | |
2225 is indented while the line continuation backslashes are temporarily | |
2226 removed. If syntactic indentation in macros is turned off, it works | |
2227 much line c-lineup-dont-change, which was used earlier, but handles | |
2228 empty lines within the macro better. | |
2229 | |
2230 **** Automatically inserted newlines continues the macro if used within one. | |
2231 This applies to the newlines inserted by the auto-newline mode, and to | |
2232 c-context-line-break and c-context-open-line. | |
2233 | |
2234 **** Better alignment of line continuation backslashes. | |
2235 c-backslash-region tries to adapt to surrounding backslashes. New | |
2236 variable c-backslash-max-column which put a limit on how far out | |
2237 backslashes can be moved. | |
2238 | |
2239 **** Automatic alignment of line continuation backslashes. | |
2240 This is controlled by the new variable c-auto-align-backslashes. It | |
2241 affects c-context-line-break, c-context-open-line and newlines | |
2242 inserted in auto-newline mode. | |
2243 | |
2244 **** Line indentation works better inside macros. | |
2245 Regardless whether syntactic indentation and syntactic indentation | |
2246 inside macros are enabled or not, line indentation now ignores the | |
2247 line continuation backslashes. This is most noticeable when syntactic | |
2248 indentation is turned off and there are empty lines (save for the | |
2249 backslash) in the macro. | |
2250 | |
2251 *** indent-for-comment is more customizable. | |
2252 The behavior of M-; (indent-for-comment) is now configurable through | |
2253 the variable c-indent-comment-alist. The indentation behavior based | |
2254 on the preceding code on the line, e.g. to get two spaces after #else | |
2255 and #endif but indentation to comment-column in most other cases | |
2256 (something which was hardcoded earlier). | |
2257 | |
2258 *** New function c-context-open-line. | |
2259 It's the open-line equivalent of c-context-line-break. | |
2260 | |
2261 *** New lineup functions | |
2262 | |
2263 **** c-lineup-string-cont | |
2264 This lineup function lines up a continued string under the one it | |
2265 continues. E.g: | |
2266 | |
2267 result = prefix + "A message " | |
2268 "string."; <- c-lineup-string-cont | |
2269 | |
2270 **** c-lineup-cascaded-calls | |
2271 Lines up series of calls separated by "->" or ".". | |
2272 | |
2273 **** c-lineup-knr-region-comment | |
2274 Gives (what most people think is) better indentation of comments in | |
2275 the "K&R region" between the function header and its body. | |
2276 | |
2277 **** c-lineup-gcc-asm-reg | |
2278 Provides better indentation inside asm blocks. Contributed by Kevin | |
2279 Ryde. | |
2280 | |
2281 **** c-lineup-argcont | |
2282 Lines up continued function arguments after the preceding comma. | |
2283 Contributed by Kevin Ryde. | |
2284 | |
2285 *** Better caching of the syntactic context. | |
2286 CC Mode caches the positions of the opening parentheses (of any kind) | |
2287 of the lists surrounding the point. Those positions are used in many | |
2288 places as anchor points for various searches. The cache is now | |
2289 improved so that it can be reused to a large extent when the point is | |
2290 moved. The less it moves, the less needs to be recalculated. | |
2291 | |
2292 The effect is that CC Mode should be fast most of the time even when | |
2293 opening parens are hung (i.e. aren't in column zero). It's typically | |
2294 only the first time after the point is moved far down in a complex | |
2295 file that it'll take noticeable time to find out the syntactic | |
2296 context. | |
2297 | |
2298 *** Statements are recognized in a more robust way. | |
2299 Statements are recognized most of the time even when they occur in an | |
2300 "invalid" context, e.g. in a function argument. In practice that can | |
2301 happen when macros are involved. | |
2302 | |
2303 *** Improved the way c-indent-exp chooses the block to indent. | |
2304 It now indents the block for the closest sexp following the point | |
2305 whose closing paren ends on a different line. This means that the | |
2306 point doesn't have to be immediately before the block to indent. | |
2307 Also, only the block and the closing line is indented; the current | |
2308 line is left untouched. | |
2309 | |
2310 *** Added toggle for syntactic indentation. | |
2311 The function c-toggle-syntactic-indentation can be used to toggle | |
2312 syntactic indentation. | |
2313 | |
2314 +++ | |
2315 ** The command line option --no-windows has been changed to | |
2316 --no-window-system. The old one still works, but is deprecated. | |
2317 | |
2318 +++ | |
2319 ** The command `list-text-properties-at' has been deleted because | |
2320 C-u C-x = gives the same information and more. | |
2321 | |
2322 +++ | |
2323 ** `buffer-menu' and `list-buffers' now list buffers whose names begin | |
2324 with a space, when those buffers are visiting files. Normally buffers | |
2325 whose names begin with space are omitted. | |
2326 | |
2327 +++ | |
2328 ** You can now customize fill-nobreak-predicate to control where | |
2329 filling can break lines. The value is now normally a list of | |
2330 functions, but it can also be a single function, for compatibility. | |
2331 | |
2332 We provide two sample predicates, fill-single-word-nobreak-p and | |
2333 fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. | |
2334 | |
2335 +++ | |
2336 ** New user option `add-log-always-start-new-record'. | |
2337 When this option is enabled, M-x add-change-log-entry always | |
2338 starts a new record regardless of when the last record is. | |
2339 | |
2340 +++ | |
2341 ** SGML mode has indentation and supports XML syntax. | |
2342 The new variable `sgml-xml-mode' tells SGML mode to use XML syntax. | |
2343 When this option is enabled, SGML tags are inserted in XML style, | |
2344 i.e., there is always a closing tag. | |
2345 By default, its setting is inferred on a buffer-by-buffer basis | |
2346 from the file name or buffer contents. | |
2347 | |
2348 +++ | |
2349 ** `xml-mode' is now an alias for `sgml-mode', which has XML support. | |
2350 | |
2351 --- | |
2352 ** Lisp mode now uses font-lock-doc-face for the docstrings. | |
2353 | |
2354 --- | |
2355 ** Perl mode has a new variable `perl-indent-continued-arguments'. | |
2356 | |
2357 --- | |
2358 ** Fortran mode does more font-locking by default. Use level 3 | |
2359 highlighting for the old default. | |
2360 | |
2361 +++ | |
2362 ** Fortran mode has a new variable `fortran-directive-re'. | |
2363 Adapt this to match the format of any compiler directives you use. | |
2364 Lines that match are never indented, and are given distinctive font-locking. | |
2365 | |
2366 +++ | |
2367 ** F90 mode and Fortran mode have new navigation commands | |
2368 `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | |
2369 `f90-previous-block', `fortran-end-of-block', | |
2370 `fortran-beginning-of-block'. | |
2371 | |
2372 --- | |
2373 ** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). | |
2374 It cannot deal with every code format, but ought to handle a sizeable | |
2375 majority. | |
2376 | |
2377 --- | |
2378 ** The new function `f90-backslash-not-special' can be used to change | |
2379 the syntax of backslashes in F90 buffers. | |
2380 | |
2381 --- | |
2382 ** Prolog mode has a new variable `prolog-font-lock-keywords' | |
2383 to support use of font-lock. | |
2384 | |
2385 +++ | |
2386 ** `special-display-buffer-names' and `special-display-regexps' now | |
2387 understand two new boolean pseudo-frame-parameters `same-frame' and | |
2388 `same-window'. | |
2389 | |
2390 +++ | |
2391 ** M-x setenv now expands environment variables of the form `$foo' and | |
2392 `${foo}' in the specified new value of the environment variable. To | |
2393 include a `$' in the value, use `$$'. | |
2394 | |
2395 +++ | |
2396 ** File-name completion can now ignore directories. | |
2397 If an element of the list in `completion-ignored-extensions' ends in a | |
2398 slash `/', it indicates a subdirectory that should be ignored when | |
2399 completing file names. Elements of `completion-ignored-extensions' | |
2400 which do not end in a slash are never considered when a completion | |
2401 candidate is a directory. | |
2402 | |
2403 +++ | |
2404 ** The completion commands TAB, SPC and ? in the minibuffer apply only | |
2405 to the text before point. If there is text in the buffer after point, | |
2406 it remains unchanged. | |
2407 | |
2408 --- | |
2409 ** Enhanced visual feedback in *Completions* buffer. | |
2410 | |
2411 Completions lists use faces to highlight what all completions | |
2412 have in common and where they begin to differ. | |
2413 | |
2414 The common prefix shared by all possible completions uses the face | |
2415 `completions-common-part', while the first character that isn't the | |
2416 same uses the face `completions-first-difference'. By default, | |
2417 `completions-common-part' inherits from `default', and | |
2418 `completions-first-difference' inherits from `bold'. The idea of | |
2419 `completions-common-part' is that you can use it to make the common | |
2420 parts less visible than normal, so that the rest of the differing | |
2421 parts is, by contrast, slightly highlighted. | |
2422 | |
2423 +++ | |
2424 ** New user option `inhibit-startup-buffer-menu'. | |
2425 When loading many files, for instance with `emacs *', Emacs normally | |
2426 displays a buffer menu. This option turns the buffer menu off. | |
2427 | |
2428 --- | |
2429 ** Rmail now displays 5-digit message ids in its summary buffer. | |
2430 | |
2431 +++ | |
2432 ** Support for `movemail' from GNU mailutils was added to Rmail. | |
2433 This version of `movemail' allows to read mail from a wide range of | |
2434 mailbox formats, including remote POP3 and IMAP4 mailboxes with or | |
2435 without TLS encryption. If GNU mailutils is installed on the system | |
2436 and its version of `movemail' can be found in exec-path, it will be | |
2437 used instead of the native one. | |
2438 | 2831 |
2439 --- | 2832 --- |
2440 ** On MS Windows, the "system caret" now follows the cursor. | 2833 ** On MS Windows, the "system caret" now follows the cursor. |
2441 This enables Emacs to work better with programs that need to track | 2834 This enables Emacs to work better with programs that need to track |
2442 the cursor, for example screen magnifiers and text to speech programs. | 2835 the cursor, for example screen magnifiers and text to speech programs. |
2487 multilingual text with other applications. On other versions of | 2880 multilingual text with other applications. On other versions of |
2488 MS Windows, Emacs now uses the appropriate locale coding-system, so | 2881 MS Windows, Emacs now uses the appropriate locale coding-system, so |
2489 the clipboard should work correctly for your local language without | 2882 the clipboard should work correctly for your local language without |
2490 any customizations. | 2883 any customizations. |
2491 | 2884 |
2492 +++ | 2885 --- |
2493 ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | |
2494 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | |
2495 and `x-super-keysym' can be used to choose which keysyms Emacs should | |
2496 use for the modifiers. For example, the following two lines swap | |
2497 Meta and Alt: | |
2498 (setq x-alt-keysym 'meta) | |
2499 (setq x-meta-keysym 'alt) | |
2500 | |
2501 +++ | |
2502 ** vc-annotate-mode enhancements | |
2503 | |
2504 In vc-annotate mode, you can now use the following key bindings for | |
2505 enhanced functionality to browse the annotations of past revisions, or | |
2506 to view diffs or log entries directly from vc-annotate-mode: | |
2507 | |
2508 P: annotates the previous revision | |
2509 N: annotates the next revision | |
2510 J: annotates the revision at line | |
2511 A: annotates the revision previous to line | |
2512 D: shows the diff of the revision at line with its previous revision | |
2513 L: shows the log of the revision at line | |
2514 W: annotates the workfile (most up to date) version | |
2515 | |
2516 +++ | |
2517 ** In pcl-cvs mode, there is a new `d y' command to view the diffs | |
2518 between the local version of the file and yesterday's head revision | |
2519 in the repository. | |
2520 | |
2521 +++ | |
2522 ** In pcl-cvs mode, there is a new `d r' command to view the changes | |
2523 anyone has committed to the repository since you last executed | |
2524 "checkout", "update" or "commit". That means using cvs diff options | |
2525 -rBASE -rHEAD. | |
2526 | |
2527 --- | |
2528 ** New variable `hs-set-up-overlay' allows customization of the overlay | |
2529 used to effect hiding for hideshow minor mode. Integration with isearch | |
2530 handles the overlay property `display' specially, preserving it during | |
2531 temporary overlay showing in the course of an isearch operation. | |
2532 | |
2533 +++ | |
2534 ** New command `recode-region' decodes the region again by a specified | |
2535 coding system. | |
2536 | |
2537 ** On Mac OS, the value of the variable `keyboard-coding-system' is | 2886 ** On Mac OS, the value of the variable `keyboard-coding-system' is |
2538 now dynamically changed according to the current keyboard script. The | 2887 now dynamically changed according to the current keyboard script. The |
2539 variable `mac-keyboard-text-encoding' and the constants | 2888 variable `mac-keyboard-text-encoding' and the constants |
2540 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | 2889 `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
2541 `kTextEncodingISOLatin2' are obsolete. | 2890 `kTextEncodingISOLatin2' are obsolete. |
2542 | 2891 |
2543 * New modes and packages in Emacs 22.1 | |
2544 | |
2545 +++ | |
2546 ** The new package longlines.el provides a minor mode for editing text | |
2547 files composed of long lines, based on the `use-hard-newlines' | |
2548 mechanism. The long lines are broken up by inserting soft newlines, | |
2549 which are automatically removed when saving the file to disk or | |
2550 copying into the kill ring, clipboard, etc. By default, Longlines | |
2551 mode inserts soft newlines automatically during editing, a behavior | |
2552 referred to as "soft word wrap" in other text editors. This is | |
2553 similar to Refill mode, but more reliable. To turn the word wrap | |
2554 feature off, set `longlines-auto-wrap' to nil. | |
2555 | |
2556 +++ | |
2557 ** The new package conf-mode.el handles thousands of configuration files, with | |
2558 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | |
2559 var : value, var value or keyword var value) and sections ([section] or | |
2560 section { }). Many files under /etc/, or with suffixes like .cf through | |
2561 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | |
2562 recognized. | |
2563 | |
2564 +++ | |
2565 ** The new package dns-mode.el add syntax highlight of DNS master files. | |
2566 The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used | |
2567 to increment the SOA serial. | |
2568 | |
2569 +++ | |
2570 ** The new package flymake.el does on-the-fly syntax checking of program | |
2571 source files. See the Flymake's Info manual for more details. | |
2572 | |
2573 ** The library tree-widget.el provides a new widget to display a set | |
2574 of hierarchical data as an outline. For example, the tree-widget is | |
2575 well suited to display a hierarchy of directories and files. | |
2576 | |
2577 +++ | |
2578 ** The wdired.el package allows you to use normal editing commands on Dired | |
2579 buffers to change filenames, permissions, etc... | |
2580 | |
2581 +++ | |
2582 ** The thumbs.el package allows you to preview image files as thumbnails | |
2583 and can be invoked from a Dired buffer. | |
2584 | |
2585 +++ | |
2586 ** The new python.el package is used to edit Python and Jython programs. | |
2587 | |
2588 ** The URL package (which had been part of W3) is now part of Emacs. | |
2589 | |
2590 +++ | |
2591 ** The new global minor mode `size-indication-mode' (off by default) | |
2592 shows the size of accessible part of the buffer on the mode line. | |
2593 | |
2594 --- | |
2595 ** GDB-Script-mode is used for files like .gdbinit. | |
2596 | |
2597 --- | |
2598 ** Ido mode is now part of the Emacs distribution. | |
2599 | |
2600 The ido (interactively do) package is an extension of the iswitchb | |
2601 package to do interactive opening of files and directories in addition | |
2602 to interactive buffer switching. Ido is a superset of iswitchb (with | |
2603 a few exceptions), so don't enable both packages. | |
2604 | |
2605 --- | |
2606 ** CUA mode is now part of the Emacs distribution. | |
2607 | |
2608 The new cua package provides CUA-like keybindings using C-x for | |
2609 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo. | |
2610 With cua, the region can be set and extended using shifted movement | |
2611 keys (like pc-selection-mode) and typed text replaces the active | |
2612 region (like delete-selection-mode). Do not enable these modes with | |
2613 cua-mode. Customize the variable `cua-mode' to enable cua. | |
2614 | |
2615 In addition, cua provides unified rectangle support with visible | |
2616 rectangle highlighting: Use S-return to start a rectangle, extend it | |
2617 using the movement commands (or mouse-3), and cut or copy it using C-x | |
2618 or C-c (using C-w and M-w also works). | |
2619 | |
2620 Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to | |
2621 fill it with blanks or another character, use M-u or M-l to upcase or | |
2622 downcase the rectangle, use M-i to increment the numbers in the | |
2623 rectangle, use M-n to fill the rectangle with a numeric sequence (such | |
2624 as 10 20 30...), use M-r to replace a regexp in the rectangle, and use | |
2625 M-' or M-/ to restrict command on the rectangle to a subset of the | |
2626 rows. See the commentary in cua-base.el for more rectangle commands. | |
2627 | |
2628 Cua also provides unified support for registers: Use a numeric | |
2629 prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and | |
2630 C-v to cut or copy into register 0-9, or paste from register 0-9. | |
2631 | |
2632 The last text deleted (not killed) is automatically stored in | |
2633 register 0. This includes text deleted by typing text. | |
2634 | |
2635 Finally, cua provides a global mark which is set using S-C-space. | |
2636 When the global mark is active, any text which is cut or copied is | |
2637 automatically inserted at the global mark position. See the | |
2638 commentary in cua-base.el for more global mark related commands. | |
2639 | |
2640 The features of cua also works with the standard emacs bindings for | |
2641 kill, copy, yank, and undo. If you want to use cua mode, but don't | |
2642 want the C-x, C-c, C-v, and C-z bindings, you may customize the | |
2643 `cua-enable-cua-keys' variable. | |
2644 | |
2645 Note: This version of cua mode is not backwards compatible with older | |
2646 versions of cua.el and cua-mode.el. To ensure proper operation, you | |
2647 must remove older versions of cua.el or cua-mode.el as well as the | |
2648 loading and customization of those packages from the .emacs file. | |
2649 | |
2650 +++ | |
2651 ** The new keypad setup package provides several common bindings for | |
2652 the numeric keypad which is available on most keyboards. The numeric | |
2653 keypad typically has the digits 0 to 9, a decimal point, keys marked | |
2654 +, -, /, and *, an Enter key, and a NumLock toggle key. The keypad | |
2655 package only controls the use of the digit and decimal keys. | |
2656 | |
2657 By customizing the variables `keypad-setup', `keypad-shifted-setup', | |
2658 `keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by | |
2659 using the function `keypad-setup', you can rebind all digit keys and | |
2660 the decimal key of the keypad in one step for each of the four | |
2661 possible combinations of the Shift key state (not pressed/pressed) and | |
2662 the NumLock toggle state (off/on). | |
2663 | |
2664 The choices for the keypad keys in each of the above states are: | |
2665 `Plain numeric keypad' where the keys generates plain digits, | |
2666 `Numeric keypad with decimal key' where the character produced by the | |
2667 decimal key can be customized individually (for internationalization), | |
2668 `Numeric Prefix Arg' where the keypad keys produce numeric prefix args | |
2669 for emacs editing commands, `Cursor keys' and `Shifted Cursor keys' | |
2670 where the keys work like (shifted) arrow keys, home/end, etc., and | |
2671 `Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.) | |
2672 are left unspecified and can be bound individually through the global | |
2673 or local keymaps. | |
2674 | |
2675 +++ | |
2676 ** The new kmacro package provides a simpler user interface to | |
2677 emacs' keyboard macro facilities. | |
2678 | |
2679 Basically, it uses two function keys (default F3 and F4) like this: | |
2680 F3 starts a macro, F4 ends the macro, and pressing F4 again executes | |
2681 the last macro. While defining the macro, F3 inserts a counter value | |
2682 which automatically increments every time the macro is executed. | |
2683 | |
2684 There is now a keyboard macro ring which stores the most recently | |
2685 defined macros. | |
2686 | |
2687 The C-x C-k sequence is now a prefix for the kmacro keymap which | |
2688 defines bindings for moving through the keyboard macro ring, | |
2689 C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e, | |
2690 manipulating the macro counter and format via C-x C-k C-c, | |
2691 C-x C-k C-a, and C-x C-k C-f. See the commentary in kmacro.el | |
2692 for more commands. | |
2693 | |
2694 The normal macro bindings C-x (, C-x ), and C-x e now interfaces to | |
2695 the keyboard macro ring. | |
2696 | |
2697 The C-x e command now automatically terminates the current macro | |
2698 before calling it, if used while defining a macro. | |
2699 | |
2700 In addition, when ending or calling a macro with C-x e, the macro can | |
2701 be repeated immediately by typing just the `e'. You can customize | |
2702 this behavior via the variable kmacro-call-repeat-key and | |
2703 kmacro-call-repeat-with-arg. | |
2704 | |
2705 Keyboard macros can now be debugged and edited interactively. | |
2706 C-x C-k SPC steps through the last keyboard macro one key sequence | |
2707 at a time, prompting for the actions to take. | |
2708 | |
2709 --- | |
2710 ** The old Octave mode bindings C-c f and C-c i have been changed | |
2711 to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate | |
2712 bindings on control characters--thus, C-c C-i C-b is the same as | |
2713 C-c C-i b, and so on. | |
2714 | |
2715 ** The printing package is now part of the Emacs distribution. | |
2716 | |
2717 If you enable the printing package by including (require 'printing) in | |
2718 the .emacs file, the normal Print item on the File menu is replaced | |
2719 with a Print sub-menu which allows you to preview output through | |
2720 ghostview, use ghostscript to print (if you don't have a PostScript | |
2721 printer) or send directly to printer a PostScript code generated by | |
2722 `ps-print' package. Use M-x pr-help for more information. | |
2723 | |
2724 +++ | |
2725 ** Calc is now part of the Emacs distribution. | |
2726 | |
2727 Calc is an advanced desk calculator and mathematical tool written in | |
2728 Emacs Lisp. Its documentation is in a separate manual; within Emacs, | |
2729 type "C-h i m calc RET" to read that manual. A reference card is | |
2730 available in `etc/calccard.tex' and `etc/calccard.ps'. | |
2731 | |
2732 +++ | |
2733 ** Tramp is now part of the distribution. | |
2734 | |
2735 This package is similar to Ange-FTP: it allows you to edit remote | |
2736 files. But whereas Ange-FTP uses FTP to access the remote host, | |
2737 Tramp uses a shell connection. The shell connection is always used | |
2738 for filename completion and directory listings and suchlike, but for | |
2739 the actual file transfer, you can choose between the so-called | |
2740 `inline' methods (which transfer the files through the shell | |
2741 connection using base64 or uu encoding) and the `out-of-band' methods | |
2742 (which invoke an external copying program such as `rcp' or `scp' or | |
2743 `rsync' to do the copying). | |
2744 | |
2745 Shell connections can be acquired via `rsh', `ssh', `telnet' and also | |
2746 `su' and `sudo'. Ange-FTP is still supported via the `ftp' method. | |
2747 | |
2748 If you want to disable Tramp you should set | |
2749 | |
2750 (setq tramp-default-method "ftp") | |
2751 | |
2752 --- | |
2753 ** The new global minor mode `file-name-shadow-mode' modifies the way | |
2754 filenames being entered by the user in the minibuffer are displayed, so | |
2755 that it's clear when part of the entered filename will be ignored due to | |
2756 emacs' filename parsing rules. The ignored portion can be made dim, | |
2757 invisible, or otherwise less visually noticable. The display method may | |
2758 be displayed by customizing the variable `file-name-shadow-properties'. | |
2759 | |
2760 --- | |
2761 ** The ruler-mode.el library provides a minor mode for displaying an | |
2762 "active" ruler in the header line. You can use the mouse to visually | |
2763 change the `fill-column', `window-margins' and `tab-stop-list' | |
2764 settings. | |
2765 | |
2766 --- | |
2767 ** The minor mode Reveal mode makes text visible on the fly as you | |
2768 move your cursor into hidden regions of the buffer. | |
2769 It should work with any package that uses overlays to hide parts | |
2770 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | |
2771 | |
2772 There is also Global Reveal mode which affects all buffers. | |
2773 | |
2774 --- | |
2775 ** The new package ibuffer provides a powerful, completely | |
2776 customizable replacement for buff-menu.el. | |
2777 | |
2778 +++ | |
2779 ** The new package table.el implements editable, WYSIWYG, embedded | |
2780 `text tables' in Emacs buffers. It simulates the effect of putting | |
2781 these tables in a special major mode. The package emulates WYSIWYG | |
2782 table editing available in modern word processors. The package also | |
2783 can generate a table source in typesetting and markup languages such | |
2784 as latex and html from the visually laid out text table. | |
2785 | |
2786 +++ | |
2787 ** SES mode (ses-mode) is a new major mode for creating and editing | |
2788 spreadsheet files. Besides the usual Emacs features (intuitive command | |
2789 letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | |
2790 viral immunity and import/export of tab-separated values. | |
2791 | |
2792 --- | |
2793 ** Support for `magic cookie' standout modes has been removed. | |
2794 Emacs will still work on terminals that require magic cookies in order | |
2795 to use standout mode, however they will not be able to display | |
2796 mode-lines in inverse-video. | |
2797 | |
2798 --- | |
2799 ** cplus-md.el has been removed to avoid problems with Custom. | |
2800 | |
2801 +++ | |
2802 ** New package benchmark.el contains simple support for convenient | |
2803 timing measurements of code (including the garbage collection component). | |
2804 | |
2805 --- | |
2806 ** The new Lisp library fringe.el controls the appearance of fringes. | |
2807 | |
2808 --- | |
2809 ** `cfengine-mode' is a major mode for editing GNU Cfengine | |
2810 configuration files. | |
2811 | |
2812 * Incompatible Lisp Changes in Emacs 22.1 | 2892 * Incompatible Lisp Changes in Emacs 22.1 |
2813 | 2893 |
2814 +++ | 2894 +++ |
2815 ** The new interactive-specification `G' reads a file name | 2895 ** The new interactive-specification `G' reads a file name |
2816 much like `F', but if the input is a directory name (even defaulted), | 2896 much like `F', but if the input is a directory name (even defaulted), |
2827 :propertize and :eval forms in the value of a variable whose | 2907 :propertize and :eval forms in the value of a variable whose |
2828 `risky-local-variable' property is nil. | 2908 `risky-local-variable' property is nil. |
2829 | 2909 |
2830 * Lisp Changes in Emacs 22.1 | 2910 * Lisp Changes in Emacs 22.1 |
2831 | 2911 |
2832 ** New functions, macros, and commands | 2912 +++ |
2833 | 2913 ** The option --script FILE runs Emacs in batch mode and loads FILE. |
2834 +++ | 2914 It is useful for writing Emacs Lisp shell script files, because they |
2835 *** The new function `filter-buffer-substring' extracts a buffer | 2915 can start with this line: |
2836 substring, passes it through a set of filter functions, and returns | 2916 |
2837 the filtered substring. It is used instead of `buffer-substring' or | 2917 #!/usr/bin/emacs --script |
2838 `delete-and-extract-region' when copying text into a user-accessible | 2918 |
2839 data structure, like the kill-ring, X clipboard, or a register. The | 2919 +++ |
2840 list of filter function is specified by the new variable | 2920 ** The option --directory DIR now modifies `load-path' immediately. |
2841 `buffer-substring-filters'. For example, Longlines mode uses | 2921 Directories are added to the front of `load-path' in the order they |
2842 `buffer-substring-filters' to remove soft newlines from the copied | 2922 appear on the command line. For example, with this command line: |
2843 text. | 2923 |
2844 | 2924 emacs -batch -L .. -L /tmp --eval "(require 'foo)" |
2845 +++ | 2925 |
2846 *** (while-no-input BODY...) runs BODY, but only so long as no input | 2926 Emacs looks for library `foo' in the parent directory, then in /tmp, then |
2847 arrives. If the user types or clicks anything, BODY stops as if a | 2927 in the other directories in `load-path'. (-L is short for --directory.) |
2848 quit had occurred. while-no-input returns the value of BODY, if BODY | 2928 |
2849 finishes. It returns nil if BODY was aborted. | 2929 +++ |
2850 | 2930 ** The default value of `sentence-end' is now defined using the new |
2851 +++ | 2931 variable `sentence-end-without-space', which contains such characters |
2852 *** New function `looking-back' checks whether a regular expression matches | 2932 that end a sentence without following spaces. |
2853 the text before point. Specifying the LIMIT argument bounds how far | 2933 |
2854 back the match can start; this is a way to keep it from taking too long. | 2934 The function `sentence-end' should be used to obtain the value of the |
2855 | 2935 variable `sentence-end'. If the variable `sentence-end' is nil, then |
2856 +++ | 2936 this function returns the regexp constructed from the variables |
2857 *** New functions `make-progress-reporter', `progress-reporter-update', | 2937 `sentence-end-without-period', `sentence-end-double-space' and |
2858 `progress-reporter-force-update', `progress-reporter-done', and | 2938 `sentence-end-without-space'. |
2859 `dotimes-with-progress-reporter' provide a simple and efficient way for | 2939 |
2860 a command to present progress messages for the user. | 2940 +++ |
2861 | 2941 ** The argument to forward-word, backward-word, forward-to-indentation |
2862 +++ | 2942 and backward-to-indentation is now optional, and defaults to 1. |
2863 *** The new primitive `get-internal-run-time' returns the processor | |
2864 run time used by Emacs since start-up. | |
2865 | |
2866 +++ | |
2867 *** The new function `called-interactively-p' does what many people | |
2868 have mistakenly believed `interactive-p' did: it returns t if the | |
2869 calling function was called through `call-interactively'. This should | |
2870 only be used when you cannot add a new "interactive" argument to the | |
2871 command. | |
2872 | |
2873 +++ | |
2874 *** The new function `assoc-string' replaces `assoc-ignore-case' and | |
2875 `assoc-ignore-representation', which are still available, but have | |
2876 been declared obsolete. | |
2877 | |
2878 --- | |
2879 *** New function quail-find-key returns a list of keys to type in the | |
2880 current input method to input a character. | |
2881 | |
2882 +++ | |
2883 *** New functions posn-at-point and posn-at-x-y return | |
2884 click-event-style position information for a given visible buffer | |
2885 position or for a given window pixel coordinate. | |
2886 | |
2887 +++ | |
2888 *** The new primitive `set-file-times' sets a file's access and | |
2889 modification times. Magic file name handlers can handle this | |
2890 operation. | |
2891 | |
2892 +++ | |
2893 *** The new function syntax-after returns the syntax code | |
2894 of the character after a specified buffer position, taking account | |
2895 of text properties as well as the character code. | |
2896 | |
2897 *** `syntax-class' extracts the class of a syntax code (as returned | |
2898 by syntax-after). | |
2899 | |
2900 +++ | |
2901 *** New function `line-number-at-pos' returns line number of current | |
2902 line in current buffer, or if optional buffer position is given, line | |
2903 number of corresponding line in current buffer. | |
2904 | |
2905 +++ | |
2906 *** New function `macroexpand-all' expands all macros in a form. | |
2907 It is similar to the Common-Lisp function of the same name. | |
2908 One difference is that it guarantees to return the original argument | |
2909 if no expansion is done, which may be tested using `eq'. | |
2910 | |
2911 +++ | |
2912 *** New macro with-local-quit temporarily sets inhibit-quit to nil for use | |
2913 around potentially blocking or long-running code in timers | |
2914 and post-command-hooks. | |
2915 | |
2916 --- | |
2917 ** easy-mmode-define-global-mode has been renamed to | |
2918 define-global-minor-mode. The old name remains as an alias. | |
2919 | |
2920 +++ | |
2921 ** An element of buffer-undo-list can now have the form (apply FUNNAME | |
2922 . ARGS), where FUNNAME is a symbol other than t or nil. That stands | |
2923 for a high-level change that should be undone by evaluating (apply | |
2924 FUNNAME ARGS). | |
2925 | |
2926 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) | |
2927 which indicates that the change which took place was limited to the | |
2928 range BEG...END and increased the buffer size by DELTA. | |
2929 | |
2930 +++ | |
2931 ** The line-move, scroll-up, and scroll-down functions will now | |
2932 modify the window vscroll to scroll through display rows that are | |
2933 taller that the height of the window, for example in the presense of | |
2934 large images. To disable this feature, Lisp code may bind the new | |
2935 variable `auto-window-vscroll' to nil. | |
2936 | |
2937 +++ | |
2938 ** If a buffer sets buffer-save-without-query to non-nil, | |
2939 save-some-buffers will always save that buffer without asking | |
2940 (if it's modified). | |
2941 | |
2942 +++ | |
2943 ** The function symbol-file tells you which file defined | |
2944 a certain function or variable. | |
2945 | |
2946 +++ | |
2947 ** Lisp code can now test if a given buffer position is inside a | |
2948 clickable link with the new function `mouse-on-link-p'. This is the | |
2949 function used by the new `mouse-1-click-follows-link' functionality. | |
2950 | |
2951 +++ | |
2952 ** `set-auto-mode' now gives the interpreter magic line (if present) | |
2953 precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration | |
2954 will give the buffer XML or SGML mode, based on the new var | |
2955 `magic-mode-alist'. | |
2956 | |
2957 --- | |
2958 ** To manipulate the File menu using easy-menu, you must specify the | |
2959 proper name "file". In previous Emacs versions, you had to specify | |
2960 "files", even though the menu item itself was changed to say "File" | |
2961 several versions ago. | |
2962 | |
2963 +++ | |
2964 ** read-from-minibuffer now accepts an additional argument KEEP-ALL | |
2965 saying to put all inputs in the history list, even empty ones. | |
2966 | |
2967 +++ | |
2968 ** The new variable search-spaces-regexp controls how to search | |
2969 for spaces in a regular expression. If it is non-nil, it should be a | |
2970 regular expression, and any series of spaces stands for that regular | |
2971 expression. If it is nil, spaces stand for themselves. | |
2972 | |
2973 Spaces inside of constructs such as [..] and *, +, ? are never | |
2974 replaced with search-spaces-regexp. | |
2975 | |
2976 --- | |
2977 ** list-buffers-noselect now takes an additional argument, BUFFER-LIST. | |
2978 If it is non-nil, it specifies which buffers to list. | |
2979 | |
2980 --- | |
2981 ** set-buffer-file-coding-system now takes an additional argument, | |
2982 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | |
2983 | |
2984 +++ | |
2985 ** An interactive specification may now use the code letter 'U' to get | |
2986 the up-event that was discarded in case the last key sequence read for a | |
2987 previous 'k' or 'K' argument was a down-event; otherwise nil is used. | |
2988 | |
2989 +++ | |
2990 ** Function `translate-region' accepts also a char-table as TABLE | |
2991 argument. | |
2992 | |
2993 +++ | |
2994 ** Major mode functions now run the new normal hook | |
2995 `after-change-major-mode-hook', at their very end, after the mode hooks. | |
2996 | |
2997 +++ | |
2998 ** `auto-save-file-format' has been renamed to | |
2999 `buffer-auto-save-file-format' and made into a permanent local. | |
3000 | |
3001 +++ | |
3002 ** Both the variable and the function `disabled-command-hook' have | |
3003 been renamed to `disabled-command-function'. The variable | |
3004 `disabled-command-hook' has been kept as an obsolete alias. | |
3005 | |
3006 +++ | |
3007 ** Function `compute-motion' now calculates the usable window | |
3008 width if the WIDTH argument is nil. If the TOPOS argument is nil, | |
3009 the usable window height and width is used. | |
3010 | |
3011 +++ | |
3012 ** `visited-file-modtime' and `calendar-time-from-absolute' now return | |
3013 a list of two integers, instead of a cons. | |
3014 | 2943 |
3015 +++ | 2944 +++ |
3016 ** If a command sets transient-mark-mode to `only', that | 2945 ** If a command sets transient-mark-mode to `only', that |
3017 enables Transient Mark mode for the following command only. | 2946 enables Transient Mark mode for the following command only. |
3018 During that following command, the value of transient-mark-mode | 2947 During that following command, the value of transient-mark-mode |
3019 is `identity'. If it is still `identity' at the end of the command, | 2948 is `identity'. If it is still `identity' at the end of the command, |
3020 it changes to nil. | 2949 it changes to nil. |
3021 | 2950 |
3022 +++ | 2951 +++ |
3023 ** Cleaner way to enter key sequences. | |
3024 | |
3025 You can enter a constant key sequence in a more natural format, the | |
3026 same one used for saving keyboard macros, using the macro `kbd'. For | |
3027 example, | |
3028 | |
3029 (kbd "C-x C-f") => "\^x\^f" | |
3030 | |
3031 +++ | |
3032 ** The sentinel is now called when a network process is deleted with | |
3033 delete-process. The status message passed to the sentinel for a | |
3034 deleted network process is "deleted". The message passed to the | |
3035 sentinel when the connection is closed by the remote peer has been | |
3036 changed to "connection broken by remote peer". | |
3037 | |
3038 +++ | |
3039 ** If the buffer's undo list for the current command gets longer than | |
3040 undo-outer-limit, garbage collection empties it. This is to prevent | |
3041 it from using up the available memory and choking Emacs. | |
3042 | |
3043 +++ | |
3044 ** skip-chars-forward and skip-chars-backward now handle | |
3045 character classes such as [:alpha:], along with individual characters | |
3046 and ranges. | |
3047 | |
3048 +++ | |
3049 ** Function pos-visible-in-window-p now returns the pixel coordinates | |
3050 and partial visiblity state of the corresponding row, if the PARTIALLY | |
3051 arg is non-nil. | |
3052 | |
3053 +++ | |
3054 ** The function `eql' is now available without requiring the CL package. | |
3055 | |
3056 +++ | |
3057 ** The display space :width and :align-to text properties are now | |
3058 supported on text terminals. | |
3059 | |
3060 +++ | |
3061 ** Support for displaying image slices | |
3062 | |
3063 *** New display property (slice X Y WIDTH HEIGHT) may be used with | |
3064 an image property to display only a specific slice of the image. | |
3065 | |
3066 *** Function insert-image has new optional fourth arg to | |
3067 specify image slice (X Y WIDTH HEIGHT). | |
3068 | |
3069 *** New function insert-sliced-image inserts a given image as a | |
3070 specified number of evenly sized slices (rows x columns). | |
3071 | |
3072 +++ | |
3073 ** New line-height and line-spacing properties for newline characters | |
3074 | |
3075 A newline may now have line-height and line-spacing text or overlay | |
3076 properties that control the height of the corresponding display row. | |
3077 | |
3078 If the line-height property value is t, the newline does not | |
3079 contribute to the height of the display row; instead the height of the | |
3080 newline glyph is reduced. Also, a line-spacing property on this | |
3081 newline is ignored. This can be used to tile small images or image | |
3082 slices without adding blank areas between the images. | |
3083 | |
3084 If the line-height property value is a positive integer, the value | |
3085 specifies the minimum line height in pixels. If necessary, the line | |
3086 height it increased by increasing the line's ascent. | |
3087 | |
3088 If the line-height property value is a float, the minimum line height | |
3089 is calculated by multiplying the default frame line height by the | |
3090 given value. | |
3091 | |
3092 If the line-height property value is a cons (FACE . RATIO), the | |
3093 minimum line height is calculated as RATIO * height of named FACE. | |
3094 RATIO is int or float. If FACE is t, it specifies the current face. | |
3095 | |
3096 If the line-height property value is a cons (nil . RATIO), the line | |
3097 height is calculated as RATIO * actual height of the line's contents. | |
3098 | |
3099 If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies | |
3100 the line height as described above, while TOTAL is any of the forms | |
3101 described above and specifies the total height of the line, causing a | |
3102 varying number of pixels to be inserted after the line to make it line | |
3103 exactly that many pixels high. | |
3104 | |
3105 If the line-spacing property value is an positive integer, the value | |
3106 is used as additional pixels to insert after the display line; this | |
3107 overrides the default frame line-spacing and any buffer local value of | |
3108 the line-spacing variable. | |
3109 | |
3110 If the line-spacing property may be a float or cons, the line spacing | |
3111 is calculated as specified above for the line-height property. | |
3112 | |
3113 +++ | |
3114 ** The buffer local line-spacing variable may now have a float value, | |
3115 which is used as a height relative to the default frame line height. | |
3116 | |
3117 +++ | |
3118 ** Enhancements to stretch display properties | |
3119 | |
3120 The display property stretch specification form `(space PROPS)', where | |
3121 PROPS is a property list now allows pixel based width and height | |
3122 specifications, as well as enhanced horizontal text alignment. | |
3123 | |
3124 The value of these properties can now be a (primitive) expression | |
3125 which is evaluated during redisplay. The following expressions | |
3126 are supported: | |
3127 | |
3128 EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM | |
3129 NUM ::= INTEGER | FLOAT | SYMBOL | |
3130 UNIT ::= in | mm | cm | width | height | |
3131 ELEM ::= left-fringe | right-fringe | left-margin | right-margin | |
3132 | scroll-bar | text | |
3133 POS ::= left | center | right | |
3134 FORM ::= (NUM . EXPR) | (OP EXPR ...) | |
3135 OP ::= + | - | |
3136 | |
3137 The form `NUM' specifies a fractional width or height of the default | |
3138 frame font size. The form `(NUM)' specifies an absolute number of | |
3139 pixels. If a symbol is specified, its buffer-local variable binding | |
3140 is used. The `in', `mm', and `cm' units specifies the number of | |
3141 pixels per inch, milli-meter, and centi-meter, resp. The `width' and | |
3142 `height' units correspond to the width and height of the current face | |
3143 font. An image specification corresponds to the width or height of | |
3144 the image. | |
3145 | |
3146 The `left-fringe', `right-fringe', `left-margin', `right-margin', | |
3147 `scroll-bar', and `text' elements specify to the width of the | |
3148 corresponding area of the window. | |
3149 | |
3150 The `left', `center', and `right' positions can be used with :align-to | |
3151 to specify a position relative to the left edge, center, or right edge | |
3152 of the text area. One of the above window elements (except `text') | |
3153 can also be used with :align-to to specify that the position is | |
3154 relative to the left edge of the given area. Once the base offset for | |
3155 a relative position has been set (by the first occurrence of one of | |
3156 these symbols), further occurences of these symbols are interpreted as | |
3157 the width of the area. | |
3158 | |
3159 For example, to align to the center of the left-margin, use | |
3160 :align-to (+ left-margin (0.5 . left-margin)) | |
3161 | |
3162 If no specific base offset is set for alignment, it is always relative | |
3163 to the left edge of the text area. For example, :align-to 0 in a | |
3164 header-line aligns with the first text column in the text area. | |
3165 | |
3166 The value of the form `(NUM . EXPR)' is the value of NUM multiplied by | |
3167 the value of the expression EXPR. For example, (2 . in) specifies a | |
3168 width of 2 inches, while (0.5 . IMAGE) specifies half the width (or | |
3169 height) of the specified image. | |
3170 | |
3171 The form `(+ EXPR ...)' adds up the value of the expressions. | |
3172 The form `(- EXPR ...)' negates or subtracts the value of the expressions. | |
3173 | |
3174 +++ | |
3175 ** Normally, the cursor is displayed at the end of any overlay and | |
3176 text property string that may be present at the current window | |
3177 position. The cursor may now be placed on any character of such | |
3178 strings by giving that character a non-nil `cursor' text property. | |
3179 | |
3180 ** The first face specification element in a defface can specify | |
3181 `default' instead of frame classification. Then its attributes act as | |
3182 defaults that apply to all the subsequent cases (and may be overridden | |
3183 by them). | |
3184 | |
3185 +++ | |
3186 ** New face attribute `min-colors' can be used to tailor the face color | |
3187 to the number of colors supported by a display, and define the | |
3188 foreground and background colors accordingly so that they look best on | |
3189 a terminal that supports at least this many colors. This is now the | |
3190 preferred method for defining default faces in a way that makes a good | |
3191 use of the capabilities of the display. | |
3192 | |
3193 +++ | |
3194 ** Customizable fringe bitmaps | |
3195 | |
3196 *** New function 'define-fringe-bitmap' can now be used to create new | |
3197 fringe bitmaps, as well as change the built-in fringe bitmaps. | |
3198 | |
3199 To change a built-in bitmap, do (require 'fringe) and use the symbol | |
3200 identifing the bitmap such as `left-truncation or `continued-line'. | |
3201 | |
3202 *** New function 'destroy-fringe-bitmap' may be used to destroy a | |
3203 previously created bitmap, or restore a built-in bitmap. | |
3204 | |
3205 *** New function 'set-fringe-bitmap-face' can now be used to set a | |
3206 specific face to be used for a specific fringe bitmap. The face is | |
3207 automatically merged with the `fringe' face, so normally, the face | |
3208 should only specify the foreground color of the bitmap. | |
3209 | |
3210 *** There are new display properties, left-fringe and right-fringe, | |
3211 that can be used to show a specific bitmap in the left or right fringe | |
3212 bitmap of the display line. | |
3213 | |
3214 Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a | |
3215 symbol identifying a fringe bitmap, either built-in or defined with | |
3216 `define-fringe-bitmap', and FACE is an optional face name to be used | |
3217 for displaying the bitmap instead of the default `fringe' face. | |
3218 When specified, FACE is automatically merged with the `fringe' face. | |
3219 | |
3220 *** New function `fringe-bitmaps-at-pos' returns the current fringe | |
3221 bitmaps in the display line at a given buffer position. | |
3222 | |
3223 +++ | |
3224 ** Multiple overlay arrows can now be defined and managed via the new | |
3225 variable `overlay-arrow-variable-list'. It contains a list of | |
3226 varibles which contain overlay arrow position markers, including | |
3227 the original `overlay-arrow-position' variable. | |
3228 | |
3229 Each variable on this list may have individual `overlay-arrow-string' | |
3230 and `overlay-arrow-bitmap' properties that specify an overlay arrow | |
3231 string (for non-window terminals) or fringe bitmap (for window | |
3232 systems) to display at the corresponding overlay arrow position. | |
3233 If either property is not set, the default `overlay-arrow-string' or | |
3234 'overlay-arrow-fringe-bitmap' will be used. | |
3235 | |
3236 +++ | |
3237 ** The default value of `sentence-end' is now defined using the new | |
3238 variable `sentence-end-without-space' which contains such characters | |
3239 that end a sentence without following spaces. | |
3240 | |
3241 +++ | |
3242 ** The function `sentence-end' should be used to obtain the value of | |
3243 the variable `sentence-end'. If the variable `sentence-end' is nil, | |
3244 then this function returns the regexp constructed from the variables | |
3245 `sentence-end-without-period', `sentence-end-double-space' and | |
3246 `sentence-end-without-space'. | |
3247 | |
3248 +++ | |
3249 ** The flags, width, and precision options for %-specifications in function | |
3250 `format' are now documented. Some flags that were accepted but not | |
3251 implemented (such as "*") are no longer accepted. | |
3252 | |
3253 +++ | |
3254 ** New function `delete-dups' destructively removes `equal' duplicates | |
3255 from a list. Of several `equal' occurrences of an element in the list, | |
3256 the first one is kept. | |
3257 | |
3258 +++ | |
3259 ** `declare' is now a macro. This change was made mostly for | |
3260 documentation purposes and should have no real effect on Lisp code. | |
3261 | |
3262 +++ | |
3263 ** The new hook `before-save-hook' is invoked by `basic-save-buffer' | 2952 ** The new hook `before-save-hook' is invoked by `basic-save-buffer' |
3264 before saving buffers. This allows packages to perform various final | 2953 before saving buffers. This allows packages to perform various final |
3265 tasks, for example; it can be used by the copyright package to make | 2954 tasks, for example; it can be used by the copyright package to make |
3266 sure saved files have the current year in any copyright headers. | 2955 sure saved files have the current year in any copyright headers. |
3267 | 2956 |
3268 +++ | 2957 +++ |
3269 ** The function `insert-for-yank' now supports strings where the | 2958 ** If a buffer sets buffer-save-without-query to non-nil, |
3270 `yank-handler' property does not span the first character of the | 2959 save-some-buffers will always save that buffer without asking |
3271 string. The old behavior is available if you call | 2960 (if it's modified). |
3272 `insert-for-yank-1' instead. | 2961 |
3273 | 2962 --- |
3274 +++ | 2963 ** list-buffers-noselect now takes an additional argument, BUFFER-LIST. |
3275 ** New function `get-char-property-and-overlay' accepts the same | 2964 If it is non-nil, it specifies which buffers to list. |
3276 arguments as `get-char-property' and returns a cons whose car is the | |
3277 return value of `get-char-property' called with those arguments and | |
3278 whose cdr is the overlay in which the property was found, or nil if | |
3279 it was found as a text property or not found at all. | |
3280 | |
3281 +++ (lispref) | |
3282 ??? (man) | |
3283 ** The mouse pointer shape in void text areas (i.e. after the end of a | |
3284 line or below the last line in the buffer) of the text window is now | |
3285 controlled by the new variable `void-text-area-pointer'. The default | |
3286 is to use the `arrow' (non-text) pointer. Other choices are `text' | |
3287 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | |
3288 | |
3289 +++ | |
3290 ** The mouse pointer shape over an image can now be controlled by the | |
3291 :pointer image property. | |
3292 | |
3293 +++ | |
3294 ** The mouse pointer shape over ordinary text or images may now be | |
3295 controlled/overriden via the `pointer' text property. | |
3296 | |
3297 +++ | |
3298 ** Images may now have an associated image map via the :map property. | |
3299 | |
3300 An image map is an alist where each element has the format (AREA ID PLIST). | |
3301 An AREA is specified as either a rectangle, a circle, or a polygon: | |
3302 A rectangle is a cons (rect . ((x0 . y0) . (x1 . y1))) specifying the | |
3303 pixel coordinates of the upper left and bottom right corners. | |
3304 A circle is a cons (circle . ((x0 . y0) . r)) specifying the center | |
3305 and the radius of the circle; r may be a float or integer. | |
3306 A polygon is a cons (poly . [x0 y0 x1 y1 ...]) where each pair in the | |
3307 vector describes one corner in the polygon. | |
3308 | |
3309 When the mouse pointer is above a hot-spot area of an image, the | |
3310 PLIST of that hot-spot is consulted; if it contains a `help-echo' | |
3311 property it defines a tool-tip for the hot-spot, and if it contains | |
3312 a `pointer' property, it defines the shape of the mouse cursor when | |
3313 it is over the hot-spot. See the variable 'void-area-text-pointer' | |
3314 for possible pointer shapes. | |
3315 | |
3316 When you click the mouse when the mouse pointer is over a hot-spot, | |
3317 an event is composed by combining the ID of the hot-spot with the | |
3318 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. | |
3319 | |
3320 ** Mouse event enhancements: | |
3321 | |
3322 +++ | |
3323 *** Mouse clicks on fringes now generates left-fringe or right-fringes | |
3324 events, rather than a text area click event. | |
3325 | |
3326 +++ | |
3327 *** Mouse clicks in the left and right marginal areas now includes a | |
3328 sensible buffer position corresponding to the first character in the | |
3329 corresponding text row. | |
3330 | |
3331 +++ | |
3332 *** Function `mouse-set-point' now works for events outside text area. | |
3333 | |
3334 +++ | |
3335 *** Mouse events now includes buffer position for all event types. | |
3336 | |
3337 +++ | |
3338 *** `posn-point' now returns buffer position for non-text area events. | |
3339 | |
3340 +++ | |
3341 *** New function `posn-area' returns window area clicked on (nil means | |
3342 text area). | |
3343 | |
3344 +++ | |
3345 *** Mouse events include actual glyph column and row for all event types. | |
3346 | |
3347 +++ | |
3348 *** New function `posn-actual-col-row' returns actual glyph coordinates. | |
3349 | |
3350 +++ | |
3351 *** Mouse events may now include image object in addition to string object. | |
3352 | |
3353 +++ | |
3354 *** Mouse events include relative x and y pixel coordinates relative to | |
3355 the top left corner of the object (image or character) clicked on. | |
3356 | |
3357 +++ | |
3358 *** Mouse events include the pixel width and height of the object | |
3359 (image or character) clicked on. | |
3360 | |
3361 +++ | |
3362 *** New functions 'posn-object', 'posn-object-x-y', and | |
3363 'posn-object-width-height' return the image or string object of a mouse | |
3364 click, the x and y pixel coordinates relative to the top left corner | |
3365 of that object, and the total width and height of that object. | |
3366 | |
3367 +++ | |
3368 ** New function `force-window-update' can initiate a full redisplay of | |
3369 one or all windows. Normally, this is not needed as changes in window | |
3370 contents are detected automatically. However, certain implicit | |
3371 changes to mode lines, header lines, or display properties may require | |
3372 forcing an explicit window update. | |
3373 | |
3374 --- | |
3375 ** New function `redirect-debugging-output' can be used to redirect | |
3376 debugging output on the stderr file handle to a file. | |
3377 | |
3378 +++ | |
3379 ** `split-string' now includes null substrings in the returned list if | |
3380 the optional argument SEPARATORS is non-nil and there are matches for | |
3381 SEPARATORS at the beginning or end of the string. If SEPARATORS is | |
3382 nil, or if the new optional third argument OMIT-NULLS is non-nil, all | |
3383 empty matches are omitted from the returned list. | |
3384 | |
3385 +++ | |
3386 ** `makehash' is now obsolete. Use `make-hash-table' instead. | |
3387 | |
3388 +++ | |
3389 ** If optional third argument APPEND to `add-to-list' is non-nil, a | |
3390 new element gets added at the end of the list instead of at the | |
3391 beginning. This change actually occurred in Emacs-21.1, but was not | |
3392 documented. | |
3393 | |
3394 ** Major modes can define `eldoc-print-current-symbol-info-function' | |
3395 locally to provide Eldoc functionality by some method appropriate to | |
3396 the language. | |
3397 | |
3398 --- | |
3399 ** New coding system property `mime-text-unsuitable' indicates that | |
3400 the coding system's `mime-charset' is not suitable for MIME text | |
3401 parts, e.g. utf-16. | |
3402 | |
3403 +++ | |
3404 ** The argument to forward-word, backward-word, forward-to-indentation | |
3405 and backward-to-indentation is now optional, and defaults to 1. | |
3406 | |
3407 +++ | |
3408 ** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able | |
3409 to display CHAR. More precisely, if the selected frame's fontset has | |
3410 a font to display the character set that CHAR belongs to. | |
3411 | |
3412 Fontsets can specify a font on a per-character basis; when the fontset | |
3413 does that, this value may not be accurate. | |
3414 | |
3415 +++ | |
3416 ** The new function `window-inside-edges' returns the edges of the | |
3417 actual text portion of the window, not including the scroll bar or | |
3418 divider line, the fringes, the display margins, the header line and | |
3419 the mode line. | |
3420 | |
3421 +++ | |
3422 ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' | |
3423 return window edges in units of pixels, rather than columns and lines. | |
3424 | 2965 |
3425 +++ | 2966 +++ |
3426 ** The kill-buffer-hook is now permanent-local. | 2967 ** The kill-buffer-hook is now permanent-local. |
3427 | 2968 |
3428 +++ | 2969 +++ |
3429 ** `select-window' takes an optional second argument `norecord', like | 2970 ** `auto-save-file-format' has been renamed to |
3430 `switch-to-buffer'. | 2971 `buffer-auto-save-file-format' and made into a permanent local. |
3431 | 2972 |
3432 +++ | 2973 +++ |
3433 ** The new macro `with-selected-window' temporarily switches the | 2974 ** Functions `file-name-sans-extension' and `file-name-extension' now |
3434 selected window without impacting the order of buffer-list. | 2975 ignore the leading dots in file names, so that file names such as |
3435 | 2976 `.emacs' are treated as extensionless. |
3436 +++ | 2977 |
3437 ** The `keymap' property now also works at the ends of overlays and | 2978 +++ |
3438 text-properties, according to their stickiness. This also means that it | 2979 ** copy-file now takes an additional option arg MUSTBENEW. |
3439 works with empty overlays. The same hold for the `local-map' property. | 2980 |
3440 | 2981 This argument works like the MUSTBENEW argument of write-file. |
3441 +++ | 2982 |
3442 ** (map-keymap FUNCTION KEYMAP) applies the function to each binding | 2983 +++ |
3443 in the keymap. | 2984 ** If the second argument to `copy-file' is the name of a directory, |
3444 | 2985 the file is copied to that directory instead of signaling an error. |
3445 --- | 2986 |
3446 ** VC changes for backends: | 2987 +++ |
3447 *** (vc-switches BACKEND OPERATION) is a new function for use by backends. | 2988 ** `visited-file-modtime' and `calendar-time-from-absolute' now return |
3448 *** The new `find-version' backend function replaces the `destfile' | 2989 a list of two integers, instead of a cons. |
3449 parameter of the `checkout' backend function. | |
3450 Old code still works thanks to a default `find-version' behavior that | |
3451 uses the old `destfile' parameter. | |
3452 | |
3453 +++ | |
3454 ** The new macro dynamic-completion-table supports using functions | |
3455 as a dynamic completion table. | |
3456 | |
3457 (dynamic-completion-table FUN) | |
3458 | |
3459 FUN is called with one argument, the string for which completion is required, | |
3460 and it should return an alist containing all the intended possible | |
3461 completions. This alist may be a full list of possible completions so that FUN | |
3462 can ignore the value of its argument. If completion is performed in the | |
3463 minibuffer, FUN will be called in the buffer from which the minibuffer was | |
3464 entered. dynamic-completion-table then computes the completion. | |
3465 | |
3466 +++ | |
3467 ** The new macro lazy-completion-table initializes a variable | |
3468 as a lazy completion table. | |
3469 | |
3470 (lazy-completion-table VAR FUN &rest ARGS) | |
3471 | |
3472 If the completion table VAR is used for the first time (e.g., by passing VAR | |
3473 as an argument to `try-completion'), the function FUN is called with arguments | |
3474 ARGS. FUN must return the completion table that will be stored in VAR. If | |
3475 completion is requested in the minibuffer, FUN will be called in the buffer | |
3476 from which the minibuffer was entered. The return value of | |
3477 `lazy-completion-table' must be used to initialize the value of VAR. | |
3478 | |
3479 +++ | |
3480 ** `minor-mode-list' now holds a list of minor mode commands. | |
3481 | |
3482 +++ | |
3483 ** The new function `modify-all-frames-parameters' modifies parameters | |
3484 for all (existing and future) frames. | |
3485 | |
3486 +++ | |
3487 ** `sit-for' can now be called with args (SECONDS &optional NODISP). | |
3488 | |
3489 +++ | |
3490 ** New standard font-lock face `font-lock-preprocessor-face'. | |
3491 | |
3492 +++ | |
3493 ** The macro `with-syntax-table' does not copy the table any more. | |
3494 | |
3495 +++ | |
3496 ** The variable `face-font-rescale-alist' specifies how much larger | |
3497 (or smaller) font we should use. For instance, if the value is | |
3498 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 | |
3499 point, we actually use a font of 13 point if the font matches | |
3500 SOME-FONTNAME-PATTERN. | |
3501 | |
3502 +++ | |
3503 ** The function `number-sequence' returns a list of equally-separated | |
3504 numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). | |
3505 By default, the separation is 1, but you can specify a different separation | |
3506 as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). | |
3507 | 2990 |
3508 +++ | 2991 +++ |
3509 ** `file-chase-links' now takes an optional second argument LIMIT which | 2992 ** `file-chase-links' now takes an optional second argument LIMIT which |
3510 specifies the maximum number of links to chase through. If after that | 2993 specifies the maximum number of links to chase through. If after that |
3511 many iterations the file name obtained is still a symbolic link, | 2994 many iterations the file name obtained is still a symbolic link, |
3512 `file-chase-links' returns it anyway. | 2995 `file-chase-links' returns it anyway. |
3513 | 2996 |
3514 --- | 2997 +++ |
3515 ** `set-fontset-font', `fontset-info', `fontset-font' now operate on | 2998 ** The function `commandp' takes an additional optional |
3516 the default fontset if the argument NAME is nil.. | 2999 argument. If it is non-nil, then `commandp' checks |
3517 | 3000 for a function that could be called with `call-interactively', |
3518 +++ | 3001 and does not return t for keyboard macros. |
3519 ** The escape sequence \s is now interpreted as a SPACE character, | 3002 |
3520 unless it is followed by a `-' in a character constant (e.g. ?\s-A), | 3003 +++ |
3521 in which case it is still interpreted as the super modifier. | 3004 ** An interactive specification may now use the code letter 'U' to get |
3522 In strings, \s is always interpreted as a space. | 3005 the up-event that was discarded in case the last key sequence read for a |
3523 | 3006 previous 'k' or 'K' argument was a down-event; otherwise nil is used. |
3524 +++ | 3007 |
3525 ** New function `set-process-filter-multibyte' sets the multibyteness | 3008 --- |
3526 of a string given to a process's filter. | 3009 ** Functions y-or-n-p, read-char, read-key-sequence and the like, that |
3527 | 3010 display a prompt but don't use the minibuffer, now display the prompt |
3528 +++ | 3011 using the text properties (esp. the face) of the prompt string. |
3529 ** New function `process-filter-multibyte-p' returns t if | 3012 |
3530 a string given to a process's filter is multibyte. | 3013 +++ |
3531 | 3014 ** read-from-minibuffer now accepts an additional argument KEEP-ALL |
3532 +++ | 3015 saying to put all inputs in the history list, even empty ones. |
3533 ** A filter function of a process is called with a multibyte string if | |
3534 the filter's multibyteness is t. That multibyteness is decided by the | |
3535 value of `default-enable-multibyte-characters' when the process is | |
3536 created and can be changed later by `set-process-filter-multibyte'. | |
3537 | |
3538 +++ | |
3539 ** If a process's coding system is raw-text or no-conversion and its | |
3540 buffer is multibyte, the output of the process is at first converted | |
3541 to multibyte by `string-to-multibyte' then inserted in the buffer. | |
3542 Previously, it was converted to multibyte by `string-as-multibyte', | |
3543 which was not compatible with the behavior of file reading. | |
3544 | |
3545 +++ | |
3546 ** New function `string-to-multibyte' converts a unibyte string to a | |
3547 multibyte string with the same individual character codes. | |
3548 | |
3549 +++ | |
3550 ** New variables `gc-elapsed' and `gcs-done' provide extra information | |
3551 on garbage collection. | |
3552 | |
3553 +++ | |
3554 ** New function `decode-coding-inserted-region' decodes a region as if | |
3555 it is read from a file without decoding. | |
3556 | |
3557 +++ | |
3558 ** New function `locale-info' accesses locale information. | |
3559 | |
3560 +++ | |
3561 ** `save-selected-window' now saves and restores the selected window | |
3562 of every frame. This way, it restores everything that can be changed | |
3563 by calling `select-window'. | |
3564 | |
3565 --- | |
3566 ** `easy-menu-define' now allows you to use nil for the symbol name | |
3567 if you don't need to give the menu a name. If you install the menu | |
3568 into other keymaps right away (MAPS is non-nil), it usually doesn't | |
3569 need to have a name. | |
3570 | |
3571 ** Byte compiler changes: | |
3572 | |
3573 --- | |
3574 *** `(featurep 'xemacs)' is treated by the compiler as nil. This | |
3575 helps to avoid noisy compiler warnings in code meant to run under both | |
3576 Emacs and XEmacs and may sometimes make the result significantly more | |
3577 efficient. Since byte code from recent versions of XEmacs won't | |
3578 generally run in Emacs and vice versa, this optimization doesn't lose | |
3579 you anything. | |
3580 | |
3581 +++ | |
3582 *** You can avoid warnings for possibly-undefined symbols with a | |
3583 simple convention that the compiler understands. (This is mostly | |
3584 useful in code meant to be portable to different Emacs versions.) | |
3585 Write forms like the following, or code that macroexpands into such | |
3586 forms: | |
3587 | |
3588 (if (fboundp 'foo) <then> <else>) | |
3589 (if (boundp 'foo) <then> <else) | |
3590 | |
3591 In the first case, using `foo' as a function inside the <then> form | |
3592 won't produce a warning if it's not defined as a function, and in the | |
3593 second case, using `foo' as a variable won't produce a warning if it's | |
3594 unbound. The test must be in exactly one of the above forms (after | |
3595 macro expansion), but such tests may be nested. Note that `when' and | |
3596 `unless' expand to `if', but `cond' doesn't. | |
3597 | |
3598 +++ | |
3599 *** The new macro `with-no-warnings' suppresses all compiler warnings | |
3600 inside its body. In terms of execution, it is equivalent to `progn'. | |
3601 | |
3602 +++ | |
3603 ** The new translation table `translation-table-for-input' | |
3604 is used for customizing self-insertion. The character to | |
3605 be inserted is translated through it. | |
3606 | |
3607 +++ | |
3608 ** `load-history' can now have elements of the form (t . FUNNAME), | |
3609 which means FUNNAME was previously defined as an autoload (before the | |
3610 current file redefined it). | |
3611 | |
3612 +++ | |
3613 ** `load-history' now records (defun . FUNNAME) when a function is | |
3614 defined. For a variable, it records just the variable name. | |
3615 | |
3616 +++ | |
3617 ** New Lisp library testcover.el works with edebug to help you determine | |
3618 whether you've tested all your Lisp code. Function testcover-start | |
3619 instruments all functions in a given file. Then test your code. Function | |
3620 testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to | |
3621 show where coverage is lacking. Command testcover-next-mark (bind it to | |
3622 a key!) will move point forward to the next spot that has a splotch. | |
3623 | |
3624 *** Normally, a red splotch indicates the form was never completely evaluated; | |
3625 a brown splotch means it always evaluated to the same value. The red | |
3626 splotches are skipped for forms that can't possibly complete their evaluation, | |
3627 such as `error'. The brown splotches are skipped for forms that are expected | |
3628 to always evaluate to the same value, such as (setq x 14). | |
3629 | |
3630 *** For difficult cases, you can add do-nothing macros to your code to help | |
3631 out the test coverage tool. The macro `noreturn' suppresses a red splotch. | |
3632 It is an error if the argument to `noreturn' does return. The macro 1value | |
3633 suppresses a brown splotch for its argument. This macro is a no-op except | |
3634 during test-coverage -- then it signals an error if the argument actually | |
3635 returns differing values. | |
3636 | |
3637 +++ | |
3638 ** New function unsafep returns nil if the given Lisp form can't possibly | |
3639 do anything dangerous; otherwise it returns a reason why the form might be | |
3640 unsafe (calls dangerous function, alters global variable, etc). | |
3641 | |
3642 +++ | |
3643 ** The new variable `print-continuous-numbering', when non-nil, says | |
3644 that successive calls to print functions should use the same | |
3645 numberings for circular structure references. This is only relevant | |
3646 when `print-circle' is non-nil. | |
3647 | |
3648 When you bind `print-continuous-numbering' to t, you should | |
3649 also bind `print-number-table' to nil. | |
3650 | |
3651 +++ | |
3652 ** When using non-toolkit scroll bars with the default width, | |
3653 the scroll-bar-width frame parameter value is nil. | |
3654 | |
3655 +++ | |
3656 ** The new function copy-abbrev-table returns a new abbrev table that | |
3657 is a copy of a given abbrev table. | |
3658 | |
3659 +++ | |
3660 ** The option --script FILE runs Emacs in batch mode and loads FILE. | |
3661 It is useful for writing Emacs Lisp shell script files, because they | |
3662 can start with this line: | |
3663 | |
3664 #!/usr/bin/emacs --script | |
3665 | |
3666 +++ | |
3667 ** The option --directory DIR now modifies `load-path' immediately. | |
3668 Directories are added to the front of `load-path' in the order they | |
3669 appear on the command line. For example, with this command line: | |
3670 | |
3671 emacs -batch -L .. -L /tmp --eval "(require 'foo)" | |
3672 | |
3673 Emacs looks for library `foo' in the parent directory, then in /tmp, then | |
3674 in the other directories in `load-path'. (-L is short for --directory.) | |
3675 | |
3676 +++ | |
3677 ** A function's docstring can now hold the function's usage info on | |
3678 its last line. It should match the regexp "\n\n(fn.*)\\'". | |
3679 | |
3680 --- | |
3681 ** New CCL functions `lookup-character' and `lookup-integer' access | |
3682 hash tables defined by the Lisp function `define-translation-hash-table'. | |
3683 | |
3684 +++ | |
3685 ** The new function `minibufferp' returns non-nil if its optional buffer | |
3686 argument is a minibuffer. If the argument is omitted it defaults to | |
3687 the current buffer. | |
3688 | |
3689 +++ | |
3690 ** There is a new Warnings facility; see the functions `warn' | |
3691 and `display-warning'. | |
3692 | |
3693 +++ | |
3694 ** The functions all-completions and try-completion now accept lists | |
3695 of strings as well as hash-tables additionally to alists, obarrays | |
3696 and functions. Furthermore, the function `test-completion' is now | |
3697 exported to Lisp. The keys in alists and hash tables may be either | |
3698 strings or symbols, which are automatically converted with to strings. | |
3699 | |
3700 --- | |
3701 ** When pure storage overflows while dumping, Emacs now prints how | |
3702 much pure storage it will approximately need. | |
3703 | |
3704 +++ | |
3705 ** The new variable `auto-coding-functions' lets you specify functions | |
3706 to examine a file being visited and deduce the proper coding system | |
3707 for it. (If the coding system is detected incorrectly for a specific | |
3708 file, you can put a `coding:' tags to override it.) | |
3709 | |
3710 --- | |
3711 ** The new function `merge-coding-systems' fills in unspecified aspects | |
3712 of one coding system from another coding system. | |
3713 | |
3714 +++ | |
3715 ** The variable `safe-local-eval-forms' specifies a list of forms that | |
3716 are ok to evaluate when they appear in an `eval' local variables | |
3717 specification. Normally Emacs asks for confirmation before evaluating | |
3718 such a form, but if the form appears in this list, no confirmation is | |
3719 needed. | |
3720 | |
3721 --- | |
3722 ** If a function has a non-nil `safe-local-eval-function' property, | |
3723 that means it is ok to evaluate some calls to that function when it | |
3724 appears in an `eval' local variables specification. If the property | |
3725 is t, then any form calling that function with constant arguments is | |
3726 ok. If the property is a function or list of functions, they are called | |
3727 with the form as argument, and if any returns t, the form is ok to call. | |
3728 | |
3729 If the form is not "ok to call", that means Emacs asks for | |
3730 confirmation as before. | |
3731 | |
3732 +++ | |
3733 ** Controlling the default left and right fringe widths. | |
3734 | |
3735 The default left and right fringe widths for all windows of a frame | |
3736 can now be controlled by setting the `left-fringe' and `right-fringe' | |
3737 frame parameters to an integer value specifying the width in pixels. | |
3738 Setting the width to 0 effectively removes the corresponding fringe. | |
3739 | |
3740 The actual default fringe widths for the frame may deviate from the | |
3741 specified widths, since the combined fringe widths must match an | |
3742 integral number of columns. The extra width is distributed evenly | |
3743 between the left and right fringe. For force a specific fringe width, | |
3744 specify the width as a negative integer (if both widths are negative, | |
3745 only the left fringe gets the specified width). | |
3746 | |
3747 Setting the width to nil (the default), restores the default fringe | |
3748 width which is the minimum number of pixels necessary to display any | |
3749 of the currently defined fringe bitmaps. The width of the built-in | |
3750 fringe bitmaps is 8 pixels. | |
3751 | |
3752 +++ | |
3753 ** Per-window fringes settings | |
3754 | |
3755 Windows can now have their own individual fringe widths and position | |
3756 settings. | |
3757 | |
3758 To control the fringe widths of a window, either set the buffer-local | |
3759 variables `left-fringe-width', `right-fringe-width', or call | |
3760 `set-window-fringes'. | |
3761 | |
3762 To control the fringe position in a window, that is, whether fringes | |
3763 are positioned between the display margins and the window's text area, | |
3764 or at the edges of the window, either set the buffer-local variable | |
3765 `fringes-outside-margins' or call `set-window-fringes'. | |
3766 | |
3767 The function `window-fringes' can be used to obtain the current | |
3768 settings. To make `left-fringe-width', `right-fringe-width', and | |
3769 `fringes-outside-margins' take effect, you must set them before | |
3770 displaying the buffer in a window, or use `set-window-buffer' to force | |
3771 an update of the display margins. | |
3772 | |
3773 +++ | |
3774 ** Per-window vertical scroll-bar settings | |
3775 | |
3776 Windows can now have their own individual scroll-bar settings | |
3777 controlling the width and position of scroll-bars. | |
3778 | |
3779 To control the scroll-bar of a window, either set the buffer-local | |
3780 variables `scroll-bar-mode' and `scroll-bar-width', or call | |
3781 `set-window-scroll-bars'. The function `window-scroll-bars' can be | |
3782 used to obtain the current settings. To make `scroll-bar-mode' and | |
3783 `scroll-bar-width' take effect, you must set them before displaying | |
3784 the buffer in a window, or use `set-window-buffer' to force an update | |
3785 of the display margins. | |
3786 | |
3787 +++ | |
3788 ** The function `set-window-buffer' now has an optional third argument | |
3789 KEEP-MARGINS which will preserve the window's current margin, fringe, | |
3790 and scroll-bar settings if non-nil. | |
3791 | |
3792 +++ | |
3793 ** Renamed hooks to better follow the naming convention: | |
3794 find-file-hooks to find-file-hook, | |
3795 find-file-not-found-hooks to find-file-not-found-functions, | |
3796 write-file-hooks to write-file-functions, | |
3797 write-contents-hooks to write-contents-functions, | |
3798 x-lost-selection-hooks to x-lost-selection-functions, | |
3799 x-sent-selection-hooks to x-sent-selection-functions. | |
3800 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). | |
3801 | |
3802 +++ | |
3803 ** The new variable `delete-frame-functions' replaces `delete-frame-hook'. | |
3804 It was renamed to follow the naming conventions for abnormal hooks. The old | |
3805 name remains available as an alias, but has been marked obsolete. | |
3806 | 3016 |
3807 +++ | 3017 +++ |
3808 ** The `read-file-name' function now takes an additional argument which | 3018 ** The `read-file-name' function now takes an additional argument which |
3809 specifies a predicate which the file name read must satify. The | 3019 specifies a predicate which the file name read must satify. The |
3810 new variable `read-file-name-predicate' contains the predicate argument | 3020 new variable `read-file-name-predicate' contains the predicate argument |
3824 ** The new function `read-directory-name' can be used instead of | 3034 ** The new function `read-directory-name' can be used instead of |
3825 `read-file-name' to read a directory name; when used, completion | 3035 `read-file-name' to read a directory name; when used, completion |
3826 will only show directories. | 3036 will only show directories. |
3827 | 3037 |
3828 +++ | 3038 +++ |
3829 ** The new function `file-remote-p' tests a file name and returns | 3039 ** The new variable search-spaces-regexp controls how to search |
3830 non-nil if it specifies a remote file (one that Emacs accesses using | 3040 for spaces in a regular expression. If it is non-nil, it should be a |
3831 its own special methods and not directly through the file system). | 3041 regular expression, and any series of spaces stands for that regular |
3832 The value in that case is an identifier for the remote file system. | 3042 expression. If it is nil, spaces stand for themselves. |
3833 | 3043 |
3834 --- | 3044 Spaces inside of constructs such as [..] and *, +, ? are never |
3835 ** When a Lisp file uses CL functions at run-time, compiling the file | 3045 replaced with search-spaces-regexp. |
3836 now issues warnings about these calls, unless the file performs | 3046 |
3837 (require 'cl) when loaded. | 3047 +++ |
3838 | 3048 ** There are now two new regular expression operators, \_< and \_>, |
3839 +++ | 3049 for matching the beginning and end of a symbol. A symbol is a |
3840 ** The `defmacro' form may contain declarations specifying how to | 3050 non-empty sequence of either word or symbol constituent characters, as |
3841 indent the macro in Lisp mode and how to debug it with Edebug. The | 3051 specified by the syntax table. |
3842 syntax of defmacro has been extended to | 3052 |
3843 | 3053 +++ |
3844 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) | 3054 ** skip-chars-forward and skip-chars-backward now handle |
3845 | 3055 character classes such as [:alpha:], along with individual characters |
3846 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The | 3056 and ranges. |
3847 declaration specifiers supported are: | 3057 |
3848 | 3058 --- |
3849 (indent INDENT) | 3059 ** In `replace-match', the replacement text no longer inherits |
3850 Set NAME's `lisp-indent-function' property to INDENT. | 3060 properties from surrounding text. |
3851 | 3061 |
3852 (edebug DEBUG) | 3062 +++ |
3853 Set NAME's `edebug-form-spec' property to DEBUG. (This is | 3063 ** The list returned by `(match-data t)' now has the buffer as a final |
3854 equivalent to writing a `def-edebug-spec' for the macro. | 3064 element, if the last match was on a buffer. `set-match-data' |
3855 | 3065 accepts such a list for restoring the match state. |
3856 +++ | 3066 |
3857 ** Interactive commands can be remapped through keymaps. | 3067 +++ |
3068 ** Variable aliases have been implemented: | |
3069 | |
3070 *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | |
3071 | |
3072 This function defines the symbol ALIAS-VAR as a variable alias for | |
3073 symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR | |
3074 returns the value of BASE-VAR, and changing the value of ALIAS-VAR | |
3075 changes the value of BASE-VAR. | |
3076 | |
3077 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | |
3078 the same documentation as BASE-VAR. | |
3079 | |
3080 *** indirect-variable VARIABLE | |
3081 | |
3082 This function returns the variable at the end of the chain of aliases | |
3083 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | |
3084 defined as an alias, the function returns VARIABLE. | |
3085 | |
3086 It might be noteworthy that variables aliases work for all kinds of | |
3087 variables, including buffer-local and frame-local variables. | |
3088 | |
3089 +++ | |
3090 *** The macro define-obsolete-variable-alias combines defvaralias and | |
3091 make-obsolete-variable. The macro define-obsolete-function-alias | |
3092 combines defalias and make-obsolete. | |
3093 | |
3094 +++ | |
3095 ** Enhancements to keymaps. | |
3096 | |
3097 *** Cleaner way to enter key sequences. | |
3098 | |
3099 You can enter a constant key sequence in a more natural format, the | |
3100 same one used for saving keyboard macros, using the macro `kbd'. For | |
3101 example, | |
3102 | |
3103 (kbd "C-x C-f") => "\^x\^f" | |
3104 | |
3105 *** Interactive commands can be remapped through keymaps. | |
3858 | 3106 |
3859 This is an alternative to using defadvice or substitute-key-definition | 3107 This is an alternative to using defadvice or substitute-key-definition |
3860 to modify the behavior of a key binding using the normal keymap | 3108 to modify the behavior of a key binding using the normal keymap |
3861 binding and lookup functionality. | 3109 binding and lookup functionality. |
3862 | 3110 |
3908 | 3156 |
3909 - The new variable `this-original-command' contains the original | 3157 - The new variable `this-original-command' contains the original |
3910 command before remapping. It is equal to `this-command' when the | 3158 command before remapping. It is equal to `this-command' when the |
3911 command was not remapped. | 3159 command was not remapped. |
3912 | 3160 |
3913 +++ | 3161 *** If text has a `keymap' property, that keymap takes precedence |
3914 ** New variable emulation-mode-map-alists. | 3162 over minor mode keymaps. |
3163 | |
3164 *** The `keymap' property now also works at the ends of overlays and | |
3165 text-properties, according to their stickiness. This also means that it | |
3166 works with empty overlays. The same hold for the `local-map' property. | |
3167 | |
3168 *** Dense keymaps now handle inheritance correctly. | |
3169 Previously a dense keymap would hide all of the simple-char key | |
3170 bindings of the parent keymap. | |
3171 | |
3172 *** `define-key-after' now accepts keys longer than 1. | |
3173 | |
3174 *** New function `current-active-maps' returns a list of currently | |
3175 active keymaps. | |
3176 | |
3177 *** New function `describe-buffer-bindings' inserts the list of all | |
3178 defined keys and their definitions. | |
3179 | |
3180 *** New function `keymap-prompt' returns the prompt-string of a keymap | |
3181 | |
3182 *** (map-keymap FUNCTION KEYMAP) applies the function to each binding | |
3183 in the keymap. | |
3184 | |
3185 *** New variable emulation-mode-map-alists. | |
3915 | 3186 |
3916 Lisp packages using many minor mode keymaps can now maintain their own | 3187 Lisp packages using many minor mode keymaps can now maintain their own |
3917 keymap alist separate from minor-mode-map-alist by adding their keymap | 3188 keymap alist separate from minor-mode-map-alist by adding their keymap |
3918 alist to this list. | 3189 alist to this list. |
3919 | 3190 |
3974 will lead to undesirable results, so don't let it happen; the first | 3245 will lead to undesirable results, so don't let it happen; the first |
3975 change group you start for any given buffer should be the last one | 3246 change group you start for any given buffer should be the last one |
3976 finished. | 3247 finished. |
3977 | 3248 |
3978 +++ | 3249 +++ |
3979 ** New variable char-property-alias-alist. | 3250 ** Progress reporters. |
3980 | 3251 The new functions `make-progress-reporter', `progress-reporter-update', |
3981 This variable allows you to create alternative names for text | 3252 `progress-reporter-force-update', `progress-reporter-done', and |
3982 properties. It works at the same level as `default-text-properties', | 3253 `dotimes-with-progress-reporter' provide a simple and efficient way for |
3983 although it applies to overlays as well. This variable was introduced | 3254 a command to present progress messages for the user. |
3984 to implement the `font-lock-face' property. | |
3985 | |
3986 +++ | |
3987 ** New special text property `font-lock-face'. | |
3988 | |
3989 This property acts like the `face' property, but it is controlled by | |
3990 M-x font-lock-mode. It is not, strictly speaking, a builtin text | |
3991 property. Instead, it is implemented inside font-core.el, using the | |
3992 new variable `char-property-alias-alist'. | |
3993 | |
3994 +++ | |
3995 ** New function remove-list-of-text-properties. | |
3996 | |
3997 The new function `remove-list-of-text-properties' is almost the same | |
3998 as `remove-text-properties'. The only difference is that it takes | |
3999 a list of property names as argument rather than a property list. | |
4000 | |
4001 +++ | |
4002 ** New function insert-for-yank. | |
4003 | |
4004 This function normally works like `insert' but removes the text | |
4005 properties in the `yank-excluded-properties' list. However, if the | |
4006 inserted text has a `yank-handler' text property on the first | |
4007 character of the string, the insertion of the text may be modified in | |
4008 a number of ways. See the description of `yank-handler' below. | |
4009 | |
4010 +++ | |
4011 ** New function insert-buffer-substring-as-yank. | |
4012 | |
4013 This function works like `insert-buffer-substring', but removes the | |
4014 text properties in the `yank-excluded-properties' list. | |
4015 | |
4016 +++ | |
4017 ** New function insert-buffer-substring-no-properties. | |
4018 | |
4019 This function is like insert-buffer-substring, but removes all | |
4020 text properties from the inserted substring. | |
4021 | 3255 |
4022 +++ | 3256 +++ |
4023 ** New `yank-handler' text property may be used to control how | 3257 ** New `yank-handler' text property may be used to control how |
4024 previously killed text on the kill-ring is reinserted. | 3258 previously killed text on the kill-ring is reinserted. |
4025 | 3259 |
4045 If UNDO is present and non-nil, it is a function that will be called | 3279 If UNDO is present and non-nil, it is a function that will be called |
4046 by `yank-pop' to undo the insertion of the current object. It is | 3280 by `yank-pop' to undo the insertion of the current object. It is |
4047 called with two arguments, the start and end of the current region. | 3281 called with two arguments, the start and end of the current region. |
4048 FUNCTION may set `yank-undo-function' to override the UNDO value. | 3282 FUNCTION may set `yank-undo-function' to override the UNDO value. |
4049 | 3283 |
4050 +++ | |
4051 *** The functions kill-new, kill-append, and kill-region now have an | 3284 *** The functions kill-new, kill-append, and kill-region now have an |
4052 optional argument to specify the yank-handler text property to put on | 3285 optional argument to specify the yank-handler text property to put on |
4053 the killed text. | 3286 the killed text. |
4054 | 3287 |
4055 +++ | |
4056 *** The function yank-pop will now use a non-nil value of the variable | 3288 *** The function yank-pop will now use a non-nil value of the variable |
4057 `yank-undo-function' (instead of delete-region) to undo the previous | 3289 `yank-undo-function' (instead of delete-region) to undo the previous |
4058 yank or yank-pop command (or a call to insert-for-yank). The function | 3290 yank or yank-pop command (or a call to insert-for-yank). The function |
4059 insert-for-yank automatically sets that variable according to the UNDO | 3291 insert-for-yank automatically sets that variable according to the UNDO |
4060 element of the string argument's yank-handler text property if present. | 3292 element of the string argument's yank-handler text property if present. |
4061 | 3293 |
4062 +++ | 3294 *** The function `insert-for-yank' now supports strings where the |
4063 ** New function display-supports-face-attributes-p may be used to test | 3295 `yank-handler' property does not span the first character of the |
4064 whether a given set of face attributes is actually displayable. | 3296 string. The old behavior is available if you call |
4065 | 3297 `insert-for-yank-1' instead. |
4066 A new predicate `supports' has also been added to the `defface' face | 3298 |
4067 specification language, which can be used to do this test for faces | 3299 *** The new function insert-for-yank normally works like `insert', but |
4068 defined with defface. | 3300 removes the text properties in the `yank-excluded-properties' list. |
4069 | 3301 However, the insertion of the text may be modified by a `yank-handler' |
4070 --- | 3302 text property. |
4071 ** The function face-differs-from-default-p now truly checks whether the | 3303 |
4072 given face displays differently from the default face or not (previously | 3304 +++ |
4073 it did only a very cursory check). | 3305 ** An element of buffer-undo-list can now have the form (apply FUNNAME |
4074 | 3306 . ARGS), where FUNNAME is a symbol other than t or nil. That stands |
4075 +++ | 3307 for a high-level change that should be undone by evaluating (apply |
4076 ** face-attribute, face-foreground, face-background, and face-stipple now | 3308 FUNNAME ARGS). |
4077 accept a new optional argument, INHERIT, which controls how face | 3309 |
4078 inheritance is used when determining the value of a face attribute. | 3310 These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) |
4079 | 3311 which indicates that the change which took place was limited to the |
4080 +++ | 3312 range BEG...END and increased the buffer size by DELTA. |
4081 ** New functions face-attribute-relative-p and merge-face-attribute | 3313 |
4082 help with handling relative face attributes. | 3314 +++ |
4083 | 3315 ** If the buffer's undo list for the current command gets longer than |
4084 +++ | 3316 undo-outer-limit, garbage collection empties it. This is to prevent |
4085 ** The priority of faces in an :inherit attribute face-list is reversed. | 3317 it from using up the available memory and choking Emacs. |
4086 If a face contains an :inherit attribute with a list of faces, earlier | |
4087 faces in the list override later faces in the list; in previous releases | |
4088 of Emacs, the order was the opposite. This change was made so that | |
4089 :inherit face-lists operate identically to face-lists in text `face' | |
4090 properties. | |
4091 | 3318 |
4092 +++ | 3319 +++ |
4093 ** Enhancements to process support | 3320 ** Enhancements to process support |
4094 | 3321 |
4095 *** Function list-processes now has an optional argument; if non-nil, | 3322 *** Function list-processes now has an optional argument; if non-nil, |
4116 is handled, suspending output from other processes. If value is an | 3343 is handled, suspending output from other processes. If value is an |
4117 integer, also inhibit running timers. This feature is generally not | 3344 integer, also inhibit running timers. This feature is generally not |
4118 recommended, but may be necessary for specific applications, such as | 3345 recommended, but may be necessary for specific applications, such as |
4119 speech synthesis. | 3346 speech synthesis. |
4120 | 3347 |
4121 --- | |
4122 *** Adaptive read buffering of subprocess output. | 3348 *** Adaptive read buffering of subprocess output. |
4123 | 3349 |
4124 On some systems, when emacs reads the output from a subprocess, the | 3350 On some systems, when emacs reads the output from a subprocess, the |
4125 output data is read in very small blocks, potentially resulting in | 3351 output data is read in very small blocks, potentially resulting in |
4126 very poor performance. This behavior can be remedied to some extent | 3352 very poor performance. This behavior can be remedied to some extent |
4127 by setting the new variable process-adaptive-read-buffering to a | 3353 by setting the new variable process-adaptive-read-buffering to a |
4128 non-nil value (the default), as it will automatically delay reading | 3354 non-nil value (the default), as it will automatically delay reading |
4129 from such processes, to allowing them to produce more output before | 3355 from such processes, to allowing them to produce more output before |
4130 emacs tries to read it. | 3356 emacs tries to read it. |
3357 | |
3358 *** The new function `call-process-shell-command' executes a shell | |
3359 command command synchronously in a separate process. | |
3360 | |
3361 *** The new function `process-file' is similar to `call-process', but | |
3362 obeys file handlers. The file handler is chosen based on | |
3363 default-directory. | |
3364 | |
3365 *** The new function `set-process-filter-multibyte' sets the | |
3366 multibyteness of a string given to a process's filter. | |
3367 | |
3368 *** The new function `process-filter-multibyte-p' returns t if a | |
3369 string given to a process's filter is multibyte. | |
3370 | |
3371 *** A filter function of a process is called with a multibyte string | |
3372 if the filter's multibyteness is t. That multibyteness is decided by | |
3373 the value of `default-enable-multibyte-characters' when the process is | |
3374 created and can be changed later by `set-process-filter-multibyte'. | |
3375 | |
3376 *** If a process's coding system is raw-text or no-conversion and its | |
3377 buffer is multibyte, the output of the process is at first converted | |
3378 to multibyte by `string-to-multibyte' then inserted in the buffer. | |
3379 Previously, it was converted to multibyte by `string-as-multibyte', | |
3380 which was not compatible with the behavior of file reading. | |
4131 | 3381 |
4132 +++ | 3382 +++ |
4133 ** Enhanced networking support. | 3383 ** Enhanced networking support. |
4134 | 3384 |
4135 *** There is a new `make-network-process' function which supports | 3385 *** There is a new `make-network-process' function which supports |
4200 *** New function network-interface-info. | 3450 *** New function network-interface-info. |
4201 | 3451 |
4202 This function returns the network address, hardware address, current | 3452 This function returns the network address, hardware address, current |
4203 status, and other information about a specific network interface. | 3453 status, and other information about a specific network interface. |
4204 | 3454 |
4205 +++ | 3455 *** The sentinel is now called when a network process is deleted with |
4206 ** New function copy-tree. | 3456 delete-process. The status message passed to the sentinel for a |
4207 | 3457 deleted network process is "deleted". The message passed to the |
4208 +++ | 3458 sentinel when the connection is closed by the remote peer has been |
4209 ** New function substring-no-properties. | 3459 changed to "connection broken by remote peer". |
4210 | 3460 |
4211 +++ | 3461 +++ |
4212 ** New function minibuffer-selected-window. | 3462 ** New function `force-window-update' can initiate a full redisplay of |
4213 | 3463 one or all windows. Normally, this is not needed as changes in window |
4214 +++ | 3464 contents are detected automatically. However, certain implicit |
4215 ** New function `call-process-shell-command'. | 3465 changes to mode lines, header lines, or display properties may require |
4216 | 3466 forcing an explicit window update. |
4217 +++ | 3467 |
4218 ** New function `process-file'. | 3468 +++ |
4219 | 3469 ** The line-move, scroll-up, and scroll-down functions will now |
4220 This is similar to `call-process', but obeys file handlers. The file | 3470 modify the window vscroll to scroll through display rows that are |
4221 handler is chosen based on default-directory. | 3471 taller that the height of the window, for example in the presense of |
4222 | 3472 large images. To disable this feature, Lisp code may bind the new |
4223 --- | 3473 variable `auto-window-vscroll' to nil. |
4224 ** The dummy function keys made by easymenu | 3474 |
4225 are now always lower case. If you specify the | 3475 +++ |
4226 menu item name "Ada", for instance, it uses `ada' | 3476 ** Function `compute-motion' now calculates the usable window |
3477 width if the WIDTH argument is nil. If the TOPOS argument is nil, | |
3478 the usable window height and width is used. | |
3479 | |
3480 +++ | |
3481 ** Function pos-visible-in-window-p now returns the pixel coordinates | |
3482 and partial visiblity state of the corresponding row, if the PARTIALLY | |
3483 arg is non-nil. | |
3484 | |
3485 ** Changes in using window objects: | |
3486 | |
3487 +++ | |
3488 *** You can now make a window as short as one line. | |
3489 | |
3490 A window that is just one line tall does not display either a mode | |
3491 line or a header line, even if the variables `mode-line-format' and | |
3492 `header-line-format' call for them. A window that is two lines tall | |
3493 cannot display both a mode line and a header line at once; if the | |
3494 variables call for both, only the mode line actually appears. | |
3495 | |
3496 +++ | |
3497 *** The new function `window-inside-edges' returns the edges of the | |
3498 actual text portion of the window, not including the scroll bar or | |
3499 divider line, the fringes, the display margins, the header line and | |
3500 the mode line. | |
3501 | |
3502 +++ | |
3503 *** The new functions `window-pixel-edges' and `window-inside-pixel-edges' | |
3504 return window edges in units of pixels, rather than columns and lines. | |
3505 | |
3506 +++ | |
3507 *** The new macro `with-selected-window' temporarily switches the | |
3508 selected window without impacting the order of buffer-list. | |
3509 | |
3510 +++ | |
3511 *** `select-window' takes an optional second argument `norecord', like | |
3512 `switch-to-buffer'. | |
3513 | |
3514 +++ | |
3515 *** `save-selected-window' now saves and restores the selected window | |
3516 of every frame. This way, it restores everything that can be changed | |
3517 by calling `select-window'. | |
3518 | |
3519 +++ | |
3520 *** The function `set-window-buffer' now has an optional third argument | |
3521 KEEP-MARGINS which will preserve the window's current margin, fringe, | |
3522 and scroll-bar settings if non-nil. | |
3523 | |
3524 +++ | |
3525 ** Customizable fringe bitmaps | |
3526 | |
3527 *** New function 'define-fringe-bitmap' can now be used to create new | |
3528 fringe bitmaps, as well as change the built-in fringe bitmaps. | |
3529 | |
3530 To change a built-in bitmap, do (require 'fringe) and use the symbol | |
3531 identifing the bitmap such as `left-truncation or `continued-line'. | |
3532 | |
3533 *** New function 'destroy-fringe-bitmap' may be used to destroy a | |
3534 previously created bitmap, or restore a built-in bitmap. | |
3535 | |
3536 *** New function 'set-fringe-bitmap-face' can now be used to set a | |
3537 specific face to be used for a specific fringe bitmap. The face is | |
3538 automatically merged with the `fringe' face, so normally, the face | |
3539 should only specify the foreground color of the bitmap. | |
3540 | |
3541 *** There are new display properties, left-fringe and right-fringe, | |
3542 that can be used to show a specific bitmap in the left or right fringe | |
3543 bitmap of the display line. | |
3544 | |
3545 Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a | |
3546 symbol identifying a fringe bitmap, either built-in or defined with | |
3547 `define-fringe-bitmap', and FACE is an optional face name to be used | |
3548 for displaying the bitmap instead of the default `fringe' face. | |
3549 When specified, FACE is automatically merged with the `fringe' face. | |
3550 | |
3551 *** New function `fringe-bitmaps-at-pos' returns the current fringe | |
3552 bitmaps in the display line at a given buffer position. | |
3553 | |
3554 +++ | |
3555 ** Controlling the default left and right fringe widths. | |
3556 | |
3557 The default left and right fringe widths for all windows of a frame | |
3558 can now be controlled by setting the `left-fringe' and `right-fringe' | |
3559 frame parameters to an integer value specifying the width in pixels. | |
3560 Setting the width to 0 effectively removes the corresponding fringe. | |
3561 | |
3562 The actual default fringe widths for the frame may deviate from the | |
3563 specified widths, since the combined fringe widths must match an | |
3564 integral number of columns. The extra width is distributed evenly | |
3565 between the left and right fringe. For force a specific fringe width, | |
3566 specify the width as a negative integer (if both widths are negative, | |
3567 only the left fringe gets the specified width). | |
3568 | |
3569 Setting the width to nil (the default), restores the default fringe | |
3570 width which is the minimum number of pixels necessary to display any | |
3571 of the currently defined fringe bitmaps. The width of the built-in | |
3572 fringe bitmaps is 8 pixels. | |
3573 | |
3574 +++ | |
3575 ** Per-window fringe and scrollbar settings | |
3576 | |
3577 *** Windows can now have their own individual fringe widths and | |
3578 position settings. | |
3579 | |
3580 To control the fringe widths of a window, either set the buffer-local | |
3581 variables `left-fringe-width', `right-fringe-width', or call | |
3582 `set-window-fringes'. | |
3583 | |
3584 To control the fringe position in a window, that is, whether fringes | |
3585 are positioned between the display margins and the window's text area, | |
3586 or at the edges of the window, either set the buffer-local variable | |
3587 `fringes-outside-margins' or call `set-window-fringes'. | |
3588 | |
3589 The function `window-fringes' can be used to obtain the current | |
3590 settings. To make `left-fringe-width', `right-fringe-width', and | |
3591 `fringes-outside-margins' take effect, you must set them before | |
3592 displaying the buffer in a window, or use `set-window-buffer' to force | |
3593 an update of the display margins. | |
3594 | |
3595 *** Windows can now have their own individual scroll-bar settings | |
3596 controlling the width and position of scroll-bars. | |
3597 | |
3598 To control the scroll-bar of a window, either set the buffer-local | |
3599 variables `scroll-bar-mode' and `scroll-bar-width', or call | |
3600 `set-window-scroll-bars'. The function `window-scroll-bars' can be | |
3601 used to obtain the current settings. To make `scroll-bar-mode' and | |
3602 `scroll-bar-width' take effect, you must set them before displaying | |
3603 the buffer in a window, or use `set-window-buffer' to force an update | |
3604 of the display margins. | |
3605 | |
3606 +++ | |
3607 ** When using non-toolkit scroll bars with the default width, | |
3608 the scroll-bar-width frame parameter value is nil. | |
3609 | |
3610 +++ | |
3611 ** Multiple overlay arrows can now be defined and managed via the new | |
3612 variable `overlay-arrow-variable-list'. It contains a list of | |
3613 varibles which contain overlay arrow position markers, including | |
3614 the original `overlay-arrow-position' variable. | |
3615 | |
3616 Each variable on this list may have individual `overlay-arrow-string' | |
3617 and `overlay-arrow-bitmap' properties that specify an overlay arrow | |
3618 string (for non-window terminals) or fringe bitmap (for window | |
3619 systems) to display at the corresponding overlay arrow position. | |
3620 If either property is not set, the default `overlay-arrow-string' or | |
3621 'overlay-arrow-fringe-bitmap' will be used. | |
3622 | |
3623 +++ | |
3624 ** New line-height and line-spacing properties for newline characters | |
3625 | |
3626 A newline may now have line-height and line-spacing text or overlay | |
3627 properties that control the height of the corresponding display row. | |
3628 | |
3629 If the line-height property value is t, the newline does not | |
3630 contribute to the height of the display row; instead the height of the | |
3631 newline glyph is reduced. Also, a line-spacing property on this | |
3632 newline is ignored. This can be used to tile small images or image | |
3633 slices without adding blank areas between the images. | |
3634 | |
3635 If the line-height property value is a positive integer, the value | |
3636 specifies the minimum line height in pixels. If necessary, the line | |
3637 height it increased by increasing the line's ascent. | |
3638 | |
3639 If the line-height property value is a float, the minimum line height | |
3640 is calculated by multiplying the default frame line height by the | |
3641 given value. | |
3642 | |
3643 If the line-height property value is a cons (FACE . RATIO), the | |
3644 minimum line height is calculated as RATIO * height of named FACE. | |
3645 RATIO is int or float. If FACE is t, it specifies the current face. | |
3646 | |
3647 If the line-height property value is a cons (nil . RATIO), the line | |
3648 height is calculated as RATIO * actual height of the line's contents. | |
3649 | |
3650 If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies | |
3651 the line height as described above, while TOTAL is any of the forms | |
3652 described above and specifies the total height of the line, causing a | |
3653 varying number of pixels to be inserted after the line to make it line | |
3654 exactly that many pixels high. | |
3655 | |
3656 If the line-spacing property value is an positive integer, the value | |
3657 is used as additional pixels to insert after the display line; this | |
3658 overrides the default frame line-spacing and any buffer local value of | |
3659 the line-spacing variable. | |
3660 | |
3661 If the line-spacing property may be a float or cons, the line spacing | |
3662 is calculated as specified above for the line-height property. | |
3663 | |
3664 +++ | |
3665 ** The buffer local line-spacing variable may now have a float value, | |
3666 which is used as a height relative to the default frame line height. | |
3667 | |
3668 +++ | |
3669 ** Enhancements to stretch display properties | |
3670 | |
3671 The display property stretch specification form `(space PROPS)', where | |
3672 PROPS is a property list now allows pixel based width and height | |
3673 specifications, as well as enhanced horizontal text alignment. | |
3674 | |
3675 The value of these properties can now be a (primitive) expression | |
3676 which is evaluated during redisplay. The following expressions | |
3677 are supported: | |
3678 | |
3679 EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM | |
3680 NUM ::= INTEGER | FLOAT | SYMBOL | |
3681 UNIT ::= in | mm | cm | width | height | |
3682 ELEM ::= left-fringe | right-fringe | left-margin | right-margin | |
3683 | scroll-bar | text | |
3684 POS ::= left | center | right | |
3685 FORM ::= (NUM . EXPR) | (OP EXPR ...) | |
3686 OP ::= + | - | |
3687 | |
3688 The form `NUM' specifies a fractional width or height of the default | |
3689 frame font size. The form `(NUM)' specifies an absolute number of | |
3690 pixels. If a symbol is specified, its buffer-local variable binding | |
3691 is used. The `in', `mm', and `cm' units specifies the number of | |
3692 pixels per inch, milli-meter, and centi-meter, resp. The `width' and | |
3693 `height' units correspond to the width and height of the current face | |
3694 font. An image specification corresponds to the width or height of | |
3695 the image. | |
3696 | |
3697 The `left-fringe', `right-fringe', `left-margin', `right-margin', | |
3698 `scroll-bar', and `text' elements specify to the width of the | |
3699 corresponding area of the window. | |
3700 | |
3701 The `left', `center', and `right' positions can be used with :align-to | |
3702 to specify a position relative to the left edge, center, or right edge | |
3703 of the text area. One of the above window elements (except `text') | |
3704 can also be used with :align-to to specify that the position is | |
3705 relative to the left edge of the given area. Once the base offset for | |
3706 a relative position has been set (by the first occurrence of one of | |
3707 these symbols), further occurences of these symbols are interpreted as | |
3708 the width of the area. | |
3709 | |
3710 For example, to align to the center of the left-margin, use | |
3711 :align-to (+ left-margin (0.5 . left-margin)) | |
3712 | |
3713 If no specific base offset is set for alignment, it is always relative | |
3714 to the left edge of the text area. For example, :align-to 0 in a | |
3715 header-line aligns with the first text column in the text area. | |
3716 | |
3717 The value of the form `(NUM . EXPR)' is the value of NUM multiplied by | |
3718 the value of the expression EXPR. For example, (2 . in) specifies a | |
3719 width of 2 inches, while (0.5 . IMAGE) specifies half the width (or | |
3720 height) of the specified image. | |
3721 | |
3722 The form `(+ EXPR ...)' adds up the value of the expressions. | |
3723 The form `(- EXPR ...)' negates or subtracts the value of the expressions. | |
3724 | |
3725 +++ | |
3726 ** Support for displaying image slices | |
3727 | |
3728 *** New display property (slice X Y WIDTH HEIGHT) may be used with | |
3729 an image property to display only a specific slice of the image. | |
3730 | |
3731 *** Function insert-image has new optional fourth arg to | |
3732 specify image slice (X Y WIDTH HEIGHT). | |
3733 | |
3734 *** New function insert-sliced-image inserts a given image as a | |
3735 specified number of evenly sized slices (rows x columns). | |
3736 | |
3737 +++ | |
3738 ** Images may now have an associated image map via the :map property. | |
3739 | |
3740 An image map is an alist where each element has the format (AREA ID PLIST). | |
3741 An AREA is specified as either a rectangle, a circle, or a polygon: | |
3742 A rectangle is a cons (rect . ((x0 . y0) . (x1 . y1))) specifying the | |
3743 pixel coordinates of the upper left and bottom right corners. | |
3744 A circle is a cons (circle . ((x0 . y0) . r)) specifying the center | |
3745 and the radius of the circle; r may be a float or integer. | |
3746 A polygon is a cons (poly . [x0 y0 x1 y1 ...]) where each pair in the | |
3747 vector describes one corner in the polygon. | |
3748 | |
3749 When the mouse pointer is above a hot-spot area of an image, the | |
3750 PLIST of that hot-spot is consulted; if it contains a `help-echo' | |
3751 property it defines a tool-tip for the hot-spot, and if it contains | |
3752 a `pointer' property, it defines the shape of the mouse cursor when | |
3753 it is over the hot-spot. See the variable 'void-area-text-pointer' | |
3754 for possible pointer shapes. | |
3755 | |
3756 When you click the mouse when the mouse pointer is over a hot-spot, | |
3757 an event is composed by combining the ID of the hot-spot with the | |
3758 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. | |
3759 | |
3760 +++ (lispref) | |
3761 ??? (man) | |
3762 ** The mouse pointer shape in void text areas (i.e. after the end of a | |
3763 line or below the last line in the buffer) of the text window is now | |
3764 controlled by the new variable `void-text-area-pointer'. The default | |
3765 is to use the `arrow' (non-text) pointer. Other choices are `text' | |
3766 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | |
3767 | |
3768 +++ | |
3769 ** The mouse pointer shape over an image can now be controlled by the | |
3770 :pointer image property. | |
3771 | |
3772 +++ | |
3773 ** Lisp code can now test if a given buffer position is inside a | |
3774 clickable link with the new function `mouse-on-link-p'. This is the | |
3775 function used by the new `mouse-1-click-follows-link' functionality. | |
3776 | |
3777 +++ | |
3778 ** The mouse pointer shape over ordinary text or images may now be | |
3779 controlled/overriden via the `pointer' text property. | |
3780 | |
3781 ** Mouse event enhancements: | |
3782 | |
3783 +++ | |
3784 *** Mouse clicks on fringes now generates left-fringe or right-fringes | |
3785 events, rather than a text area click event. | |
3786 | |
3787 +++ | |
3788 *** Mouse clicks in the left and right marginal areas now includes a | |
3789 sensible buffer position corresponding to the first character in the | |
3790 corresponding text row. | |
3791 | |
3792 +++ | |
3793 *** Function `mouse-set-point' now works for events outside text area. | |
3794 | |
3795 +++ | |
3796 *** Mouse events now includes buffer position for all event types. | |
3797 | |
3798 +++ | |
3799 *** `posn-point' now returns buffer position for non-text area events. | |
3800 | |
3801 +++ | |
3802 *** New function `posn-area' returns window area clicked on (nil means | |
3803 text area). | |
3804 | |
3805 +++ | |
3806 *** Mouse events include actual glyph column and row for all event types. | |
3807 | |
3808 +++ | |
3809 *** New function `posn-actual-col-row' returns actual glyph coordinates. | |
3810 | |
3811 +++ | |
3812 *** Mouse events may now include image object in addition to string object. | |
3813 | |
3814 +++ | |
3815 *** Mouse events include relative x and y pixel coordinates relative to | |
3816 the top left corner of the object (image or character) clicked on. | |
3817 | |
3818 +++ | |
3819 *** Mouse events include the pixel width and height of the object | |
3820 (image or character) clicked on. | |
3821 | |
3822 +++ | |
3823 *** New functions 'posn-object', 'posn-object-x-y', and | |
3824 'posn-object-width-height' return the image or string object of a mouse | |
3825 click, the x and y pixel coordinates relative to the top left corner | |
3826 of that object, and the total width and height of that object. | |
3827 | |
3828 +++ | |
3829 ** At the end of a command, point moves out from within invisible | |
3830 text, in the same way it moves out from within text covered by an | |
3831 image or composition property. | |
3832 | |
3833 This makes it generally unnecessary to mark invisible text as intangible. | |
3834 This is particularly good because the intangible property often has | |
3835 unexpected side-effects since the property applies to everything | |
3836 (including `goto-char', ...) whereas this new code is only run after | |
3837 post-command-hook and thus does not care about intermediate states. | |
3838 | |
3839 +++ | |
3840 ** Normally, the cursor is displayed at the end of any overlay and | |
3841 text property string that may be present at the current window | |
3842 position. The cursor may now be placed on any character of such | |
3843 strings by giving that character a non-nil `cursor' text property. | |
3844 | |
3845 +++ | |
3846 ** The display space :width and :align-to text properties are now | |
3847 supported on text terminals. | |
3848 | |
3849 +++ | |
3850 ** Arguments for remove-overlays are now optional, so that you can | |
3851 remove all overlays in the buffer by just calling (remove-overlay). | |
3852 | |
3853 +++ | |
3854 ** New variable char-property-alias-alist. | |
3855 | |
3856 This variable allows you to create alternative names for text | |
3857 properties. It works at the same level as `default-text-properties', | |
3858 although it applies to overlays as well. This variable was introduced | |
3859 to implement the `font-lock-face' property. | |
3860 | |
3861 +++ | |
3862 ** New function `get-char-property-and-overlay' accepts the same | |
3863 arguments as `get-char-property' and returns a cons whose car is the | |
3864 return value of `get-char-property' called with those arguments and | |
3865 whose cdr is the overlay in which the property was found, or nil if | |
3866 it was found as a text property or not found at all. | |
3867 | |
3868 +++ | |
3869 ** The new frame parameter `tty-color-mode' specifies the mode to use | |
3870 for color support on character terminal frames. Its value can be a | |
3871 number of colors to support, or a symbol. See the Emacs Lisp | |
3872 Reference manual for more detailed documentation. | |
3873 | |
3874 +++ | |
3875 ** The new face attribute `min-colors' can be used to tailor the face | |
3876 color to the number of colors supported by a display, and define the | |
3877 foreground and background colors accordingly so that they look best on | |
3878 a terminal that supports at least this many colors. This is now the | |
3879 preferred method for defining default faces in a way that makes a good | |
3880 use of the capabilities of the display. | |
3881 | |
3882 +++ | |
3883 ** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able | |
3884 to display CHAR. More precisely, if the selected frame's fontset has | |
3885 a font to display the character set that CHAR belongs to. | |
3886 | |
3887 Fontsets can specify a font on a per-character basis; when the fontset | |
3888 does that, this value may not be accurate. | |
3889 | |
3890 +++ | |
3891 ** New function display-supports-face-attributes-p may be used to test | |
3892 whether a given set of face attributes is actually displayable. | |
3893 | |
3894 A new predicate `supports' has also been added to the `defface' face | |
3895 specification language, which can be used to do this test for faces | |
3896 defined with defface. | |
3897 | |
3898 --- | |
3899 ** The special treatment of faces whose names are of the form `fg:COLOR' | |
3900 or `bg:COLOR' has been removed. Lisp programs should use the | |
3901 `defface' facility for defining faces with specific colors, or use | |
3902 the feature of specifying the face attributes :foreground and :background | |
3903 directly in the `face' property instead of using a named face. | |
3904 | |
3905 +++ | |
3906 ** The first face specification element in a defface can specify | |
3907 `default' instead of frame classification. Then its attributes act as | |
3908 defaults that apply to all the subsequent cases (and may be overridden | |
3909 by them). | |
3910 | |
3911 +++ | |
3912 ** The variable `face-font-rescale-alist' specifies how much larger | |
3913 (or smaller) font we should use. For instance, if the value is | |
3914 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10 | |
3915 point, we actually use a font of 13 point if the font matches | |
3916 SOME-FONTNAME-PATTERN. | |
3917 | |
3918 --- | |
3919 ** `set-fontset-font', `fontset-info', `fontset-font' now operate on | |
3920 the default fontset if the argument NAME is nil.. | |
3921 | |
3922 --- | |
3923 ** The function face-differs-from-default-p now truly checks whether the | |
3924 given face displays differently from the default face or not (previously | |
3925 it did only a very cursory check). | |
3926 | |
3927 +++ | |
3928 ** face-attribute, face-foreground, face-background, and face-stipple now | |
3929 accept a new optional argument, INHERIT, which controls how face | |
3930 inheritance is used when determining the value of a face attribute. | |
3931 | |
3932 +++ | |
3933 ** New functions face-attribute-relative-p and merge-face-attribute | |
3934 help with handling relative face attributes. | |
3935 | |
3936 +++ | |
3937 ** The priority of faces in an :inherit attribute face-list is reversed. | |
3938 If a face contains an :inherit attribute with a list of faces, earlier | |
3939 faces in the list override later faces in the list; in previous releases | |
3940 of Emacs, the order was the opposite. This change was made so that | |
3941 :inherit face-lists operate identically to face-lists in text `face' | |
3942 properties. | |
3943 | |
3944 +++ | |
3945 ** New standard font-lock face `font-lock-preprocessor-face'. | |
3946 | |
3947 +++ | |
3948 ** New special text property `font-lock-face'. | |
3949 | |
3950 This property acts like the `face' property, but it is controlled by | |
3951 M-x font-lock-mode. It is not, strictly speaking, a builtin text | |
3952 property. Instead, it is implemented inside font-core.el, using the | |
3953 new variable `char-property-alias-alist'. | |
3954 | |
3955 --- | |
3956 ** jit-lock obeys a new text-property `jit-lock-defer-multiline'. | |
3957 If a piece of text with that property gets contextually refontified | |
3958 (see jit-lock-defer-contextually), then all of that text will | |
3959 be refontified. This is useful when the syntax of a textual element | |
3960 depends on text several lines further down (and when font-lock-multiline | |
3961 is not appropriate to solve that problem). For example in Perl: | |
3962 | |
3963 s{ | |
3964 foo | |
3965 }{ | |
3966 bar | |
3967 }e | |
3968 | |
3969 Adding/removing the last `e' changes the `bar' from being a piece of | |
3970 text to being a piece of code, so you'd put a jit-lock-defer-multiline | |
3971 property over the second half of the command to force (deferred) | |
3972 refontification of `bar' whenever the `e' is added/removed. | |
3973 | |
3974 +++ | |
3975 ** font-lock can manage arbitrary text-properties beside `face'. | |
3976 *** the FACENAME returned in font-lock-keywords can be a list | |
3977 of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set | |
3978 other properties than `face'. | |
3979 *** font-lock-extra-managed-props can be set to make sure those extra | |
3980 properties are automatically cleaned up by font-lock. | |
3981 | |
3982 --- | |
3983 ** The precedence of file-name-handlers has been changed. | |
3984 Instead of blindly choosing the first handler that matches, | |
3985 find-file-name-handler now gives precedence to a file-name handler | |
3986 that matches near the end of the file name. More specifically, the | |
3987 handler whose (match-beginning 0) is the largest is chosen. | |
3988 In case of ties, the old "first matched" rule applies. | |
3989 | |
3990 +++ | |
3991 ** A file name handler can declare which operations it handles. | |
3992 | |
3993 You do this by putting an `operation' property on the handler name | |
3994 symbol. The property value should be a list of the operations that | |
3995 the handler really handles. It won't be called for any other | |
3996 operations. | |
3997 | |
3998 This is useful for autoloaded handlers, to prevent them from being | |
3999 autoloaded when not really necessary. | |
4000 | |
4001 +++ | |
4002 ** `set-auto-mode' now gives the interpreter magic line (if present) | |
4003 precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration | |
4004 will give the buffer XML or SGML mode, based on the new var | |
4005 `magic-mode-alist'. | |
4006 | |
4007 +++ | |
4008 ** Major mode functions now run the new normal hook | |
4009 `after-change-major-mode-hook', at their very end, after the mode hooks. | |
4010 | |
4011 --- | |
4012 ** If a major mode function has a non-nil `no-clone-indirect' | |
4013 property, `clone-indirect-buffer' signals an error if you use | |
4014 it in that buffer. | |
4015 | |
4016 +++ | |
4017 ** Major modes can define `eldoc-documentation-function' | |
4018 locally to provide Eldoc functionality by some method appropriate to | |
4019 the language. | |
4020 | |
4021 +++ | |
4022 ** define-derived-mode by default creates a new empty abbrev table. | |
4023 It does not copy abbrevs from the parent mode's abbrev table. | |
4024 | |
4025 +++ | |
4026 ** define-minor-mode now accepts arbitrary additional keyword arguments | |
4027 and simply passes them to defcustom, if applicable. | |
4028 | |
4029 +++ | |
4030 ** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | |
4031 are used by define-derived-mode to make sure the mode hook for the | |
4032 parent mode is run at the end of the child mode. | |
4033 | |
4034 +++ | |
4035 ** `minor-mode-list' now holds a list of minor mode commands. | |
4036 | |
4037 +++ | |
4038 ** Both the variable and the function `disabled-command-hook' have | |
4039 been renamed to `disabled-command-function'. The variable | |
4040 `disabled-command-hook' has been kept as an obsolete alias. | |
4041 | |
4042 +++ | |
4043 ** The function `eql' is now available without requiring the CL package. | |
4044 | |
4045 +++ | |
4046 ** If optional third argument APPEND to `add-to-list' is non-nil, a | |
4047 new element gets added at the end of the list instead of at the | |
4048 beginning. This change actually occurred in Emacs-21.1, but was not | |
4049 documented. | |
4050 | |
4051 +++ | |
4052 ** The escape sequence \s is now interpreted as a SPACE character, | |
4053 unless it is followed by a `-' in a character constant (e.g. ?\s-A), | |
4054 in which case it is still interpreted as the super modifier. | |
4055 In strings, \s is always interpreted as a space. | |
4056 | |
4057 +++ | |
4058 ** A hex escape in a string forces the string to be multibyte. | |
4059 An octal escape makes it unibyte. | |
4060 | |
4061 +++ | |
4062 ** `split-string' now includes null substrings in the returned list if | |
4063 the optional argument SEPARATORS is non-nil and there are matches for | |
4064 SEPARATORS at the beginning or end of the string. If SEPARATORS is | |
4065 nil, or if the new optional third argument OMIT-NULLS is non-nil, all | |
4066 empty matches are omitted from the returned list. | |
4067 | |
4068 +++ | |
4069 ** New function `string-to-multibyte' converts a unibyte string to a | |
4070 multibyte string with the same individual character codes. | |
4071 | |
4072 +++ | |
4073 ** The function `number-sequence' returns a list of equally-separated | |
4074 numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). | |
4075 By default, the separation is 1, but you can specify a different separation | |
4076 as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). | |
4077 | |
4078 +++ | |
4079 ** `sit-for' can now be called with args (SECONDS &optional NODISP). | |
4080 | |
4081 +++ | |
4082 ** A function's docstring can now hold the function's usage info on | |
4083 its last line. It should match the regexp "\n\n(fn.*)\\'". | |
4084 | |
4085 +++ | |
4086 ** The `defmacro' form may contain declarations specifying how to | |
4087 indent the macro in Lisp mode and how to debug it with Edebug. The | |
4088 syntax of defmacro has been extended to | |
4089 | |
4090 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) | |
4091 | |
4092 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The | |
4093 declaration specifiers supported are: | |
4094 | |
4095 (indent INDENT) | |
4096 Set NAME's `lisp-indent-function' property to INDENT. | |
4097 | |
4098 (edebug DEBUG) | |
4099 Set NAME's `edebug-form-spec' property to DEBUG. (This is | |
4100 equivalent to writing a `def-edebug-spec' for the macro. | |
4101 | |
4102 +++ | |
4103 ** The functions all-completions and try-completion now accept lists | |
4104 of strings as well as hash-tables additionally to alists, obarrays | |
4105 and functions. Furthermore, the function `test-completion' is now | |
4106 exported to Lisp. The keys in alists and hash tables may be either | |
4107 strings or symbols, which are automatically converted with to strings. | |
4108 | |
4109 +++ | |
4110 ** The new macro dynamic-completion-table supports using functions | |
4111 as a dynamic completion table. | |
4112 | |
4113 (dynamic-completion-table FUN) | |
4114 | |
4115 FUN is called with one argument, the string for which completion is required, | |
4116 and it should return an alist containing all the intended possible | |
4117 completions. This alist may be a full list of possible completions so that FUN | |
4118 can ignore the value of its argument. If completion is performed in the | |
4119 minibuffer, FUN will be called in the buffer from which the minibuffer was | |
4120 entered. dynamic-completion-table then computes the completion. | |
4121 | |
4122 +++ | |
4123 ** The new macro lazy-completion-table initializes a variable | |
4124 as a lazy completion table. | |
4125 | |
4126 (lazy-completion-table VAR FUN &rest ARGS) | |
4127 | |
4128 If the completion table VAR is used for the first time (e.g., by passing VAR | |
4129 as an argument to `try-completion'), the function FUN is called with arguments | |
4130 ARGS. FUN must return the completion table that will be stored in VAR. If | |
4131 completion is requested in the minibuffer, FUN will be called in the buffer | |
4132 from which the minibuffer was entered. The return value of | |
4133 `lazy-completion-table' must be used to initialize the value of VAR. | |
4134 | |
4135 +++ | |
4136 ** `load-history' can now have elements of the form (t . FUNNAME), | |
4137 which means FUNNAME was previously defined as an autoload (before the | |
4138 current file redefined it). | |
4139 | |
4140 +++ | |
4141 ** `load-history' now records (defun . FUNNAME) when a function is | |
4142 defined. For a variable, it records just the variable name. | |
4143 | |
4144 --- | |
4145 ** The variable `recursive-load-depth-limit' has been deleted. | |
4146 Emacs now signals an error if the same file is loaded with more | |
4147 than 3 levels of nesting. | |
4148 | |
4149 +++ | |
4150 ** The function symbol-file can now search specifically for function or | |
4151 variable definitions. | |
4152 | |
4153 +++ | |
4154 ** `provide' and `featurep' now accept an optional second argument | |
4155 to test/provide subfeatures. Also `provide' now checks `after-load-alist' | |
4156 and runs any code associated with the provided feature. | |
4157 | |
4158 +++ | |
4159 ** `declare' is now a macro. This change was made mostly for | |
4160 documentation purposes and should have no real effect on Lisp code. | |
4161 | |
4162 +++ | |
4163 ** Byte compiler changes: | |
4164 | |
4165 *** The byte-compiler now displays the actual line and character | |
4166 position of errors, where possible. Additionally, the form of its | |
4167 warning and error messages have been brought more in line with the | |
4168 output of other GNU tools. | |
4169 | |
4170 *** The new macro `with-no-warnings' suppresses all compiler warnings | |
4171 inside its body. In terms of execution, it is equivalent to `progn'. | |
4172 | |
4173 *** You can avoid warnings for possibly-undefined symbols with a | |
4174 simple convention that the compiler understands. (This is mostly | |
4175 useful in code meant to be portable to different Emacs versions.) | |
4176 Write forms like the following, or code that macroexpands into such | |
4177 forms: | |
4178 | |
4179 (if (fboundp 'foo) <then> <else>) | |
4180 (if (boundp 'foo) <then> <else) | |
4181 | |
4182 In the first case, using `foo' as a function inside the <then> form | |
4183 won't produce a warning if it's not defined as a function, and in the | |
4184 second case, using `foo' as a variable won't produce a warning if it's | |
4185 unbound. The test must be in exactly one of the above forms (after | |
4186 macro expansion), but such tests may be nested. Note that `when' and | |
4187 `unless' expand to `if', but `cond' doesn't. | |
4188 | |
4189 *** `(featurep 'xemacs)' is treated by the compiler as nil. This | |
4190 helps to avoid noisy compiler warnings in code meant to run under both | |
4191 Emacs and XEmacs and may sometimes make the result significantly more | |
4192 efficient. Since byte code from recent versions of XEmacs won't | |
4193 generally run in Emacs and vice versa, this optimization doesn't lose | |
4194 you anything. | |
4195 | |
4196 *** The local variable `no-byte-compile' in elisp files is now obeyed. | |
4197 | |
4198 --- | |
4199 ** When a Lisp file uses CL functions at run-time, compiling the file | |
4200 now issues warnings about these calls, unless the file performs | |
4201 (require 'cl) when loaded. | |
4202 | |
4203 +++ | |
4204 ** New function unsafep returns nil if the given Lisp form can't possibly | |
4205 do anything dangerous; otherwise it returns a reason why the form might be | |
4206 unsafe (calls dangerous function, alters global variable, etc). | |
4207 | |
4208 +++ | |
4209 ** There is a new Warnings facility; see the functions `warn' | |
4210 and `display-warning'. | |
4211 | |
4212 --- | |
4213 ** VC changes for backends: | |
4214 *** (vc-switches BACKEND OPERATION) is a new function for use by backends. | |
4215 *** The new `find-version' backend function replaces the `destfile' | |
4216 parameter of the `checkout' backend function. | |
4217 Old code still works thanks to a default `find-version' behavior that | |
4218 uses the old `destfile' parameter. | |
4219 | |
4220 +++ | |
4221 ** Already true in Emacs 21.1, but not emphasized clearly enough: | |
4222 | |
4223 Multibyte buffers can now faithfully record all 256 character codes | |
4224 from 0 to 255. As a result, most of the past reasons to use unibyte | |
4225 buffers no longer exist. We only know of three reasons to use them | |
4226 now: | |
4227 | |
4228 1. If you prefer to use unibyte text all of the time. | |
4229 | |
4230 2. For reading files into temporary buffers, when you want to avoid | |
4231 the time it takes to convert the format. | |
4232 | |
4233 3. For binary files where format conversion would be pointless and | |
4234 wasteful. | |
4235 | |
4236 --- | |
4237 ** set-buffer-file-coding-system now takes an additional argument, | |
4238 NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | |
4239 | |
4240 +++ | |
4241 ** The new variable `auto-coding-functions' lets you specify functions | |
4242 to examine a file being visited and deduce the proper coding system | |
4243 for it. (If the coding system is detected incorrectly for a specific | |
4244 file, you can put a `coding:' tags to override it.) | |
4245 | |
4246 --- | |
4247 ** The new function `merge-coding-systems' fills in unspecified aspects | |
4248 of one coding system from another coding system. | |
4249 | |
4250 --- | |
4251 ** New coding system property `mime-text-unsuitable' indicates that | |
4252 the coding system's `mime-charset' is not suitable for MIME text | |
4253 parts, e.g. utf-16. | |
4254 | |
4255 +++ | |
4256 ** New function `decode-coding-inserted-region' decodes a region as if | |
4257 it is read from a file without decoding. | |
4258 | |
4259 +++ | |
4260 ** Function `translate-region' accepts also a char-table as TABLE | |
4261 argument. | |
4262 | |
4263 +++ | |
4264 ** The new translation table `translation-table-for-input' | |
4265 is used for customizing self-insertion. The character to | |
4266 be inserted is translated through it. | |
4267 | |
4268 --- | |
4269 ** New CCL functions `lookup-character' and `lookup-integer' access | |
4270 hash tables defined by the Lisp function `define-translation-hash-table'. | |
4271 | |
4272 +++ | |
4273 ** The flags, width, and precision options for %-specifications in function | |
4274 `format' are now documented. Some flags that were accepted but not | |
4275 implemented (such as "*") are no longer accepted. | |
4276 | |
4277 --- | |
4278 ** New function `redirect-debugging-output' can be used to redirect | |
4279 debugging output on the stderr file handle to a file. | |
4280 | |
4281 +++ | |
4282 ** `makehash' is now obsolete. Use `make-hash-table' instead. | |
4283 | |
4284 +++ | |
4285 ** The macro `with-syntax-table' does not copy the table any more. | |
4286 | |
4287 +++ | |
4288 ** New variables `gc-elapsed' and `gcs-done' provide extra information | |
4289 on garbage collection. | |
4290 | |
4291 +++ | |
4292 ** New function `locale-info' accesses locale information. | |
4293 | |
4294 +++ | |
4295 ** The new variable `print-continuous-numbering', when non-nil, says | |
4296 that successive calls to print functions should use the same | |
4297 numberings for circular structure references. This is only relevant | |
4298 when `print-circle' is non-nil. | |
4299 | |
4300 When you bind `print-continuous-numbering' to t, you should | |
4301 also bind `print-number-table' to nil. | |
4302 | |
4303 --- | |
4304 ** When pure storage overflows while dumping, Emacs now prints how | |
4305 much pure storage it will approximately need. | |
4306 | |
4307 +++ | |
4308 ** File local variables. | |
4309 | |
4310 A file local variables list cannot specify a string with text | |
4311 properties--any specified text properties are discarded. | |
4312 | |
4313 +++ | |
4314 ** The variable `safe-local-eval-forms' specifies a list of forms that | |
4315 are ok to evaluate when they appear in an `eval' local variables | |
4316 specification. Normally Emacs asks for confirmation before evaluating | |
4317 such a form, but if the form appears in this list, no confirmation is | |
4318 needed. | |
4319 | |
4320 --- | |
4321 ** If a function has a non-nil `safe-local-eval-function' property, | |
4322 that means it is ok to evaluate some calls to that function when it | |
4323 appears in an `eval' local variables specification. If the property | |
4324 is t, then any form calling that function with constant arguments is | |
4325 ok. If the property is a function or list of functions, they are called | |
4326 with the form as argument, and if any returns t, the form is ok to call. | |
4327 | |
4328 If the form is not "ok to call", that means Emacs asks for | |
4329 confirmation as before. | |
4330 | |
4331 +++ | |
4332 ** Renamed hooks to better follow the naming convention: | |
4333 find-file-hooks to find-file-hook, | |
4334 find-file-not-found-hooks to find-file-not-found-functions, | |
4335 write-file-hooks to write-file-functions, | |
4336 write-contents-hooks to write-contents-functions, | |
4337 x-lost-selection-hooks to x-lost-selection-functions, | |
4338 x-sent-selection-hooks to x-sent-selection-functions. | |
4339 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). | |
4340 | |
4341 +++ | |
4342 ** The new variable `delete-frame-functions' replaces `delete-frame-hook'. | |
4343 It was renamed to follow the naming conventions for abnormal hooks. The old | |
4344 name remains available as an alias, but has been marked obsolete. | |
4345 | |
4346 +++ | |
4347 ** The new function `file-remote-p' tests a file name and returns | |
4348 non-nil if it specifies a remote file (one that Emacs accesses using | |
4349 its own special methods and not directly through the file system). | |
4350 The value in that case is an identifier for the remote file system. | |
4351 | |
4352 +++ | |
4353 ** Functions `get' and `plist-get' no longer signals an error for | |
4354 a malformed property list. They also detect cyclic lists. | |
4355 | |
4356 +++ | |
4357 ** The function `atan' now accepts an optional second argument. | |
4358 | |
4359 When called with 2 arguments, as in `(atan Y X)', `atan' returns the | |
4360 angle in radians between the vector [X, Y] and the X axis. (This is | |
4361 equivalent to the standard C library function `atan2'.) | |
4362 | |
4363 +++ | |
4364 ** New function format-mode-line. | |
4365 | |
4366 This returns the mode-line or header-line of the selected (or a | |
4367 specified) window as a string with or without text properties. | |
4368 | |
4369 +++ | |
4370 ** The new mode-line construct `(:propertize ELT PROPS...)' can be | |
4371 used to add text properties to mode-line elements. | |
4372 | |
4373 +++ | |
4374 ** The new `%i' and `%I' constructs for `mode-line-format' can be used | |
4375 to display the size of the accessible part of the buffer on the mode | |
4376 line. | |
4377 | |
4378 --- | |
4379 ** Indentation of simple and extended loop forms has been added to the | |
4380 cl-indent package. The new user options | |
4381 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and | |
4382 `lisp-simple-loop-indentation' can be used to customize the | |
4383 indentation of keywords and forms in loop forms. | |
4384 | |
4385 --- | |
4386 ** Indentation of backquoted forms has been made customizable in the | |
4387 cl-indent package. See the new user option `lisp-backquote-indentation'. | |
4388 | |
4389 +++ | |
4390 ** field-beginning and field-end now accept an additional optional | |
4391 argument, LIMIT. | |
4392 | |
4393 +++ | |
4394 ** define-abbrev now accepts an optional argument SYSTEM-FLAG. If | |
4395 non-nil, this marks the abbrev as a "system" abbrev, which means that | |
4396 it won't be stored in the user's abbrevs file if he saves the abbrevs. | |
4397 Major modes that predefine some abbrevs should always specify this | |
4398 flag. | |
4399 | |
4400 --- | |
4401 ** describe-vector now takes a second argument `describer' which is | |
4402 called to print the entries' values. It defaults to `princ'. | |
4403 | |
4404 +++ | |
4405 ** defcustom and other custom declarations now use a default group | |
4406 (the last prior group defined in the same file) when no :group was given. | |
4407 | |
4408 --- | |
4409 ** The new customization type `float' specifies numbers with floating | |
4410 point (no integers are allowed). | |
4411 | |
4412 +++ | |
4413 ** emacsserver now runs pre-command-hook and post-command-hook when | |
4414 it receives a request from emacsclient. | |
4415 | |
4416 --- | |
4417 ** New function `text-clone-create'. Text clones are chunks of text | |
4418 that are kept identical by transparently propagating changes from one | |
4419 clone to the other. | |
4420 | |
4421 +++ | |
4422 ** Functions `user-uid' and `user-real-uid' now return floats if the | |
4423 user UID doesn't fit in a Lisp integer. Function `user-full-name' | |
4424 accepts a float as UID parameter. | |
4425 | |
4426 +++ | |
4427 ** New vars `exec-suffixes' and `load-suffixes' used when | |
4428 searching for an executable resp. an elisp file. | |
4429 | |
4430 +++ | |
4431 ** Functions from `post-gc-hook' are run at the end of garbage | |
4432 collection. The hook is run with GC inhibited, so use it with care. | |
4433 | |
4434 +++ | |
4435 ** The variables most-positive-fixnum and most-negative-fixnum | |
4436 hold the largest and smallest possible integer values. | |
4437 | |
4438 --- | |
4439 ** On MS Windows, locale-coding-system is used to interact with the OS. | |
4440 The Windows specific variable w32-system-coding-system, which was | |
4441 formerly used for that purpose is now an alias for locale-coding-system. | |
4442 | |
4443 --- | |
4444 ** New function x-send-client-message sends a client message when | |
4445 running under X. | |
4446 | |
4447 --- | |
4448 ** easy-mmode-define-global-mode has been renamed to | |
4449 define-global-minor-mode. The old name remains as an alias. | |
4450 | |
4451 --- | |
4452 ** To manipulate the File menu using easy-menu, you must specify the | |
4453 proper name "file". In previous Emacs versions, you had to specify | |
4454 "files", even though the menu item itself was changed to say "File" | |
4455 several versions ago. | |
4456 | |
4457 --- | |
4458 ** The dummy function keys made by easymenu are now always lower case. | |
4459 If you specify the menu item name "Ada", for instance, it uses `ada' | |
4227 as the "key" bound by that key binding. | 4460 as the "key" bound by that key binding. |
4228 | 4461 |
4229 This is relevant only if Lisp code looks for | 4462 This is relevant only if Lisp code looks for the bindings that were |
4230 the bindings that were made with easymenu. | 4463 made with easymenu. |
4231 | 4464 |
4232 +++ | 4465 --- |
4233 ** The function `commandp' takes an additional optional | 4466 ** `easy-menu-define' now allows you to use nil for the symbol name |
4234 argument. If it is non-nil, then `commandp' checks | 4467 if you don't need to give the menu a name. If you install the menu |
4235 for a function that could be called with `call-interactively', | 4468 into other keymaps right away (MAPS is non-nil), it usually doesn't |
4236 and does not return t for keyboard macros. | 4469 need to have a name. |
4237 | 4470 |
4238 --- | 4471 --- |
4239 ** master-mode.el implements a minor mode for scrolling a slave | 4472 ** rx.el has new corresponding `symbol-end' and `symbol-start' elements. |
4473 | |
4474 ** New functions, macros, and commands: | |
4475 | |
4476 +++ | |
4477 *** The new function `assoc-string' replaces `assoc-ignore-case' and | |
4478 `assoc-ignore-representation', which are still available, but have | |
4479 been declared obsolete. | |
4480 | |
4481 +++ | |
4482 *** The new function `buffer-local-value' returns the buffer-local | |
4483 binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not | |
4484 have a buffer-local binding in buffer BUFFER, it returns the default | |
4485 value of VARIABLE instead. | |
4486 | |
4487 +++ | |
4488 *** The new function `called-interactively-p' does what many people | |
4489 have mistakenly believed `interactive-p' did: it returns t if the | |
4490 calling function was called through `call-interactively'. This should | |
4491 only be used when you cannot add a new "interactive" argument to the | |
4492 command. | |
4493 | |
4494 *** The new function copy-abbrev-table returns a new abbrev table that | |
4495 is a copy of a given abbrev table. | |
4496 | |
4497 +++ | |
4498 *** New function copy-tree makes a copy of a tree, recursively copying | |
4499 both cars and cdrs. | |
4500 | |
4501 +++ | |
4502 *** New function `delete-dups' destructively removes `equal' | |
4503 duplicates from a list. Of several `equal' occurrences of an element | |
4504 in the list, the first one is kept. | |
4505 | |
4506 +++ | |
4507 *** The new function `filter-buffer-substring' extracts a buffer | |
4508 substring, passes it through a set of filter functions, and returns | |
4509 the filtered substring. It is used instead of `buffer-substring' or | |
4510 `delete-and-extract-region' when copying text into a user-accessible | |
4511 data structure, like the kill-ring, X clipboard, or a register. The | |
4512 list of filter function is specified by the new variable | |
4513 `buffer-substring-filters'. For example, Longlines mode uses | |
4514 `buffer-substring-filters' to remove soft newlines from the copied | |
4515 text. | |
4516 | |
4517 +++ | |
4518 *** New functions frame-current-scroll-bars and window-current-scroll-bars. | |
4519 | |
4520 These functions return the current locations of the vertical and | |
4521 horizontal scroll bars in a frame or window. | |
4522 | |
4523 +++ | |
4524 *** The new primitive `get-internal-run-time' returns the processor | |
4525 run time used by Emacs since start-up. | |
4526 | |
4527 +++ | |
4528 *** The new function insert-buffer-substring-as-yank works like | |
4529 `insert-buffer-substring', but removes the text properties in the | |
4530 `yank-excluded-properties' list. | |
4531 | |
4532 +++ | |
4533 *** The new function insert-buffer-substring-no-properties is like | |
4534 insert-buffer-substring, but removes all text properties from the | |
4535 inserted substring. | |
4536 | |
4537 +++ | |
4538 *** The new functions `lax-plist-get' and `lax-plist-put' are like | |
4539 `plist-get' and `plist-put', except that they compare the property | |
4540 name using `equal' rather than `eq'. | |
4541 | |
4542 +++ | |
4543 *** New function `line-number-at-pos' returns the line number of the | |
4544 current line in the current buffer, or if optional buffer position is | |
4545 given, line number of corresponding line in current buffer. | |
4546 | |
4547 +++ | |
4548 *** New function `looking-back' checks whether a regular expression matches | |
4549 the text before point. Specifying the LIMIT argument bounds how far | |
4550 back the match can start; this is a way to keep it from taking too long. | |
4551 | |
4552 +++ | |
4553 *** New function `macroexpand-all' expands all macros in a form. | |
4554 It is similar to the Common-Lisp function of the same name. | |
4555 One difference is that it guarantees to return the original argument | |
4556 if no expansion is done, which may be tested using `eq'. | |
4557 | |
4558 *** The new function `minibufferp' returns non-nil if its optional | |
4559 buffer argument is a minibuffer. If the argument is omitted, it | |
4560 defaults to the current buffer. | |
4561 | |
4562 +++ | |
4563 *** New function minibuffer-selected-window returns the window which | |
4564 was selected when entering the minibuffer. | |
4565 | |
4566 +++ | |
4567 *** The new function `modify-all-frames-parameters' modifies parameters | |
4568 for all (existing and future) frames. | |
4569 | |
4570 +++ | |
4571 *** New functions posn-at-point and posn-at-x-y return | |
4572 click-event-style position information for a given visible buffer | |
4573 position or for a given window pixel coordinate. | |
4574 | |
4575 --- | |
4576 *** New function quail-find-key returns a list of keys to type in the | |
4577 current input method to input a character. | |
4578 | |
4579 +++ | |
4580 *** The new function `rassq-delete-all' deletes all elements from an | |
4581 alist whose cdr is `eq' to a specified value. | |
4582 | |
4583 +++ | |
4584 *** The new function remove-list-of-text-properties is almost the same | |
4585 as `remove-text-properties'. The only difference is that it takes a | |
4586 list of property names as argument rather than a property list. | |
4587 | |
4588 +++ | |
4589 *** The new primitive `set-file-times' sets a file's access and | |
4590 modification times. Magic file name handlers can handle this | |
4591 operation. | |
4592 | |
4593 +++ | |
4594 *** New function substring-no-properties returns a substring without | |
4595 text properties. | |
4596 | |
4597 +++ | |
4598 *** The new function syntax-after returns the syntax code | |
4599 of the character after a specified buffer position, taking account | |
4600 of text properties as well as the character code. | |
4601 | |
4602 +++ | |
4603 *** `syntax-class' extracts the class of a syntax code (as returned | |
4604 by syntax-after). | |
4605 | |
4606 +++ | |
4607 *** New function `tool-bar-local-item-from-menu' | |
4608 | |
4609 The `tool-bar-add-item-from-menu' must not be used (as previously | |
4610 recommended) for making entries in the tool bar for local keymaps. | |
4611 Instead, use the function `tool-bar-local-item-from-menu', which lets | |
4612 you specify the map to use as an argument. | |
4613 | |
4614 +++ | |
4615 *** New function window-body-height. | |
4616 This is like window-height but does not count the mode line | |
4617 or the header line. | |
4618 | |
4619 +++ | |
4620 *** (while-no-input BODY...) runs BODY, but only so long as no input | |
4621 arrives. If the user types or clicks anything, BODY stops as if a | |
4622 quit had occurred. while-no-input returns the value of BODY, if BODY | |
4623 finishes. It returns nil if BODY was aborted. | |
4624 | |
4625 +++ | |
4626 *** New macro with-local-quit temporarily sets inhibit-quit to nil for use | |
4627 around potentially blocking or long-running code in timers | |
4628 and post-command-hooks. | |
4629 | |
4630 ** New packages: | |
4631 | |
4632 *** The new package syntax.el provides an efficient way to find the | |
4633 current syntactic context (as returned by parse-partial-sexp). | |
4634 | |
4635 *** The new package bindat.el provides functions to unpack and pack | |
4636 binary data structures, such as network packets, to and from Lisp | |
4637 data structures. | |
4638 | |
4639 --- | |
4640 *** The TCL package tcl-mode.el was replaced by tcl.el. | |
4641 This was actually done in Emacs-21.1, and was not documented. | |
4642 | |
4643 +++ | |
4644 *** The new package button.el implements simple and fast `clickable buttons' | |
4645 in emacs buffers. `buttons' are much lighter-weight than the `widgets' | |
4646 implemented by widget.el, and can be used by lisp code that doesn't | |
4647 require the full power of widgets. Emacs uses buttons for such things | |
4648 as help and apropos buffers. | |
4649 | |
4650 --- | |
4651 *** master-mode.el implements a minor mode for scrolling a slave | |
4240 buffer without leaving your current buffer, the master buffer. | 4652 buffer without leaving your current buffer, the master buffer. |
4241 | 4653 |
4242 It can be used by sql.el, for example: the SQL buffer is the master | 4654 It can be used by sql.el, for example: the SQL buffer is the master |
4243 and its SQLi buffer is the slave. This allows you to scroll the SQLi | 4655 and its SQLi buffer is the slave. This allows you to scroll the SQLi |
4244 buffer containing the output from the SQL buffer containing the | 4656 buffer containing the output from the SQL buffer containing the |
4255 (add-hook 'sql-set-sqli-hook | 4667 (add-hook 'sql-set-sqli-hook |
4256 (function (lambda () | 4668 (function (lambda () |
4257 (master-set-slave sql-buffer)))) | 4669 (master-set-slave sql-buffer)))) |
4258 | 4670 |
4259 +++ | 4671 +++ |
4260 ** File local variables. | 4672 *** New Lisp library testcover.el works with edebug to help you determine |
4261 | 4673 whether you've tested all your Lisp code. Function testcover-start |
4262 A file local variables list cannot specify a string with text | 4674 instruments all functions in a given file. Then test your code. Function |
4263 properties--any specified text properties are discarded. | 4675 testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to |
4264 | 4676 show where coverage is lacking. Command testcover-next-mark (bind it to |
4265 +++ | 4677 a key!) will move point forward to the next spot that has a splotch. |
4266 ** New function window-body-height. | 4678 |
4267 | 4679 Normally, a red splotch indicates the form was never completely |
4268 This is like window-height but does not count the mode line | 4680 evaluated; a brown splotch means it always evaluated to the same |
4269 or the header line. | 4681 value. The red splotches are skipped for forms that can't possibly |
4270 | 4682 complete their evaluation, such as `error'. The brown splotches are |
4271 +++ | 4683 skipped for forms that are expected to always evaluate to the same |
4272 ** New function format-mode-line. | 4684 value, such as (setq x 14). |
4273 | 4685 |
4274 This returns the mode-line or header-line of the selected (or a | 4686 For difficult cases, you can add do-nothing macros to your code to |
4275 specified) window as a string with or without text properties. | 4687 help out the test coverage tool. The macro `noreturn' suppresses a |
4276 | 4688 red splotch. It is an error if the argument to `noreturn' does |
4277 +++ | 4689 return. The macro 1value suppresses a brown splotch for its argument. |
4278 ** New function `safe-get'. | 4690 This macro is a no-op except during test-coverage -- then it signals |
4279 | 4691 an error if the argument actually returns differing values. |
4280 This function is like `get', but never signals an error for | |
4281 a malformed symbol property list. | |
4282 | |
4283 +++ | |
4284 ** New function `safe-plist-get'. | |
4285 | |
4286 This function is like `plist-get', but never signals an error for | |
4287 a malformed property list. | |
4288 | |
4289 +++ | |
4290 ** New functions `lax-plist-get' and `lax-plist-put'. | |
4291 | |
4292 These functions are like `plist-get' and `plist-put' except that they | |
4293 compare the property name using `equal' rather than `eq'. | |
4294 | |
4295 +++ | |
4296 ** New function `tool-bar-local-item-from-menu' | |
4297 | |
4298 The `tool-bar-add-item-from-menu' must not be used (as previously | |
4299 recommended) for making entries in the tool bar for local keymaps. | |
4300 Instead, use the function `tool-bar-local-item-from-menu', which lets | |
4301 you specify the map to use as an argument. | |
4302 | |
4303 +++ | |
4304 ** The function `atan' now accepts an optional second argument. | |
4305 | |
4306 When called with 2 arguments, as in `(atan Y X)', `atan' returns the | |
4307 angle in radians between the vector [X, Y] and the X axis. (This is | |
4308 equivalent to the standard C library function `atan2'.) | |
4309 | |
4310 +++ | |
4311 ** You can now make a window as short as one line. | |
4312 | |
4313 A window that is just one line tall does not display either a mode | |
4314 line or a header line, even if the variables `mode-line-format' and | |
4315 `header-line-format' call for them. A window that is two lines tall | |
4316 cannot display both a mode line and a header line at once; if the | |
4317 variables call for both, only the mode line actually appears. | |
4318 | |
4319 +++ | |
4320 ** The new frame parameter `tty-color-mode' specifies the mode to use | |
4321 for color support on character terminal frames. Its value can be a | |
4322 number of colors to support, or a symbol. See the Emacs Lisp | |
4323 Reference manual for more detailed documentation. | |
4324 | |
4325 +++ | |
4326 ** The new mode-line construct `(:propertize ELT PROPS...)' can be | |
4327 used to add text properties to mode-line elements. | |
4328 | |
4329 +++ | |
4330 ** The new `%i' and `%I' constructs for `mode-line-format' can be used | |
4331 to display the size of the accessible part of the buffer on the mode | |
4332 line. | |
4333 | |
4334 --- | |
4335 ** Indentation of simple and extended loop forms has been added to the | |
4336 cl-indent package. The new user options | |
4337 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and | |
4338 `lisp-simple-loop-indentation' can be used to customize the | |
4339 indentation of keywords and forms in loop forms. | |
4340 | |
4341 --- | |
4342 ** Indentation of backquoted forms has been made customizable in the | |
4343 cl-indent package. See the new user option `lisp-backquote-indentation'. | |
4344 | |
4345 +++ | |
4346 ** Already true in Emacs 21.1, but not emphasized clearly enough: | |
4347 | |
4348 Multibyte buffers can now faithfully record all 256 character codes | |
4349 from 0 to 255. As a result, most of the past reasons to use unibyte | |
4350 buffers no longer exist. We only know of three reasons to use them | |
4351 now: | |
4352 | |
4353 1. If you prefer to use unibyte text all of the time. | |
4354 | |
4355 2. For reading files into temporary buffers, when you want to avoid | |
4356 the time it takes to convert the format. | |
4357 | |
4358 3. For binary files where format conversion would be pointless and | |
4359 wasteful. | |
4360 | |
4361 +++ | |
4362 ** If text has a `keymap' property, that keymap takes precedence | |
4363 over minor mode keymaps. | |
4364 | |
4365 +++ | |
4366 ** A hex escape in a string forces the string to be multibyte. | |
4367 An octal escape makes it unibyte. | |
4368 | |
4369 +++ | |
4370 ** At the end of a command, point moves out from within invisible | |
4371 text, in the same way it moves out from within text covered by an | |
4372 image or composition property. | |
4373 | |
4374 This makes it generally unnecessary to mark invisible text as intangible. | |
4375 This is particularly good because the intangible property often has | |
4376 unexpected side-effects since the property applies to everything | |
4377 (including `goto-char', ...) whereas this new code is only run after | |
4378 post-command-hook and thus does not care about intermediate states. | |
4379 | |
4380 +++ | |
4381 ** field-beginning and field-end now accept an additional optional | |
4382 argument, LIMIT. | |
4383 | |
4384 +++ | |
4385 ** define-abbrev now accepts an optional argument SYSTEM-FLAG. If | |
4386 non-nil, this marks the abbrev as a "system" abbrev, which means that | |
4387 it won't be stored in the user's abbrevs file if he saves the abbrevs. | |
4388 Major modes that predefine some abbrevs should always specify this | |
4389 flag. | |
4390 | 4692 |
4391 --- | 4693 --- |
4392 ** Support for Mocklisp has been removed. | 4694 ** Support for Mocklisp has been removed. |
4393 | 4695 |
4394 --- | 4696 --- |
4395 ** The function insert-string is now obsolete. | 4697 ** The function insert-string is now obsolete. |
4396 | |
4397 --- | |
4398 ** The precedence of file-name-handlers has been changed. | |
4399 Instead of blindly choosing the first handler that matches, | |
4400 find-file-name-handler now gives precedence to a file-name handler | |
4401 that matches near the end of the file name. More specifically, the | |
4402 handler whose (match-beginning 0) is the largest is chosen. | |
4403 In case of ties, the old "first matched" rule applies. | |
4404 | |
4405 --- | |
4406 ** Dense keymaps now handle inheritance correctly. | |
4407 Previously a dense keymap would hide all of the simple-char key | |
4408 bindings of the parent keymap. | |
4409 | |
4410 --- | |
4411 ** jit-lock obeys a new text-property `jit-lock-defer-multiline'. | |
4412 If a piece of text with that property gets contextually refontified | |
4413 (see jit-lock-defer-contextually), then all of that text will | |
4414 be refontified. This is useful when the syntax of a textual element | |
4415 depends on text several lines further down (and when font-lock-multiline | |
4416 is not appropriate to solve that problem). For example in Perl: | |
4417 | |
4418 s{ | |
4419 foo | |
4420 }{ | |
4421 bar | |
4422 }e | |
4423 | |
4424 Adding/removing the last `e' changes the `bar' from being a piece of | |
4425 text to being a piece of code, so you'd put a jit-lock-defer-multiline | |
4426 property over the second half of the command to force (deferred) | |
4427 refontification of `bar' whenever the `e' is added/removed. | |
4428 | |
4429 --- | |
4430 ** describe-vector now takes a second argument `describer' which is | |
4431 called to print the entries' values. It defaults to `princ'. | |
4432 | |
4433 +++ | |
4434 ** defcustom and other custom declarations now use a default group | |
4435 (the last prior group defined in the same file) when no :group was given. | |
4436 | |
4437 +++ | |
4438 ** emacsserver now runs pre-command-hook and post-command-hook when | |
4439 it receives a request from emacsclient. | |
4440 | |
4441 --- | |
4442 ** The variable `recursive-load-depth-limit' has been deleted. | |
4443 Emacs now signals an error if the same file is loaded with more | |
4444 than 3 levels of nesting. | |
4445 | |
4446 --- | |
4447 ** If a major mode function has a non-nil `no-clone-indirect' | |
4448 property, `clone-indirect-buffer' signals an error if you use | |
4449 it in that buffer. | |
4450 | |
4451 --- | |
4452 ** In `replace-match', the replacement text no longer inherits | |
4453 properties from surrounding text. | |
4454 | |
4455 +++ | |
4456 ** The list returned by `(match-data t)' now has the buffer as a final | |
4457 element, if the last match was on a buffer. `set-match-data' | |
4458 accepts such a list for restoring the match state. | |
4459 | |
4460 +++ | |
4461 ** New function `buffer-local-value'. | |
4462 | |
4463 This function returns the buffer-local binding of VARIABLE (a symbol) | |
4464 in buffer BUFFER. If VARIABLE does not have a buffer-local binding in | |
4465 buffer BUFFER, it returns the default value of VARIABLE instead. | |
4466 | |
4467 --- | |
4468 ** New function `text-clone-create'. Text clones are chunks of text | |
4469 that are kept identical by transparently propagating changes from one | |
4470 clone to the other. | |
4471 | |
4472 +++ | |
4473 ** font-lock can manage arbitrary text-properties beside `face'. | |
4474 *** the FACENAME returned in font-lock-keywords can be a list | |
4475 of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set | |
4476 other properties than `face'. | |
4477 *** font-lock-extra-managed-props can be set to make sure those extra | |
4478 properties are automatically cleaned up by font-lock. | |
4479 | |
4480 --- | |
4481 ** The special treatment of faces whose names are of the form `fg:COLOR' | |
4482 or `bg:COLOR' has been removed. Lisp programs should use the | |
4483 `defface' facility for defining faces with specific colors, or use | |
4484 the feature of specifying the face attributes :foreground and :background | |
4485 directly in the `face' property instead of using a named face. | |
4486 | |
4487 +++ | |
4488 ** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | |
4489 are used by define-derived-mode to make sure the mode hook for the | |
4490 parent mode is run at the end of the child mode. | |
4491 | |
4492 +++ | |
4493 ** define-minor-mode now accepts arbitrary additional keyword arguments | |
4494 and simply passes them to defcustom, if applicable. | |
4495 | |
4496 +++ | |
4497 ** define-derived-mode by default creates a new empty abbrev table. | |
4498 It does not copy abbrevs from the parent mode's abbrev table. | |
4499 | |
4500 +++ | |
4501 ** `provide' and `featurep' now accept an optional second argument | |
4502 to test/provide subfeatures. Also `provide' now checks `after-load-alist' | |
4503 and runs any code associated with the provided feature. | |
4504 | |
4505 +++ | |
4506 ** Functions `file-name-sans-extension' and `file-name-extension' now | |
4507 ignore the leading dots in file names, so that file names such as | |
4508 `.emacs' are treated as extensionless. | |
4509 | |
4510 +++ | |
4511 ** Functions `user-uid' and `user-real-uid' now return floats if the | |
4512 user UID doesn't fit in a Lisp integer. Function `user-full-name' | |
4513 accepts a float as UID parameter. | |
4514 | |
4515 --- | |
4516 ** `define-key-after' now accepts keys longer than 1. | |
4517 | |
4518 +++ | |
4519 ** The local variable `no-byte-compile' in elisp files is now obeyed. | |
4520 | |
4521 +++ | |
4522 ** The Emacs Lisp byte-compiler now displays the actual line and | |
4523 character position of errors, where possible. Additionally, the form | |
4524 of its warning and error messages have been brought more in line with | |
4525 the output of other GNU tools. | |
4526 | |
4527 +++ | |
4528 ** New functions `keymap-prompt' and `current-active-maps'. | |
4529 | |
4530 --- | |
4531 ** New function `describe-buffer-bindings'. | |
4532 | |
4533 +++ | |
4534 ** New vars `exec-suffixes' and `load-suffixes' used when | |
4535 searching for an executable resp. an elisp file. | |
4536 | |
4537 +++ | |
4538 ** Variable aliases have been implemented: | |
4539 | |
4540 *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | |
4541 | |
4542 This function defines the symbol ALIAS-VAR as a variable alias for | |
4543 symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR | |
4544 returns the value of BASE-VAR, and changing the value of ALIAS-VAR | |
4545 changes the value of BASE-VAR. | |
4546 | |
4547 DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | |
4548 the same documentation as BASE-VAR. | |
4549 | |
4550 *** indirect-variable VARIABLE | |
4551 | |
4552 This function returns the variable at the end of the chain of aliases | |
4553 of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | |
4554 defined as an alias, the function returns VARIABLE. | |
4555 | |
4556 It might be noteworthy that variables aliases work for all kinds of | |
4557 variables, including buffer-local and frame-local variables. | |
4558 | |
4559 +++ | |
4560 ** Functions from `post-gc-hook' are run at the end of garbage | |
4561 collection. The hook is run with GC inhibited, so use it with care. | |
4562 | |
4563 +++ | |
4564 ** If the second argument to `copy-file' is the name of a directory, | |
4565 the file is copied to that directory instead of signaling an error. | |
4566 | |
4567 +++ | |
4568 ** The variables most-positive-fixnum and most-negative-fixnum | |
4569 hold the largest and smallest possible integer values. | |
4570 | |
4571 --- | |
4572 ** On MS Windows, locale-coding-system is used to interact with the OS. | |
4573 The Windows specific variable w32-system-coding-system, which was | |
4574 formerly used for that purpose is now an alias for locale-coding-system. | |
4575 | |
4576 --- | |
4577 ** Functions y-or-n-p, read-char, read-key-sequence and the like, that | |
4578 display a prompt but don't use the minibuffer, now display the prompt | |
4579 using the text properties (esp. the face) of the prompt string. | |
4580 | |
4581 --- | |
4582 ** New function x-send-client-message sends a client message when | |
4583 running under X. | |
4584 | |
4585 +++ | |
4586 ** Arguments for remove-overlays are now optional, so that you can remove | |
4587 all overlays in the buffer by just calling (remove-overlay). | |
4588 | |
4589 ** New packages: | |
4590 | |
4591 +++ | |
4592 *** The new package gdb-ui.el provides an enhanced graphical interface to | |
4593 GDB. You can interact with GDB through the GUD buffer in the usual way, but | |
4594 there are also further buffers which control the execution and describe the | |
4595 state of your program. It separates the input/output of your program from | |
4596 that of GDB and watches expressions in the speedbar. It also uses features of | |
4597 Emacs 21 such as the display margin for breakpoints, and the toolbar. | |
4598 | |
4599 Use M-x gdba to start GDB-UI. | |
4600 | |
4601 *** The new package syntax.el provides an efficient way to find the | |
4602 current syntactic context (as returned by parse-partial-sexp). | |
4603 | |
4604 *** The new package bindat.el provides functions to unpack and pack | |
4605 binary data structures, such as network packets, to and from Lisp | |
4606 data structures. | |
4607 | |
4608 --- | |
4609 *** The TCL package tcl-mode.el was replaced by tcl.el. | |
4610 This was actually done in Emacs-21.1, and was not documented. | |
4611 | |
4612 +++ | |
4613 *** The new package button.el implements simple and fast `clickable buttons' | |
4614 in emacs buffers. `buttons' are much lighter-weight than the `widgets' | |
4615 implemented by widget.el, and can be used by lisp code that doesn't | |
4616 require the full power of widgets. Emacs uses buttons for such things | |
4617 as help and apropos buffers. | |
4618 | |
4619 | 4698 |
4620 * Installation changes in Emacs 21.3 | 4699 * Installation changes in Emacs 21.3 |
4621 | 4700 |
4622 ** Support for GNU/Linux on little-endian MIPS and on IBM S390 has | 4701 ** Support for GNU/Linux on little-endian MIPS and on IBM S390 has |
4623 been added. | 4702 been added. |