diff options
| author | Richard M. Stallman | 2005-05-02 20:58:54 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2005-05-02 20:58:54 +0000 |
| commit | 30b0da81df830271b6e5ce3902d28917e396fe59 (patch) | |
| tree | 40a98d344803da816f084b3deee164938582467e | |
| parent | bc4461134d6cade460ef4108675e286d67b2244a (diff) | |
| download | emacs-30b0da81df830271b6e5ce3902d28917e396fe59.tar.gz emacs-30b0da81df830271b6e5ce3902d28917e396fe59.zip | |
*** empty log message ***
| -rw-r--r-- | etc/ChangeLog | 4 | ||||
| -rw-r--r-- | etc/NEWS | 5656 |
2 files changed, 2815 insertions, 2845 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog index 902dcfb64a2..07a3c4d8297 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2005-05-02 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * NEWS: Items rearranged in logical order. | ||
| 4 | |||
| 1 | 2005-05-01 Lars Hansen <larsh@math.ku.dk> | 5 | 2005-05-01 Lars Hansen <larsh@math.ku.dk> |
| 2 | 6 | ||
| 3 | * NEWS: Correct key binding for dired-mark-omitted. | 7 | * NEWS: Correct key binding for dired-mark-omitted. |
| @@ -18,17 +18,12 @@ so we will look at it and add it to the manual. | |||
| 18 | * Installation Changes in Emacs 22.1 | 18 | * Installation Changes in Emacs 22.1 |
| 19 | 19 | ||
| 20 | --- | 20 | --- |
| 21 | ** Emacs includes now support for loading image libraries on demand. | 21 | ** Emacs now supports new configure options `--program-prefix', |
| 22 | (Currently this feature is only used on MS Windows.) You can configure | 22 | `--program-suffix' and `--program-transform-name' that affect the names of |
| 23 | the supported image types and their associated dynamic libraries by | 23 | installed programs. |
| 24 | setting the variable `image-library-alist'. | ||
| 25 | 24 | ||
| 26 | --- | 25 | --- |
| 27 | ** New translations of the Emacs Tutorial are available in the following | 26 | ** Emacs can now be built without sound support. |
| 28 | languages: Brasilian, Bulgarian, Chinese (both with simplified and | ||
| 29 | traditional characters), French, and Italian. Type `C-u C-h t' to | ||
| 30 | choose one of them in case your language setup doesn't automatically | ||
| 31 | select the right one. | ||
| 32 | 27 | ||
| 33 | --- | 28 | --- |
| 34 | ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' | 29 | ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk' |
| @@ -36,17 +31,9 @@ when you run configure. This requires Gtk+ 2.0 or newer. This port | |||
| 36 | provides a way to display multilingual text in menus (with some caveats). | 31 | provides a way to display multilingual text in menus (with some caveats). |
| 37 | 32 | ||
| 38 | --- | 33 | --- |
| 39 | ** Emacs can now be built without sound support. | ||
| 40 | |||
| 41 | --- | ||
| 42 | ** The `emacsserver' program has been removed, replaced with elisp code. | 34 | ** The `emacsserver' program has been removed, replaced with elisp code. |
| 43 | 35 | ||
| 44 | --- | 36 | --- |
| 45 | ** Emacs now supports new configure options `--program-prefix', | ||
| 46 | `--program-suffix' and `--program-transform-name' that affect the names of | ||
| 47 | installed programs. | ||
| 48 | |||
| 49 | --- | ||
| 50 | ** By default, Emacs now uses a setgid helper program to update game | 37 | ** By default, Emacs now uses a setgid helper program to update game |
| 51 | scores. The directory ${localstatedir}/games/emacs is the normal | 38 | scores. The directory ${localstatedir}/games/emacs is the normal |
| 52 | place for game scores to be stored. This may be controlled by the | 39 | place for game scores to be stored. This may be controlled by the |
| @@ -78,6 +65,22 @@ item was added to the menu bar that makes it easy accessible | |||
| 78 | (Help->More Manuals->Introduction to Emacs Lisp). | 65 | (Help->More Manuals->Introduction to Emacs Lisp). |
| 79 | 66 | ||
| 80 | --- | 67 | --- |
| 68 | ** New translations of the Emacs Tutorial are available in the following | ||
| 69 | languages: Brasilian, Bulgarian, Chinese (both with simplified and | ||
| 70 | traditional characters), French, and Italian. Type `C-u C-h t' to | ||
| 71 | choose one of them in case your language setup doesn't automatically | ||
| 72 | select the right one. | ||
| 73 | |||
| 74 | --- | ||
| 75 | ** A French translation of the `Emacs Survival Guide' is available. | ||
| 76 | |||
| 77 | --- | ||
| 78 | ** Emacs now includes support for loading image libraries on demand. | ||
| 79 | (Currently this feature is only used on MS Windows.) You can configure | ||
| 80 | the supported image types and their associated dynamic libraries by | ||
| 81 | setting the variable `image-library-alist'. | ||
| 82 | |||
| 83 | --- | ||
| 81 | ** Support for Cygwin was added. | 84 | ** Support for Cygwin was added. |
| 82 | 85 | ||
| 83 | --- | 86 | --- |
| @@ -99,99 +102,79 @@ create non-Carbon build by specifying `NonCarbon' as a target. See | |||
| 99 | the files mac/README and mac/INSTALL for build instructions. | 102 | the files mac/README and mac/INSTALL for build instructions. |
| 100 | 103 | ||
| 101 | --- | 104 | --- |
| 102 | ** A French translation of the `Emacs Survival Guide' is available. | ||
| 103 | |||
| 104 | --- | ||
| 105 | ** Building with -DENABLE_CHECKING does not automatically build with union | 105 | ** Building with -DENABLE_CHECKING does not automatically build with union |
| 106 | types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. | 106 | types any more. Add -DUSE_LISP_UNION_TYPE if you want union types. |
| 107 | 107 | ||
| 108 | 108 | ||
| 109 | * Changes in Emacs 22.1 | 109 | * Changes in Emacs 22.1 |
| 110 | 110 | ||
| 111 | ** Moving or scrolling through images (and other lines) taller that | 111 | ** New command line option -Q or --quick. |
| 112 | the window now works sensible, by automatically adjusting the window's | 112 | This is like using -q --no-site-file, but in addition it also disables |
| 113 | vscroll property. | 113 | the fancy startup screen. |
| 114 | 114 | ||
| 115 | +++ | 115 | +++ |
| 116 | ** In graphical mode, with a C program, GUD Tooltips have been extended to | 116 | ** New command line option -D or --basic-display. |
| 117 | display the #define directive associated with an identifier when program is | 117 | Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and |
| 118 | not executing. | 118 | the blinking cursor. |
| 119 | 119 | ||
| 120 | +++ | 120 | +++ |
| 121 | ** `comint-use-prompt-regexp-instead-of-fields' has been renamed | 121 | ** New command line option -nbc or --no-blinking-cursor disables |
| 122 | `comint-use-prompt-regexp'. The old name has been kept as an alias, | 122 | the blinking cursor on graphical terminals. |
| 123 | but declared obsolete. | ||
| 124 | |||
| 125 | ** Improved key bindings support when running in an xterm. | ||
| 126 | When emacs is running in an xterm more key bindings are available. The | ||
| 127 | following should work: | ||
| 128 | {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. | ||
| 129 | These key bindings work on xterm from X.org 6.8, they might not work on | ||
| 130 | some older versions of xterm, or on some proprietary versions. | ||
| 131 | |||
| 132 | ** Improved Thai support. A new minor mode `thai-word-mode' (which is | ||
| 133 | automatically activated if you select Thai as a language | ||
| 134 | environment) changes key bindings of most word-oriented commands to | ||
| 135 | versions which recognize Thai words. Affected commands are | ||
| 136 | M-f (forward-word) | ||
| 137 | M-b (backward-word) | ||
| 138 | M-d (kill-word) | ||
| 139 | M-DEL (backward-kill-word) | ||
| 140 | M-t (transpose-words) | ||
| 141 | M-q (fill-paragraph) | ||
| 142 | 123 | ||
| 143 | +++ | 124 | +++ |
| 144 | ** Auto Compression mode is now enabled by default. | 125 | ** The command line option --no-windows has been changed to |
| 145 | 126 | --no-window-system. The old one still works, but is deprecated. | |
| 146 | ** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. | ||
| 147 | 127 | ||
| 148 | Since the default input is the current directory, this has the effect | 128 | +++ |
| 149 | of specifying the current directory. Normally that means to visit the | 129 | ** The -f option, used from the command line to call a function, |
| 150 | directory with Dired. | 130 | now reads arguments for the function interactively if it is |
| 131 | an interactively callable function. | ||
| 151 | 132 | ||
| 152 | --- | 133 | +++ |
| 153 | ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. | 134 | ** Emacs can now be invoked in full-screen mode on a windowed display. |
| 135 | When Emacs is invoked on a window system, the new command-line options | ||
| 136 | `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | ||
| 137 | whose width, height, or both width and height take up the entire | ||
| 138 | screen size. (For now, this does not work with some window managers.) | ||
| 154 | 139 | ||
| 155 | --- | 140 | +++ |
| 156 | ** The default settings for JIT stealth lock parameters are changed. | 141 | ** Emacs now displays a splash screen by default even if command-line |
| 157 | The default value for the user option jit-lock-stealth-time is now 16 | 142 | arguments were given. The new command-line option --no-splash |
| 158 | instead of 3, and the default value of jit-lock-stealth-nice is now | 143 | disables the splash screen; see also the variable |
| 159 | 0.5 instead of 0.125. The new defaults should lower the CPU usage | 144 | `inhibit-startup-message' (which is also aliased as |
| 160 | when Emacs is fontifying in the background. | 145 | `inhibit-splash-screen'). |
| 161 | 146 | ||
| 162 | --- | 147 | +++ |
| 163 | ** iso-acc.el is now obsolete. Use one of the latin input methods instead. | 148 | ** New user option `inhibit-startup-buffer-menu'. |
| 149 | When loading many files, for instance with `emacs *', Emacs normally | ||
| 150 | displays a buffer menu. This option turns the buffer menu off. | ||
| 164 | 151 | ||
| 165 | --- | 152 | +++ |
| 166 | ** Language environment and various default coding systems are setup | 153 | ** Init file changes |
| 167 | more correctly according to the current locale name. If the locale | 154 | You can now put the init files .emacs and .emacs_SHELL under |
| 168 | name doesn't specify a charset, the default is what glibc defines. | 155 | ~/.emacs.d or directly under ~. Emacs will find them in either place. |
| 169 | This change may result in using the different coding systems as | ||
| 170 | default in some locale (e.g. vi_VN). | ||
| 171 | 156 | ||
| 172 | +++ | 157 | +++ |
| 173 | ** The commands copy-file, rename-file, make-symbolic-link and | 158 | ** Emacs now reads the standard abbrevs file ~/.abbrev_defs |
| 174 | add-name-to-file, when given a directory as the "new name" argument, | 159 | automatically at startup, if it exists. When Emacs offers to save |
| 175 | convert it to a file name by merging in the within-directory part of | 160 | modified buffers, it saves the abbrevs too if they have changed. It |
| 176 | the existing file's name. (This is the same convention that shell | 161 | can do this either silently or asking for confirmation first, |
| 177 | commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | 162 | according to the value of `save-abbrevs'. |
| 178 | /tmp RET copies ~/foo to /tmp/foo. | ||
| 179 | 163 | ||
| 180 | +++ | 164 | +++ |
| 181 | ** M-o now is the prefix key for setting text properties; | 165 | ** The mode line position information now comes before the major mode. |
| 182 | M-o M-o requests refontification. | 166 | When the file is maintained under version control, that information |
| 167 | appears between the position information and the major mode. | ||
| 183 | 168 | ||
| 184 | +++ | 169 | +++ |
| 185 | ** M-g is now a prefix key. | 170 | ** M-g is now a prefix key. |
| 186 | |||
| 187 | M-g g and M-g M-g run goto-line. | 171 | M-g g and M-g M-g run goto-line. |
| 188 | M-g n and M-g M-n run next-error (like C-x `). | 172 | M-g n and M-g M-n run next-error (like C-x `). |
| 189 | M-g p and M-g M-p run previous-error. | 173 | M-g p and M-g M-p run previous-error. |
| 190 | 174 | ||
| 191 | +++ | 175 | +++ |
| 192 | ** font-lock-lines-before specifies a number of lines before the | 176 | ** M-o now is the prefix key for setting text properties; |
| 193 | current line that should be refontified when you change the buffer. | 177 | M-o M-o requests refontification. |
| 194 | The default value is 1. | ||
| 195 | 178 | ||
| 196 | +++ | 179 | +++ |
| 197 | ** C-u M-x goto-line now switches to the most recent previous buffer, | 180 | ** C-u M-x goto-line now switches to the most recent previous buffer, |
| @@ -200,86 +183,46 @@ and goes to the specified line in that buffer. | |||
| 200 | When goto-line starts to execute, if there's a number in the buffer at | 183 | When goto-line starts to execute, if there's a number in the buffer at |
| 201 | point then it acts as the default argument for the minibuffer. | 184 | point then it acts as the default argument for the minibuffer. |
| 202 | 185 | ||
| 203 | --- | ||
| 204 | ** Emacs now responds to mouse-clicks on the mode-line, header-line and | ||
| 205 | display margin, when run in an xterm. | ||
| 206 | |||
| 207 | +++ | 186 | +++ |
| 208 | ** M-SPC (just-one-space) when given a numeric argument N | 187 | ** You can now switch buffers in a cyclic order with C-x C-left and |
| 209 | converts whitespace around point to N spaces. | 188 | (prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right |
| 189 | can be used as well. | ||
| 210 | 190 | ||
| 211 | +++ | 191 | +++ |
| 212 | ** Control characters and escape glyphs are now shown in the new | 192 | ** New command `Buffer-menu-toggle-files-only' toggles display of file |
| 213 | escape-glyph face. | 193 | buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu |
| 194 | mode. | ||
| 214 | 195 | ||
| 215 | +++ | 196 | +++ |
| 216 | ** Non-breaking space and hyphens are now prefixed with an escape | 197 | ** `buffer-menu' and `list-buffers' now list buffers whose names begin |
| 217 | character, unless the new user variable `show-nonbreak-escape' is set | 198 | with a space, when those buffers are visiting files. Normally buffers |
| 218 | to nil. | 199 | whose names begin with space are omitted. |
| 219 | |||
| 220 | --- | ||
| 221 | ** The type-break package now allows `type-break-file-name' to be nil | ||
| 222 | and if so, doesn't store any data across sessions. This is handy if | ||
| 223 | you don't want the .type-break file in your home directory or are | ||
| 224 | annoyed by the need for interaction when you kill Emacs. | ||
| 225 | |||
| 226 | --- | ||
| 227 | ** display-battery has been replaced by display-battery-mode. | ||
| 228 | 200 | ||
| 229 | --- | 201 | --- |
| 230 | ** calculator.el now has radix grouping mode, which is available when | 202 | ** The new options `buffers-menu-show-directories' and |
| 231 | `calculator-output-radix' is non-nil. In this mode a separator | 203 | `buffers-menu-show-status' let you control how buffers are displayed |
| 232 | character is used every few digits, making it easier to see byte | 204 | in the menu dropped down when you click "Buffers" from the menu bar. |
| 233 | boundries etc. For more info, see the documentation of the variable | ||
| 234 | `calculator-radix-grouping-mode'. | ||
| 235 | |||
| 236 | +++ | ||
| 237 | ** You can now follow links by clicking Mouse-1 on the link. | ||
| 238 | |||
| 239 | Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 | ||
| 240 | click to follow a link, whereas most other applications use a Mouse-1 | ||
| 241 | click for both purposes, depending on whether you click outside or | ||
| 242 | inside a link. Now the behavior of a Mouse-1 click has been changed | ||
| 243 | to match this context-sentitive dual behavior. | ||
| 244 | |||
| 245 | Depending on the current mode, a Mouse-2 click in Emacs may do much | ||
| 246 | more than just follow a link, so the new Mouse-1 behavior is only | ||
| 247 | activated for modes which explicitly mark a clickable text as a "link" | ||
| 248 | (see the new function `mouse-on-link-p' for details). The Lisp | ||
| 249 | packages that are included in release 22.1 have been adapted to do | ||
| 250 | this, but external packages may not yet support this. However, there | ||
| 251 | is no risk in using such packages, as the worst thing that could | ||
| 252 | happen is that you get the original Mouse-1 behavior when you click | ||
| 253 | on a link, which typically means that you set point where you click. | ||
| 254 | 205 | ||
| 255 | If you want to get the original Mouse-1 action also inside a link, you | 206 | `buffers-menu-show-directories' controls whether the menu displays |
| 256 | just need to press the Mouse-1 button a little longer than a normal | 207 | leading directories as part of the file name visited by the buffer. |
| 257 | click (i.e. press and hold the Mouse-1 button for half a second before | 208 | If its value is `unless-uniquify', the default, directories are |
| 258 | you release it). | 209 | shown unless uniquify-buffer-name-style' is non-nil. The value of nil |
| 210 | and t turn the display of directories off and on, respectively. | ||
| 259 | 211 | ||
| 260 | Dragging the Mouse-1 inside a link still performs the original | 212 | `buffers-menu-show-status' controls whether the Buffers menu includes |
| 261 | drag-mouse-1 action, typically copy the text. | 213 | the modified and read-only status of the buffers. By default it is |
| 214 | t, and the status is shown. | ||
| 262 | 215 | ||
| 263 | You can customize the new Mouse-1 behavior via the new user options | 216 | Setting these variables directly does not take effect until next time |
| 264 | `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. | 217 | the Buffers menu is regenerated. |
| 265 | 218 | ||
| 266 | +++ | 219 | +++ |
| 267 | ** require-final-newline now has two new possible values: | 220 | ** The old bindings C-M-delete and C-M-backspace have been deleted, |
| 268 | 221 | since there are situations where one or the other will shut down | |
| 269 | `visit' means add a newline (as an undoable change) if it's needed | 222 | the operating system or your X server. |
| 270 | when visiting the file. | ||
| 271 | |||
| 272 | `visit-save' means add a newline (as an undoable change) if it's | ||
| 273 | needed when visiting the file, and also add a newline if it's needed | ||
| 274 | when saving the file. | ||
| 275 | 223 | ||
| 276 | +++ | 224 | +++ |
| 277 | ** The new option mode-require-final-newline controls how certain | 225 | ** `undo-only' does an undo which does not redo any previous undo. |
| 278 | major modes enable require-final-newline. Any major mode that's | ||
| 279 | designed for a kind of file that should normally end in a newline | ||
| 280 | sets require-final-newline based on mode-require-final-newline. | ||
| 281 | So you can customize mode-require-final-newline to control what these | ||
| 282 | modes do. | ||
| 283 | 226 | ||
| 284 | +++ | 227 | +++ |
| 285 | ** When the undo information of the current command gets really large | 228 | ** When the undo information of the current command gets really large |
| @@ -287,358 +230,322 @@ modes do. | |||
| 287 | you about it. | 230 | you about it. |
| 288 | 231 | ||
| 289 | +++ | 232 | +++ |
| 290 | ** line-move-ignore-invisible now defaults to t. | 233 | ** M-SPC (just-one-space) when given a numeric argument N |
| 291 | 234 | converts whitespace around point to N spaces. | |
| 292 | +++ | ||
| 293 | ** In Outline mode, hide-body no longer hides lines at the top | ||
| 294 | of the file that precede the first header line. | ||
| 295 | 235 | ||
| 296 | +++ | 236 | --- |
| 297 | ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | 237 | ** New command `kill-whole-line' kills an entire line at once. |
| 298 | by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | 238 | By default, it is bound to C-S-<backspace>. |
| 299 | and `C-c C-r'. | ||
| 300 | 239 | ||
| 301 | +++ | 240 | +++ |
| 302 | ** In processing a local variables list, Emacs strips the prefix and | 241 | ** Yanking text now discards certain text properties that can |
| 303 | suffix are from every line before processing all the lines. | 242 | be inconvenient when you did not expect them. The variable |
| 243 | `yank-excluded-properties' specifies which ones. Insertion | ||
| 244 | of register contents and rectangles also discards these properties. | ||
| 304 | 245 | ||
| 305 | +++ | 246 | +++ |
| 306 | ** `apply-macro-to-region-lines' now operates on all lines that begin | 247 | ** The default values of paragraph-start and indent-line-function have |
| 307 | in the region, rather than on all complete lines in the region. | 248 | been changed to reflect those used in Text mode rather than those used |
| 308 | 249 | in Indented-Text mode. | |
| 309 | --- | ||
| 310 | ** global-whitespace-mode is a new alias for whitespace-global-mode. | ||
| 311 | 250 | ||
| 312 | +++ | 251 | +++ |
| 313 | ** There are now two new regular expression operators, \_< and \_>, | 252 | ** Movement commands `beginning-of-buffer', `end-of-buffer', |
| 314 | for matching the beginning and end of a symbol. A symbol is a | 253 | `beginning-of-defun', `end-of-defun' do not set the mark if the mark |
| 315 | non-empty sequence of either word or symbol constituent characters, as | 254 | is already active in Transient Mark mode. |
| 316 | specified by the syntax table. | ||
| 317 | --- | ||
| 318 | *** rx.el has new corresponding `symbol-end' and `symbol-start' elements. | ||
| 319 | 255 | ||
| 320 | +++ | 256 | +++ |
| 321 | ** Passing resources on the command line now works on MS Windows. | 257 | ** The parameters of automatic hscrolling can now be customized. |
| 322 | You can use --xrm to pass resource settings to Emacs, overriding any | 258 | The variable `hscroll-margin' determines how many columns away from |
| 323 | existing values. For example: | 259 | the window edge point is allowed to get before automatic hscrolling |
| 324 | 260 | will horizontally scroll the window. The default value is 5. | |
| 325 | emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | ||
| 326 | |||
| 327 | will start up Emacs on an initial frame of 100x20 with red background, | ||
| 328 | irrespective of geometry or background setting on the Windows registry. | ||
| 329 | 261 | ||
| 330 | --- | 262 | The variable `hscroll-step' determines how many columns automatic |
| 331 | ** The terminal emulation code in term.el has been improved, it can | 263 | hscrolling scrolls the window when point gets too close to the |
| 332 | run most curses applications now. | 264 | window edge. If its value is zero, the default, Emacs scrolls the |
| 265 | window so as to center point. If its value is an integer, it says how | ||
| 266 | many columns to scroll. If the value is a floating-point number, it | ||
| 267 | gives the fraction of the window's width to scroll the window. | ||
| 333 | 268 | ||
| 334 | ** New features in evaluation commands | 269 | The variable `automatic-hscrolling' was renamed to |
| 270 | `auto-hscroll-mode'. The old name is still available as an alias. | ||
| 335 | 271 | ||
| 336 | +++ | 272 | +++ |
| 337 | *** The function `eval-defun' (C-M-x) called on defface reinitializes | 273 | ** A prefix argument is no longer required to repeat a jump to a |
| 338 | the face to the value specified in the defface expression. | 274 | previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the |
| 275 | mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. | ||
| 339 | 276 | ||
| 340 | +++ | 277 | +++ |
| 341 | *** Typing C-x C-e twice prints the value of the integer result | 278 | ** Marking commands extend the region when invoked multiple times. If |
| 342 | in additional formats (octal, hexadecimal, character) specified | 279 | you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or |
| 343 | by the new function `eval-expression-print-format'. The same | 280 | C-M-h (mark-defun) repeatedly, the marked region extends each time, so |
| 344 | function also defines the result format for `eval-expression' (M-:), | 281 | you can mark the next two sexps with M-C-SPC M-C-SPC, for example. |
| 345 | `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | 282 | This feature also works for mark-end-of-sentence, if you bind that to |
| 346 | 283 | a key. It also extends the region when the mark is active in Transient | |
| 347 | --- | 284 | Mark mode, regardless of the last command. To start a new region with |
| 348 | ** New input method chinese-sisheng for inputting Chinese Pinyin | 285 | one of marking commands in Transient Mark mode, you can deactivate the |
| 349 | characters. | 286 | active region with C-g, or set the new mark with C-SPC. |
| 350 | 287 | ||
| 351 | +++ | 288 | +++ |
| 352 | ** New command quail-show-key shows what key (or key sequence) to type | 289 | ** M-h (mark-paragraph) now accepts a prefix arg. |
| 353 | in the current input method to input a character at point. | 290 | With positive arg, M-h marks the current and the following paragraphs; |
| 291 | if the arg is negative, it marks the current and the preceding | ||
| 292 | paragraphs. | ||
| 354 | 293 | ||
| 355 | +++ | 294 | +++ |
| 356 | ** You can now switch buffers in a cyclic order with C-x C-left and | 295 | ** Some commands do something special in Transient Mark mode when the |
| 357 | (prev-buffer) and C-x C-right (next-buffer). C-x left and C-x right | 296 | mark is active--for instance, they limit their operation to the |
| 358 | can be used as well. | 297 | region. Even if you don't normally use Transient Mark mode, you might |
| 359 | 298 | want to get this behavior from a particular command. There are two | |
| 360 | --- | 299 | ways you can enable Transient Mark mode and activate the mark, for one |
| 361 | ** Commands winner-redo and winner-undo, from winner.el, are now bound to | 300 | command only. |
| 362 | C-c <left> and C-c <right>, respectively. This is an incompatible change. | ||
| 363 | |||
| 364 | --- | ||
| 365 | ** Help commands `describe-function' and `describe-key' now show function | ||
| 366 | arguments in lowercase italics on displays that support it. To change the | ||
| 367 | default, customize face `help-argument-name' or redefine the function | ||
| 368 | `help-default-arg-highlight'. | ||
| 369 | |||
| 370 | --- | ||
| 371 | ** The comint prompt can now be made read-only, using the new user | ||
| 372 | option `comint-prompt-read-only'. This is not enabled by default, | ||
| 373 | except in IELM buffers. The read-only status of IELM prompts can be | ||
| 374 | controlled with the new user option `ielm-prompt-read-only', which | ||
| 375 | overrides `comint-prompt-read-only'. | ||
| 376 | |||
| 377 | The new commands `comint-kill-whole-line' and `comint-kill-region' | ||
| 378 | support editing comint buffers with read-only prompts. | ||
| 379 | 301 | ||
| 380 | `comint-kill-whole-line' is like `kill-whole-line', but ignores both | 302 | One method is to type C-SPC C-SPC; this enables Transient Mark mode |
| 381 | read-only and field properties. Hence, it always kill entire | 303 | and sets the mark at point. The other method is to type C-u C-x C-x. |
| 382 | lines, including any prompts. | 304 | This enables Transient Mark mode temporarily but does not alter the |
| 305 | mark or the region. | ||
| 383 | 306 | ||
| 384 | `comint-kill-region' is like `kill-region', except that it ignores | 307 | After these commands, Transient Mark mode remains enabled until you |
| 385 | read-only properties, if it is safe to do so. This means that if any | 308 | deactivate the mark. That typically happens when you type a command |
| 386 | part of a prompt is deleted, then the entire prompt must be deleted | 309 | that alters the buffer, but you can also deactivate the mark by typing |
| 387 | and that all prompts must stay at the beginning of a line. If this is | 310 | C-g. |
| 388 | not the case, then `comint-kill-region' behaves just like | ||
| 389 | `kill-region' if read-only are involved: it copies the text to the | ||
| 390 | kill-ring, but does not delete it. | ||
| 391 | 311 | ||
| 392 | +++ | 312 | +++ |
| 393 | ** You can now use next-error (C-x `) and previous-error to advance to | 313 | ** find-file-read-only visits multiple files in read-only mode, |
| 394 | the next/previous matching line found by M-x occur. | 314 | when the file name contains wildcard characters. |
| 395 | 315 | ||
| 396 | +++ | 316 | +++ |
| 397 | ** Telnet now prompts you for a port number with C-u M-x telnet. | 317 | ** find-alternate-file replaces the current file with multiple files, |
| 318 | when the file name contains wildcard characters. | ||
| 398 | 319 | ||
| 399 | +++ | 320 | +++ |
| 400 | ** New command line option -Q or --quick. | 321 | ** Auto Compression mode is now enabled by default. |
| 401 | 322 | ||
| 402 | This is like using -q --no-site-file, but in addition it also disables | 323 | --- |
| 403 | the fancy startup screen. | 324 | ** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case. |
| 404 | 325 | ||
| 405 | +++ | 326 | Since the default input is the current directory, this has the effect |
| 406 | ** New command line option -D or --basic-display. | 327 | of specifying the current directory. Normally that means to visit the |
| 328 | directory with Dired. | ||
| 407 | 329 | ||
| 408 | Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and | 330 | +++ |
| 409 | the blinking cursor. | 331 | ** When you are root, and you visit a file whose modes specify |
| 332 | read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | ||
| 333 | want to make the buffer writable. (As root, you can in fact alter the | ||
| 334 | file.) | ||
| 410 | 335 | ||
| 411 | +++ | 336 | +++ |
| 412 | ** New command line option -nbc or --no-blinking-cursor disables | 337 | ** C-x s (save-some-buffers) now offers an option `d' to diff a buffer |
| 413 | the blinking cursor on graphical terminals. | 338 | against its file, so you can see what changes you would be saving. |
| 414 | 339 | ||
| 415 | +++ | 340 | +++ |
| 416 | ** C-h v and C-h f commands now include a hyperlink to the C source for | 341 | ** The commands copy-file, rename-file, make-symbolic-link and |
| 417 | variables and functions defined in C (if the C source is available). | 342 | add-name-to-file, when given a directory as the "new name" argument, |
| 343 | convert it to a file name by merging in the within-directory part of | ||
| 344 | the existing file's name. (This is the same convention that shell | ||
| 345 | commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET | ||
| 346 | /tmp RET copies ~/foo to /tmp/foo. | ||
| 418 | 347 | ||
| 419 | --- | 348 | --- |
| 420 | ** When used interactively, `format-write-file' now asks for confirmation | 349 | ** When used interactively, `format-write-file' now asks for confirmation |
| 421 | before overwriting an existing file, unless a prefix argument is | 350 | before overwriting an existing file, unless a prefix argument is |
| 422 | supplied. This behavior is analogous to `write-file'. | 351 | supplied. This behavior is analogous to `write-file'. |
| 423 | 352 | ||
| 424 | +++ | 353 | --- |
| 425 | ** You can now use Auto Revert mode to `tail' a file. | 354 | ** The variable `auto-save-file-name-transforms' now has a third element that |
| 426 | If point is at the end of a file buffer before reverting, Auto Revert | 355 | controls whether or not the function `make-auto-save-file-name' will |
| 427 | mode keeps it at the end after reverting. Similarly if point is | 356 | attempt to construct a unique auto-save name (e.g. for remote files). |
| 428 | displayed at the end of a file buffer in any window, it stays at | ||
| 429 | the end of the buffer in that window. This allows to tail a file: | ||
| 430 | just put point at the end of the buffer and it stays there. This | ||
| 431 | rule applies to file buffers. For non-file buffers, the behavior may | ||
| 432 | be mode dependent. | ||
| 433 | |||
| 434 | If you are sure that the file will only change by growing at the end, | ||
| 435 | then you can tail the file more efficiently by using the new minor | ||
| 436 | mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | ||
| 437 | toggles this mode. | ||
| 438 | 357 | ||
| 439 | +++ | 358 | +++ |
| 440 | ** Auto Revert mode is now more careful to avoid excessive reverts and | 359 | ** The max size of buffers and integers has been doubled. |
| 441 | other potential problems when deciding which non-file buffers to | 360 | On 32bit machines, it is now 256M (i.e. 268435455). |
| 442 | revert. This matters especially if Global Auto Revert mode is enabled | ||
| 443 | and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert | ||
| 444 | mode only reverts a non-file buffer if the buffer has a non-nil | ||
| 445 | `revert-buffer-function' and a non-nil `buffer-stale-function', which | ||
| 446 | decides whether the buffer should be reverted. Currently, this means | ||
| 447 | that auto reverting works for Dired buffers (although this may not | ||
| 448 | work properly on all operating systems) and for the Buffer Menu. | ||
| 449 | 361 | ||
| 450 | +++ | 362 | +++ |
| 451 | ** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | 363 | ** If the user visits a file larger than `large-file-warning-threshold', |
| 452 | Revert mode reliably updates version control info (such as the version | 364 | Emacs prompts her for confirmation. |
| 453 | control number in the mode line), in all version controlled buffers in | ||
| 454 | which it is active. If the option is nil, the default, then this info | ||
| 455 | only gets updated whenever the buffer gets reverted. | ||
| 456 | 365 | ||
| 457 | +++ | 366 | +++ |
| 458 | ** New command `Buffer-menu-toggle-files-only' toggles display of file | 367 | ** There's a new face `minibuffer-prompt'. |
| 459 | buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu | 368 | Emacs adds this face to the list of text properties stored in the |
| 460 | mode. | 369 | variable `minibuffer-prompt-properties', which is used to display the |
| 370 | prompt string. | ||
| 461 | 371 | ||
| 462 | --- | 372 | --- |
| 463 | ** M-x compile has become more robust and reliable | 373 | ** Enhanced visual feedback in *Completions* buffer. |
| 464 | |||
| 465 | Quite a few more kinds of messages are recognized. Messages that are | ||
| 466 | recognized as warnings or informational come in orange or green, instead of | ||
| 467 | red. Informational messages are by default skipped with `next-error' | ||
| 468 | (controlled by `compilation-skip-threshold'). | ||
| 469 | |||
| 470 | Location data is collected on the fly as the *compilation* buffer changes. | ||
| 471 | This means you could modify messages to make them point to different files. | ||
| 472 | This also means you can not go to locations of messages you may have deleted. | ||
| 473 | |||
| 474 | The variable `compilation-error-regexp-alist' has now become customizable. If | ||
| 475 | you had added your own regexps to this, you'll probably need to include a | ||
| 476 | leading `^', otherwise they'll match anywhere on a line. There is now also a | ||
| 477 | `compilation-mode-font-lock-keywords' and it nicely handles all the checks | ||
| 478 | that configure outputs and -o options so you see at a glance where you are. | ||
| 479 | 374 | ||
| 480 | The new file etc/compilation.txt gives examples of each type of message. | 375 | Completions lists use faces to highlight what all completions |
| 376 | have in common and where they begin to differ. | ||
| 481 | 377 | ||
| 482 | ** Compilation mode enhancements: | 378 | The common prefix shared by all possible completions uses the face |
| 379 | `completions-common-part', while the first character that isn't the | ||
| 380 | same uses the face `completions-first-difference'. By default, | ||
| 381 | `completions-common-part' inherits from `default', and | ||
| 382 | `completions-first-difference' inherits from `bold'. The idea of | ||
| 383 | `completions-common-part' is that you can use it to make the common | ||
| 384 | parts less visible than normal, so that the rest of the differing | ||
| 385 | parts is, by contrast, slightly highlighted. | ||
| 483 | 386 | ||
| 484 | +++ | 387 | +++ |
| 485 | *** New user option `compilation-environment'. | 388 | ** File-name completion can now ignore directories. |
| 486 | This option allows you to specify environment variables for inferior | 389 | If an element of the list in `completion-ignored-extensions' ends in a |
| 487 | compilation processes without affecting the environment that all | 390 | slash `/', it indicates a subdirectory that should be ignored when |
| 488 | subprocesses inherit. | 391 | completing file names. Elements of `completion-ignored-extensions' |
| 392 | which do not end in a slash are never considered when a completion | ||
| 393 | candidate is a directory. | ||
| 489 | 394 | ||
| 490 | +++ | 395 | +++ |
| 491 | ** Grep has been decoupled from compilation mode setup. | 396 | ** The completion commands TAB, SPC and ? in the minibuffer apply only |
| 492 | 397 | to the text before point. If there is text in the buffer after point, | |
| 493 | --- | 398 | it remains unchanged. |
| 494 | *** There's a new separate package grep.el. | ||
| 495 | 399 | ||
| 496 | --- | 400 | +++ |
| 497 | *** M-x grep has been adapted to new compile | 401 | ** New user option `history-delete-duplicates'. |
| 402 | If set to t when adding a new history element, all previous identical | ||
| 403 | elements are deleted. | ||
| 498 | 404 | ||
| 499 | Hits are fontified in green, and hits in binary files in orange. Grep buffers | 405 | +++ |
| 500 | can be saved and automatically revisited with the new Grep mode. | 406 | ** You can now customize fill-nobreak-predicate to control where |
| 407 | filling can break lines. The value is now normally a list of | ||
| 408 | functions, but it can also be a single function, for compatibility. | ||
| 501 | 409 | ||
| 502 | --- | 410 | We provide two sample predicates, fill-single-word-nobreak-p and |
| 503 | *** Grep commands now have their own submenu and customization group. | 411 | fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. |
| 504 | 412 | ||
| 505 | +++ | 413 | +++ |
| 506 | *** `grep-find' is now also available under the name `find-grep' where | 414 | ** require-final-newline now has two new possible values: |
| 507 | people knowing `find-grep-dired' would probably expect it. | ||
| 508 | 415 | ||
| 509 | --- | 416 | `visit' means add a newline (as an undoable change) if it's needed |
| 510 | *** The new variables `grep-window-height', `grep-auto-highlight', and | 417 | when visiting the file. |
| 511 | `grep-scroll-output' can be used to override the corresponding | ||
| 512 | compilation mode settings for grep commands. | ||
| 513 | 418 | ||
| 514 | +++ | 419 | `visit-save' means add a newline (as an undoable change) if it's |
| 515 | *** New option `grep-highlight-matches' highlightes matches in *grep* | 420 | needed when visiting the file, and also add a newline if it's needed |
| 516 | buffer. It uses a special feature of some grep programs which accept | 421 | when saving the file. |
| 517 | --color option to output markers around matches. When going to the next | ||
| 518 | match with `next-error' the exact match is highlighted in the source | ||
| 519 | buffer. Otherwise, if `grep-highlight-matches' is nil, the whole | ||
| 520 | source line is highlighted. | ||
| 521 | 422 | ||
| 522 | +++ | 423 | +++ |
| 523 | *** New key bindings in grep output window: | 424 | ** The new option mode-require-final-newline controls how certain |
| 524 | SPC and DEL scrolls window up and down. C-n and C-p moves to next and | 425 | major modes enable require-final-newline. Any major mode that's |
| 525 | previous match in the grep window. RET jumps to the source line of | 426 | designed for a kind of file that should normally end in a newline |
| 526 | the current match. `n' and `p' shows next and previous match in | 427 | sets require-final-newline based on mode-require-final-newline. |
| 527 | other window, but does not switch buffer. `{' and `}' jumps to the | 428 | So you can customize mode-require-final-newline to control what these |
| 528 | previous or next file in the grep output. TAB also jumps to the next | 429 | modes do. |
| 529 | file. | ||
| 530 | 430 | ||
| 531 | +++ | 431 | +++ |
| 532 | ** New options `next-error-highlight' and `next-error-highlight-no-select' | 432 | ** Control characters and escape glyphs are now shown in the new |
| 533 | specify the method of highlighting of the corresponding source line | 433 | escape-glyph face. |
| 534 | in new face `next-error'. | ||
| 535 | 434 | ||
| 536 | +++ | 435 | +++ |
| 537 | ** A new minor mode `next-error-follow-minor-mode' can be used in | 436 | ** Non-breaking space and hyphens are now prefixed with an escape |
| 538 | compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the | 437 | character, unless the new user variable `show-nonbreak-escape' is set |
| 539 | modes that can use `next-error'). In this mode, cursor motion in the | 438 | to nil. |
| 540 | buffer causes automatic display in another window of the corresponding | ||
| 541 | matches, compilation errors, etc. This minor mode can be toggled with | ||
| 542 | C-c C-f. | ||
| 543 | 439 | ||
| 544 | +++ | 440 | +++ |
| 545 | ** M-x diff uses diff-mode instead of compilation-mode. | 441 | ** In graphical mode, with a C program, GUD Tooltips have been extended to |
| 442 | display the #define directive associated with an identifier when program is | ||
| 443 | not executing. | ||
| 444 | |||
| 445 | ** Moving or scrolling through images (and other lines) taller that | ||
| 446 | the window now works sensible, by automatically adjusting the window's | ||
| 447 | vscroll property. | ||
| 546 | 448 | ||
| 547 | +++ | 449 | +++ |
| 548 | ** M-x compare-windows now can automatically skip non-matching text to | 450 | ** font-lock-lines-before specifies a number of lines before the |
| 549 | resync points in both windows. | 451 | current line that should be refontified when you change the buffer. |
| 452 | The default value is 1. | ||
| 550 | 453 | ||
| 551 | --- | 454 | --- |
| 552 | ** New command `strokes-global-set-stroke-string'. | 455 | ** JIT-lock changes |
| 553 | This is like `strokes-global-set-stroke', but it allows you to bind | ||
| 554 | the stroke directly to a string to insert. This is convenient for | ||
| 555 | using strokes as an input method. | ||
| 556 | 456 | ||
| 557 | ** Gnus package | 457 | *** The default settings for JIT stealth lock parameters are changed. |
| 458 | The default value for the user option jit-lock-stealth-time is now 16 | ||
| 459 | instead of 3, and the default value of jit-lock-stealth-nice is now | ||
| 460 | 0.5 instead of 0.125. The new defaults should lower the CPU usage | ||
| 461 | when Emacs is fontifying in the background. | ||
| 558 | 462 | ||
| 559 | --- | ||
| 560 | *** Gnus now includes Sieve and PGG | ||
| 561 | Sieve is a library for managing Sieve scripts. PGG is a library to handle | ||
| 562 | PGP/MIME. | ||
| 563 | 463 | ||
| 564 | --- | 464 | *** jit-lock can now be delayed with `jit-lock-defer-time'. |
| 565 | *** There are many news features, bug fixes and improvements. | ||
| 566 | See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | ||
| 567 | 465 | ||
| 568 | +++ | 466 | If this variable is non-nil, its value should be the amount of Emacs |
| 569 | ** Desktop package | 467 | idle time in seconds to wait before starting fontification. For |
| 468 | example, if you set `jit-lock-defer-time' to 0.25, fontification will | ||
| 469 | only happen after 0.25s of idle time. | ||
| 470 | |||
| 471 | *** contextual refontification is now separate from stealth fontification. | ||
| 472 | |||
| 473 | jit-lock-defer-contextually is renamed jit-lock-contextually and | ||
| 474 | jit-lock-context-time determines the delay after which contextual | ||
| 475 | refontification takes place. | ||
| 570 | 476 | ||
| 571 | +++ | 477 | +++ |
| 572 | *** Desktop saving is now a minor mode, desktop-save-mode. Variable | 478 | ** line-move-ignore-invisible now defaults to t. |
| 573 | desktop-enable is obsolete. Customize desktop-save-mode to enable desktop | ||
| 574 | saving. | ||
| 575 | 479 | ||
| 576 | --- | 480 | --- |
| 577 | *** Buffers are saved in the desktop file in the same order as that in the | 481 | ** A menu item "Show/Hide" was added to the top-level menu "Options". |
| 578 | buffer list. | 482 | This menu allows you to turn various display features on and off (such |
| 483 | as the fringes, the tool bar, the speedbar, and the menu bar itself). | ||
| 484 | You can also move the vertical scroll bar to either side here or turn | ||
| 485 | it off completely. There is also a menu-item to toggle displaying of | ||
| 486 | current date and time, current line and column number in the | ||
| 487 | mode-line. | ||
| 488 | |||
| 489 | --- | ||
| 490 | ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | ||
| 579 | 491 | ||
| 580 | +++ | 492 | +++ |
| 581 | *** The desktop package can be customized to restore only some buffers immediately, | 493 | ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is |
| 582 | remaining buffers are restored lazily (when Emacs is idle). | 494 | now controlled by the variable `blink-cursor-alist'. |
| 583 | 495 | ||
| 584 | +++ | 496 | +++ |
| 585 | *** New commands: | 497 | ** The X resource cursorBlink can be used to turn off cursor blinking. |
| 586 | - desktop-revert reverts to the last loaded desktop. | ||
| 587 | - desktop-change-dir kills current desktop and loads a new. | ||
| 588 | - desktop-save-in-desktop-dir saves desktop in the directory from which | ||
| 589 | it was loaded. | ||
| 590 | - desktop-lazy-complete runs the desktop load to completion. | ||
| 591 | - desktop-lazy-abort aborts lazy loading of the desktop. | ||
| 592 | 498 | ||
| 593 | --- | 499 | +++ |
| 594 | *** New customizable variables: | 500 | ** Emacs can produce an underscore-like (horizontal bar) cursor. |
| 595 | - desktop-save. Determins whether the desktop should be saved when it is | 501 | The underscore cursor is set by putting `(cursor-type . hbar)' in |
| 596 | killed. | 502 | default-frame-alist. It supports variable heights, like the `bar' |
| 597 | - desktop-file-name-format. Format in which desktop file names should be saved. | 503 | cursor does. |
| 598 | - desktop-path. List of directories in which to lookup the desktop file. | ||
| 599 | - desktop-locals-to-save. List of local variables to save. | ||
| 600 | - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear. | ||
| 601 | - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear' | ||
| 602 | should not delete. | ||
| 603 | - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are | ||
| 604 | restored lazily (when Emacs is idle). | ||
| 605 | - desktop-lazy-verbose. Verbose reporting of lazily created buffers. | ||
| 606 | - desktop-lazy-idle-delay. Idle delay before starting to create buffers. | ||
| 607 | 504 | ||
| 608 | +++ | 505 | +++ |
| 609 | *** New command line option --no-desktop | 506 | ** Display of hollow cursors now obeys the buffer-local value (if any) |
| 507 | of `cursor-in-non-selected-windows' in the buffer that the cursor | ||
| 508 | appears in. | ||
| 610 | 509 | ||
| 611 | --- | 510 | +++ |
| 612 | *** New hooks: | 511 | ** The variable `cursor-in-non-selected-windows' can now be set to any |
| 613 | - desktop-after-read-hook run after a desktop is loaded. | 512 | of the recognized cursor types. |
| 614 | - desktop-no-desktop-file-hook run when no desktop file is found. | ||
| 615 | 513 | ||
| 616 | --- | 514 | +++ |
| 617 | ** The saveplace.el package now filters out unreadable files. | 515 | ** The new face `mode-line-inactive' is used to display the mode line |
| 618 | When you exit Emacs, the saved positions in visited files no longer | 516 | of non-selected windows. The `mode-line' face is now used to display |
| 619 | include files that aren't readable, e.g. files that don't exist. | 517 | the mode line of the currently selected window. |
| 620 | Customize the new option `save-place-forget-unreadable-files' to nil | 518 | |
| 621 | to get the old behavior. The new options `save-place-save-skipped' | 519 | The new variable `mode-line-in-non-selected-windows' controls whether |
| 622 | and `save-place-skip-check-regexp' allow further fine-tuning of this | 520 | the `mode-line-inactive' face is used. |
| 623 | feature. | ||
| 624 | 521 | ||
| 625 | +++ | 522 | +++ |
| 626 | ** You can have several Emacs servers on the same machine. | 523 | ** New display feature: focus follows the mouse from one Emacs window |
| 524 | to another, even within a frame. If you set the variable | ||
| 525 | mouse-autoselect-window to non-nil value, moving the mouse to a | ||
| 526 | different Emacs window will select that window (minibuffer window can | ||
| 527 | be selected only when it is active). The default is nil, so that this | ||
| 528 | feature is not enabled. | ||
| 627 | 529 | ||
| 628 | % emacs --eval '(setq server-name "foo")' -f server-start & | 530 | +++ |
| 629 | % emacs --eval '(setq server-name "bar")' -f server-start & | 531 | ** On X, when the window manager requires that you click on a frame to |
| 630 | % emacsclient -s foo file1 | 532 | select it (give it focus), the selected window and cursor position |
| 631 | % emacsclient -s bar file2 | 533 | normally changes according to the mouse click position. If you set |
| 534 | the variable x-mouse-click-focus-ignore-position to t, the selected | ||
| 535 | window and cursor position do not change when you click on a frame | ||
| 536 | to give it focus. | ||
| 632 | 537 | ||
| 633 | +++ | 538 | +++ |
| 634 | ** On window systems, lines which are exactly as wide as the window | 539 | ** When you specify a frame size with --geometry, the size applies to |
| 635 | (not counting the final newline character) are no longer broken into | 540 | all frames you create. A position specified with --geometry only |
| 636 | two lines on the display (with just the newline on the second line). | 541 | affects the initial frame. |
| 637 | Instead, the newline now "overflows" into the right fringe, and the | ||
| 638 | cursor will be displayed in the fringe when positioned on that newline. | ||
| 639 | 542 | ||
| 640 | The new user option 'overflow-newline-into-fringe' may be set to nil to | 543 | +++ |
| 641 | revert to the old behavior of continuing such lines. | 544 | ** You can now customize the use of window fringes. To control this |
| 545 | for all frames, use M-x fringe-mode or the Show/Hide submenu of the | ||
| 546 | top-level Options menu, or customize the `fringe-mode' variable. To | ||
| 547 | control this for a specific frame, use the command M-x | ||
| 548 | set-fringe-style. | ||
| 642 | 549 | ||
| 643 | +++ | 550 | +++ |
| 644 | ** The buffer boundaries (i.e. first and last line in the buffer) may | 551 | ** The buffer boundaries (i.e. first and last line in the buffer) may |
| @@ -662,561 +569,238 @@ arrow bitmaps in right fringe. To show just the angle bitmaps in the | |||
| 662 | left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). | 569 | left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)). |
| 663 | 570 | ||
| 664 | +++ | 571 | +++ |
| 665 | ** New command `display-local-help' displays any local help at point | 572 | ** On window systems, lines which are exactly as wide as the window |
| 666 | in the echo area. It is bound to `C-h .'. It normally displays the | 573 | (not counting the final newline character) are no longer broken into |
| 667 | same string that would be displayed on mouse-over using the | 574 | two lines on the display (with just the newline on the second line). |
| 668 | `help-echo' property, but, in certain cases, it can display a more | 575 | Instead, the newline now "overflows" into the right fringe, and the |
| 669 | keyboard oriented alternative. | 576 | cursor will be displayed in the fringe when positioned on that newline. |
| 670 | |||
| 671 | +++ | ||
| 672 | ** New user option `help-at-pt-display-when-idle' allows to | ||
| 673 | automatically show the help provided by `display-local-help' on | ||
| 674 | point-over, after suitable idle time. The amount of idle time is | ||
| 675 | determined by the user option `help-at-pt-timer-delay' and defaults | ||
| 676 | to one second. This feature is turned off by default. | ||
| 677 | |||
| 678 | --- | ||
| 679 | ** New commands `scan-buf-next-region' and `scan-buf-previous-region' | ||
| 680 | move to the start of the next (previous, respectively) region with | ||
| 681 | non-nil help-echo property and display any help found there in the | ||
| 682 | echo area, using `display-local-help'. | ||
| 683 | 577 | ||
| 684 | +++ | 578 | The new user option 'overflow-newline-into-fringe' may be set to nil to |
| 685 | ** Help mode now only makes hyperlinks for faces when the face name is | 579 | revert to the old behavior of continuing such lines. |
| 686 | preceded or followed by the word `face'. It no longer makes | ||
| 687 | hyperlinks for variables without variable documentation, unless | ||
| 688 | preceded by one of the words `variable' or `option'. It now makes | ||
| 689 | hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | ||
| 690 | enclosed in single quotes and preceded by `info anchor' or `Info | ||
| 691 | anchor' (in addition to earlier `info node' and `Info node'). | ||
| 692 | 580 | ||
| 693 | +++ | 581 | +++ |
| 694 | ** The max size of buffers and integers has been doubled. | 582 | ** When display margins are present in a window, the fringes are now |
| 695 | On 32bit machines, it is now 256M (i.e. 268435455). | 583 | displayed between the margins and the buffer's text area, rather than |
| 584 | at the edges of the window. | ||
| 696 | 585 | ||
| 697 | +++ | 586 | +++ |
| 698 | ** The -f option, used from the command line to call a function, | 587 | ** A window may now have individual fringe and scroll-bar settings, |
| 699 | now reads arguments for the function interactively if it is | 588 | in addition to the individual display margin settings. |
| 700 | an interactively callable function. | ||
| 701 | |||
| 702 | --- | ||
| 703 | ** sql changes. | ||
| 704 | |||
| 705 | *** The variable `sql-product' controls the highlightng of different | ||
| 706 | SQL dialects. This variable can be set globally via Customize, on a | ||
| 707 | buffer-specific basis via local variable settings, or for the current | ||
| 708 | session using the new SQL->Product submenu. (This menu replaces the | ||
| 709 | SQL->Highlighting submenu.) | ||
| 710 | 589 | ||
| 711 | The following values are supported: | 590 | Such individual settings are now preserved when windows are split |
| 591 | horizontally or vertically, a saved window configuration is restored, | ||
| 592 | or when the frame is resized. | ||
| 712 | 593 | ||
| 713 | ansi ANSI Standard (default) | 594 | +++ |
| 714 | db2 DB2 | 595 | ** `special-display-buffer-names' and `special-display-regexps' now |
| 715 | informix Informix | 596 | understand two new boolean pseudo-frame-parameters `same-frame' and |
| 716 | ingres Ingres | 597 | `same-window'. |
| 717 | interbase Interbase | ||
| 718 | linter Linter | ||
| 719 | ms Microsoft | ||
| 720 | mysql MySQL | ||
| 721 | oracle Oracle | ||
| 722 | postgres Postgres | ||
| 723 | solid Solid | ||
| 724 | sqlite SQLite | ||
| 725 | sybase Sybase | ||
| 726 | 598 | ||
| 727 | The current product name will be shown on the mode line following the | 599 | +++ |
| 728 | SQL mode indicator. | 600 | ** Changes in C-h bindings: |
| 729 | 601 | ||
| 730 | The technique of setting `sql-mode-font-lock-defaults' directly in | 602 | C-h e displays the *Messages* buffer. |
| 731 | your .emacs will no longer establish the default highlighting -- Use | ||
| 732 | `sql-product' to accomplish this. | ||
| 733 | 603 | ||
| 734 | ANSI keywords are always highlighted. | 604 | C-h followed by a control character is used for displaying files |
| 605 | that do not change: | ||
| 735 | 606 | ||
| 736 | *** The function `sql-add-product-keywords' can be used to add | 607 | C-h C-f displays the FAQ. |
| 737 | font-lock rules to the product specific rules. For example, to have | 608 | C-h C-e displays the PROBLEMS file. |
| 738 | all identifiers ending in "_t" under MS SQLServer treated as a type, | ||
| 739 | you would use the following line in your .emacs file: | ||
| 740 | 609 | ||
| 741 | (sql-add-product-keywords 'ms | 610 | The info-search bindings on C-h C-f, C-h C-k and C-h C-i |
| 742 | '(("\\<\\w+_t\\>" . font-lock-type-face))) | 611 | have been moved to C-h F, C-h K and C-h S. |
| 743 | 612 | ||
| 744 | *** Oracle support includes keyword highlighting for Oracle 9i. Most | 613 | C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. |
| 745 | SQL and PL/SQL keywords are implemented. SQL*Plus commands are | ||
| 746 | highlighted in `font-lock-doc-face'. | ||
| 747 | 614 | ||
| 748 | *** Microsoft SQLServer support has been significantly improved. | 615 | - C-h c and C-h k report the actual command (after possible remapping) |
| 749 | Keyword highlighting for SqlServer 2000 is implemented. | 616 | run by the key sequence. |
| 750 | sql-interactive-mode defaults to use osql, rather than isql, because | ||
| 751 | osql flushes its error stream more frequently. Thus error messages | ||
| 752 | are displayed when they occur rather than when the session is | ||
| 753 | terminated. | ||
| 754 | 617 | ||
| 755 | If the username and password are not provided to `sql-ms', osql is | 618 | - C-h w and C-h f on a command which has been remapped now report the |
| 756 | called with the -E command line argument to use the operating system | 619 | command it is remapped to, and the keys which can be used to run |
| 757 | credentials to authenticate the user. | 620 | that command. |
| 758 | 621 | ||
| 759 | *** Postgres support is enhanced. | 622 | For example, if C-k is bound to kill-line, and kill-line is remapped |
| 760 | Keyword highlighting of Postgres 7.3 is implemented. Prompting for | 623 | to new-kill-line, these commands now report: |
| 761 | the username and the pgsql `-U' option is added. | ||
| 762 | 624 | ||
| 763 | *** MySQL support is enhanced. | 625 | - C-h c and C-h k C-k reports: |
| 764 | Keyword higlighting of MySql 4.0 is implemented. | 626 | C-k runs the command new-kill-line |
| 765 | 627 | ||
| 766 | *** Imenu support has been enhanced to locate tables, views, indexes, | 628 | - C-h w and C-h f kill-line reports: |
| 767 | packages, procedures, functions, triggers, sequences, rules, and | 629 | kill-line is remapped to new-kill-line which is on C-k, <deleteline> |
| 768 | defaults. | ||
| 769 | 630 | ||
| 770 | *** Added SQL->Start SQLi Session menu entry which calls the | 631 | - C-h w and C-h f new-kill-line reports: |
| 771 | appropriate sql-interactive-mode wrapper for the current setting of | 632 | new-kill-line is on C-k |
| 772 | `sql-product'. | ||
| 773 | 633 | ||
| 774 | --- | 634 | --- |
| 775 | ** M-x view-file and commands that use it now avoid interfering | 635 | ** Help commands `describe-function' and `describe-key' now show function |
| 776 | with special modes such as Tar mode. | 636 | arguments in lowercase italics on displays that support it. To change the |
| 637 | default, customize face `help-argument-name' or redefine the function | ||
| 638 | `help-default-arg-highlight'. | ||
| 777 | 639 | ||
| 778 | ** Enhancements to apropos commands: | 640 | +++ |
| 641 | ** C-h v and C-h f commands now include a hyperlink to the C source for | ||
| 642 | variables and functions defined in C (if the C source is available). | ||
| 779 | 643 | ||
| 780 | +++ | 644 | +++ |
| 781 | *** The apropos commands now accept a list of words to match. | 645 | ** Help mode now only makes hyperlinks for faces when the face name is |
| 782 | When more than one word is specified, at least two of those words must | 646 | preceded or followed by the word `face'. It no longer makes |
| 783 | be present for an item to match. Regular expression matching is still | 647 | hyperlinks for variables without variable documentation, unless |
| 784 | available. | 648 | preceded by one of the words `variable' or `option'. It now makes |
| 649 | hyperlinks to Info anchors (or nodes) if the anchor (or node) name is | ||
| 650 | enclosed in single quotes and preceded by `info anchor' or `Info | ||
| 651 | anchor' (in addition to earlier `info node' and `Info node'). | ||
| 785 | 652 | ||
| 786 | +++ | 653 | +++ |
| 787 | *** The new option `apropos-sort-by-scores' causes the matching items | 654 | ** The new command `describe-char' (C-u C-x =) pops up a buffer with |
| 788 | to be sorted according to their score. The score for an item is a | 655 | description various information about a character, including its |
| 789 | number calculated to indicate how well the item matches the words or | 656 | encodings and syntax, its text properties, how to input, overlays, and |
| 790 | regular expression that you entered to the apropos command. The best | 657 | widgets at point. You can get more information about some of them, by |
| 791 | match is listed first, and the calculated score is shown for each | 658 | clicking on mouse-sensitive areas or moving there and pressing RET. |
| 792 | matching item. | ||
| 793 | 659 | ||
| 794 | +++ | 660 | +++ |
| 795 | ** The old bindings C-M-delete and C-M-backspace have been deleted, | 661 | ** New command `display-local-help' displays any local help at point |
| 796 | since there are situations where one or the other will shut down | 662 | in the echo area. It is bound to `C-h .'. It normally displays the |
| 797 | the operating system or your X server. | 663 | same string that would be displayed on mouse-over using the |
| 664 | `help-echo' property, but, in certain cases, it can display a more | ||
| 665 | keyboard oriented alternative. | ||
| 798 | 666 | ||
| 799 | --- | 667 | --- |
| 800 | ** New minor mode, Visible mode, toggles invisibility in the current buffer. | 668 | ** New commands `scan-buf-next-region' and `scan-buf-previous-region' |
| 801 | When enabled, it makes all invisible text visible. When disabled, it | 669 | move to the start of the next (previous, respectively) region with |
| 802 | restores the previous value of `buffer-invisibility-spec'. | 670 | non-nil help-echo property and display any help found there in the |
| 671 | echo area, using `display-local-help'. | ||
| 803 | 672 | ||
| 804 | --- | 673 | +++ |
| 805 | ** New command `kill-whole-line' kills an entire line at once. | 674 | ** New user option `help-at-pt-display-when-idle' allows to |
| 806 | By default, it is bound to C-S-<backspace>. | 675 | automatically show the help provided by `display-local-help' on |
| 676 | point-over, after suitable idle time. The amount of idle time is | ||
| 677 | determined by the user option `help-at-pt-timer-delay' and defaults | ||
| 678 | to one second. This feature is turned off by default. | ||
| 807 | 679 | ||
| 808 | --- | 680 | --- |
| 809 | ** New commands to operate on pairs of open and close characters: | 681 | ** New commands to operate on pairs of open and close characters: |
| 810 | `insert-pair', `delete-pair', `raise-sexp'. | 682 | `insert-pair', `delete-pair', `raise-sexp'. |
| 811 | 683 | ||
| 812 | +++ | 684 | +++ |
| 813 | ** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the | 685 | ** In processing a local variables list, Emacs strips the prefix and |
| 814 | list starting after point. | 686 | suffix are from every line before processing all the lines. |
| 815 | |||
| 816 | ** Dired mode: | ||
| 817 | |||
| 818 | --- | ||
| 819 | *** New faces dired-header, dired-mark, dired-marked, dired-flagged, | ||
| 820 | dired-ignored, dired-directory, dired-symlink, dired-warning | ||
| 821 | introduced for Dired mode instead of font-lock faces. | ||
| 822 | |||
| 823 | +++ | ||
| 824 | *** New Dired command `dired-compare-directories' marks files | ||
| 825 | with different file attributes in two dired buffers. | ||
| 826 | |||
| 827 | +++ | ||
| 828 | *** New Dired command `dired-do-touch' (bound to T) changes timestamps | ||
| 829 | of marked files with the value entered in the minibuffer. | ||
| 830 | |||
| 831 | +++ | ||
| 832 | *** In Dired's ! command (dired-do-shell-command), `*' and `?' now | ||
| 833 | control substitution of the file names only when they are surrounded | ||
| 834 | by whitespace. This means you can now use them as shell wildcards | ||
| 835 | too. If you want to use just plain `*' as a wildcard, type `*""'; the | ||
| 836 | doublequotes make no difference in the shell, but they prevent | ||
| 837 | special treatment in `dired-do-shell-command'. | ||
| 838 | |||
| 839 | +++ | ||
| 840 | *** In Dired, the w command now copies the current line's file name | ||
| 841 | into the kill ring. With a zero prefix arg, copies absolute file names. | ||
| 842 | |||
| 843 | +++ | ||
| 844 | ** Dired-x: | ||
| 845 | |||
| 846 | +++ | ||
| 847 | *** Omitting files is now a minor mode, dired-omit-mode. The mode toggling | ||
| 848 | command is bound to M-o. A new command dired-mark-omitted, bound to * O, | ||
| 849 | marks omitted files. The variable dired-omit-files-p is obsoleted, use the | ||
| 850 | mode toggling function instead. | ||
| 851 | |||
| 852 | +++ | ||
| 853 | ** find-file-read-only visits multiple files in read-only mode, | ||
| 854 | when the file name contains wildcard characters. | ||
| 855 | |||
| 856 | +++ | ||
| 857 | ** find-alternate-file replaces the current file with multiple files, | ||
| 858 | when the file name contains wildcard characters. | ||
| 859 | |||
| 860 | ** FFAP | ||
| 861 | 687 | ||
| 862 | +++ | 688 | +++ |
| 863 | *** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), | 689 | ** `apply-macro-to-region-lines' now operates on all lines that begin |
| 864 | C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), | 690 | in the region, rather than on all complete lines in the region. |
| 865 | C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), | ||
| 866 | C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). | ||
| 867 | |||
| 868 | --- | ||
| 869 | *** FFAP accepts wildcards in a file name by default. C-x C-f passes | ||
| 870 | it to `find-file' with non-nil WILDCARDS argument, which visits | ||
| 871 | multiple files, and C-x d passes it to `dired'. | ||
| 872 | |||
| 873 | ** Info mode: | ||
| 874 | 691 | ||
| 875 | +++ | 692 | +++ |
| 876 | *** A numeric prefix argument of `info' selects an Info buffer | 693 | ** You can now follow links by clicking Mouse-1 on the link. |
| 877 | with the number appended to the *info* buffer name (e.g. "*info*<2>"). | ||
| 878 | |||
| 879 | --- | ||
| 880 | *** isearch in Info uses Info-search and searches through multiple nodes. | ||
| 881 | Before leaving the initial Info node isearch fails once with the error | ||
| 882 | message [initial node], and with subsequent C-s/C-r continues through | ||
| 883 | other nodes. When isearch fails for the rest of the manual, it wraps | ||
| 884 | aroung the whole manual to the top/final node. The user option | ||
| 885 | `Info-isearch-search' controls whether to use Info-search for isearch, | ||
| 886 | or the default isearch search function that wraps around the current | ||
| 887 | Info node. | ||
| 888 | |||
| 889 | *** New search commands: `Info-search-case-sensitively' (bound to S), | ||
| 890 | `Info-search-backward', and `Info-search-next' which repeats the last | ||
| 891 | search without prompting for a new search string. | ||
| 892 | |||
| 893 | *** New command `Info-history-forward' (bound to r and new toolbar icon) | ||
| 894 | moves forward in history to the node you returned from after using | ||
| 895 | `Info-history-back' (renamed from `Info-last'). | ||
| 896 | |||
| 897 | *** New command `Info-history' (bound to L) displays a menu of visited nodes. | ||
| 898 | 694 | ||
| 899 | *** New command `Info-toc' (bound to T) creates a node with table of contents | 695 | Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2 |
| 900 | from the tree structure of menus of the current Info file. | 696 | click to follow a link, whereas most other applications use a Mouse-1 |
| 697 | click for both purposes, depending on whether you click outside or | ||
| 698 | inside a link. Now the behavior of a Mouse-1 click has been changed | ||
| 699 | to match this context-sentitive dual behavior. | ||
| 901 | 700 | ||
| 902 | *** New command `info-apropos' searches the indices of the known | 701 | Depending on the current mode, a Mouse-2 click in Emacs may do much |
| 903 | Info files on your system for a string, and builds a menu of the | 702 | more than just follow a link, so the new Mouse-1 behavior is only |
| 904 | possible matches. | 703 | activated for modes which explicitly mark a clickable text as a "link" |
| 704 | (see the new function `mouse-on-link-p' for details). The Lisp | ||
| 705 | packages that are included in release 22.1 have been adapted to do | ||
| 706 | this, but external packages may not yet support this. However, there | ||
| 707 | is no risk in using such packages, as the worst thing that could | ||
| 708 | happen is that you get the original Mouse-1 behavior when you click | ||
| 709 | on a link, which typically means that you set point where you click. | ||
| 905 | 710 | ||
| 906 | *** New command `Info-copy-current-node-name' (bound to w) copies | 711 | If you want to get the original Mouse-1 action also inside a link, you |
| 907 | the current Info node name into the kill ring. With a zero prefix | 712 | just need to press the Mouse-1 button a little longer than a normal |
| 908 | arg, puts the node name inside the `info' function call. | 713 | click (i.e. press and hold the Mouse-1 button for half a second before |
| 714 | you release it). | ||
| 909 | 715 | ||
| 910 | --- | 716 | Dragging the Mouse-1 inside a link still performs the original |
| 911 | *** New face `info-xref-visited' distinguishes visited nodes from unvisited | 717 | drag-mouse-1 action, typically copy the text. |
| 912 | and a new option `Info-fontify-visited-nodes' to control this. | ||
| 913 | 718 | ||
| 914 | *** http and ftp links in Info are now operational: they look like cross | 719 | You can customize the new Mouse-1 behavior via the new user options |
| 915 | references and following them calls `browse-url'. | 720 | `mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'. |
| 916 | 721 | ||
| 917 | +++ | 722 | +++ |
| 918 | *** Info now hides node names in menus and cross references by default. | 723 | ** Emacs normally highlights mouse sensitive text whenever the mouse |
| 919 | If you prefer the old behavior, you can set the new user option | 724 | is over the text. By setting the new variable `mouse-highlight', you |
| 920 | `Info-hide-note-references' to nil. | 725 | can optionally enable mouse highlighting only after you move the |
| 921 | 726 | mouse, so that highlighting disappears when you press a key. You can | |
| 922 | --- | 727 | also disable mouse highlighting. |
| 923 | *** Images in Info pages are supported. | ||
| 924 | Info pages show embedded images, in Emacs frames with image support. | ||
| 925 | Info documentation that includes images, processed with makeinfo | ||
| 926 | version 4.7 or newer, compiles to Info pages with embedded images. | ||
| 927 | 728 | ||
| 928 | +++ | 729 | +++ |
| 929 | *** The default value for `Info-scroll-prefer-subnodes' is now nil. | 730 | ** You can now customize if selecting a region by dragging the mouse |
| 731 | shall not copy the selected text to the kill-ring by setting the new | ||
| 732 | variable mouse-drag-copy-region to nil. | ||
| 930 | 733 | ||
| 931 | --- | 734 | --- |
| 932 | *** Info-index offers completion. | 735 | ** mouse-wheels can now scroll a specific fraction of the window |
| 736 | (rather than a fixed number of lines) and the scrolling is `progressive'. | ||
| 933 | 737 | ||
| 934 | --- | 738 | --- |
| 935 | ** Support for the SQLite interpreter has been added to sql.el by calling | 739 | ** Unexpected yanking of text due to accidental clicking on the mouse |
| 936 | 'sql-sqlite'. | 740 | wheel button (typically mouse-2) during wheel scrolling is now avoided. |
| 937 | 741 | This behavior can be customized via the mouse-wheel-click-event and | |
| 938 | ** BibTeX mode: | 742 | mouse-wheel-inhibit-click-time variables. |
| 939 | *** The new command bibtex-url browses a URL for the BibTeX entry at | ||
| 940 | point (bound to C-c C-l and mouse-2, RET on clickable fields). | ||
| 941 | |||
| 942 | *** The new command bibtex-entry-update (bound to C-c C-u) updates | ||
| 943 | an existing BibTeX entry. | ||
| 944 | |||
| 945 | *** New `bibtex-entry-format' option `required-fields', enabled by default. | ||
| 946 | |||
| 947 | *** bibtex-maintain-sorted-entries can take values `plain', | ||
| 948 | `crossref', and `entry-class' which control the sorting scheme used | ||
| 949 | for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | ||
| 950 | scheme `entry-class'. TAB completion for reference keys and | ||
| 951 | automatic detection of duplicates does not require anymore that | ||
| 952 | bibtex-maintain-sorted-entries is non-nil. | ||
| 953 | |||
| 954 | *** If the new variable bibtex-parse-keys-fast is non-nil, | ||
| 955 | use fast but simplified algorithm for parsing BibTeX keys. | ||
| 956 | |||
| 957 | *** If the new variable bibtex-autoadd-commas is non-nil, | ||
| 958 | automatically add missing commas at end of BibTeX fields. | ||
| 959 | |||
| 960 | *** The new variable bibtex-autofill-types contains a list of entry | ||
| 961 | types for which fields are filled automatically (if possible). | ||
| 962 | |||
| 963 | *** The new command bibtex-complete completes word fragment before | ||
| 964 | point according to context (bound to M-tab). | ||
| 965 | |||
| 966 | *** The new commands bibtex-find-entry and bibtex-find-crossref | ||
| 967 | locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | ||
| 968 | Crossref fields are clickable (bound to mouse-2, RET). | ||
| 969 | |||
| 970 | *** In BibTeX mode the command fill-paragraph (bound to M-q) fills | ||
| 971 | individual fields of a BibTeX entry. | ||
| 972 | |||
| 973 | *** The new variables bibtex-files and bibtex-file-path define a set | ||
| 974 | of BibTeX files that are searched for entry keys. | ||
| 975 | |||
| 976 | *** The new command bibtex-validate-globally checks for duplicate keys | ||
| 977 | in multiple BibTeX files. | ||
| 978 | |||
| 979 | *** The new command bibtex-copy-summary-as-kill pushes summary | ||
| 980 | of BibTeX entry to kill ring (bound to C-c C-t). | ||
| 981 | |||
| 982 | +++ | ||
| 983 | ** When display margins are present in a window, the fringes are now | ||
| 984 | displayed between the margins and the buffer's text area, rather than | ||
| 985 | at the edges of the window. | ||
| 986 | |||
| 987 | +++ | ||
| 988 | ** A window may now have individual fringe and scroll-bar settings, | ||
| 989 | in addition to the individual display margin settings. | ||
| 990 | |||
| 991 | Such individual settings are now preserved when windows are split | ||
| 992 | horizontally or vertically, a saved window configuration is restored, | ||
| 993 | or when the frame is resized. | ||
| 994 | |||
| 995 | +++ | ||
| 996 | ** New functions frame-current-scroll-bars and window-current-scroll-bars. | ||
| 997 | |||
| 998 | These functions return the current locations of the vertical and | ||
| 999 | horizontal scroll bars in a frame or window. | ||
| 1000 | |||
| 1001 | +++ | ||
| 1002 | ** Emacs now supports drag and drop for X. Dropping a file on a window | ||
| 1003 | opens it, dropping text inserts the text. Dropping a file on a dired | ||
| 1004 | buffer copies or moves the file to that directory. | ||
| 1005 | 743 | ||
| 1006 | +++ | 744 | +++ |
| 1007 | ** Under X, mouse-wheel-mode is turned on by default. | 745 | ** Under X, mouse-wheel-mode is turned on by default. |
| 1008 | 746 | ||
| 1009 | +++ | 747 | +++ |
| 1010 | ** The X resource useXIM can be used to turn off use of XIM, which may | 748 | ** M-x setenv now expands environment variables of the form `$foo' and |
| 1011 | speed up Emacs with slow networking to the X server. | 749 | `${foo}' in the specified new value of the environment variable. To |
| 1012 | 750 | include a `$' in the value, use `$$'. | |
| 1013 | If the configure option `--without-xim' was used to turn off use of | ||
| 1014 | XIM by default, the X resource useXIM can be used to turn it on. | ||
| 1015 | |||
| 1016 | +++ | ||
| 1017 | ** The X resource cursorBlink can be used to turn off cursor blinking. | ||
| 1018 | |||
| 1019 | +++ | ||
| 1020 | ** `undo-only' does an undo which does not redo any previous undo. | ||
| 1021 | |||
| 1022 | --- | ||
| 1023 | ** `uniquify-strip-common-suffix' tells uniquify to prefer | ||
| 1024 | `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. | ||
| 1025 | 751 | ||
| 1026 | +++ | 752 | +++ |
| 1027 | ** If the user visits a file larger than `large-file-warning-threshold', | 753 | ** Unquoted `$' in file names do not signal an error any more when |
| 1028 | Emacs prompts her for confirmation. | 754 | the corresponding environment variable does not exist. |
| 1029 | 755 | Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | |
| 1030 | --- | 756 | is only rarely needed. |
| 1031 | ** A UTF-7 coding system is available in the library `utf-7'. | ||
| 1032 | |||
| 1033 | --- | ||
| 1034 | ** GUD mode has its own tool bar for controlling execution of the inferior | ||
| 1035 | and other common debugger commands. | ||
| 1036 | 757 | ||
| 1037 | --- | 758 | --- |
| 1038 | ** recentf changes. | 759 | ** Language environment and various default coding systems are setup |
| 1039 | 760 | more correctly according to the current locale name. If the locale | |
| 1040 | The recent file list is now automatically cleanup when recentf mode is | 761 | name doesn't specify a charset, the default is what glibc defines. |
| 1041 | enabled. The new option `recentf-auto-cleanup' controls when to do | 762 | This change may result in using the different coding systems as |
| 1042 | automatic cleanup. | 763 | default in some locale (e.g. vi_VN). |
| 1043 | |||
| 1044 | The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' | ||
| 1045 | and provides a more general mechanism to customize which file names to | ||
| 1046 | keep in the recent list. | ||
| 1047 | |||
| 1048 | With the more advanced option: `recentf-filename-handler', you can | ||
| 1049 | specify a function that transforms filenames handled by recentf. For | ||
| 1050 | example, if set to `file-truename', the same file will not be in the | ||
| 1051 | recent list with different symbolic links. | ||
| 1052 | |||
| 1053 | To follow naming convention, `recentf-menu-append-commands-flag' | ||
| 1054 | replaces the misnamed option `recentf-menu-append-commands-p'. The | ||
| 1055 | old name remains available as alias, but has been marked obsolete. | ||
| 1056 | 764 | ||
| 1057 | +++ | 765 | +++ |
| 1058 | ** The default for the paper size (variable ps-paper-type) is taken | 766 | ** The default for the paper size (variable ps-paper-type) is taken |
| 1059 | from the locale. | 767 | from the locale. |
| 1060 | 768 | ||
| 1061 | +++ | 769 | +++ |
| 1062 | ** Init file changes | 770 | ** The keyboard-coding-system is now automatically set based on your |
| 1063 | 771 | current locale settings if you are not using a window system. This | |
| 1064 | You can now put the init files .emacs and .emacs_SHELL under | 772 | may mean that the META key doesn't work but generates non-ASCII |
| 1065 | ~/.emacs.d or directly under ~. Emacs will find them in either place. | 773 | characters instead, depending on how the terminal (or terminal |
| 1066 | 774 | emulator) works. Use `set-keyboard-coding-system' (or customize | |
| 1067 | --- | 775 | keyboard-coding-system) if you prefer META to work (the old default) |
| 1068 | ** partial-completion-mode now does partial completion on directory names. | 776 | or if the locale doesn't describe the character set actually generated |
| 1069 | 777 | by the keyboard. See Info node `Single-Byte Character Support'. | |
| 1070 | --- | ||
| 1071 | ** skeleton.el now supports using - to mark the skeleton-point without | ||
| 1072 | interregion interaction. @ has reverted to only setting | ||
| 1073 | skeleton-positions and no longer sets skeleton-point. Skeletons | ||
| 1074 | which used @ to mark skeleton-point independent of _ should now use - | ||
| 1075 | instead. The updated skeleton-insert docstring explains these new | ||
| 1076 | features along with other details of skeleton construction. | ||
| 1077 | |||
| 1078 | --- | ||
| 1079 | ** MH-E changes. | ||
| 1080 | |||
| 1081 | Upgraded to MH-E version 7.82. There have been major changes since | ||
| 1082 | version 5.0.2; see MH-E-NEWS for details. | ||
| 1083 | |||
| 1084 | +++ | ||
| 1085 | ** The `emacsclient' command understands the options `--eval' and | ||
| 1086 | `--display' which tell Emacs respectively to evaluate the given elisp | ||
| 1087 | expression and to use the given display when visiting files. | ||
| 1088 | |||
| 1089 | +++ | ||
| 1090 | ** User option `server-mode' can be used to start a server process. | ||
| 1091 | |||
| 1092 | +++ | ||
| 1093 | ** The mode line position information now comes before the major mode. | ||
| 1094 | When the file is maintained under version control, that information | ||
| 1095 | appears between the position information and the major mode. | ||
| 1096 | |||
| 1097 | +++ | ||
| 1098 | ** C-x s (save-some-buffers) now offers an option `d' to diff a buffer | ||
| 1099 | against its file, so you can see what changes you would be saving. | ||
| 1100 | |||
| 1101 | +++ | ||
| 1102 | ** You can now customize the use of window fringes. To control this | ||
| 1103 | for all frames, use M-x fringe-mode or the Show/Hide submenu of the | ||
| 1104 | top-level Options menu, or customize the `fringe-mode' variable. To | ||
| 1105 | control this for a specific frame, use the command M-x | ||
| 1106 | set-fringe-style. | ||
| 1107 | |||
| 1108 | +++ | ||
| 1109 | ** There is a new user option `mail-default-directory' that allows you | ||
| 1110 | to specify the value of `default-directory' for mail buffers. This | ||
| 1111 | directory is used for auto-save files of mail buffers. It defaults to | ||
| 1112 | "~/". | ||
| 1113 | |||
| 1114 | +++ | ||
| 1115 | ** When you are root, and you visit a file whose modes specify | ||
| 1116 | read-only, the Emacs buffer is now read-only too. Type C-x C-q if you | ||
| 1117 | want to make the buffer writable. (As root, you can in fact alter the | ||
| 1118 | file.) | ||
| 1119 | 778 | ||
| 1120 | +++ | 779 | +++ |
| 1121 | ** The new command `revert-buffer-with-coding-system' (C-x RET r) | 780 | ** The new command `revert-buffer-with-coding-system' (C-x RET r) |
| 1122 | revisits the current file using a coding system that you specify. | 781 | revisits the current file using a coding system that you specify. |
| 1123 | 782 | ||
| 1124 | +++ | 783 | +++ |
| 784 | ** New command `recode-region' decodes the region again by a specified | ||
| 785 | coding system. | ||
| 786 | |||
| 787 | +++ | ||
| 1125 | ** The new command `recode-file-name' changes the encoding of the name | 788 | ** The new command `recode-file-name' changes the encoding of the name |
| 1126 | of a file. | 789 | of a file. |
| 1127 | 790 | ||
| 1128 | --- | 791 | --- |
| 1129 | ** `ps-print' can now print characters from the mule-unicode charsets. | 792 | ** New command `ucs-insert' inserts a character specified by its |
| 1130 | 793 | unicode. | |
| 1131 | Printing text with characters from the mule-unicode-* sets works with | ||
| 1132 | ps-print, provided that you have installed the appropriate BDF fonts. | ||
| 1133 | See the file INSTALL for URLs where you can find these fonts. | ||
| 1134 | |||
| 1135 | --- | ||
| 1136 | ** The new options `buffers-menu-show-directories' and | ||
| 1137 | `buffers-menu-show-status' let you control how buffers are displayed | ||
| 1138 | in the menu dropped down when you click "Buffers" from the menu bar. | ||
| 1139 | |||
| 1140 | `buffers-menu-show-directories' controls whether the menu displays | ||
| 1141 | leading directories as part of the file name visited by the buffer. | ||
| 1142 | If its value is `unless-uniquify', the default, directories are | ||
| 1143 | shown unless uniquify-buffer-name-style' is non-nil. The value of nil | ||
| 1144 | and t turn the display of directories off and on, respectively. | ||
| 1145 | |||
| 1146 | `buffers-menu-show-status' controls whether the Buffers menu includes | ||
| 1147 | the modified and read-only status of the buffers. By default it is | ||
| 1148 | t, and the status is shown. | ||
| 1149 | |||
| 1150 | Setting these variables directly does not take effect until next time | ||
| 1151 | the Buffers menu is regenerated. | ||
| 1152 | 794 | ||
| 1153 | +++ | 795 | +++ |
| 1154 | ** The commands M-x customize-face and M-x customize-face-other-window | 796 | ** The new command `set-file-name-coding-system' (C-x RET F) sets |
| 1155 | now look at the character after point. If a face or faces are | 797 | coding system for encoding and decoding file names. A new menu item |
| 1156 | specified for that character, the commands by default customize those | 798 | (Options->Mule->Set Coding Systems->For File Name) invokes this |
| 1157 | faces. | 799 | command. |
| 1158 | |||
| 1159 | --- | ||
| 1160 | ** New language environments: French, Ukrainian, Tajik, | ||
| 1161 | Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, | ||
| 1162 | Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, | ||
| 1163 | Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up | ||
| 1164 | automatically according to the locale.) | ||
| 1165 | |||
| 1166 | --- | ||
| 1167 | ** Indian support has been updated. | ||
| 1168 | The in-is13194 coding system is now Unicode-based. CDAC fonts are | ||
| 1169 | assumed. There is a framework for supporting various | ||
| 1170 | Indian scripts, but currently only Devanagari, Malayalam and Tamil are | ||
| 1171 | supported. | ||
| 1172 | |||
| 1173 | --- | ||
| 1174 | ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, | ||
| 1175 | ukrainian-computer, belarusian, bulgarian-bds, russian-computer, | ||
| 1176 | vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, | ||
| 1177 | latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, | ||
| 1178 | bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, | ||
| 1179 | tamil-inscript. | ||
| 1180 | |||
| 1181 | --- | ||
| 1182 | ** A new coding system `euc-tw' has been added for traditional Chinese | ||
| 1183 | in CNS encoding; it accepts both Big 5 and CNS as input; on saving, | ||
| 1184 | Big 5 is then converted to CNS. | ||
| 1185 | |||
| 1186 | --- | ||
| 1187 | ** Many new coding systems are available by loading the `code-pages' | ||
| 1188 | library. These include complete versions of most of those in | ||
| 1189 | codepage.el, based on Unicode mappings. `codepage-setup' is now | ||
| 1190 | obsolete and is used only in the MS-DOS port of Emacs. windows-1252 | ||
| 1191 | and windows-1251 are preloaded since the former is so common and the | ||
| 1192 | latter is used by GNU locales. | ||
| 1193 | |||
| 1194 | --- | ||
| 1195 | ** The utf-8/16 coding systems have been enhanced. | ||
| 1196 | By default, untranslatable utf-8 sequences are simply composed into | ||
| 1197 | single quasi-characters. User option `utf-translate-cjk-mode' (it is | ||
| 1198 | turned on by default) arranges to translate many utf-8 CJK character | ||
| 1199 | sequences into real Emacs characters in a similar way to the Mule-UCS | ||
| 1200 | system. As this loads a fairly big data on demand, people who are not | ||
| 1201 | interested in CJK characters may want to customize it to nil. | ||
| 1202 | You can augment/amend the CJK translation via hash tables | ||
| 1203 | `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 | ||
| 1204 | coding system now also encodes characters from most of Emacs's | ||
| 1205 | one-dimensional internal charsets, specifically the ISO-8859 ones. | ||
| 1206 | The utf-16 coding system is affected similarly. | ||
| 1207 | |||
| 1208 | --- | ||
| 1209 | ** New variable `utf-translate-cjk-unicode-range' controls which | ||
| 1210 | Unicode characters to translate in `utf-translate-cjk-mode'. | ||
| 1211 | |||
| 1212 | --- | ||
| 1213 | ** iso-10646-1 (`Unicode') fonts can be used to display any range of | ||
| 1214 | characters encodable by the utf-8 coding system. Just specify the | ||
| 1215 | fontset appropriately. | ||
| 1216 | 800 | ||
| 1217 | --- | 801 | +++ |
| 1218 | ** New command `ucs-insert' inserts a character specified by its | 802 | ** New command quail-show-key shows what key (or key sequence) to type |
| 1219 | unicode. | 803 | in the current input method to input a character at point. |
| 1220 | 804 | ||
| 1221 | +++ | 805 | +++ |
| 1222 | ** Limited support for character `unification' has been added. | 806 | ** Limited support for character `unification' has been added. |
| @@ -1244,151 +828,114 @@ either Unicode (the mule-unicode charsets) or the iso-8859 charsets, | |||
| 1244 | when possible. The latter are more space-efficient. This is | 828 | when possible. The latter are more space-efficient. This is |
| 1245 | controlled by user option utf-fragment-on-decoding. | 829 | controlled by user option utf-fragment-on-decoding. |
| 1246 | 830 | ||
| 1247 | +++ | ||
| 1248 | ** The new command `set-file-name-coding-system' (C-x RET F) sets | ||
| 1249 | coding system for encoding and decoding file names. A new menu item | ||
| 1250 | (Options->Mule->Set Coding Systems->For File Name) invokes this | ||
| 1251 | command. | ||
| 1252 | |||
| 1253 | --- | 831 | --- |
| 1254 | ** The scrollbar under LessTif or Motif has a smoother drag-scrolling. | 832 | ** New language environments: French, Ukrainian, Tajik, |
| 1255 | On the other hand, the size of the thumb does not represent the actual | 833 | Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6, |
| 1256 | amount of text shown any more (only a crude approximation of it). | 834 | Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian, |
| 835 | Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up | ||
| 836 | automatically according to the locale.) | ||
| 1257 | 837 | ||
| 1258 | --- | 838 | --- |
| 1259 | ** The pop up menus for Lucid now stay up if you do a fast click and can | 839 | ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix, |
| 1260 | be navigated with the arrow keys (like Gtk+, Mac and W32). | 840 | ukrainian-computer, belarusian, bulgarian-bds, russian-computer, |
| 1261 | 841 | vietnamese-telex, lithuanian-numeric, lithuanian-keyboard, | |
| 1262 | +++ | 842 | latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml, |
| 1263 | ** The Lucid menus can display multilingual text in your locale. You have | 843 | bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript, |
| 1264 | to explicitly specify a fontSet resource for this to work, for example | 844 | tamil-inscript. |
| 1265 | `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | ||
| 1266 | 845 | ||
| 1267 | --- | 846 | --- |
| 1268 | ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | 847 | ** New input method chinese-sisheng for inputting Chinese Pinyin |
| 1269 | ESC, like they do for Gtk+, Mac and W32. | 848 | characters. |
| 1270 | 849 | ||
| 1271 | --- | 850 | --- |
| 1272 | ** Dialogs and menus pop down when pressing C-g. | 851 | ** Improved Thai support. A new minor mode `thai-word-mode' (which is |
| 852 | automatically activated if you select Thai as a language | ||
| 853 | environment) changes key bindings of most word-oriented commands to | ||
| 854 | versions which recognize Thai words. Affected commands are | ||
| 855 | M-f (forward-word) | ||
| 856 | M-b (backward-word) | ||
| 857 | M-d (kill-word) | ||
| 858 | M-DEL (backward-kill-word) | ||
| 859 | M-t (transpose-words) | ||
| 860 | M-q (fill-paragraph) | ||
| 1273 | 861 | ||
| 1274 | --- | 862 | --- |
| 1275 | ** The menu item "Open File..." has been split into two items, "New File..." | 863 | ** Indian support has been updated. |
| 1276 | and "Open File...". "Open File..." now opens only existing files. This is | 864 | The in-is13194 coding system is now Unicode-based. CDAC fonts are |
| 1277 | to support existing GUI file selection dialogs better. | 865 | assumed. There is a framework for supporting various |
| 1278 | 866 | Indian scripts, but currently only Devanagari, Malayalam and Tamil are | |
| 1279 | +++ | 867 | supported. |
| 1280 | ** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be | ||
| 1281 | disabled by customizing the variable `use-file-dialog'. | ||
| 1282 | |||
| 1283 | +++ | ||
| 1284 | ** For Gtk+ version 2.4, you can make Emacs use the old file dialog | ||
| 1285 | by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use | ||
| 1286 | the new dialog. | ||
| 1287 | |||
| 1288 | +++ | ||
| 1289 | ** Emacs can produce an underscore-like (horizontal bar) cursor. | ||
| 1290 | The underscore cursor is set by putting `(cursor-type . hbar)' in | ||
| 1291 | default-frame-alist. It supports variable heights, like the `bar' | ||
| 1292 | cursor does. | ||
| 1293 | |||
| 1294 | +++ | ||
| 1295 | ** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is | ||
| 1296 | now controlled by the variable `blink-cursor-alist'. | ||
| 1297 | |||
| 1298 | +++ | ||
| 1299 | ** Filesets are collections of files. You can define a fileset in | ||
| 1300 | various ways, such as based on a directory tree or based on | ||
| 1301 | program files that include other program files. | ||
| 1302 | |||
| 1303 | Once you have defined a fileset, you can perform various operations on | ||
| 1304 | all the files in it, such as visiting them or searching and replacing | ||
| 1305 | in them. | ||
| 1306 | 868 | ||
| 1307 | --- | 869 | --- |
| 1308 | ** PO translation files are decoded according to their MIME headers | 870 | ** A UTF-7 coding system is available in the library `utf-7'. |
| 1309 | when Emacs visits them. | ||
| 1310 | 871 | ||
| 1311 | --- | 872 | --- |
| 1312 | ** The game `mpuz' is enhanced. | 873 | ** The utf-8/16 coding systems have been enhanced. |
| 1313 | 874 | By default, untranslatable utf-8 sequences are simply composed into | |
| 1314 | `mpuz' now allows the 2nd factor not to have two identical digits. By | 875 | single quasi-characters. User option `utf-translate-cjk-mode' (it is |
| 1315 | default, all trivial operations involving whole lines are performed | 876 | turned on by default) arranges to translate many utf-8 CJK character |
| 1316 | automatically. The game uses faces for better visual feedback. | 877 | sequences into real Emacs characters in a similar way to the Mule-UCS |
| 878 | system. As this loads a fairly big data on demand, people who are not | ||
| 879 | interested in CJK characters may want to customize it to nil. | ||
| 880 | You can augment/amend the CJK translation via hash tables | ||
| 881 | `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'. The utf-8 | ||
| 882 | coding system now also encodes characters from most of Emacs's | ||
| 883 | one-dimensional internal charsets, specifically the ISO-8859 ones. | ||
| 884 | The utf-16 coding system is affected similarly. | ||
| 1317 | 885 | ||
| 1318 | --- | 886 | --- |
| 1319 | ** The new variable `x-select-request-type' controls how Emacs | 887 | ** A new coding system `euc-tw' has been added for traditional Chinese |
| 1320 | requests X selection. The default value is nil, which means that | 888 | in CNS encoding; it accepts both Big 5 and CNS as input; on saving, |
| 1321 | Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, | 889 | Big 5 is then converted to CNS. |
| 1322 | and use the more appropriately result. | ||
| 1323 | |||
| 1324 | +++ | ||
| 1325 | ** The parameters of automatic hscrolling can now be customized. | ||
| 1326 | The variable `hscroll-margin' determines how many columns away from | ||
| 1327 | the window edge point is allowed to get before automatic hscrolling | ||
| 1328 | will horizontally scroll the window. The default value is 5. | ||
| 1329 | |||
| 1330 | The variable `hscroll-step' determines how many columns automatic | ||
| 1331 | hscrolling scrolls the window when point gets too close to the | ||
| 1332 | window edge. If its value is zero, the default, Emacs scrolls the | ||
| 1333 | window so as to center point. If its value is an integer, it says how | ||
| 1334 | many columns to scroll. If the value is a floating-point number, it | ||
| 1335 | gives the fraction of the window's width to scroll the window. | ||
| 1336 | |||
| 1337 | The variable `automatic-hscrolling' was renamed to | ||
| 1338 | `auto-hscroll-mode'. The old name is still available as an alias. | ||
| 1339 | |||
| 1340 | ** TeX modes: | ||
| 1341 | 890 | ||
| 1342 | +++ | 891 | --- |
| 1343 | *** C-c C-c prompts for a command to run, and tries to offer a good default. | 892 | ** Many new coding systems are available by loading the `code-pages' |
| 893 | library. These include complete versions of most of those in | ||
| 894 | codepage.el, based on Unicode mappings. `codepage-setup' is now | ||
| 895 | obsolete and is used only in the MS-DOS port of Emacs. windows-1252 | ||
| 896 | and windows-1251 are preloaded since the former is so common and the | ||
| 897 | latter is used by GNU locales. | ||
| 1344 | 898 | ||
| 1345 | +++ | 899 | --- |
| 1346 | *** The user option `tex-start-options-string' has been replaced | 900 | ** New variable `utf-translate-cjk-unicode-range' controls which |
| 1347 | by two new user options: `tex-start-options', which should hold | 901 | Unicode characters to translate in `utf-translate-cjk-mode'. |
| 1348 | command-line options to feed to TeX, and `tex-start-commands' which should hold | ||
| 1349 | TeX commands to use at startup. | ||
| 1350 | 902 | ||
| 1351 | --- | 903 | --- |
| 1352 | *** verbatim environments are now highlighted in courier by font-lock | 904 | ** iso-10646-1 (`Unicode') fonts can be used to display any range of |
| 1353 | and super/sub-scripts are made into super/sub-scripts. | 905 | characters encodable by the utf-8 coding system. Just specify the |
| 906 | fontset appropriately. | ||
| 1354 | 907 | ||
| 1355 | +++ | 908 | +++ |
| 1356 | *** New major mode doctex-mode for *.dtx files. | 909 | ** Vertical scrolling is now possible within incremental search. |
| 910 | To enable this feature, customize the new user option | ||
| 911 | `isearch-allow-scroll'. User written commands which satisfy stringent | ||
| 912 | constraints can be marked as "scrolling commands". See the Emacs manual | ||
| 913 | for details. | ||
| 1357 | 914 | ||
| 1358 | +++ | 915 | +++ |
| 1359 | ** New display feature: focus follows the mouse from one Emacs window | 916 | ** C-w in incremental search now grabs either a character or a word, |
| 1360 | to another, even within a frame. If you set the variable | 917 | making the decision in a heuristic way. This new job is done by the |
| 1361 | mouse-autoselect-window to non-nil value, moving the mouse to a | 918 | command `isearch-yank-word-or-char'. To restore the old behavior, |
| 1362 | different Emacs window will select that window (minibuffer window can | 919 | bind C-w to `isearch-yank-word' in `isearch-mode-map'. |
| 1363 | be selected only when it is active). The default is nil, so that this | ||
| 1364 | feature is not enabled. | ||
| 1365 | 920 | ||
| 1366 | +++ | 921 | +++ |
| 1367 | ** On X, when the window manager requires that you click on a frame to | 922 | ** C-y in incremental search now grabs the next line if point is already |
| 1368 | select it (give it focus), the selected window and cursor position | 923 | at the end of a line. |
| 1369 | normally changes according to the mouse click position. If you set | ||
| 1370 | the variable x-mouse-click-focus-ignore-position to t, the selected | ||
| 1371 | window and cursor position do not change when you click on a frame | ||
| 1372 | to give it focus. | ||
| 1373 | 924 | ||
| 1374 | +++ | 925 | +++ |
| 1375 | ** The new command `describe-char' (C-u C-x =) pops up a buffer with | 926 | ** C-M-w deletes and C-M-y grabs a character in isearch mode. |
| 1376 | description various information about a character, including its | 927 | Another method to grab a character is to enter the minibuffer by `M-e' |
| 1377 | encodings and syntax, its text properties, how to input, overlays, and | 928 | and to type `C-f' at the end of the search string in the minibuffer. |
| 1378 | widgets at point. You can get more information about some of them, by | ||
| 1379 | clicking on mouse-sensitive areas or moving there and pressing RET. | ||
| 1380 | 929 | ||
| 1381 | +++ | 930 | +++ |
| 1382 | ** The new command `multi-occur' is just like `occur', except it can | 931 | ** M-% typed in isearch mode invokes `query-replace' or |
| 1383 | search multiple buffers. There is also a new command | 932 | `query-replace-regexp' (depending on search mode) with the current |
| 1384 | `multi-occur-by-filename-regexp' which allows you to specify the | 933 | search string used as the string to replace. |
| 1385 | buffers to search by their filename. Internally, Occur mode has been | ||
| 1386 | rewritten, and now uses font-lock, among other changes. | ||
| 1387 | 934 | ||
| 1388 | +++ | 935 | +++ |
| 1389 | ** The default values of paragraph-start and indent-line-function have | 936 | ** Isearch no longer adds `isearch-resume' commands to the command |
| 1390 | been changed to reflect those used in Text mode rather than those used | 937 | history by default. To enable this feature, customize the new |
| 1391 | in Indented-Text mode. | 938 | user option `isearch-resume-in-command-history'. |
| 1392 | 939 | ||
| 1393 | --- | 940 | --- |
| 1394 | ** New user option `query-replace-skip-read-only': when non-nil, | 941 | ** New user option `query-replace-skip-read-only': when non-nil, |
| @@ -1415,114 +962,107 @@ can be edited for each replacement. | |||
| 1415 | `query-replace' which by default inherits from isearch face. | 962 | `query-replace' which by default inherits from isearch face. |
| 1416 | 963 | ||
| 1417 | +++ | 964 | +++ |
| 1418 | ** Emacs normally highlights mouse sensitive text whenever the mouse | 965 | ** M-x compare-windows now can automatically skip non-matching text to |
| 1419 | is over the text. By setting the new variable `mouse-highlight', you | 966 | resync points in both windows. |
| 1420 | can optionally enable mouse highlighting only after you move the | ||
| 1421 | mouse, so that highlighting disappears when you press a key. You can | ||
| 1422 | also disable mouse highlighting. | ||
| 1423 | |||
| 1424 | +++ | ||
| 1425 | ** You can now customize if selecting a region by dragging the mouse | ||
| 1426 | shall not copy the selected text to the kill-ring by setting the new | ||
| 1427 | variable mouse-drag-copy-region to nil. | ||
| 1428 | 967 | ||
| 1429 | +++ | 968 | +++ |
| 1430 | ** font-lock: in modes like C and Lisp where the fontification assumes that | 969 | ** The commands M-x customize-face and M-x customize-face-other-window |
| 1431 | an open-paren in column 0 is always outside of any string or comment, | 970 | now look at the character after point. If a face or faces are |
| 1432 | font-lock now highlights any such open-paren-in-column-zero in bold-red | 971 | specified for that character, the commands by default customize those |
| 1433 | if it is inside a string or a comment, to indicate that it can cause | 972 | faces. |
| 1434 | trouble with fontification and/or indentation. | ||
| 1435 | 973 | ||
| 1436 | +++ | 974 | --- |
| 1437 | ** There's a new face `minibuffer-prompt'. | 975 | ** The face-customization widget has been reworked to be less confusing. |
| 1438 | Emacs adds this face to the list of text properties stored in the | 976 | In particular, when you enable a face attribute using the corresponding |
| 1439 | variable `minibuffer-prompt-properties', which is used to display the | 977 | check-box, there's no longer a redundant `*' option in value selection |
| 1440 | prompt string. | 978 | for that attribute; the values you can choose are only those which make |
| 979 | sense for the attribute. When an attribute is de-selected by unchecking | ||
| 980 | its check-box, then the (now ignored, but still present temporarily in | ||
| 981 | case you re-select the attribute) value is hidden. | ||
| 1441 | 982 | ||
| 1442 | +++ | 983 | +++ |
| 1443 | ** The new face `mode-line-inactive' is used to display the mode line | 984 | ** When you set or reset a variable's value in a Customize buffer, |
| 1444 | of non-selected windows. The `mode-line' face is now used to display | 985 | the previous value becomes the "backup value" of the variable. |
| 1445 | the mode line of the currently selected window. | 986 | You can go back to that backup value by selecting "Use Backup Value" |
| 1446 | 987 | under the "[State]" button. | |
| 1447 | The new variable `mode-line-in-non-selected-windows' controls whether | ||
| 1448 | the `mode-line-inactive' face is used. | ||
| 1449 | 988 | ||
| 1450 | --- | 989 | ** Dired mode: |
| 1451 | ** A menu item "Show/Hide" was added to the top-level menu "Options". | ||
| 1452 | This menu allows you to turn various display features on and off (such | ||
| 1453 | as the fringes, the tool bar, the speedbar, and the menu bar itself). | ||
| 1454 | You can also move the vertical scroll bar to either side here or turn | ||
| 1455 | it off completely. There is also a menu-item to toggle displaying of | ||
| 1456 | current date and time, current line and column number in the | ||
| 1457 | mode-line. | ||
| 1458 | 990 | ||
| 1459 | --- | 991 | --- |
| 1460 | ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | 992 | *** New faces dired-header, dired-mark, dired-marked, dired-flagged, |
| 993 | dired-ignored, dired-directory, dired-symlink, dired-warning | ||
| 994 | introduced for Dired mode instead of font-lock faces. | ||
| 1461 | 995 | ||
| 1462 | +++ | 996 | +++ |
| 1463 | ** Emacs can now indicate in the mode-line the presence of new e-mail | 997 | *** New Dired command `dired-compare-directories' marks files |
| 1464 | in a directory or in a file. See the documentation of the user option | 998 | with different file attributes in two dired buffers. |
| 1465 | `display-time-mail-directory'. | ||
| 1466 | 999 | ||
| 1467 | --- | 1000 | +++ |
| 1468 | ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. | 1001 | *** New Dired command `dired-do-touch' (bound to T) changes timestamps |
| 1002 | of marked files with the value entered in the minibuffer. | ||
| 1469 | 1003 | ||
| 1470 | +++ | 1004 | +++ |
| 1471 | ** You can now disable pc-selection-mode after enabling it. | 1005 | *** In Dired's ! command (dired-do-shell-command), `*' and `?' now |
| 1472 | M-x pc-selection-mode behaves like a proper minor mode, and with no | 1006 | control substitution of the file names only when they are surrounded |
| 1473 | argument it toggles the mode. | 1007 | by whitespace. This means you can now use them as shell wildcards |
| 1008 | too. If you want to use just plain `*' as a wildcard, type `*""'; the | ||
| 1009 | doublequotes make no difference in the shell, but they prevent | ||
| 1010 | special treatment in `dired-do-shell-command'. | ||
| 1474 | 1011 | ||
| 1475 | Turning off PC-Selection mode restores the global key bindings | 1012 | +++ |
| 1476 | that were replaced by turning on the mode. | 1013 | *** In Dired, the w command now copies the current line's file name |
| 1014 | into the kill ring. With a zero prefix arg, copies absolute file names. | ||
| 1477 | 1015 | ||
| 1478 | +++ | 1016 | +++ |
| 1479 | ** Emacs now displays a splash screen by default even if command-line | 1017 | ** The variables dired-free-space-program and dired-free-space-args |
| 1480 | arguments were given. The new command-line option --no-splash | 1018 | have been renamed to directory-free-space-program and |
| 1481 | disables the splash screen; see also the variable | 1019 | directory-free-space-args, and they now apply whenever Emacs puts a |
| 1482 | `inhibit-startup-message' (which is also aliased as | 1020 | directory listing into a buffer. |
| 1483 | `inhibit-splash-screen'). | ||
| 1484 | 1021 | ||
| 1485 | ** Changes in support of colors on character terminals | 1022 | +++ |
| 1023 | ** Dired-x: | ||
| 1486 | 1024 | ||
| 1487 | +++ | 1025 | +++ |
| 1488 | *** The new command-line option --color=MODE lets you specify a standard | 1026 | *** Omitting files is now a minor mode, dired-omit-mode. The mode toggling |
| 1489 | mode for a tty color support. It is meant to be used on character | 1027 | command is bound to M-o. A new command dired-mark-omitted, bound to * O, |
| 1490 | terminals whose capabilities are not set correctly in the terminal | 1028 | marks omitted files. The variable dired-omit-files-p is obsoleted, use the |
| 1491 | database, or with terminal emulators which support colors, but don't | 1029 | mode toggling function instead. |
| 1492 | set the TERM environment variable to a name of a color-capable | ||
| 1493 | terminal. "emacs --color" uses the same color commands as GNU `ls' | ||
| 1494 | when invoked with "ls --color", so if your terminal can support colors | ||
| 1495 | in "ls --color", it will support "emacs --color" as well. See the | ||
| 1496 | user manual for the possible values of the MODE parameter. | ||
| 1497 | 1030 | ||
| 1498 | --- | 1031 | +++ |
| 1499 | *** Emacs now supports several character terminals which provide more | 1032 | ** In Outline mode, hide-body no longer hides lines at the top |
| 1500 | than 8 colors. For example, for `xterm', 16-color, 88-color, and | 1033 | of the file that precede the first header line. |
| 1501 | 256-color modes are supported. Emacs automatically notes at startup | ||
| 1502 | the extended number of colors, and defines the appropriate entries for | ||
| 1503 | all of these colors. | ||
| 1504 | 1034 | ||
| 1505 | +++ | 1035 | +++ |
| 1506 | *** Emacs now uses the full range of available colors for the default | 1036 | ** Occur, Info, and comint-derived modes now support using |
| 1507 | faces when running on a color terminal, including 16-, 88-, and | 1037 | M-x font-lock-mode to toggle fontification. The variable |
| 1508 | 256-color xterms. This means that when you run "emacs -nw" on an | 1038 | `Info-fontify' is no longer applicable; to disable fontification, |
| 1509 | 88-color or 256-color xterm, you will see essentially the same face | 1039 | remove `turn-on-font-lock' from `Info-mode-hook'. |
| 1510 | colors as on X. | ||
| 1511 | 1040 | ||
| 1512 | --- | 1041 | --- |
| 1513 | *** There's a new support for colors on `rxvt' terminal emulator. | 1042 | ** The terminal emulation code in term.el has been improved, it can |
| 1043 | run most curses applications now. | ||
| 1514 | 1044 | ||
| 1515 | +++ | 1045 | --- |
| 1516 | ** Emacs can now be invoked in full-screen mode on a windowed display. | 1046 | ** The comint prompt can now be made read-only, using the new user |
| 1047 | option `comint-prompt-read-only'. This is not enabled by default, | ||
| 1048 | except in IELM buffers. The read-only status of IELM prompts can be | ||
| 1049 | controlled with the new user option `ielm-prompt-read-only', which | ||
| 1050 | overrides `comint-prompt-read-only'. | ||
| 1517 | 1051 | ||
| 1518 | When Emacs is invoked on a window system, the new command-line options | 1052 | The new commands `comint-kill-whole-line' and `comint-kill-region' |
| 1519 | `--fullwidth', `--fullheight', and `--fullscreen' produce a frame | 1053 | support editing comint buffers with read-only prompts. |
| 1520 | whose width, height, or both width and height take up the entire | ||
| 1521 | screen size. (For now, this does not work with some window managers.) | ||
| 1522 | 1054 | ||
| 1523 | --- | 1055 | `comint-kill-whole-line' is like `kill-whole-line', but ignores both |
| 1524 | ** Emacs now tries to set up buffer coding systems for HTML/XML files | 1056 | read-only and field properties. Hence, it always kill entire |
| 1525 | automatically. | 1057 | lines, including any prompts. |
| 1058 | |||
| 1059 | `comint-kill-region' is like `kill-region', except that it ignores | ||
| 1060 | read-only properties, if it is safe to do so. This means that if any | ||
| 1061 | part of a prompt is deleted, then the entire prompt must be deleted | ||
| 1062 | and that all prompts must stay at the beginning of a line. If this is | ||
| 1063 | not the case, then `comint-kill-region' behaves just like | ||
| 1064 | `kill-region' if read-only are involved: it copies the text to the | ||
| 1065 | kill-ring, but does not delete it. | ||
| 1526 | 1066 | ||
| 1527 | +++ | 1067 | +++ |
| 1528 | ** The new command `comint-insert-previous-argument' in comint-derived | 1068 | ** The new command `comint-insert-previous-argument' in comint-derived |
| @@ -1530,89 +1070,81 @@ modes (shell-mode etc) inserts arguments from previous command lines, | |||
| 1530 | like bash's `ESC .' binding. It is bound by default to `C-c .', but | 1070 | like bash's `ESC .' binding. It is bound by default to `C-c .', but |
| 1531 | otherwise behaves quite similarly to the bash version. | 1071 | otherwise behaves quite similarly to the bash version. |
| 1532 | 1072 | ||
| 1533 | +++ | 1073 | ** `comint-use-prompt-regexp-instead-of-fields' has been renamed |
| 1534 | ** Changes in C-h bindings: | 1074 | `comint-use-prompt-regexp'. The old name has been kept as an alias, |
| 1535 | 1075 | but declared obsolete. | |
| 1536 | C-h e displays the *Messages* buffer. | ||
| 1537 | |||
| 1538 | C-h followed by a control character is used for displaying files | ||
| 1539 | that do not change: | ||
| 1540 | |||
| 1541 | C-h C-f displays the FAQ. | ||
| 1542 | C-h C-e displays the PROBLEMS file. | ||
| 1543 | |||
| 1544 | The info-search bindings on C-h C-f, C-h C-k and C-h C-i | ||
| 1545 | have been moved to C-h F, C-h K and C-h S. | ||
| 1546 | 1076 | ||
| 1547 | C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands. | 1077 | +++ |
| 1078 | ** Telnet now prompts you for a port number with C-u M-x telnet. | ||
| 1548 | 1079 | ||
| 1549 | - C-h c and C-h k report the actual command (after possible remapping) | 1080 | --- |
| 1550 | run by the key sequence. | 1081 | ** M-x compile has become more robust and reliable |
| 1551 | 1082 | ||
| 1552 | - C-h w and C-h f on a command which has been remapped now report the | 1083 | Quite a few more kinds of messages are recognized. Messages that are |
| 1553 | command it is remapped to, and the keys which can be used to run | 1084 | recognized as warnings or informational come in orange or green, instead of |
| 1554 | that command. | 1085 | red. Informational messages are by default skipped with `next-error' |
| 1086 | (controlled by `compilation-skip-threshold'). | ||
| 1555 | 1087 | ||
| 1556 | For example, if C-k is bound to kill-line, and kill-line is remapped | 1088 | Location data is collected on the fly as the *compilation* buffer changes. |
| 1557 | to new-kill-line, these commands now report: | 1089 | This means you could modify messages to make them point to different files. |
| 1090 | This also means you can not go to locations of messages you may have deleted. | ||
| 1558 | 1091 | ||
| 1559 | - C-h c and C-h k C-k reports: | 1092 | The variable `compilation-error-regexp-alist' has now become customizable. If |
| 1560 | C-k runs the command new-kill-line | 1093 | you had added your own regexps to this, you'll probably need to include a |
| 1094 | leading `^', otherwise they'll match anywhere on a line. There is now also a | ||
| 1095 | `compilation-mode-font-lock-keywords' and it nicely handles all the checks | ||
| 1096 | that configure outputs and -o options so you see at a glance where you are. | ||
| 1561 | 1097 | ||
| 1562 | - C-h w and C-h f kill-line reports: | 1098 | The new file etc/compilation.txt gives examples of each type of message. |
| 1563 | kill-line is remapped to new-kill-line which is on C-k, <deleteline> | ||
| 1564 | 1099 | ||
| 1565 | - C-h w and C-h f new-kill-line reports: | 1100 | ** Compilation mode enhancements: |
| 1566 | new-kill-line is on C-k | ||
| 1567 | 1101 | ||
| 1568 | +++ | 1102 | +++ |
| 1569 | ** Vertical scrolling is now possible within incremental search. | 1103 | *** New user option `compilation-environment'. |
| 1570 | To enable this feature, customize the new user option | 1104 | This option allows you to specify environment variables for inferior |
| 1571 | `isearch-allow-scroll'. User written commands which satisfy stringent | 1105 | compilation processes without affecting the environment that all |
| 1572 | constraints can be marked as "scrolling commands". See the Emacs manual | 1106 | subprocesses inherit. |
| 1573 | for details. | ||
| 1574 | 1107 | ||
| 1575 | +++ | 1108 | +++ |
| 1576 | ** C-w in incremental search now grabs either a character or a word, | 1109 | ** Grep has been decoupled from compilation mode setup. |
| 1577 | making the decision in a heuristic way. This new job is done by the | ||
| 1578 | command `isearch-yank-word-or-char'. To restore the old behavior, | ||
| 1579 | bind C-w to `isearch-yank-word' in `isearch-mode-map'. | ||
| 1580 | 1110 | ||
| 1581 | +++ | 1111 | --- |
| 1582 | ** C-y in incremental search now grabs the next line if point is already | 1112 | *** There's a new separate package grep.el. |
| 1583 | at the end of a line. | ||
| 1584 | 1113 | ||
| 1585 | +++ | 1114 | --- |
| 1586 | ** C-M-w deletes and C-M-y grabs a character in isearch mode. | 1115 | *** M-x grep has been adapted to new compile |
| 1587 | Another method to grab a character is to enter the minibuffer by `M-e' | ||
| 1588 | and to type `C-f' at the end of the search string in the minibuffer. | ||
| 1589 | 1116 | ||
| 1590 | +++ | 1117 | Hits are fontified in green, and hits in binary files in orange. Grep buffers |
| 1591 | ** M-% typed in isearch mode invokes `query-replace' or | 1118 | can be saved and automatically revisited with the new Grep mode. |
| 1592 | `query-replace-regexp' (depending on search mode) with the current | ||
| 1593 | search string used as the string to replace. | ||
| 1594 | 1119 | ||
| 1595 | +++ | 1120 | --- |
| 1596 | ** Isearch no longer adds `isearch-resume' commands to the command | 1121 | *** Grep commands now have their own submenu and customization group. |
| 1597 | history by default. To enable this feature, customize the new | ||
| 1598 | user option `isearch-resume-in-command-history'. | ||
| 1599 | 1122 | ||
| 1600 | +++ | 1123 | +++ |
| 1601 | ** New user option `history-delete-duplicates'. | 1124 | *** `grep-find' is now also available under the name `find-grep' where |
| 1602 | If set to t when adding a new history element, all previous identical | 1125 | people knowing `find-grep-dired' would probably expect it. |
| 1603 | elements are deleted. | 1126 | |
| 1127 | --- | ||
| 1128 | *** The new variables `grep-window-height', `grep-auto-highlight', and | ||
| 1129 | `grep-scroll-output' can be used to override the corresponding | ||
| 1130 | compilation mode settings for grep commands. | ||
| 1604 | 1131 | ||
| 1605 | +++ | 1132 | +++ |
| 1606 | ** Yanking text now discards certain text properties that can | 1133 | *** New option `grep-highlight-matches' highlightes matches in *grep* |
| 1607 | be inconvenient when you did not expect them. The variable | 1134 | buffer. It uses a special feature of some grep programs which accept |
| 1608 | `yank-excluded-properties' specifies which ones. Insertion | 1135 | --color option to output markers around matches. When going to the next |
| 1609 | of register contents and rectangles also discards these properties. | 1136 | match with `next-error' the exact match is highlighted in the source |
| 1137 | buffer. Otherwise, if `grep-highlight-matches' is nil, the whole | ||
| 1138 | source line is highlighted. | ||
| 1610 | 1139 | ||
| 1611 | +++ | 1140 | +++ |
| 1612 | ** Occur, Info, and comint-derived modes now support using | 1141 | *** New key bindings in grep output window: |
| 1613 | M-x font-lock-mode to toggle fontification. The variable | 1142 | SPC and DEL scrolls window up and down. C-n and C-p moves to next and |
| 1614 | `Info-fontify' is no longer applicable; to disable fontification, | 1143 | previous match in the grep window. RET jumps to the source line of |
| 1615 | remove `turn-on-font-lock' from `Info-mode-hook'. | 1144 | the current match. `n' and `p' shows next and previous match in |
| 1145 | other window, but does not switch buffer. `{' and `}' jumps to the | ||
| 1146 | previous or next file in the grep output. TAB also jumps to the next | ||
| 1147 | file. | ||
| 1616 | 1148 | ||
| 1617 | +++ | 1149 | +++ |
| 1618 | ** M-x grep now tries to avoid appending `/dev/null' to the command line | 1150 | ** M-x grep now tries to avoid appending `/dev/null' to the command line |
| @@ -1622,136 +1154,21 @@ When `-H' is used, the grep command line supplied by the user is passed | |||
| 1622 | unchanged to the system to execute, which allows more complicated | 1154 | unchanged to the system to execute, which allows more complicated |
| 1623 | command lines to be used than was possible before. | 1155 | command lines to be used than was possible before. |
| 1624 | 1156 | ||
| 1625 | --- | ||
| 1626 | ** The face-customization widget has been reworked to be less confusing. | ||
| 1627 | In particular, when you enable a face attribute using the corresponding | ||
| 1628 | check-box, there's no longer a redundant `*' option in value selection | ||
| 1629 | for that attribute; the values you can choose are only those which make | ||
| 1630 | sense for the attribute. When an attribute is de-selected by unchecking | ||
| 1631 | its check-box, then the (now ignored, but still present temporarily in | ||
| 1632 | case you re-select the attribute) value is hidden. | ||
| 1633 | |||
| 1634 | +++ | ||
| 1635 | ** When you set or reset a variable's value in a Customize buffer, | ||
| 1636 | the previous value becomes the "backup value" of the variable. | ||
| 1637 | You can go back to that backup value by selecting "Use Backup Value" | ||
| 1638 | under the "[State]" button. | ||
| 1639 | |||
| 1640 | --- | ||
| 1641 | ** The new customization type `float' specifies numbers with floating | ||
| 1642 | point (no integers are allowed). | ||
| 1643 | |||
| 1644 | +++ | ||
| 1645 | ** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | ||
| 1646 | counter to the specified source line (the one where point is). | ||
| 1647 | |||
| 1648 | --- | ||
| 1649 | ** GUD mode improvements for jdb: | ||
| 1650 | |||
| 1651 | *** Search for source files using jdb classpath and class | ||
| 1652 | information. Fast startup since there is no need to scan all | ||
| 1653 | source files up front. There is also no need to create and maintain | ||
| 1654 | lists of source directories to scan. Look at `gud-jdb-use-classpath' | ||
| 1655 | and `gud-jdb-classpath' customization variables documentation. | ||
| 1656 | |||
| 1657 | *** Supports the standard breakpoint (gud-break, gud-clear) | ||
| 1658 | set/clear operations from java source files under the classpath, stack | ||
| 1659 | traversal (gud-up, gud-down), and run until current stack finish | ||
| 1660 | (gud-finish). | ||
| 1661 | |||
| 1662 | *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | ||
| 1663 | (Java 1.1 jdb). | ||
| 1664 | |||
| 1665 | *** The previous method of searching for source files has been | ||
| 1666 | preserved in case someone still wants/needs to use it. | ||
| 1667 | Set gud-jdb-use-classpath to nil. | ||
| 1668 | |||
| 1669 | Added Customization Variables | ||
| 1670 | |||
| 1671 | *** gud-jdb-command-name. What command line to use to invoke jdb. | ||
| 1672 | |||
| 1673 | *** gud-jdb-use-classpath. Allows selection of java source file searching | ||
| 1674 | method: set to t for new method, nil to scan gud-jdb-directories for | ||
| 1675 | java sources (previous method). | ||
| 1676 | |||
| 1677 | *** gud-jdb-directories. List of directories to scan and search for java | ||
| 1678 | classes using the original gud-jdb method (if gud-jdb-use-classpath | ||
| 1679 | is nil). | ||
| 1680 | |||
| 1681 | Minor Improvements | ||
| 1682 | |||
| 1683 | *** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS | ||
| 1684 | instead of the OpenSSL based "starttls" tool. For backwards | ||
| 1685 | compatibility, it prefers "starttls", but you can toggle | ||
| 1686 | `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | ||
| 1687 | "starttls" tool). | ||
| 1688 | |||
| 1689 | *** Do not allow debugger output history variable to grow without bounds. | ||
| 1690 | |||
| 1691 | +++ | ||
| 1692 | ** hide-ifdef-mode now uses overlays rather than selective-display | ||
| 1693 | to hide its text. This should be mostly transparent but slightly | ||
| 1694 | changes the behavior of motion commands like C-e and C-p. | ||
| 1695 | |||
| 1696 | +++ | ||
| 1697 | ** Unquoted `$' in file names do not signal an error any more when | ||
| 1698 | the corresponding environment variable does not exist. | ||
| 1699 | Instead, the `$ENVVAR' text is left as is, so that `$$' quoting | ||
| 1700 | is only rarely needed. | ||
| 1701 | |||
| 1702 | --- | ||
| 1703 | ** JIT-lock changes | ||
| 1704 | *** jit-lock can now be delayed with `jit-lock-defer-time'. | ||
| 1705 | |||
| 1706 | If this variable is non-nil, its value should be the amount of Emacs | ||
| 1707 | idle time in seconds to wait before starting fontification. For | ||
| 1708 | example, if you set `jit-lock-defer-time' to 0.25, fontification will | ||
| 1709 | only happen after 0.25s of idle time. | ||
| 1710 | |||
| 1711 | *** contextual refontification is now separate from stealth fontification. | ||
| 1712 | |||
| 1713 | jit-lock-defer-contextually is renamed jit-lock-contextually and | ||
| 1714 | jit-lock-context-time determines the delay after which contextual | ||
| 1715 | refontification takes place. | ||
| 1716 | |||
| 1717 | +++ | ||
| 1718 | ** Marking commands extend the region when invoked multiple times. If | ||
| 1719 | you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or | ||
| 1720 | C-M-h (mark-defun) repeatedly, the marked region extends each time, so | ||
| 1721 | you can mark the next two sexps with M-C-SPC M-C-SPC, for example. | ||
| 1722 | This feature also works for mark-end-of-sentence, if you bind that to | ||
| 1723 | a key. It also extends the region when the mark is active in Transient | ||
| 1724 | Mark mode, regardless of the last command. To start a new region with | ||
| 1725 | one of marking commands in Transient Mark mode, you can deactivate the | ||
| 1726 | active region with C-g, or set the new mark with C-SPC. | ||
| 1727 | |||
| 1728 | +++ | 1157 | +++ |
| 1729 | ** Some commands do something special in Transient Mark mode when the | 1158 | ** New options `next-error-highlight' and `next-error-highlight-no-select' |
| 1730 | mark is active--for instance, they limit their operation to the | 1159 | specify the method of highlighting of the corresponding source line |
| 1731 | region. Even if you don't normally use Transient Mark mode, you might | 1160 | in new face `next-error'. |
| 1732 | want to get this behavior from a particular command. There are two | ||
| 1733 | ways you can enable Transient Mark mode and activate the mark, for one | ||
| 1734 | command only. | ||
| 1735 | |||
| 1736 | One method is to type C-SPC C-SPC; this enables Transient Mark mode | ||
| 1737 | and sets the mark at point. The other method is to type C-u C-x C-x. | ||
| 1738 | This enables Transient Mark mode temporarily but does not alter the | ||
| 1739 | mark or the region. | ||
| 1740 | |||
| 1741 | After these commands, Transient Mark mode remains enabled until you | ||
| 1742 | deactivate the mark. That typically happens when you type a command | ||
| 1743 | that alters the buffer, but you can also deactivate the mark by typing | ||
| 1744 | C-g. | ||
| 1745 | 1161 | ||
| 1746 | +++ | 1162 | +++ |
| 1747 | ** A prefix argument is no longer required to repeat a jump to a | 1163 | ** A new minor mode `next-error-follow-minor-mode' can be used in |
| 1748 | previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the | 1164 | compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the |
| 1749 | mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump. | 1165 | modes that can use `next-error'). In this mode, cursor motion in the |
| 1166 | buffer causes automatic display in another window of the corresponding | ||
| 1167 | matches, compilation errors, etc. This minor mode can be toggled with | ||
| 1168 | C-c C-f. | ||
| 1750 | 1169 | ||
| 1751 | +++ | 1170 | +++ |
| 1752 | ** Movement commands `beginning-of-buffer', `end-of-buffer', | 1171 | ** M-x diff uses diff-mode instead of compilation-mode. |
| 1753 | `beginning-of-defun', `end-of-defun' do not set the mark if the mark | ||
| 1754 | is already active in Transient Mark mode. | ||
| 1755 | 1172 | ||
| 1756 | +++ | 1173 | +++ |
| 1757 | ** In the *Occur* buffer, `o' switches to it in another window, and | 1174 | ** In the *Occur* buffer, `o' switches to it in another window, and |
| @@ -1759,236 +1176,140 @@ C-o displays the current line's occurrence in another window without | |||
| 1759 | switching to it. | 1176 | switching to it. |
| 1760 | 1177 | ||
| 1761 | +++ | 1178 | +++ |
| 1762 | ** When you specify a frame size with --geometry, the size applies to | 1179 | ** You can now use next-error (C-x `) and previous-error to advance to |
| 1763 | all frames you create. A position specified with --geometry only | 1180 | the next/previous matching line found by M-x occur. |
| 1764 | affects the initial frame. | ||
| 1765 | 1181 | ||
| 1766 | +++ | 1182 | +++ |
| 1767 | ** M-h (mark-paragraph) now accepts a prefix arg. | 1183 | ** The new command `multi-occur' is just like `occur', except it can |
| 1768 | With positive arg, M-h marks the current and the following paragraphs; | 1184 | search multiple buffers. There is also a new command |
| 1769 | if the arg is negative, it marks the current and the preceding | 1185 | `multi-occur-by-filename-regexp' which allows you to specify the |
| 1770 | paragraphs. | 1186 | buffers to search by their filename. Internally, Occur mode has been |
| 1187 | rewritten, and now uses font-lock, among other changes. | ||
| 1771 | 1188 | ||
| 1772 | +++ | 1189 | +++ |
| 1773 | ** The variables dired-free-space-program and dired-free-space-args | 1190 | ** font-lock: in modes like C and Lisp where the fontification assumes that |
| 1774 | have been renamed to directory-free-space-program and | 1191 | an open-paren in column 0 is always outside of any string or comment, |
| 1775 | directory-free-space-args, and they now apply whenever Emacs puts a | 1192 | font-lock now highlights any such open-paren-in-column-zero in bold-red |
| 1776 | directory listing into a buffer. | 1193 | if it is inside a string or a comment, to indicate that it can cause |
| 1777 | 1194 | trouble with fontification and/or indentation. | |
| 1778 | --- | ||
| 1779 | ** mouse-wheels can now scroll a specific fraction of the window | ||
| 1780 | (rather than a fixed number of lines) and the scrolling is `progressive'. | ||
| 1781 | |||
| 1782 | --- | ||
| 1783 | ** Unexpected yanking of text due to accidental clicking on the mouse | ||
| 1784 | wheel button (typically mouse-2) during wheel scrolling is now avoided. | ||
| 1785 | This behavior can be customized via the mouse-wheel-click-event and | ||
| 1786 | mouse-wheel-inhibit-click-time variables. | ||
| 1787 | 1195 | ||
| 1788 | +++ | 1196 | ** Enhancements to apropos commands: |
| 1789 | ** The keyboard-coding-system is now automatically set based on your | ||
| 1790 | current locale settings if you are not using a window system. This | ||
| 1791 | may mean that the META key doesn't work but generates non-ASCII | ||
| 1792 | characters instead, depending on how the terminal (or terminal | ||
| 1793 | emulator) works. Use `set-keyboard-coding-system' (or customize | ||
| 1794 | keyboard-coding-system) if you prefer META to work (the old default) | ||
| 1795 | or if the locale doesn't describe the character set actually generated | ||
| 1796 | by the keyboard. See Info node `Single-Byte Character Support'. | ||
| 1797 | 1197 | ||
| 1798 | +++ | 1198 | +++ |
| 1799 | ** Emacs now reads the standard abbrevs file ~/.abbrev_defs | 1199 | *** The apropos commands now accept a list of words to match. |
| 1800 | automatically at startup, if it exists. When Emacs offers to save | 1200 | When more than one word is specified, at least two of those words must |
| 1801 | modified buffers, it saves the abbrevs too if they have changed. It | 1201 | be present for an item to match. Regular expression matching is still |
| 1802 | can do this either silently or asking for confirmation first, | 1202 | available. |
| 1803 | according to the value of `save-abbrevs'. | ||
| 1804 | 1203 | ||
| 1805 | +++ | 1204 | +++ |
| 1806 | ** Display of hollow cursors now obeys the buffer-local value (if any) | 1205 | *** The new option `apropos-sort-by-scores' causes the matching items |
| 1807 | of `cursor-in-non-selected-windows' in the buffer that the cursor | 1206 | to be sorted according to their score. The score for an item is a |
| 1808 | appears in. | 1207 | number calculated to indicate how well the item matches the words or |
| 1208 | regular expression that you entered to the apropos command. The best | ||
| 1209 | match is listed first, and the calculated score is shown for each | ||
| 1210 | matching item. | ||
| 1809 | 1211 | ||
| 1810 | +++ | 1212 | +++ |
| 1811 | ** The variable `cursor-in-non-selected-windows' can now be set to any | 1213 | ** You can have several Emacs servers on the same machine. |
| 1812 | of the recognized cursor types. | ||
| 1813 | |||
| 1814 | --- | ||
| 1815 | ** The variable `auto-save-file-name-transforms' now has a third element that | ||
| 1816 | controls whether or not the function `make-auto-save-file-name' will | ||
| 1817 | attempt to construct a unique auto-save name (e.g. for remote files). | ||
| 1818 | 1214 | ||
| 1819 | +++ | 1215 | % emacs --eval '(setq server-name "foo")' -f server-start & |
| 1820 | ** There is a new calendar package, icalendar.el, that can be used to | 1216 | % emacs --eval '(setq server-name "bar")' -f server-start & |
| 1821 | convert Emacs diary entries to/from the iCalendar format. | 1217 | % emacsclient -s foo file1 |
| 1218 | % emacsclient -s bar file2 | ||
| 1822 | 1219 | ||
| 1823 | +++ | 1220 | +++ |
| 1824 | ** Diary sexp entries can have custom marking in the calendar. | 1221 | ** The `emacsclient' command understands the options `--eval' and |
| 1825 | Diary sexp functions which only apply to certain days (such as | 1222 | `--display' which tell Emacs respectively to evaluate the given elisp |
| 1826 | `diary-block' or `diary-cyclic') now take an optional parameter MARK, | 1223 | expression and to use the given display when visiting files. |
| 1827 | which is the name of a face or a single-character string indicating | ||
| 1828 | how to highlight the day in the calendar display. Specifying a | ||
| 1829 | single-character string as @var{mark} places the character next to the | ||
| 1830 | day in the calendar. Specifying a face highlights the day with that | ||
| 1831 | face. This lets you have different colors or markings for vacations, | ||
| 1832 | appointments, paydays or anything else using a sexp. | ||
| 1833 | 1224 | ||
| 1834 | +++ | 1225 | +++ |
| 1835 | ** The new function `calendar-goto-day-of-year' (g D) prompts for a | 1226 | ** User option `server-mode' can be used to start a server process. |
| 1836 | year and day number, and moves to that date. Negative day numbers | ||
| 1837 | count backward from the end of the year. | ||
| 1838 | 1227 | ||
| 1839 | +++ | 1228 | +++ |
| 1840 | ** The new Calendar function `calendar-goto-iso-week' (g w) | 1229 | ** New user option `add-log-always-start-new-record'. |
| 1841 | prompts for a year and a week number, and moves to the first | 1230 | When this option is enabled, M-x add-change-log-entry always |
| 1842 | day of that ISO week. | 1231 | starts a new record regardless of when the last record is. |
| 1843 | 1232 | ||
| 1844 | --- | 1233 | ** Info mode: |
| 1845 | ** The new variable `calendar-minimum-window-height' affects the | ||
| 1846 | window generated by the function `generate-calendar-window'. | ||
| 1847 | 1234 | ||
| 1848 | --- | 1235 | +++ |
| 1849 | ** The functions `holiday-easter-etc' and `holiday-advent' now take | 1236 | *** A numeric prefix argument of `info' selects an Info buffer |
| 1850 | optional arguments, in order to only report on the specified holiday | 1237 | with the number appended to the *info* buffer name (e.g. "*info*<2>"). |
| 1851 | rather than all. This makes customization of variables such as | ||
| 1852 | `christian-holidays' simpler. | ||
| 1853 | 1238 | ||
| 1854 | --- | 1239 | --- |
| 1855 | ** The function `simple-diary-display' now by default sets a header line. | 1240 | *** isearch in Info uses Info-search and searches through multiple nodes. |
| 1856 | This can be controlled through the variables `diary-header-line-flag' | 1241 | Before leaving the initial Info node isearch fails once with the error |
| 1857 | and `diary-header-line-format'. | 1242 | message [initial node], and with subsequent C-s/C-r continues through |
| 1243 | other nodes. When isearch fails for the rest of the manual, it wraps | ||
| 1244 | aroung the whole manual to the top/final node. The user option | ||
| 1245 | `Info-isearch-search' controls whether to use Info-search for isearch, | ||
| 1246 | or the default isearch search function that wraps around the current | ||
| 1247 | Info node. | ||
| 1858 | 1248 | ||
| 1859 | +++ | 1249 | *** New search commands: `Info-search-case-sensitively' (bound to S), |
| 1860 | ** The procedure for activating appointment reminders has changed: use | 1250 | `Info-search-backward', and `Info-search-next' which repeats the last |
| 1861 | the new function `appt-activate'. The new variable | 1251 | search without prompting for a new search string. |
| 1862 | `appt-display-format' controls how reminders are displayed, replacing | ||
| 1863 | appt-issue-message, appt-visible, and appt-msg-window. | ||
| 1864 | 1252 | ||
| 1865 | +++ | 1253 | *** New command `Info-history-forward' (bound to r and new toolbar icon) |
| 1866 | ** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | 1254 | moves forward in history to the node you returned from after using |
| 1867 | and `diary-from-outlook-rmail' can be used to import diary entries | 1255 | `Info-history-back' (renamed from `Info-last'). |
| 1868 | from Outlook-format appointments in mail messages. The variable | ||
| 1869 | `diary-outlook-formats' can be customized to recognize additional | ||
| 1870 | formats. | ||
| 1871 | 1256 | ||
| 1257 | *** New command `Info-history' (bound to L) displays a menu of visited nodes. | ||
| 1872 | 1258 | ||
| 1873 | ** VC Changes | 1259 | *** New command `Info-toc' (bound to T) creates a node with table of contents |
| 1260 | from the tree structure of menus of the current Info file. | ||
| 1874 | 1261 | ||
| 1875 | +++ | 1262 | *** New command `info-apropos' searches the indices of the known |
| 1876 | *** The key C-x C-q no longer checks files in or out, it only changes | 1263 | Info files on your system for a string, and builds a menu of the |
| 1877 | the read-only state of the buffer (toggle-read-only). We made this | 1264 | possible matches. |
| 1878 | change because we held a poll and found that many users were unhappy | ||
| 1879 | with the previous behavior. If you do prefer this behavior, you | ||
| 1880 | can bind `vc-toggle-read-only' to C-x C-q in your .emacs: | ||
| 1881 | 1265 | ||
| 1882 | (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | 1266 | *** New command `Info-copy-current-node-name' (bound to w) copies |
| 1267 | the current Info node name into the kill ring. With a zero prefix | ||
| 1268 | arg, puts the node name inside the `info' function call. | ||
| 1883 | 1269 | ||
| 1884 | The function `vc-toggle-read-only' will continue to exist. | 1270 | --- |
| 1271 | *** New face `info-xref-visited' distinguishes visited nodes from unvisited | ||
| 1272 | and a new option `Info-fontify-visited-nodes' to control this. | ||
| 1885 | 1273 | ||
| 1886 | +++ | 1274 | *** http and ftp links in Info are now operational: they look like cross |
| 1887 | *** There is a new user option `vc-cvs-global-switches' that allows | 1275 | references and following them calls `browse-url'. |
| 1888 | you to specify switches that are passed to any CVS command invoked | ||
| 1889 | by VC. These switches are used as "global options" for CVS, which | ||
| 1890 | means they are inserted before the command name. For example, this | ||
| 1891 | allows you to specify a compression level using the "-z#" option for | ||
| 1892 | CVS. | ||
| 1893 | 1276 | ||
| 1894 | +++ | 1277 | +++ |
| 1895 | *** New backends for Subversion and Meta-CVS. | 1278 | *** Info now hides node names in menus and cross references by default. |
| 1279 | If you prefer the old behavior, you can set the new user option | ||
| 1280 | `Info-hide-note-references' to nil. | ||
| 1896 | 1281 | ||
| 1897 | ** EDiff changes. | 1282 | --- |
| 1283 | *** Images in Info pages are supported. | ||
| 1284 | Info pages show embedded images, in Emacs frames with image support. | ||
| 1285 | Info documentation that includes images, processed with makeinfo | ||
| 1286 | version 4.7 or newer, compiles to Info pages with embedded images. | ||
| 1898 | 1287 | ||
| 1899 | +++ | 1288 | +++ |
| 1900 | *** When comparing directories. | 1289 | *** The default value for `Info-scroll-prefer-subnodes' is now nil. |
| 1901 | Typing D brings up a buffer that lists the differences between the contents of | ||
| 1902 | directories. Now it is possible to use this buffer to copy the missing files | ||
| 1903 | from one directory to another. | ||
| 1904 | 1290 | ||
| 1905 | +++ | 1291 | --- |
| 1906 | *** When comparing files or buffers. | 1292 | *** Info-index offers completion. |
| 1907 | Typing the = key now offers to perform the word-by-word comparison of the | ||
| 1908 | currently highlighted regions in an inferior Ediff session. If you answer 'n' | ||
| 1909 | then it reverts to the old behavior and asks the user to select regions for | ||
| 1910 | comparison. | ||
| 1911 | 1293 | ||
| 1912 | *** The new command `ediff-backup' compares a file with its most recent | 1294 | --- |
| 1913 | backup using `ediff'. If you specify the name of a backup file, | 1295 | ** Lisp mode now uses font-lock-doc-face for the docstrings. |
| 1914 | `ediff-backup' compares it with the file of which it is a backup. | ||
| 1915 | 1296 | ||
| 1916 | +++ | 1297 | +++ |
| 1917 | ** Etags changes. | 1298 | ** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the |
| 1918 | 1299 | list starting after point. | |
| 1919 | *** New regular expressions features | ||
| 1920 | |||
| 1921 | **** New syntax for regular expressions, multi-line regular expressions. | ||
| 1922 | The syntax --ignore-case-regexp=/regex/ is now undocumented and retained | ||
| 1923 | only for backward compatibility. The new equivalent syntax is | ||
| 1924 | --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | ||
| 1925 | where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | ||
| 1926 | more characters among `i' (ignore case), `m' (multi-line) and `s' | ||
| 1927 | (single-line). The `m' and `s' modifiers behave as in Perl regular | ||
| 1928 | expressions: `m' allows regexps to match more than one line, while `s' | ||
| 1929 | (which implies `m') means that `.' matches newlines. The ability to | ||
| 1930 | span newlines allows writing of much more powerful regular expressions | ||
| 1931 | and rapid prototyping for tagging new languages. | ||
| 1932 | |||
| 1933 | **** Regular expressions can use char escape sequences as in Gcc. | ||
| 1934 | The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, | ||
| 1935 | respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, | ||
| 1936 | CR, TAB, VT, | ||
| 1937 | |||
| 1938 | **** Regular expressions can be bound to a given language. | ||
| 1939 | The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags | ||
| 1940 | only for files of language LANGUAGE, and ignored otherwise. This is | ||
| 1941 | particularly useful when storing regexps in a file. | ||
| 1942 | |||
| 1943 | **** Regular expressions can be read from a file. | ||
| 1944 | The --regex=@regexfile option means read the regexps from a file, one | ||
| 1945 | per line. Lines beginning with space or tab are ignored. | ||
| 1946 | |||
| 1947 | *** New language parsing features | ||
| 1948 | |||
| 1949 | **** The `::' qualifier triggers C++ parsing in C file. | ||
| 1950 | Previously, only the `template' and `class' keywords had this effect. | ||
| 1951 | |||
| 1952 | **** The gnucc __attribute__ keyword is now recognised and ignored. | ||
| 1953 | |||
| 1954 | **** New language HTML. | ||
| 1955 | Title and h1, h2, h3 are tagged. Also, tags are generated when name= is | ||
| 1956 | used inside an anchor and whenever id= is used. | ||
| 1957 | |||
| 1958 | **** In Makefiles, constants are tagged. | ||
| 1959 | If you want the old behavior instead, thus avoiding to increase the | ||
| 1960 | size of the tags file, use the --no-globals option. | ||
| 1961 | |||
| 1962 | **** New language Lua. | ||
| 1963 | All functions are tagged. | ||
| 1964 | |||
| 1965 | **** In Perl, packages are tags. | ||
| 1966 | Subroutine tags are named from their package. You can jump to sub tags | ||
| 1967 | as you did before, by the sub name, or additionally by looking for | ||
| 1968 | package::sub. | ||
| 1969 | |||
| 1970 | **** In Prolog, etags creates tags for rules in addition to predicates. | ||
| 1971 | |||
| 1972 | **** New language PHP. | ||
| 1973 | Tags are functions, classes and defines. | ||
| 1974 | If the --members option is specified to etags, tags are variables also. | ||
| 1975 | 1300 | ||
| 1976 | **** New default keywords for TeX. | 1301 | ** New features in evaluation commands |
| 1977 | The new keywords are def, newcommand, renewcommand, newenvironment and | ||
| 1978 | renewenvironment. | ||
| 1979 | 1302 | ||
| 1980 | *** Honour #line directives. | 1303 | +++ |
| 1981 | When Etags parses an input file that contains C preprocessor's #line | 1304 | *** The function `eval-defun' (C-M-x) called on defface reinitializes |
| 1982 | directives, it creates tags using the file name and line number | 1305 | the face to the value specified in the defface expression. |
| 1983 | specified in those directives. This is useful when dealing with code | ||
| 1984 | created from Cweb source files. When Etags tags the generated file, it | ||
| 1985 | writes tags pointing to the source file. | ||
| 1986 | 1306 | ||
| 1987 | *** New option --parse-stdin=FILE. | 1307 | +++ |
| 1988 | This option is mostly useful when calling etags from programs. It can | 1308 | *** Typing C-x C-e twice prints the value of the integer result |
| 1989 | be used (only once) in place of a file name on the command line. Etags | 1309 | in additional formats (octal, hexadecimal, character) specified |
| 1990 | reads from standard input and marks the produced tags as belonging to | 1310 | by the new function `eval-expression-print-format'. The same |
| 1991 | the file FILE. | 1311 | function also defines the result format for `eval-expression' (M-:), |
| 1312 | `eval-print-last-sexp' (C-j) and some edebug evaluation functions. | ||
| 1992 | 1313 | ||
| 1993 | +++ | 1314 | +++ |
| 1994 | ** CC Mode changes. | 1315 | ** CC Mode changes. |
| @@ -2279,31 +1600,40 @@ line is left untouched. | |||
| 2279 | The function c-toggle-syntactic-indentation can be used to toggle | 1600 | The function c-toggle-syntactic-indentation can be used to toggle |
| 2280 | syntactic indentation. | 1601 | syntactic indentation. |
| 2281 | 1602 | ||
| 2282 | +++ | 1603 | --- |
| 2283 | ** The command line option --no-windows has been changed to | 1604 | ** Perl mode has a new variable `perl-indent-continued-arguments'. |
| 2284 | --no-window-system. The old one still works, but is deprecated. | ||
| 2285 | 1605 | ||
| 2286 | +++ | 1606 | --- |
| 2287 | ** The command `list-text-properties-at' has been deleted because | 1607 | ** Fortran mode does more font-locking by default. Use level 3 |
| 2288 | C-u C-x = gives the same information and more. | 1608 | highlighting for the old default. |
| 2289 | 1609 | ||
| 2290 | +++ | 1610 | +++ |
| 2291 | ** `buffer-menu' and `list-buffers' now list buffers whose names begin | 1611 | ** Fortran mode has a new variable `fortran-directive-re'. |
| 2292 | with a space, when those buffers are visiting files. Normally buffers | 1612 | Adapt this to match the format of any compiler directives you use. |
| 2293 | whose names begin with space are omitted. | 1613 | Lines that match are never indented, and are given distinctive font-locking. |
| 2294 | 1614 | ||
| 2295 | +++ | 1615 | +++ |
| 2296 | ** You can now customize fill-nobreak-predicate to control where | 1616 | ** F90 mode and Fortran mode have new navigation commands |
| 2297 | filling can break lines. The value is now normally a list of | 1617 | `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', |
| 2298 | functions, but it can also be a single function, for compatibility. | 1618 | `f90-previous-block', `fortran-end-of-block', |
| 1619 | `fortran-beginning-of-block'. | ||
| 2299 | 1620 | ||
| 2300 | We provide two sample predicates, fill-single-word-nobreak-p and | 1621 | --- |
| 2301 | fill-french-nobreak-p, for use in the value of fill-nobreak-predicate. | 1622 | ** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). |
| 1623 | It cannot deal with every code format, but ought to handle a sizeable | ||
| 1624 | majority. | ||
| 2302 | 1625 | ||
| 2303 | +++ | 1626 | --- |
| 2304 | ** New user option `add-log-always-start-new-record'. | 1627 | ** The new function `f90-backslash-not-special' can be used to change |
| 2305 | When this option is enabled, M-x add-change-log-entry always | 1628 | the syntax of backslashes in F90 buffers. |
| 2306 | starts a new record regardless of when the last record is. | 1629 | |
| 1630 | --- | ||
| 1631 | ** Prolog mode has a new variable `prolog-font-lock-keywords' | ||
| 1632 | to support use of font-lock. | ||
| 1633 | |||
| 1634 | --- | ||
| 1635 | ** Emacs now tries to set up buffer coding systems for HTML/XML files | ||
| 1636 | automatically. | ||
| 2307 | 1637 | ||
| 2308 | +++ | 1638 | +++ |
| 2309 | ** SGML mode has indentation and supports XML syntax. | 1639 | ** SGML mode has indentation and supports XML syntax. |
| @@ -2316,82 +1646,405 @@ from the file name or buffer contents. | |||
| 2316 | +++ | 1646 | +++ |
| 2317 | ** `xml-mode' is now an alias for `sgml-mode', which has XML support. | 1647 | ** `xml-mode' is now an alias for `sgml-mode', which has XML support. |
| 2318 | 1648 | ||
| 1649 | ** TeX modes: | ||
| 1650 | |||
| 1651 | +++ | ||
| 1652 | *** C-c C-c prompts for a command to run, and tries to offer a good default. | ||
| 1653 | |||
| 1654 | +++ | ||
| 1655 | *** The user option `tex-start-options-string' has been replaced | ||
| 1656 | by two new user options: `tex-start-options', which should hold | ||
| 1657 | command-line options to feed to TeX, and `tex-start-commands' which should hold | ||
| 1658 | TeX commands to use at startup. | ||
| 1659 | |||
| 2319 | --- | 1660 | --- |
| 2320 | ** Lisp mode now uses font-lock-doc-face for the docstrings. | 1661 | *** verbatim environments are now highlighted in courier by font-lock |
| 1662 | and super/sub-scripts are made into super/sub-scripts. | ||
| 1663 | |||
| 1664 | +++ | ||
| 1665 | *** New major mode doctex-mode for *.dtx files. | ||
| 1666 | |||
| 1667 | ** BibTeX mode: | ||
| 1668 | *** The new command bibtex-url browses a URL for the BibTeX entry at | ||
| 1669 | point (bound to C-c C-l and mouse-2, RET on clickable fields). | ||
| 1670 | |||
| 1671 | *** The new command bibtex-entry-update (bound to C-c C-u) updates | ||
| 1672 | an existing BibTeX entry. | ||
| 1673 | |||
| 1674 | *** New `bibtex-entry-format' option `required-fields', enabled by default. | ||
| 1675 | |||
| 1676 | *** bibtex-maintain-sorted-entries can take values `plain', | ||
| 1677 | `crossref', and `entry-class' which control the sorting scheme used | ||
| 1678 | for BibTeX entries. `bibtex-sort-entry-class' controls the sorting | ||
| 1679 | scheme `entry-class'. TAB completion for reference keys and | ||
| 1680 | automatic detection of duplicates does not require anymore that | ||
| 1681 | bibtex-maintain-sorted-entries is non-nil. | ||
| 1682 | |||
| 1683 | *** If the new variable bibtex-parse-keys-fast is non-nil, | ||
| 1684 | use fast but simplified algorithm for parsing BibTeX keys. | ||
| 1685 | |||
| 1686 | *** If the new variable bibtex-autoadd-commas is non-nil, | ||
| 1687 | automatically add missing commas at end of BibTeX fields. | ||
| 1688 | |||
| 1689 | *** The new variable bibtex-autofill-types contains a list of entry | ||
| 1690 | types for which fields are filled automatically (if possible). | ||
| 1691 | |||
| 1692 | *** The new command bibtex-complete completes word fragment before | ||
| 1693 | point according to context (bound to M-tab). | ||
| 1694 | |||
| 1695 | *** The new commands bibtex-find-entry and bibtex-find-crossref | ||
| 1696 | locate entries and crossref'd entries (bound to C-c C-s and C-c C-x). | ||
| 1697 | Crossref fields are clickable (bound to mouse-2, RET). | ||
| 1698 | |||
| 1699 | *** In BibTeX mode the command fill-paragraph (bound to M-q) fills | ||
| 1700 | individual fields of a BibTeX entry. | ||
| 1701 | |||
| 1702 | *** The new variables bibtex-files and bibtex-file-path define a set | ||
| 1703 | of BibTeX files that are searched for entry keys. | ||
| 1704 | |||
| 1705 | *** The new command bibtex-validate-globally checks for duplicate keys | ||
| 1706 | in multiple BibTeX files. | ||
| 1707 | |||
| 1708 | *** The new command bibtex-copy-summary-as-kill pushes summary | ||
| 1709 | of BibTeX entry to kill ring (bound to C-c C-t). | ||
| 1710 | |||
| 1711 | +++ | ||
| 1712 | ** In Enriched mode, `set-left-margin' and `set-right-margin' are now | ||
| 1713 | by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l' | ||
| 1714 | and `C-c C-r'. | ||
| 1715 | |||
| 1716 | +++ | ||
| 1717 | ** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program | ||
| 1718 | counter to the specified source line (the one where point is). | ||
| 2321 | 1719 | ||
| 2322 | --- | 1720 | --- |
| 2323 | ** Perl mode has a new variable `perl-indent-continued-arguments'. | 1721 | ** GUD mode has its own tool bar for controlling execution of the inferior |
| 1722 | and other common debugger commands. | ||
| 2324 | 1723 | ||
| 2325 | --- | 1724 | --- |
| 2326 | ** Fortran mode does more font-locking by default. Use level 3 | 1725 | ** GUD mode improvements for jdb: |
| 2327 | highlighting for the old default. | 1726 | |
| 1727 | *** Search for source files using jdb classpath and class | ||
| 1728 | information. Fast startup since there is no need to scan all | ||
| 1729 | source files up front. There is also no need to create and maintain | ||
| 1730 | lists of source directories to scan. Look at `gud-jdb-use-classpath' | ||
| 1731 | and `gud-jdb-classpath' customization variables documentation. | ||
| 1732 | |||
| 1733 | *** Supports the standard breakpoint (gud-break, gud-clear) | ||
| 1734 | set/clear operations from java source files under the classpath, stack | ||
| 1735 | traversal (gud-up, gud-down), and run until current stack finish | ||
| 1736 | (gud-finish). | ||
| 1737 | |||
| 1738 | *** Supports new jdb (Java 1.2 and later) in addition to oldjdb | ||
| 1739 | (Java 1.1 jdb). | ||
| 1740 | |||
| 1741 | *** The previous method of searching for source files has been | ||
| 1742 | preserved in case someone still wants/needs to use it. | ||
| 1743 | Set gud-jdb-use-classpath to nil. | ||
| 1744 | |||
| 1745 | Added Customization Variables | ||
| 1746 | |||
| 1747 | *** gud-jdb-command-name. What command line to use to invoke jdb. | ||
| 1748 | |||
| 1749 | *** gud-jdb-use-classpath. Allows selection of java source file searching | ||
| 1750 | method: set to t for new method, nil to scan gud-jdb-directories for | ||
| 1751 | java sources (previous method). | ||
| 1752 | |||
| 1753 | *** gud-jdb-directories. List of directories to scan and search for java | ||
| 1754 | classes using the original gud-jdb method (if gud-jdb-use-classpath | ||
| 1755 | is nil). | ||
| 1756 | |||
| 1757 | Minor Improvements | ||
| 1758 | |||
| 1759 | *** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS | ||
| 1760 | instead of the OpenSSL based "starttls" tool. For backwards | ||
| 1761 | compatibility, it prefers "starttls", but you can toggle | ||
| 1762 | `starttls-use-gnutls' to switch to GNUTLS (or simply remove the | ||
| 1763 | "starttls" tool). | ||
| 1764 | |||
| 1765 | *** Do not allow debugger output history variable to grow without bounds. | ||
| 2328 | 1766 | ||
| 2329 | +++ | 1767 | +++ |
| 2330 | ** Fortran mode has a new variable `fortran-directive-re'. | 1768 | ** You can now use Auto Revert mode to `tail' a file. |
| 2331 | Adapt this to match the format of any compiler directives you use. | 1769 | If point is at the end of a file buffer before reverting, Auto Revert |
| 2332 | Lines that match are never indented, and are given distinctive font-locking. | 1770 | mode keeps it at the end after reverting. Similarly if point is |
| 1771 | displayed at the end of a file buffer in any window, it stays at | ||
| 1772 | the end of the buffer in that window. This allows to tail a file: | ||
| 1773 | just put point at the end of the buffer and it stays there. This | ||
| 1774 | rule applies to file buffers. For non-file buffers, the behavior may | ||
| 1775 | be mode dependent. | ||
| 1776 | |||
| 1777 | If you are sure that the file will only change by growing at the end, | ||
| 1778 | then you can tail the file more efficiently by using the new minor | ||
| 1779 | mode Auto Revert Tail mode. The function `auto-revert-tail-mode' | ||
| 1780 | toggles this mode. | ||
| 2333 | 1781 | ||
| 2334 | +++ | 1782 | +++ |
| 2335 | ** F90 mode and Fortran mode have new navigation commands | 1783 | ** Auto Revert mode is now more careful to avoid excessive reverts and |
| 2336 | `f90-end-of-block', `f90-beginning-of-block', `f90-next-block', | 1784 | other potential problems when deciding which non-file buffers to |
| 2337 | `f90-previous-block', `fortran-end-of-block', | 1785 | revert. This matters especially if Global Auto Revert mode is enabled |
| 2338 | `fortran-beginning-of-block'. | 1786 | and `global-auto-revert-non-file-buffers' is non-nil. Auto Revert |
| 1787 | mode only reverts a non-file buffer if the buffer has a non-nil | ||
| 1788 | `revert-buffer-function' and a non-nil `buffer-stale-function', which | ||
| 1789 | decides whether the buffer should be reverted. Currently, this means | ||
| 1790 | that auto reverting works for Dired buffers (although this may not | ||
| 1791 | work properly on all operating systems) and for the Buffer Menu. | ||
| 1792 | |||
| 1793 | +++ | ||
| 1794 | ** If the new user option `auto-revert-check-vc-info' is non-nil, Auto | ||
| 1795 | Revert mode reliably updates version control info (such as the version | ||
| 1796 | control number in the mode line), in all version controlled buffers in | ||
| 1797 | which it is active. If the option is nil, the default, then this info | ||
| 1798 | only gets updated whenever the buffer gets reverted. | ||
| 2339 | 1799 | ||
| 2340 | --- | 1800 | --- |
| 2341 | ** F90 mode and Fortran mode have support for hs-minor-mode (hideshow). | 1801 | ** recentf changes. |
| 2342 | It cannot deal with every code format, but ought to handle a sizeable | 1802 | |
| 2343 | majority. | 1803 | The recent file list is now automatically cleanup when recentf mode is |
| 1804 | enabled. The new option `recentf-auto-cleanup' controls when to do | ||
| 1805 | automatic cleanup. | ||
| 1806 | |||
| 1807 | The `recentf-keep' option replaces `recentf-keep-non-readable-files-p' | ||
| 1808 | and provides a more general mechanism to customize which file names to | ||
| 1809 | keep in the recent list. | ||
| 1810 | |||
| 1811 | With the more advanced option: `recentf-filename-handler', you can | ||
| 1812 | specify a function that transforms filenames handled by recentf. For | ||
| 1813 | example, if set to `file-truename', the same file will not be in the | ||
| 1814 | recent list with different symbolic links. | ||
| 1815 | |||
| 1816 | To follow naming convention, `recentf-menu-append-commands-flag' | ||
| 1817 | replaces the misnamed option `recentf-menu-append-commands-p'. The | ||
| 1818 | old name remains available as alias, but has been marked obsolete. | ||
| 1819 | |||
| 1820 | +++ | ||
| 1821 | ** Desktop package | ||
| 1822 | |||
| 1823 | +++ | ||
| 1824 | *** Desktop saving is now a minor mode, desktop-save-mode. Variable | ||
| 1825 | desktop-enable is obsolete. Customize desktop-save-mode to enable desktop | ||
| 1826 | saving. | ||
| 2344 | 1827 | ||
| 2345 | --- | 1828 | --- |
| 2346 | ** The new function `f90-backslash-not-special' can be used to change | 1829 | *** Buffers are saved in the desktop file in the same order as that in the |
| 2347 | the syntax of backslashes in F90 buffers. | 1830 | buffer list. |
| 1831 | |||
| 1832 | +++ | ||
| 1833 | *** The desktop package can be customized to restore only some buffers immediately, | ||
| 1834 | remaining buffers are restored lazily (when Emacs is idle). | ||
| 1835 | |||
| 1836 | +++ | ||
| 1837 | *** New commands: | ||
| 1838 | - desktop-revert reverts to the last loaded desktop. | ||
| 1839 | - desktop-change-dir kills current desktop and loads a new. | ||
| 1840 | - desktop-save-in-desktop-dir saves desktop in the directory from which | ||
| 1841 | it was loaded. | ||
| 1842 | - desktop-lazy-complete runs the desktop load to completion. | ||
| 1843 | - desktop-lazy-abort aborts lazy loading of the desktop. | ||
| 2348 | 1844 | ||
| 2349 | --- | 1845 | --- |
| 2350 | ** Prolog mode has a new variable `prolog-font-lock-keywords' | 1846 | *** New customizable variables: |
| 2351 | to support use of font-lock. | 1847 | - desktop-save. Determins whether the desktop should be saved when it is |
| 1848 | killed. | ||
| 1849 | - desktop-file-name-format. Format in which desktop file names should be saved. | ||
| 1850 | - desktop-path. List of directories in which to lookup the desktop file. | ||
| 1851 | - desktop-locals-to-save. List of local variables to save. | ||
| 1852 | - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear. | ||
| 1853 | - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear' | ||
| 1854 | should not delete. | ||
| 1855 | - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are | ||
| 1856 | restored lazily (when Emacs is idle). | ||
| 1857 | - desktop-lazy-verbose. Verbose reporting of lazily created buffers. | ||
| 1858 | - desktop-lazy-idle-delay. Idle delay before starting to create buffers. | ||
| 2352 | 1859 | ||
| 2353 | +++ | 1860 | +++ |
| 2354 | ** `special-display-buffer-names' and `special-display-regexps' now | 1861 | *** New command line option --no-desktop |
| 2355 | understand two new boolean pseudo-frame-parameters `same-frame' and | 1862 | |
| 2356 | `same-window'. | 1863 | --- |
| 1864 | *** New hooks: | ||
| 1865 | - desktop-after-read-hook run after a desktop is loaded. | ||
| 1866 | - desktop-no-desktop-file-hook run when no desktop file is found. | ||
| 1867 | |||
| 1868 | --- | ||
| 1869 | ** The saveplace.el package now filters out unreadable files. | ||
| 1870 | When you exit Emacs, the saved positions in visited files no longer | ||
| 1871 | include files that aren't readable, e.g. files that don't exist. | ||
| 1872 | Customize the new option `save-place-forget-unreadable-files' to nil | ||
| 1873 | to get the old behavior. The new options `save-place-save-skipped' | ||
| 1874 | and `save-place-skip-check-regexp' allow further fine-tuning of this | ||
| 1875 | feature. | ||
| 1876 | |||
| 1877 | ** EDiff changes. | ||
| 2357 | 1878 | ||
| 2358 | +++ | 1879 | +++ |
| 2359 | ** M-x setenv now expands environment variables of the form `$foo' and | 1880 | *** When comparing directories. |
| 2360 | `${foo}' in the specified new value of the environment variable. To | 1881 | Typing D brings up a buffer that lists the differences between the contents of |
| 2361 | include a `$' in the value, use `$$'. | 1882 | directories. Now it is possible to use this buffer to copy the missing files |
| 1883 | from one directory to another. | ||
| 2362 | 1884 | ||
| 2363 | +++ | 1885 | +++ |
| 2364 | ** File-name completion can now ignore directories. | 1886 | *** When comparing files or buffers. |
| 2365 | If an element of the list in `completion-ignored-extensions' ends in a | 1887 | Typing the = key now offers to perform the word-by-word comparison of the |
| 2366 | slash `/', it indicates a subdirectory that should be ignored when | 1888 | currently highlighted regions in an inferior Ediff session. If you answer 'n' |
| 2367 | completing file names. Elements of `completion-ignored-extensions' | 1889 | then it reverts to the old behavior and asks the user to select regions for |
| 2368 | which do not end in a slash are never considered when a completion | 1890 | comparison. |
| 2369 | candidate is a directory. | 1891 | |
| 1892 | *** The new command `ediff-backup' compares a file with its most recent | ||
| 1893 | backup using `ediff'. If you specify the name of a backup file, | ||
| 1894 | `ediff-backup' compares it with the file of which it is a backup. | ||
| 2370 | 1895 | ||
| 2371 | +++ | 1896 | +++ |
| 2372 | ** The completion commands TAB, SPC and ? in the minibuffer apply only | 1897 | ** Etags changes. |
| 2373 | to the text before point. If there is text in the buffer after point, | ||
| 2374 | it remains unchanged. | ||
| 2375 | 1898 | ||
| 2376 | --- | 1899 | *** New regular expressions features |
| 2377 | ** Enhanced visual feedback in *Completions* buffer. | ||
| 2378 | 1900 | ||
| 2379 | Completions lists use faces to highlight what all completions | 1901 | **** New syntax for regular expressions, multi-line regular expressions. |
| 2380 | have in common and where they begin to differ. | 1902 | The syntax --ignore-case-regexp=/regex/ is now undocumented and retained |
| 1903 | only for backward compatibility. The new equivalent syntax is | ||
| 1904 | --regex=/regex/i. More generally, it is --regex=/TAGREGEX/TAGNAME/MODS, | ||
| 1905 | where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or | ||
| 1906 | more characters among `i' (ignore case), `m' (multi-line) and `s' | ||
| 1907 | (single-line). The `m' and `s' modifiers behave as in Perl regular | ||
| 1908 | expressions: `m' allows regexps to match more than one line, while `s' | ||
| 1909 | (which implies `m') means that `.' matches newlines. The ability to | ||
| 1910 | span newlines allows writing of much more powerful regular expressions | ||
| 1911 | and rapid prototyping for tagging new languages. | ||
| 2381 | 1912 | ||
| 2382 | The common prefix shared by all possible completions uses the face | 1913 | **** Regular expressions can use char escape sequences as in Gcc. |
| 2383 | `completions-common-part', while the first character that isn't the | 1914 | The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v, |
| 2384 | same uses the face `completions-first-difference'. By default, | 1915 | respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL, |
| 2385 | `completions-common-part' inherits from `default', and | 1916 | CR, TAB, VT, |
| 2386 | `completions-first-difference' inherits from `bold'. The idea of | 1917 | |
| 2387 | `completions-common-part' is that you can use it to make the common | 1918 | **** Regular expressions can be bound to a given language. |
| 2388 | parts less visible than normal, so that the rest of the differing | 1919 | The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags |
| 2389 | parts is, by contrast, slightly highlighted. | 1920 | only for files of language LANGUAGE, and ignored otherwise. This is |
| 1921 | particularly useful when storing regexps in a file. | ||
| 1922 | |||
| 1923 | **** Regular expressions can be read from a file. | ||
| 1924 | The --regex=@regexfile option means read the regexps from a file, one | ||
| 1925 | per line. Lines beginning with space or tab are ignored. | ||
| 1926 | |||
| 1927 | *** New language parsing features | ||
| 1928 | |||
| 1929 | **** The `::' qualifier triggers C++ parsing in C file. | ||
| 1930 | Previously, only the `template' and `class' keywords had this effect. | ||
| 1931 | |||
| 1932 | **** The gnucc __attribute__ keyword is now recognised and ignored. | ||
| 1933 | |||
| 1934 | **** New language HTML. | ||
| 1935 | Title and h1, h2, h3 are tagged. Also, tags are generated when name= is | ||
| 1936 | used inside an anchor and whenever id= is used. | ||
| 1937 | |||
| 1938 | **** In Makefiles, constants are tagged. | ||
| 1939 | If you want the old behavior instead, thus avoiding to increase the | ||
| 1940 | size of the tags file, use the --no-globals option. | ||
| 1941 | |||
| 1942 | **** New language Lua. | ||
| 1943 | All functions are tagged. | ||
| 1944 | |||
| 1945 | **** In Perl, packages are tags. | ||
| 1946 | Subroutine tags are named from their package. You can jump to sub tags | ||
| 1947 | as you did before, by the sub name, or additionally by looking for | ||
| 1948 | package::sub. | ||
| 1949 | |||
| 1950 | **** In Prolog, etags creates tags for rules in addition to predicates. | ||
| 1951 | |||
| 1952 | **** New language PHP. | ||
| 1953 | Tags are functions, classes and defines. | ||
| 1954 | If the --members option is specified to etags, tags are variables also. | ||
| 1955 | |||
| 1956 | **** New default keywords for TeX. | ||
| 1957 | The new keywords are def, newcommand, renewcommand, newenvironment and | ||
| 1958 | renewenvironment. | ||
| 1959 | |||
| 1960 | *** Honour #line directives. | ||
| 1961 | When Etags parses an input file that contains C preprocessor's #line | ||
| 1962 | directives, it creates tags using the file name and line number | ||
| 1963 | specified in those directives. This is useful when dealing with code | ||
| 1964 | created from Cweb source files. When Etags tags the generated file, it | ||
| 1965 | writes tags pointing to the source file. | ||
| 1966 | |||
| 1967 | *** New option --parse-stdin=FILE. | ||
| 1968 | This option is mostly useful when calling etags from programs. It can | ||
| 1969 | be used (only once) in place of a file name on the command line. Etags | ||
| 1970 | reads from standard input and marks the produced tags as belonging to | ||
| 1971 | the file FILE. | ||
| 1972 | |||
| 1973 | ** VC Changes | ||
| 2390 | 1974 | ||
| 2391 | +++ | 1975 | +++ |
| 2392 | ** New user option `inhibit-startup-buffer-menu'. | 1976 | *** The key C-x C-q no longer checks files in or out, it only changes |
| 2393 | When loading many files, for instance with `emacs *', Emacs normally | 1977 | the read-only state of the buffer (toggle-read-only). We made this |
| 2394 | displays a buffer menu. This option turns the buffer menu off. | 1978 | change because we held a poll and found that many users were unhappy |
| 1979 | with the previous behavior. If you do prefer this behavior, you | ||
| 1980 | can bind `vc-toggle-read-only' to C-x C-q in your .emacs: | ||
| 1981 | |||
| 1982 | (global-set-key "\C-x\C-q" 'vc-toggle-read-only) | ||
| 1983 | |||
| 1984 | The function `vc-toggle-read-only' will continue to exist. | ||
| 1985 | |||
| 1986 | +++ | ||
| 1987 | *** There is a new user option `vc-cvs-global-switches' that allows | ||
| 1988 | you to specify switches that are passed to any CVS command invoked | ||
| 1989 | by VC. These switches are used as "global options" for CVS, which | ||
| 1990 | means they are inserted before the command name. For example, this | ||
| 1991 | allows you to specify a compression level using the "-z#" option for | ||
| 1992 | CVS. | ||
| 1993 | |||
| 1994 | +++ | ||
| 1995 | *** New backends for Subversion and Meta-CVS. | ||
| 1996 | |||
| 1997 | +++ | ||
| 1998 | ** vc-annotate-mode enhancements | ||
| 1999 | |||
| 2000 | In vc-annotate mode, you can now use the following key bindings for | ||
| 2001 | enhanced functionality to browse the annotations of past revisions, or | ||
| 2002 | to view diffs or log entries directly from vc-annotate-mode: | ||
| 2003 | |||
| 2004 | P: annotates the previous revision | ||
| 2005 | N: annotates the next revision | ||
| 2006 | J: annotates the revision at line | ||
| 2007 | A: annotates the revision previous to line | ||
| 2008 | D: shows the diff of the revision at line with its previous revision | ||
| 2009 | L: shows the log of the revision at line | ||
| 2010 | W: annotates the workfile (most up to date) version | ||
| 2011 | |||
| 2012 | +++ | ||
| 2013 | ** In pcl-cvs mode, there is a new `d y' command to view the diffs | ||
| 2014 | between the local version of the file and yesterday's head revision | ||
| 2015 | in the repository. | ||
| 2016 | |||
| 2017 | +++ | ||
| 2018 | ** In pcl-cvs mode, there is a new `d r' command to view the changes | ||
| 2019 | anyone has committed to the repository since you last executed | ||
| 2020 | "checkout", "update" or "commit". That means using cvs diff options | ||
| 2021 | -rBASE -rHEAD. | ||
| 2022 | |||
| 2023 | +++ | ||
| 2024 | ** There is a new user option `mail-default-directory' that allows you | ||
| 2025 | to specify the value of `default-directory' for mail buffers. This | ||
| 2026 | directory is used for auto-save files of mail buffers. It defaults to | ||
| 2027 | "~/". | ||
| 2028 | |||
| 2029 | +++ | ||
| 2030 | ** Emacs can now indicate in the mode-line the presence of new e-mail | ||
| 2031 | in a directory or in a file. See the documentation of the user option | ||
| 2032 | `display-time-mail-directory'. | ||
| 2033 | |||
| 2034 | --- | ||
| 2035 | ** PO translation files are decoded according to their MIME headers | ||
| 2036 | when Emacs visits them. | ||
| 2037 | |||
| 2038 | ** Gnus package | ||
| 2039 | |||
| 2040 | --- | ||
| 2041 | *** Gnus now includes Sieve and PGG | ||
| 2042 | Sieve is a library for managing Sieve scripts. PGG is a library to handle | ||
| 2043 | PGP/MIME. | ||
| 2044 | |||
| 2045 | --- | ||
| 2046 | *** There are many news features, bug fixes and improvements. | ||
| 2047 | See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details. | ||
| 2395 | 2048 | ||
| 2396 | --- | 2049 | --- |
| 2397 | ** Rmail now displays 5-digit message ids in its summary buffer. | 2050 | ** Rmail now displays 5-digit message ids in its summary buffer. |
| @@ -2405,6 +2058,178 @@ and its version of `movemail' can be found in exec-path, it will be | |||
| 2405 | used instead of the native one. | 2058 | used instead of the native one. |
| 2406 | 2059 | ||
| 2407 | --- | 2060 | --- |
| 2061 | ** MH-E changes. | ||
| 2062 | |||
| 2063 | Upgraded to MH-E version 7.82. There have been major changes since | ||
| 2064 | version 5.0.2; see MH-E-NEWS for details. | ||
| 2065 | |||
| 2066 | +++ | ||
| 2067 | ** There is a new calendar package, icalendar.el, that can be used to | ||
| 2068 | convert Emacs diary entries to/from the iCalendar format. | ||
| 2069 | |||
| 2070 | +++ | ||
| 2071 | ** Diary sexp entries can have custom marking in the calendar. | ||
| 2072 | Diary sexp functions which only apply to certain days (such as | ||
| 2073 | `diary-block' or `diary-cyclic') now take an optional parameter MARK, | ||
| 2074 | which is the name of a face or a single-character string indicating | ||
| 2075 | how to highlight the day in the calendar display. Specifying a | ||
| 2076 | single-character string as @var{mark} places the character next to the | ||
| 2077 | day in the calendar. Specifying a face highlights the day with that | ||
| 2078 | face. This lets you have different colors or markings for vacations, | ||
| 2079 | appointments, paydays or anything else using a sexp. | ||
| 2080 | |||
| 2081 | +++ | ||
| 2082 | ** The new function `calendar-goto-day-of-year' (g D) prompts for a | ||
| 2083 | year and day number, and moves to that date. Negative day numbers | ||
| 2084 | count backward from the end of the year. | ||
| 2085 | |||
| 2086 | +++ | ||
| 2087 | ** The new Calendar function `calendar-goto-iso-week' (g w) | ||
| 2088 | prompts for a year and a week number, and moves to the first | ||
| 2089 | day of that ISO week. | ||
| 2090 | |||
| 2091 | --- | ||
| 2092 | ** The new variable `calendar-minimum-window-height' affects the | ||
| 2093 | window generated by the function `generate-calendar-window'. | ||
| 2094 | |||
| 2095 | --- | ||
| 2096 | ** The functions `holiday-easter-etc' and `holiday-advent' now take | ||
| 2097 | optional arguments, in order to only report on the specified holiday | ||
| 2098 | rather than all. This makes customization of variables such as | ||
| 2099 | `christian-holidays' simpler. | ||
| 2100 | |||
| 2101 | --- | ||
| 2102 | ** The function `simple-diary-display' now by default sets a header line. | ||
| 2103 | This can be controlled through the variables `diary-header-line-flag' | ||
| 2104 | and `diary-header-line-format'. | ||
| 2105 | |||
| 2106 | +++ | ||
| 2107 | ** The procedure for activating appointment reminders has changed: use | ||
| 2108 | the new function `appt-activate'. The new variable | ||
| 2109 | `appt-display-format' controls how reminders are displayed, replacing | ||
| 2110 | appt-issue-message, appt-visible, and appt-msg-window. | ||
| 2111 | |||
| 2112 | +++ | ||
| 2113 | ** The new functions `diary-from-outlook', `diary-from-outlook-gnus', | ||
| 2114 | and `diary-from-outlook-rmail' can be used to import diary entries | ||
| 2115 | from Outlook-format appointments in mail messages. The variable | ||
| 2116 | `diary-outlook-formats' can be customized to recognize additional | ||
| 2117 | formats. | ||
| 2118 | |||
| 2119 | +++ | ||
| 2120 | ** Emacs now supports drag and drop for X. Dropping a file on a window | ||
| 2121 | opens it, dropping text inserts the text. Dropping a file on a dired | ||
| 2122 | buffer copies or moves the file to that directory. | ||
| 2123 | |||
| 2124 | +++ | ||
| 2125 | ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | ||
| 2126 | The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | ||
| 2127 | and `x-super-keysym' can be used to choose which keysyms Emacs should | ||
| 2128 | use for the modifiers. For example, the following two lines swap | ||
| 2129 | Meta and Alt: | ||
| 2130 | (setq x-alt-keysym 'meta) | ||
| 2131 | (setq x-meta-keysym 'alt) | ||
| 2132 | |||
| 2133 | +++ | ||
| 2134 | ** The X resource useXIM can be used to turn off use of XIM, which may | ||
| 2135 | speed up Emacs with slow networking to the X server. | ||
| 2136 | |||
| 2137 | If the configure option `--without-xim' was used to turn off use of | ||
| 2138 | XIM by default, the X resource useXIM can be used to turn it on. | ||
| 2139 | |||
| 2140 | --- | ||
| 2141 | ** The new variable `x-select-request-type' controls how Emacs | ||
| 2142 | requests X selection. The default value is nil, which means that | ||
| 2143 | Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING, | ||
| 2144 | and use the more appropriately result. | ||
| 2145 | |||
| 2146 | --- | ||
| 2147 | ** The scrollbar under LessTif or Motif has a smoother drag-scrolling. | ||
| 2148 | On the other hand, the size of the thumb does not represent the actual | ||
| 2149 | amount of text shown any more (only a crude approximation of it). | ||
| 2150 | |||
| 2151 | --- | ||
| 2152 | ** The pop up menus for Lucid now stay up if you do a fast click and can | ||
| 2153 | be navigated with the arrow keys (like Gtk+, Mac and W32). | ||
| 2154 | |||
| 2155 | +++ | ||
| 2156 | ** The Lucid menus can display multilingual text in your locale. You have | ||
| 2157 | to explicitly specify a fontSet resource for this to work, for example | ||
| 2158 | `-xrm "Emacs*fontSet: -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'. | ||
| 2159 | |||
| 2160 | --- | ||
| 2161 | ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing | ||
| 2162 | ESC, like they do for Gtk+, Mac and W32. | ||
| 2163 | |||
| 2164 | --- | ||
| 2165 | ** Dialogs and menus pop down if you type C-g. | ||
| 2166 | |||
| 2167 | --- | ||
| 2168 | ** The menu item "Open File..." has been split into two items, "New File..." | ||
| 2169 | and "Open File...". "Open File..." now opens only existing files. This is | ||
| 2170 | to support existing GUI file selection dialogs better. | ||
| 2171 | |||
| 2172 | +++ | ||
| 2173 | ** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be | ||
| 2174 | disabled by customizing the variable `use-file-dialog'. | ||
| 2175 | |||
| 2176 | +++ | ||
| 2177 | ** For Gtk+ version 2.4, you can make Emacs use the old file dialog | ||
| 2178 | by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use | ||
| 2179 | the new dialog. | ||
| 2180 | |||
| 2181 | --- | ||
| 2182 | ** Emacs now responds to mouse-clicks on the mode-line, header-line and | ||
| 2183 | display margin, when run in an xterm. | ||
| 2184 | |||
| 2185 | ** Improved key bindings support when running in an xterm. | ||
| 2186 | When emacs is running in an xterm more key bindings are available. The | ||
| 2187 | following should work: | ||
| 2188 | {C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}. | ||
| 2189 | These key bindings work on xterm from X.org 6.8, they might not work on | ||
| 2190 | some older versions of xterm, or on some proprietary versions. | ||
| 2191 | |||
| 2192 | ** Changes in support of colors on character terminals | ||
| 2193 | |||
| 2194 | +++ | ||
| 2195 | *** The new command-line option --color=MODE lets you specify a standard | ||
| 2196 | mode for a tty color support. It is meant to be used on character | ||
| 2197 | terminals whose capabilities are not set correctly in the terminal | ||
| 2198 | database, or with terminal emulators which support colors, but don't | ||
| 2199 | set the TERM environment variable to a name of a color-capable | ||
| 2200 | terminal. "emacs --color" uses the same color commands as GNU `ls' | ||
| 2201 | when invoked with "ls --color", so if your terminal can support colors | ||
| 2202 | in "ls --color", it will support "emacs --color" as well. See the | ||
| 2203 | user manual for the possible values of the MODE parameter. | ||
| 2204 | |||
| 2205 | --- | ||
| 2206 | *** Emacs now supports several character terminals which provide more | ||
| 2207 | than 8 colors. For example, for `xterm', 16-color, 88-color, and | ||
| 2208 | 256-color modes are supported. Emacs automatically notes at startup | ||
| 2209 | the extended number of colors, and defines the appropriate entries for | ||
| 2210 | all of these colors. | ||
| 2211 | |||
| 2212 | +++ | ||
| 2213 | *** Emacs now uses the full range of available colors for the default | ||
| 2214 | faces when running on a color terminal, including 16-, 88-, and | ||
| 2215 | 256-color xterms. This means that when you run "emacs -nw" on an | ||
| 2216 | 88-color or 256-color xterm, you will see essentially the same face | ||
| 2217 | colors as on X. | ||
| 2218 | |||
| 2219 | --- | ||
| 2220 | *** There's a new support for colors on `rxvt' terminal emulator. | ||
| 2221 | |||
| 2222 | +++ | ||
| 2223 | ** Passing resources on the command line now works on MS Windows. | ||
| 2224 | You can use --xrm to pass resource settings to Emacs, overriding any | ||
| 2225 | existing values. For example: | ||
| 2226 | |||
| 2227 | emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20" | ||
| 2228 | |||
| 2229 | will start up Emacs on an initial frame of 100x20 with red background, | ||
| 2230 | irrespective of geometry or background setting on the Windows registry. | ||
| 2231 | |||
| 2232 | --- | ||
| 2408 | ** On MS Windows, the "system caret" now follows the cursor. | 2233 | ** On MS Windows, the "system caret" now follows the cursor. |
| 2409 | This enables Emacs to work better with programs that need to track | 2234 | This enables Emacs to work better with programs that need to track |
| 2410 | the cursor, for example screen magnifiers and text to speech programs. | 2235 | the cursor, for example screen magnifiers and text to speech programs. |
| @@ -2457,40 +2282,126 @@ MS Windows, Emacs now uses the appropriate locale coding-system, so | |||
| 2457 | the clipboard should work correctly for your local language without | 2282 | the clipboard should work correctly for your local language without |
| 2458 | any customizations. | 2283 | any customizations. |
| 2459 | 2284 | ||
| 2460 | +++ | 2285 | --- |
| 2461 | ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper). | 2286 | ** On Mac OS, the value of the variable `keyboard-coding-system' is |
| 2462 | The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym', | 2287 | now dynamically changed according to the current keyboard script. The |
| 2463 | and `x-super-keysym' can be used to choose which keysyms Emacs should | 2288 | variable `mac-keyboard-text-encoding' and the constants |
| 2464 | use for the modifiers. For example, the following two lines swap | 2289 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and |
| 2465 | Meta and Alt: | 2290 | `kTextEncodingISOLatin2' are obsolete. |
| 2466 | (setq x-alt-keysym 'meta) | ||
| 2467 | (setq x-meta-keysym 'alt) | ||
| 2468 | 2291 | ||
| 2469 | +++ | 2292 | --- |
| 2470 | ** vc-annotate-mode enhancements | 2293 | ** sql changes. |
| 2471 | 2294 | ||
| 2472 | In vc-annotate mode, you can now use the following key bindings for | 2295 | *** The variable `sql-product' controls the highlightng of different |
| 2473 | enhanced functionality to browse the annotations of past revisions, or | 2296 | SQL dialects. This variable can be set globally via Customize, on a |
| 2474 | to view diffs or log entries directly from vc-annotate-mode: | 2297 | buffer-specific basis via local variable settings, or for the current |
| 2298 | session using the new SQL->Product submenu. (This menu replaces the | ||
| 2299 | SQL->Highlighting submenu.) | ||
| 2475 | 2300 | ||
| 2476 | P: annotates the previous revision | 2301 | The following values are supported: |
| 2477 | N: annotates the next revision | 2302 | |
| 2478 | J: annotates the revision at line | 2303 | ansi ANSI Standard (default) |
| 2479 | A: annotates the revision previous to line | 2304 | db2 DB2 |
| 2480 | D: shows the diff of the revision at line with its previous revision | 2305 | informix Informix |
| 2481 | L: shows the log of the revision at line | 2306 | ingres Ingres |
| 2482 | W: annotates the workfile (most up to date) version | 2307 | interbase Interbase |
| 2308 | linter Linter | ||
| 2309 | ms Microsoft | ||
| 2310 | mysql MySQL | ||
| 2311 | oracle Oracle | ||
| 2312 | postgres Postgres | ||
| 2313 | solid Solid | ||
| 2314 | sqlite SQLite | ||
| 2315 | sybase Sybase | ||
| 2316 | |||
| 2317 | The current product name will be shown on the mode line following the | ||
| 2318 | SQL mode indicator. | ||
| 2319 | |||
| 2320 | The technique of setting `sql-mode-font-lock-defaults' directly in | ||
| 2321 | your .emacs will no longer establish the default highlighting -- Use | ||
| 2322 | `sql-product' to accomplish this. | ||
| 2323 | |||
| 2324 | ANSI keywords are always highlighted. | ||
| 2325 | |||
| 2326 | *** The function `sql-add-product-keywords' can be used to add | ||
| 2327 | font-lock rules to the product specific rules. For example, to have | ||
| 2328 | all identifiers ending in "_t" under MS SQLServer treated as a type, | ||
| 2329 | you would use the following line in your .emacs file: | ||
| 2330 | |||
| 2331 | (sql-add-product-keywords 'ms | ||
| 2332 | '(("\\<\\w+_t\\>" . font-lock-type-face))) | ||
| 2333 | |||
| 2334 | *** Oracle support includes keyword highlighting for Oracle 9i. Most | ||
| 2335 | SQL and PL/SQL keywords are implemented. SQL*Plus commands are | ||
| 2336 | highlighted in `font-lock-doc-face'. | ||
| 2337 | |||
| 2338 | *** Microsoft SQLServer support has been significantly improved. | ||
| 2339 | Keyword highlighting for SqlServer 2000 is implemented. | ||
| 2340 | sql-interactive-mode defaults to use osql, rather than isql, because | ||
| 2341 | osql flushes its error stream more frequently. Thus error messages | ||
| 2342 | are displayed when they occur rather than when the session is | ||
| 2343 | terminated. | ||
| 2344 | |||
| 2345 | If the username and password are not provided to `sql-ms', osql is | ||
| 2346 | called with the -E command line argument to use the operating system | ||
| 2347 | credentials to authenticate the user. | ||
| 2348 | |||
| 2349 | *** Postgres support is enhanced. | ||
| 2350 | Keyword highlighting of Postgres 7.3 is implemented. Prompting for | ||
| 2351 | the username and the pgsql `-U' option is added. | ||
| 2352 | |||
| 2353 | *** MySQL support is enhanced. | ||
| 2354 | Keyword higlighting of MySql 4.0 is implemented. | ||
| 2355 | |||
| 2356 | *** Imenu support has been enhanced to locate tables, views, indexes, | ||
| 2357 | packages, procedures, functions, triggers, sequences, rules, and | ||
| 2358 | defaults. | ||
| 2359 | |||
| 2360 | *** Added SQL->Start SQLi Session menu entry which calls the | ||
| 2361 | appropriate sql-interactive-mode wrapper for the current setting of | ||
| 2362 | `sql-product'. | ||
| 2363 | |||
| 2364 | --- | ||
| 2365 | *** Support for the SQLite interpreter has been added to sql.el by calling | ||
| 2366 | 'sql-sqlite'. | ||
| 2367 | |||
| 2368 | --- | ||
| 2369 | ** M-x view-file and commands that use it now avoid interfering | ||
| 2370 | with special modes such as Tar mode. | ||
| 2483 | 2371 | ||
| 2484 | +++ | 2372 | +++ |
| 2485 | ** In pcl-cvs mode, there is a new `d y' command to view the diffs | 2373 | ** Filesets are collections of files. You can define a fileset in |
| 2486 | between the local version of the file and yesterday's head revision | 2374 | various ways, such as based on a directory tree or based on |
| 2487 | in the repository. | 2375 | program files that include other program files. |
| 2376 | |||
| 2377 | Once you have defined a fileset, you can perform various operations on | ||
| 2378 | all the files in it, such as visiting them or searching and replacing | ||
| 2379 | in them. | ||
| 2380 | |||
| 2381 | --- | ||
| 2382 | ** Commands winner-redo and winner-undo, from winner.el, are now bound to | ||
| 2383 | C-c <left> and C-c <right>, respectively. This is an incompatible change. | ||
| 2384 | |||
| 2385 | ** FFAP | ||
| 2488 | 2386 | ||
| 2489 | +++ | 2387 | +++ |
| 2490 | ** In pcl-cvs mode, there is a new `d r' command to view the changes | 2388 | *** New ffap commands and keybindings: C-x C-r (`ffap-read-only'), |
| 2491 | anyone has committed to the repository since you last executed | 2389 | C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'), |
| 2492 | "checkout", "update" or "commit". That means using cvs diff options | 2390 | C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'), |
| 2493 | -rBASE -rHEAD. | 2391 | C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame'). |
| 2392 | |||
| 2393 | --- | ||
| 2394 | *** FFAP accepts wildcards in a file name by default. C-x C-f passes | ||
| 2395 | it to `find-file' with non-nil WILDCARDS argument, which visits | ||
| 2396 | multiple files, and C-x d passes it to `dired'. | ||
| 2397 | |||
| 2398 | --- | ||
| 2399 | ** skeleton.el now supports using - to mark the skeleton-point without | ||
| 2400 | interregion interaction. @ has reverted to only setting | ||
| 2401 | skeleton-positions and no longer sets skeleton-point. Skeletons | ||
| 2402 | which used @ to mark skeleton-point independent of _ should now use - | ||
| 2403 | instead. The updated skeleton-insert docstring explains these new | ||
| 2404 | features along with other details of skeleton construction. | ||
| 2494 | 2405 | ||
| 2495 | --- | 2406 | --- |
| 2496 | ** New variable `hs-set-up-overlay' allows customization of the overlay | 2407 | ** New variable `hs-set-up-overlay' allows customization of the overlay |
| @@ -2499,83 +2410,115 @@ handles the overlay property `display' specially, preserving it during | |||
| 2499 | temporary overlay showing in the course of an isearch operation. | 2410 | temporary overlay showing in the course of an isearch operation. |
| 2500 | 2411 | ||
| 2501 | +++ | 2412 | +++ |
| 2502 | ** New command `recode-region' decodes the region again by a specified | 2413 | ** hide-ifdef-mode now uses overlays rather than selective-display |
| 2503 | coding system. | 2414 | to hide its text. This should be mostly transparent but slightly |
| 2415 | changes the behavior of motion commands like C-e and C-p. | ||
| 2504 | 2416 | ||
| 2505 | --- | 2417 | --- |
| 2506 | ** On Mac OS, the value of the variable `keyboard-coding-system' is | 2418 | ** partial-completion-mode now does partial completion on directory names. |
| 2507 | now dynamically changed according to the current keyboard script. The | ||
| 2508 | variable `mac-keyboard-text-encoding' and the constants | ||
| 2509 | `kTextEncodingMacRoman', `kTextEncodingISOLatin1', and | ||
| 2510 | `kTextEncodingISOLatin2' are obsolete. | ||
| 2511 | |||
| 2512 | * New modes and packages in Emacs 22.1 | ||
| 2513 | 2419 | ||
| 2514 | +++ | 2420 | --- |
| 2515 | ** The new package longlines.el provides a minor mode for editing text | 2421 | ** The type-break package now allows `type-break-file-name' to be nil |
| 2516 | files composed of long lines, based on the `use-hard-newlines' | 2422 | and if so, doesn't store any data across sessions. This is handy if |
| 2517 | mechanism. The long lines are broken up by inserting soft newlines, | 2423 | you don't want the .type-break file in your home directory or are |
| 2518 | which are automatically removed when saving the file to disk or | 2424 | annoyed by the need for interaction when you kill Emacs. |
| 2519 | copying into the kill ring, clipboard, etc. By default, Longlines | ||
| 2520 | mode inserts soft newlines automatically during editing, a behavior | ||
| 2521 | referred to as "soft word wrap" in other text editors. This is | ||
| 2522 | similar to Refill mode, but more reliable. To turn the word wrap | ||
| 2523 | feature off, set `longlines-auto-wrap' to nil. | ||
| 2524 | 2425 | ||
| 2525 | +++ | 2426 | --- |
| 2526 | ** The new package conf-mode.el handles thousands of configuration files, with | 2427 | ** `ps-print' can now print characters from the mule-unicode charsets. |
| 2527 | varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | ||
| 2528 | var : value, var value or keyword var value) and sections ([section] or | ||
| 2529 | section { }). Many files under /etc/, or with suffixes like .cf through | ||
| 2530 | .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | ||
| 2531 | recognized. | ||
| 2532 | 2428 | ||
| 2533 | +++ | 2429 | Printing text with characters from the mule-unicode-* sets works with |
| 2534 | ** The new package dns-mode.el add syntax highlight of DNS master files. | 2430 | ps-print, provided that you have installed the appropriate BDF fonts. |
| 2535 | The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used | 2431 | See the file INSTALL for URLs where you can find these fonts. |
| 2536 | to increment the SOA serial. | ||
| 2537 | 2432 | ||
| 2538 | +++ | 2433 | --- |
| 2539 | ** The new package flymake.el does on-the-fly syntax checking of program | 2434 | ** New command `strokes-global-set-stroke-string'. |
| 2540 | source files. See the Flymake's Info manual for more details. | 2435 | This is like `strokes-global-set-stroke', but it allows you to bind |
| 2436 | the stroke directly to a string to insert. This is convenient for | ||
| 2437 | using strokes as an input method. | ||
| 2541 | 2438 | ||
| 2542 | --- | 2439 | --- |
| 2543 | ** The library tree-widget.el provides a new widget to display a set | 2440 | ** LDAP support now defaults to ldapsearch from OpenLDAP version 2. |
| 2544 | of hierarchical data as an outline. For example, the tree-widget is | ||
| 2545 | well suited to display a hierarchy of directories and files. | ||
| 2546 | 2441 | ||
| 2547 | +++ | 2442 | +++ |
| 2548 | ** The wdired.el package allows you to use normal editing commands on Dired | 2443 | ** You can now disable pc-selection-mode after enabling it. |
| 2549 | buffers to change filenames, permissions, etc... | 2444 | M-x pc-selection-mode behaves like a proper minor mode, and with no |
| 2445 | argument it toggles the mode. | ||
| 2550 | 2446 | ||
| 2551 | +++ | 2447 | Turning off PC-Selection mode restores the global key bindings |
| 2552 | ** The thumbs.el package allows you to preview image files as thumbnails | 2448 | that were replaced by turning on the mode. |
| 2553 | and can be invoked from a Dired buffer. | ||
| 2554 | 2449 | ||
| 2555 | +++ | 2450 | --- |
| 2556 | ** Image files are normally visited in Image mode, which lets you toggle | 2451 | ** `uniquify-strip-common-suffix' tells uniquify to prefer |
| 2557 | between viewing the image and viewing the text using C-c C-c. | 2452 | `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'. |
| 2558 | 2453 | ||
| 2559 | +++ | 2454 | --- |
| 2560 | ** The new python.el package is used to edit Python and Jython programs. | 2455 | ** rx.el has new corresponding `symbol-end' and `symbol-start' elements. |
| 2561 | 2456 | ||
| 2562 | --- | 2457 | --- |
| 2563 | ** The URL package (which had been part of W3) is now part of Emacs. | 2458 | ** Support for `magic cookie' standout modes has been removed. |
| 2459 | Emacs will still work on terminals that require magic cookies in order | ||
| 2460 | to use standout mode, however they will not be able to display | ||
| 2461 | mode-lines in inverse-video. | ||
| 2462 | |||
| 2463 | --- | ||
| 2464 | ** The game `mpuz' is enhanced. | ||
| 2465 | |||
| 2466 | `mpuz' now allows the 2nd factor not to have two identical digits. By | ||
| 2467 | default, all trivial operations involving whole lines are performed | ||
| 2468 | automatically. The game uses faces for better visual feedback. | ||
| 2469 | |||
| 2470 | --- | ||
| 2471 | ** display-battery has been replaced by display-battery-mode. | ||
| 2472 | |||
| 2473 | --- | ||
| 2474 | ** calculator.el now has radix grouping mode, which is available when | ||
| 2475 | `calculator-output-radix' is non-nil. In this mode a separator | ||
| 2476 | character is used every few digits, making it easier to see byte | ||
| 2477 | boundries etc. For more info, see the documentation of the variable | ||
| 2478 | `calculator-radix-grouping-mode'. | ||
| 2479 | |||
| 2480 | --- | ||
| 2481 | ** global-whitespace-mode is a new alias for whitespace-global-mode. | ||
| 2564 | 2482 | ||
| 2565 | +++ | 2483 | +++ |
| 2566 | ** The new global minor mode `size-indication-mode' (off by default) | 2484 | ** The command `list-text-properties-at' has been deleted because |
| 2567 | shows the size of accessible part of the buffer on the mode line. | 2485 | C-u C-x = gives the same information and more. |
| 2568 | 2486 | ||
| 2569 | --- | 2487 | --- |
| 2570 | ** GDB-Script-mode is used for files like .gdbinit. | 2488 | ** fast-lock.el and lazy-lock.el are obsolete. Use jit-lock.el instead. |
| 2571 | 2489 | ||
| 2572 | --- | 2490 | --- |
| 2573 | ** Ido mode is now part of the Emacs distribution. | 2491 | ** iso-acc.el is now obsolete. Use one of the latin input methods instead. |
| 2574 | 2492 | ||
| 2575 | The ido (interactively do) package is an extension of the iswitchb | 2493 | --- |
| 2576 | package to do interactive opening of files and directories in addition | 2494 | ** cplus-md.el has been removed to avoid problems with Custom. |
| 2577 | to interactive buffer switching. Ido is a superset of iswitchb (with | 2495 | |
| 2578 | a few exceptions), so don't enable both packages. | 2496 | |
| 2497 | * New modes and packages in Emacs 22.1 | ||
| 2498 | |||
| 2499 | +++ | ||
| 2500 | ** New package benchmark.el contains simple support for convenient | ||
| 2501 | timing measurements of code (including the garbage collection component). | ||
| 2502 | |||
| 2503 | +++ | ||
| 2504 | ** Calc is now part of the Emacs distribution. | ||
| 2505 | |||
| 2506 | Calc is an advanced desk calculator and mathematical tool written in | ||
| 2507 | Emacs Lisp. Its documentation is in a separate manual; within Emacs, | ||
| 2508 | type "C-h i m calc RET" to read that manual. A reference card is | ||
| 2509 | available in `etc/calccard.tex' and `etc/calccard.ps'. | ||
| 2510 | |||
| 2511 | --- | ||
| 2512 | ** `cfengine-mode' is a major mode for editing GNU Cfengine | ||
| 2513 | configuration files. | ||
| 2514 | |||
| 2515 | +++ | ||
| 2516 | ** The new package conf-mode.el handles thousands of configuration files, with | ||
| 2517 | varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value, | ||
| 2518 | var : value, var value or keyword var value) and sections ([section] or | ||
| 2519 | section { }). Many files under /etc/, or with suffixes like .cf through | ||
| 2520 | .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are | ||
| 2521 | recognized. | ||
| 2579 | 2522 | ||
| 2580 | --- | 2523 | --- |
| 2581 | ** CUA mode is now part of the Emacs distribution. | 2524 | ** CUA mode is now part of the Emacs distribution. |
| @@ -2623,6 +2566,55 @@ must remove older versions of cua.el or cua-mode.el as well as the | |||
| 2623 | loading and customization of those packages from the .emacs file. | 2566 | loading and customization of those packages from the .emacs file. |
| 2624 | 2567 | ||
| 2625 | +++ | 2568 | +++ |
| 2569 | ** The new package dns-mode.el add syntax highlight of DNS master files. | ||
| 2570 | The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used | ||
| 2571 | to increment the SOA serial. | ||
| 2572 | |||
| 2573 | --- | ||
| 2574 | ** The new global minor mode `file-name-shadow-mode' modifies the way | ||
| 2575 | filenames being entered by the user in the minibuffer are displayed, so | ||
| 2576 | that it's clear when part of the entered filename will be ignored due to | ||
| 2577 | emacs' filename parsing rules. The ignored portion can be made dim, | ||
| 2578 | invisible, or otherwise less visually noticable. The display method may | ||
| 2579 | be displayed by customizing the variable `file-name-shadow-properties'. | ||
| 2580 | |||
| 2581 | +++ | ||
| 2582 | ** The new package flymake.el does on-the-fly syntax checking of program | ||
| 2583 | source files. See the Flymake's Info manual for more details. | ||
| 2584 | |||
| 2585 | --- | ||
| 2586 | ** The new Lisp library fringe.el controls the appearance of fringes. | ||
| 2587 | |||
| 2588 | --- | ||
| 2589 | ** GDB-Script-mode is used for files like .gdbinit. | ||
| 2590 | |||
| 2591 | +++ | ||
| 2592 | ** The new package gdb-ui.el provides an enhanced graphical interface to | ||
| 2593 | GDB. You can interact with GDB through the GUD buffer in the usual way, but | ||
| 2594 | there are also further buffers which control the execution and describe the | ||
| 2595 | state of your program. It separates the input/output of your program from | ||
| 2596 | that of GDB and watches expressions in the speedbar. It also uses features of | ||
| 2597 | Emacs 21 such as the display margin for breakpoints, and the toolbar. | ||
| 2598 | |||
| 2599 | Use M-x gdba to start GDB-UI. | ||
| 2600 | |||
| 2601 | --- | ||
| 2602 | ** The new package ibuffer provides a powerful, completely | ||
| 2603 | customizable replacement for buff-menu.el. | ||
| 2604 | |||
| 2605 | --- | ||
| 2606 | ** Ido mode is now part of the Emacs distribution. | ||
| 2607 | |||
| 2608 | The ido (interactively do) package is an extension of the iswitchb | ||
| 2609 | package to do interactive opening of files and directories in addition | ||
| 2610 | to interactive buffer switching. Ido is a superset of iswitchb (with | ||
| 2611 | a few exceptions), so don't enable both packages. | ||
| 2612 | |||
| 2613 | +++ | ||
| 2614 | ** Image files are normally visited in Image mode, which lets you toggle | ||
| 2615 | between viewing the image and viewing the text using C-c C-c. | ||
| 2616 | |||
| 2617 | +++ | ||
| 2626 | ** The new keypad setup package provides several common bindings for | 2618 | ** The new keypad setup package provides several common bindings for |
| 2627 | the numeric keypad which is available on most keyboards. The numeric | 2619 | the numeric keypad which is available on most keyboards. The numeric |
| 2628 | keypad typically has the digits 0 to 9, a decimal point, keys marked | 2620 | keypad typically has the digits 0 to 9, a decimal point, keys marked |
| @@ -2681,6 +2673,17 @@ Keyboard macros can now be debugged and edited interactively. | |||
| 2681 | C-x C-k SPC steps through the last keyboard macro one key sequence | 2673 | C-x C-k SPC steps through the last keyboard macro one key sequence |
| 2682 | at a time, prompting for the actions to take. | 2674 | at a time, prompting for the actions to take. |
| 2683 | 2675 | ||
| 2676 | +++ | ||
| 2677 | ** The new package longlines.el provides a minor mode for editing text | ||
| 2678 | files composed of long lines, based on the `use-hard-newlines' | ||
| 2679 | mechanism. The long lines are broken up by inserting soft newlines, | ||
| 2680 | which are automatically removed when saving the file to disk or | ||
| 2681 | copying into the kill ring, clipboard, etc. By default, Longlines | ||
| 2682 | mode inserts soft newlines automatically during editing, a behavior | ||
| 2683 | referred to as "soft word wrap" in other text editors. This is | ||
| 2684 | similar to Refill mode, but more reliable. To turn the word wrap | ||
| 2685 | feature off, set `longlines-auto-wrap' to nil. | ||
| 2686 | |||
| 2684 | --- | 2687 | --- |
| 2685 | ** The old Octave mode bindings C-c f and C-c i have been changed | 2688 | ** The old Octave mode bindings C-c f and C-c i have been changed |
| 2686 | to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate | 2689 | to C-c C-f and C-c C-i. The C-c C-i subcommands now have duplicate |
| @@ -2697,12 +2700,43 @@ printer) or send directly to printer a PostScript code generated by | |||
| 2697 | `ps-print' package. Use M-x pr-help for more information. | 2700 | `ps-print' package. Use M-x pr-help for more information. |
| 2698 | 2701 | ||
| 2699 | +++ | 2702 | +++ |
| 2700 | ** Calc is now part of the Emacs distribution. | 2703 | ** The new python.el package is used to edit Python and Jython programs. |
| 2701 | 2704 | ||
| 2702 | Calc is an advanced desk calculator and mathematical tool written in | 2705 | --- |
| 2703 | Emacs Lisp. Its documentation is in a separate manual; within Emacs, | 2706 | ** The minor mode Reveal mode makes text visible on the fly as you |
| 2704 | type "C-h i m calc RET" to read that manual. A reference card is | 2707 | move your cursor into hidden regions of the buffer. |
| 2705 | available in `etc/calccard.tex' and `etc/calccard.ps'. | 2708 | It should work with any package that uses overlays to hide parts |
| 2709 | of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | ||
| 2710 | |||
| 2711 | There is also Global Reveal mode which affects all buffers. | ||
| 2712 | |||
| 2713 | --- | ||
| 2714 | ** The ruler-mode.el library provides a minor mode for displaying an | ||
| 2715 | "active" ruler in the header line. You can use the mouse to visually | ||
| 2716 | change the `fill-column', `window-margins' and `tab-stop-list' | ||
| 2717 | settings. | ||
| 2718 | |||
| 2719 | +++ | ||
| 2720 | ** SES mode (ses-mode) is a new major mode for creating and editing | ||
| 2721 | spreadsheet files. Besides the usual Emacs features (intuitive command | ||
| 2722 | letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | ||
| 2723 | viral immunity and import/export of tab-separated values. | ||
| 2724 | |||
| 2725 | +++ | ||
| 2726 | ** The new global minor mode `size-indication-mode' (off by default) | ||
| 2727 | shows the size of accessible part of the buffer on the mode line. | ||
| 2728 | |||
| 2729 | +++ | ||
| 2730 | ** The new package table.el implements editable, WYSIWYG, embedded | ||
| 2731 | `text tables' in Emacs buffers. It simulates the effect of putting | ||
| 2732 | these tables in a special major mode. The package emulates WYSIWYG | ||
| 2733 | table editing available in modern word processors. The package also | ||
| 2734 | can generate a table source in typesetting and markup languages such | ||
| 2735 | as latex and html from the visually laid out text table. | ||
| 2736 | |||
| 2737 | +++ | ||
| 2738 | ** The thumbs.el package allows you to preview image files as thumbnails | ||
| 2739 | and can be invoked from a Dired buffer. | ||
| 2706 | 2740 | ||
| 2707 | +++ | 2741 | +++ |
| 2708 | ** Tramp is now part of the distribution. | 2742 | ** Tramp is now part of the distribution. |
| @@ -2725,64 +2759,22 @@ If you want to disable Tramp you should set | |||
| 2725 | (setq tramp-default-method "ftp") | 2759 | (setq tramp-default-method "ftp") |
| 2726 | 2760 | ||
| 2727 | --- | 2761 | --- |
| 2728 | ** The new global minor mode `file-name-shadow-mode' modifies the way | 2762 | ** The library tree-widget.el provides a new widget to display a set |
| 2729 | filenames being entered by the user in the minibuffer are displayed, so | 2763 | of hierarchical data as an outline. For example, the tree-widget is |
| 2730 | that it's clear when part of the entered filename will be ignored due to | 2764 | well suited to display a hierarchy of directories and files. |
| 2731 | emacs' filename parsing rules. The ignored portion can be made dim, | ||
| 2732 | invisible, or otherwise less visually noticable. The display method may | ||
| 2733 | be displayed by customizing the variable `file-name-shadow-properties'. | ||
| 2734 | |||
| 2735 | --- | ||
| 2736 | ** The ruler-mode.el library provides a minor mode for displaying an | ||
| 2737 | "active" ruler in the header line. You can use the mouse to visually | ||
| 2738 | change the `fill-column', `window-margins' and `tab-stop-list' | ||
| 2739 | settings. | ||
| 2740 | |||
| 2741 | --- | ||
| 2742 | ** The minor mode Reveal mode makes text visible on the fly as you | ||
| 2743 | move your cursor into hidden regions of the buffer. | ||
| 2744 | It should work with any package that uses overlays to hide parts | ||
| 2745 | of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | ||
| 2746 | |||
| 2747 | There is also Global Reveal mode which affects all buffers. | ||
| 2748 | |||
| 2749 | --- | ||
| 2750 | ** The new package ibuffer provides a powerful, completely | ||
| 2751 | customizable replacement for buff-menu.el. | ||
| 2752 | |||
| 2753 | +++ | ||
| 2754 | ** The new package table.el implements editable, WYSIWYG, embedded | ||
| 2755 | `text tables' in Emacs buffers. It simulates the effect of putting | ||
| 2756 | these tables in a special major mode. The package emulates WYSIWYG | ||
| 2757 | table editing available in modern word processors. The package also | ||
| 2758 | can generate a table source in typesetting and markup languages such | ||
| 2759 | as latex and html from the visually laid out text table. | ||
| 2760 | |||
| 2761 | +++ | ||
| 2762 | ** SES mode (ses-mode) is a new major mode for creating and editing | ||
| 2763 | spreadsheet files. Besides the usual Emacs features (intuitive command | ||
| 2764 | letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers | ||
| 2765 | viral immunity and import/export of tab-separated values. | ||
| 2766 | 2765 | ||
| 2767 | --- | 2766 | --- |
| 2768 | ** Support for `magic cookie' standout modes has been removed. | 2767 | ** The URL package (which had been part of W3) is now part of Emacs. |
| 2769 | Emacs will still work on terminals that require magic cookies in order | ||
| 2770 | to use standout mode, however they will not be able to display | ||
| 2771 | mode-lines in inverse-video. | ||
| 2772 | 2768 | ||
| 2773 | --- | 2769 | --- |
| 2774 | ** cplus-md.el has been removed to avoid problems with Custom. | 2770 | ** New minor mode, Visible mode, toggles invisibility in the current buffer. |
| 2771 | When enabled, it makes all invisible text visible. When disabled, it | ||
| 2772 | restores the previous value of `buffer-invisibility-spec'. | ||
| 2775 | 2773 | ||
| 2776 | +++ | 2774 | +++ |
| 2777 | ** New package benchmark.el contains simple support for convenient | 2775 | ** The wdired.el package allows you to use normal editing commands on Dired |
| 2778 | timing measurements of code (including the garbage collection component). | 2776 | buffers to change filenames, permissions, etc... |
| 2779 | |||
| 2780 | --- | ||
| 2781 | ** The new Lisp library fringe.el controls the appearance of fringes. | ||
| 2782 | 2777 | ||
| 2783 | --- | ||
| 2784 | ** `cfengine-mode' is a major mode for editing GNU Cfengine | ||
| 2785 | configuration files. | ||
| 2786 | 2778 | ||
| 2787 | * Incompatible Lisp Changes in Emacs 22.1 | 2779 | * Incompatible Lisp Changes in Emacs 22.1 |
| 2788 | 2780 | ||
| @@ -2804,155 +2796,131 @@ the command `undefined'. (In earlier Emacs versions, it used | |||
| 2804 | 2796 | ||
| 2805 | * Lisp Changes in Emacs 22.1 | 2797 | * Lisp Changes in Emacs 22.1 |
| 2806 | 2798 | ||
| 2807 | ** New functions, macros, and commands | ||
| 2808 | |||
| 2809 | +++ | ||
| 2810 | *** The new function `filter-buffer-substring' extracts a buffer | ||
| 2811 | substring, passes it through a set of filter functions, and returns | ||
| 2812 | the filtered substring. It is used instead of `buffer-substring' or | ||
| 2813 | `delete-and-extract-region' when copying text into a user-accessible | ||
| 2814 | data structure, like the kill-ring, X clipboard, or a register. The | ||
| 2815 | list of filter function is specified by the new variable | ||
| 2816 | `buffer-substring-filters'. For example, Longlines mode uses | ||
| 2817 | `buffer-substring-filters' to remove soft newlines from the copied | ||
| 2818 | text. | ||
| 2819 | |||
| 2820 | +++ | 2799 | +++ |
| 2821 | *** (while-no-input BODY...) runs BODY, but only so long as no input | 2800 | ** The option --script FILE runs Emacs in batch mode and loads FILE. |
| 2822 | arrives. If the user types or clicks anything, BODY stops as if a | 2801 | It is useful for writing Emacs Lisp shell script files, because they |
| 2823 | quit had occurred. while-no-input returns the value of BODY, if BODY | 2802 | can start with this line: |
| 2824 | finishes. It returns nil if BODY was aborted. | ||
| 2825 | 2803 | ||
| 2826 | +++ | 2804 | #!/usr/bin/emacs --script |
| 2827 | *** New function `looking-back' checks whether a regular expression matches | ||
| 2828 | the text before point. Specifying the LIMIT argument bounds how far | ||
| 2829 | back the match can start; this is a way to keep it from taking too long. | ||
| 2830 | 2805 | ||
| 2831 | +++ | 2806 | +++ |
| 2832 | *** New functions `make-progress-reporter', `progress-reporter-update', | 2807 | ** The option --directory DIR now modifies `load-path' immediately. |
| 2833 | `progress-reporter-force-update', `progress-reporter-done', and | 2808 | Directories are added to the front of `load-path' in the order they |
| 2834 | `dotimes-with-progress-reporter' provide a simple and efficient way for | 2809 | appear on the command line. For example, with this command line: |
| 2835 | a command to present progress messages for the user. | ||
| 2836 | 2810 | ||
| 2837 | +++ | 2811 | emacs -batch -L .. -L /tmp --eval "(require 'foo)" |
| 2838 | *** The new primitive `get-internal-run-time' returns the processor | ||
| 2839 | run time used by Emacs since start-up. | ||
| 2840 | 2812 | ||
| 2841 | +++ | 2813 | Emacs looks for library `foo' in the parent directory, then in /tmp, then |
| 2842 | *** The new function `called-interactively-p' does what many people | 2814 | in the other directories in `load-path'. (-L is short for --directory.) |
| 2843 | have mistakenly believed `interactive-p' did: it returns t if the | ||
| 2844 | calling function was called through `call-interactively'. This should | ||
| 2845 | only be used when you cannot add a new "interactive" argument to the | ||
| 2846 | command. | ||
| 2847 | 2815 | ||
| 2848 | +++ | 2816 | +++ |
| 2849 | *** The new function `assoc-string' replaces `assoc-ignore-case' and | 2817 | ** The default value of `sentence-end' is now defined using the new |
| 2850 | `assoc-ignore-representation', which are still available, but have | 2818 | variable `sentence-end-without-space', which contains such characters |
| 2851 | been declared obsolete. | 2819 | that end a sentence without following spaces. |
| 2852 | |||
| 2853 | --- | ||
| 2854 | *** New function quail-find-key returns a list of keys to type in the | ||
| 2855 | current input method to input a character. | ||
| 2856 | 2820 | ||
| 2857 | +++ | 2821 | The function `sentence-end' should be used to obtain the value of the |
| 2858 | *** New functions posn-at-point and posn-at-x-y return | 2822 | variable `sentence-end'. If the variable `sentence-end' is nil, then |
| 2859 | click-event-style position information for a given visible buffer | 2823 | this function returns the regexp constructed from the variables |
| 2860 | position or for a given window pixel coordinate. | 2824 | `sentence-end-without-period', `sentence-end-double-space' and |
| 2825 | `sentence-end-without-space'. | ||
| 2861 | 2826 | ||
| 2862 | +++ | 2827 | +++ |
| 2863 | *** The new primitive `set-file-times' sets a file's access and | 2828 | ** The argument to forward-word, backward-word, forward-to-indentation |
| 2864 | modification times. Magic file name handlers can handle this | 2829 | and backward-to-indentation is now optional, and defaults to 1. |
| 2865 | operation. | ||
| 2866 | 2830 | ||
| 2867 | +++ | 2831 | +++ |
| 2868 | *** The new function syntax-after returns the syntax code | 2832 | ** If a command sets transient-mark-mode to `only', that |
| 2869 | of the character after a specified buffer position, taking account | 2833 | enables Transient Mark mode for the following command only. |
| 2870 | of text properties as well as the character code. | 2834 | During that following command, the value of transient-mark-mode |
| 2835 | is `identity'. If it is still `identity' at the end of the command, | ||
| 2836 | it changes to nil. | ||
| 2871 | 2837 | ||
| 2872 | +++ | 2838 | +++ |
| 2873 | *** `syntax-class' extracts the class of a syntax code (as returned | 2839 | ** The new hook `before-save-hook' is invoked by `basic-save-buffer' |
| 2874 | by syntax-after). | 2840 | before saving buffers. This allows packages to perform various final |
| 2841 | tasks, for example; it can be used by the copyright package to make | ||
| 2842 | sure saved files have the current year in any copyright headers. | ||
| 2875 | 2843 | ||
| 2876 | +++ | 2844 | +++ |
| 2877 | *** New function `line-number-at-pos' returns line number of current | 2845 | ** If a buffer sets buffer-save-without-query to non-nil, |
| 2878 | line in current buffer, or if optional buffer position is given, line | 2846 | save-some-buffers will always save that buffer without asking |
| 2879 | number of corresponding line in current buffer. | 2847 | (if it's modified). |
| 2880 | 2848 | ||
| 2881 | +++ | 2849 | --- |
| 2882 | *** New function `macroexpand-all' expands all macros in a form. | 2850 | ** list-buffers-noselect now takes an additional argument, BUFFER-LIST. |
| 2883 | It is similar to the Common-Lisp function of the same name. | 2851 | If it is non-nil, it specifies which buffers to list. |
| 2884 | One difference is that it guarantees to return the original argument | ||
| 2885 | if no expansion is done, which may be tested using `eq'. | ||
| 2886 | 2852 | ||
| 2887 | +++ | 2853 | +++ |
| 2888 | *** New macro with-local-quit temporarily sets inhibit-quit to nil for use | 2854 | ** The kill-buffer-hook is now permanent-local. |
| 2889 | around potentially blocking or long-running code in timers | ||
| 2890 | and post-command-hooks. | ||
| 2891 | 2855 | ||
| 2892 | +++ | 2856 | +++ |
| 2893 | *** The new function `rassq-delete-all' deletes all elements from an | 2857 | ** `auto-save-file-format' has been renamed to |
| 2894 | alist whose cdr is `eq' to a specified value. | 2858 | `buffer-auto-save-file-format' and made into a permanent local. |
| 2895 | 2859 | ||
| 2896 | +++ | 2860 | +++ |
| 2897 | *** New macros define-obsolete-variable-alias to combine defvaralias and | 2861 | ** Functions `file-name-sans-extension' and `file-name-extension' now |
| 2898 | make-obsolete-variable and define-obsolete-function-alias to combine defalias | 2862 | ignore the leading dots in file names, so that file names such as |
| 2899 | and make-obsolete. | 2863 | `.emacs' are treated as extensionless. |
| 2900 | 2864 | ||
| 2901 | +++ | 2865 | +++ |
| 2902 | ** copy-file now takes an additional option arg MUSTBENEW. | 2866 | ** copy-file now takes an additional option arg MUSTBENEW. |
| 2903 | 2867 | ||
| 2904 | This argument works like the MUSTBENEW argument of write-file. | 2868 | This argument works like the MUSTBENEW argument of write-file. |
| 2905 | 2869 | ||
| 2906 | --- | ||
| 2907 | ** easy-mmode-define-global-mode has been renamed to | ||
| 2908 | define-global-minor-mode. The old name remains as an alias. | ||
| 2909 | |||
| 2910 | +++ | 2870 | +++ |
| 2911 | ** An element of buffer-undo-list can now have the form (apply FUNNAME | 2871 | ** If the second argument to `copy-file' is the name of a directory, |
| 2912 | . ARGS), where FUNNAME is a symbol other than t or nil. That stands | 2872 | the file is copied to that directory instead of signaling an error. |
| 2913 | for a high-level change that should be undone by evaluating (apply | ||
| 2914 | FUNNAME ARGS). | ||
| 2915 | 2873 | ||
| 2916 | These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) | 2874 | +++ |
| 2917 | which indicates that the change which took place was limited to the | 2875 | ** `visited-file-modtime' and `calendar-time-from-absolute' now return |
| 2918 | range BEG...END and increased the buffer size by DELTA. | 2876 | a list of two integers, instead of a cons. |
| 2919 | 2877 | ||
| 2920 | +++ | 2878 | +++ |
| 2921 | ** The line-move, scroll-up, and scroll-down functions will now | 2879 | ** `file-chase-links' now takes an optional second argument LIMIT which |
| 2922 | modify the window vscroll to scroll through display rows that are | 2880 | specifies the maximum number of links to chase through. If after that |
| 2923 | taller that the height of the window, for example in the presense of | 2881 | many iterations the file name obtained is still a symbolic link, |
| 2924 | large images. To disable this feature, Lisp code may bind the new | 2882 | `file-chase-links' returns it anyway. |
| 2925 | variable `auto-window-vscroll' to nil. | ||
| 2926 | 2883 | ||
| 2927 | +++ | 2884 | +++ |
| 2928 | ** If a buffer sets buffer-save-without-query to non-nil, | 2885 | ** The function `commandp' takes an additional optional |
| 2929 | save-some-buffers will always save that buffer without asking | 2886 | argument. If it is non-nil, then `commandp' checks |
| 2930 | (if it's modified). | 2887 | for a function that could be called with `call-interactively', |
| 2888 | and does not return t for keyboard macros. | ||
| 2931 | 2889 | ||
| 2932 | +++ | 2890 | +++ |
| 2933 | ** The function symbol-file tells you which file defined | 2891 | ** An interactive specification may now use the code letter 'U' to get |
| 2934 | a certain function or variable. | 2892 | the up-event that was discarded in case the last key sequence read for a |
| 2893 | previous 'k' or 'K' argument was a down-event; otherwise nil is used. | ||
| 2894 | |||
| 2895 | --- | ||
| 2896 | ** Functions y-or-n-p, read-char, read-key-sequence and the like, that | ||
| 2897 | display a prompt but don't use the minibuffer, now display the prompt | ||
| 2898 | using the text properties (esp. the face) of the prompt string. | ||
| 2935 | 2899 | ||
| 2936 | +++ | 2900 | +++ |
| 2937 | ** Lisp code can now test if a given buffer position is inside a | 2901 | ** read-from-minibuffer now accepts an additional argument KEEP-ALL |
| 2938 | clickable link with the new function `mouse-on-link-p'. This is the | 2902 | saying to put all inputs in the history list, even empty ones. |
| 2939 | function used by the new `mouse-1-click-follows-link' functionality. | ||
| 2940 | 2903 | ||
| 2941 | +++ | 2904 | +++ |
| 2942 | ** `set-auto-mode' now gives the interpreter magic line (if present) | 2905 | ** The `read-file-name' function now takes an additional argument which |
| 2943 | precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration | 2906 | specifies a predicate which the file name read must satify. The |
| 2944 | will give the buffer XML or SGML mode, based on the new var | 2907 | new variable `read-file-name-predicate' contains the predicate argument |
| 2945 | `magic-mode-alist'. | 2908 | while reading the file name from the minibuffer; the predicate in this |
| 2909 | variable is used by read-file-name-internal to filter the completion list. | ||
| 2946 | 2910 | ||
| 2947 | --- | 2911 | --- |
| 2948 | ** To manipulate the File menu using easy-menu, you must specify the | 2912 | ** The new variable `read-file-name-function' can be used by lisp code |
| 2949 | proper name "file". In previous Emacs versions, you had to specify | 2913 | to override the internal read-file-name function. |
| 2950 | "files", even though the menu item itself was changed to say "File" | ||
| 2951 | several versions ago. | ||
| 2952 | 2914 | ||
| 2953 | +++ | 2915 | +++ |
| 2954 | ** read-from-minibuffer now accepts an additional argument KEEP-ALL | 2916 | ** The new variable `read-file-name-completion-ignore-case' specifies |
| 2955 | saying to put all inputs in the history list, even empty ones. | 2917 | whether completion ignores case when reading a file name with the |
| 2918 | `read-file-name' function. | ||
| 2919 | |||
| 2920 | +++ | ||
| 2921 | ** The new function `read-directory-name' can be used instead of | ||
| 2922 | `read-file-name' to read a directory name; when used, completion | ||
| 2923 | will only show directories. | ||
| 2956 | 2924 | ||
| 2957 | +++ | 2925 | +++ |
| 2958 | ** The new variable search-spaces-regexp controls how to search | 2926 | ** The new variable search-spaces-regexp controls how to search |
| @@ -2963,77 +2931,447 @@ expression. If it is nil, spaces stand for themselves. | |||
| 2963 | Spaces inside of constructs such as [..] and *, +, ? are never | 2931 | Spaces inside of constructs such as [..] and *, +, ? are never |
| 2964 | replaced with search-spaces-regexp. | 2932 | replaced with search-spaces-regexp. |
| 2965 | 2933 | ||
| 2966 | --- | 2934 | +++ |
| 2967 | ** list-buffers-noselect now takes an additional argument, BUFFER-LIST. | 2935 | ** There are now two new regular expression operators, \_< and \_>, |
| 2968 | If it is non-nil, it specifies which buffers to list. | 2936 | for matching the beginning and end of a symbol. A symbol is a |
| 2937 | non-empty sequence of either word or symbol constituent characters, as | ||
| 2938 | specified by the syntax table. | ||
| 2939 | |||
| 2940 | +++ | ||
| 2941 | ** skip-chars-forward and skip-chars-backward now handle | ||
| 2942 | character classes such as [:alpha:], along with individual characters | ||
| 2943 | and ranges. | ||
| 2969 | 2944 | ||
| 2970 | --- | 2945 | --- |
| 2971 | ** set-buffer-file-coding-system now takes an additional argument, | 2946 | ** In `replace-match', the replacement text no longer inherits |
| 2972 | NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | 2947 | properties from surrounding text. |
| 2973 | 2948 | ||
| 2974 | +++ | 2949 | +++ |
| 2975 | ** An interactive specification may now use the code letter 'U' to get | 2950 | ** The list returned by `(match-data t)' now has the buffer as a final |
| 2976 | the up-event that was discarded in case the last key sequence read for a | 2951 | element, if the last match was on a buffer. `set-match-data' |
| 2977 | previous 'k' or 'K' argument was a down-event; otherwise nil is used. | 2952 | accepts such a list for restoring the match state. |
| 2978 | 2953 | ||
| 2979 | +++ | 2954 | +++ |
| 2980 | ** Function `translate-region' accepts also a char-table as TABLE | 2955 | ** Variable aliases have been implemented: |
| 2981 | argument. | 2956 | |
| 2957 | *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | ||
| 2958 | |||
| 2959 | This function defines the symbol ALIAS-VAR as a variable alias for | ||
| 2960 | symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR | ||
| 2961 | returns the value of BASE-VAR, and changing the value of ALIAS-VAR | ||
| 2962 | changes the value of BASE-VAR. | ||
| 2963 | |||
| 2964 | DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | ||
| 2965 | the same documentation as BASE-VAR. | ||
| 2966 | |||
| 2967 | *** indirect-variable VARIABLE | ||
| 2968 | |||
| 2969 | This function returns the variable at the end of the chain of aliases | ||
| 2970 | of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | ||
| 2971 | defined as an alias, the function returns VARIABLE. | ||
| 2972 | |||
| 2973 | It might be noteworthy that variables aliases work for all kinds of | ||
| 2974 | variables, including buffer-local and frame-local variables. | ||
| 2982 | 2975 | ||
| 2983 | +++ | 2976 | +++ |
| 2984 | ** Major mode functions now run the new normal hook | 2977 | *** The macro define-obsolete-variable-alias combines defvaralias and |
| 2985 | `after-change-major-mode-hook', at their very end, after the mode hooks. | 2978 | make-obsolete-variable. The macro define-obsolete-function-alias |
| 2979 | combines defalias and make-obsolete. | ||
| 2986 | 2980 | ||
| 2987 | +++ | 2981 | +++ |
| 2988 | ** `auto-save-file-format' has been renamed to | 2982 | ** Enhancements to keymaps. |
| 2989 | `buffer-auto-save-file-format' and made into a permanent local. | 2983 | |
| 2984 | *** Cleaner way to enter key sequences. | ||
| 2985 | |||
| 2986 | You can enter a constant key sequence in a more natural format, the | ||
| 2987 | same one used for saving keyboard macros, using the macro `kbd'. For | ||
| 2988 | example, | ||
| 2989 | |||
| 2990 | (kbd "C-x C-f") => "\^x\^f" | ||
| 2991 | |||
| 2992 | *** Interactive commands can be remapped through keymaps. | ||
| 2993 | |||
| 2994 | This is an alternative to using defadvice or substitute-key-definition | ||
| 2995 | to modify the behavior of a key binding using the normal keymap | ||
| 2996 | binding and lookup functionality. | ||
| 2997 | |||
| 2998 | When a key sequence is bound to a command, and that command is | ||
| 2999 | remapped to another command, that command is run instead of the | ||
| 3000 | original command. | ||
| 3001 | |||
| 3002 | Example: | ||
| 3003 | Suppose that minor mode my-mode has defined the commands | ||
| 3004 | my-kill-line and my-kill-word, and it wants C-k (and any other key | ||
| 3005 | bound to kill-line) to run the command my-kill-line instead of | ||
| 3006 | kill-line, and likewise it wants to run my-kill-word instead of | ||
| 3007 | kill-word. | ||
| 3008 | |||
| 3009 | Instead of rebinding C-k and the other keys in the minor mode map, | ||
| 3010 | command remapping allows you to directly map kill-line into | ||
| 3011 | my-kill-line and kill-word into my-kill-word through the minor mode | ||
| 3012 | map using define-key: | ||
| 3013 | |||
| 3014 | (define-key my-mode-map [remap kill-line] 'my-kill-line) | ||
| 3015 | (define-key my-mode-map [remap kill-word] 'my-kill-word) | ||
| 3016 | |||
| 3017 | Now, when my-mode is enabled, and the user enters C-k or M-d, | ||
| 3018 | the commands my-kill-line and my-kill-word are run. | ||
| 3019 | |||
| 3020 | Notice that only one level of remapping is supported. In the above | ||
| 3021 | example, this means that if my-kill-line is remapped to other-kill, | ||
| 3022 | then C-k still runs my-kill-line. | ||
| 3023 | |||
| 3024 | The following changes have been made to provide command remapping: | ||
| 3025 | |||
| 3026 | - Command remappings are defined using `define-key' with a prefix-key | ||
| 3027 | `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | ||
| 3028 | to definition DEF in keymap MAP. The definition is not limited to | ||
| 3029 | another command; it can be anything accepted for a normal binding. | ||
| 3030 | |||
| 3031 | - The new function `command-remapping' returns the binding for a | ||
| 3032 | remapped command in the current keymaps, or nil if not remapped. | ||
| 3033 | |||
| 3034 | - key-binding now remaps interactive commands unless the optional | ||
| 3035 | third argument NO-REMAP is non-nil. | ||
| 3036 | |||
| 3037 | - where-is-internal now returns nil for a remapped command (e.g. | ||
| 3038 | kill-line if my-mode is enabled), and the actual key binding for | ||
| 3039 | the command it is remapped to (e.g. C-k for my-kill-line). | ||
| 3040 | It also has a new optional fifth argument, NO-REMAP, which inhibits | ||
| 3041 | remapping if non-nil (e.g. it returns C-k for kill-line and | ||
| 3042 | <kill-line> for my-kill-line). | ||
| 3043 | |||
| 3044 | - The new variable `this-original-command' contains the original | ||
| 3045 | command before remapping. It is equal to `this-command' when the | ||
| 3046 | command was not remapped. | ||
| 3047 | |||
| 3048 | *** If text has a `keymap' property, that keymap takes precedence | ||
| 3049 | over minor mode keymaps. | ||
| 3050 | |||
| 3051 | *** The `keymap' property now also works at the ends of overlays and | ||
| 3052 | text-properties, according to their stickiness. This also means that it | ||
| 3053 | works with empty overlays. The same hold for the `local-map' property. | ||
| 3054 | |||
| 3055 | *** Dense keymaps now handle inheritance correctly. | ||
| 3056 | Previously a dense keymap would hide all of the simple-char key | ||
| 3057 | bindings of the parent keymap. | ||
| 3058 | |||
| 3059 | *** `define-key-after' now accepts keys longer than 1. | ||
| 3060 | |||
| 3061 | *** New function `current-active-maps' returns a list of currently | ||
| 3062 | active keymaps. | ||
| 3063 | |||
| 3064 | *** New function `describe-buffer-bindings' inserts the list of all | ||
| 3065 | defined keys and their definitions. | ||
| 3066 | |||
| 3067 | *** New function `keymap-prompt' returns the prompt-string of a keymap | ||
| 3068 | |||
| 3069 | *** (map-keymap FUNCTION KEYMAP) applies the function to each binding | ||
| 3070 | in the keymap. | ||
| 3071 | |||
| 3072 | *** New variable emulation-mode-map-alists. | ||
| 3073 | |||
| 3074 | Lisp packages using many minor mode keymaps can now maintain their own | ||
| 3075 | keymap alist separate from minor-mode-map-alist by adding their keymap | ||
| 3076 | alist to this list. | ||
| 2990 | 3077 | ||
| 2991 | +++ | 3078 | +++ |
| 2992 | ** Both the variable and the function `disabled-command-hook' have | 3079 | ** Atomic change groups. |
| 2993 | been renamed to `disabled-command-function'. The variable | 3080 | |
| 2994 | `disabled-command-hook' has been kept as an obsolete alias. | 3081 | To perform some changes in the current buffer "atomically" so that |
| 3082 | they either all succeed or are all undone, use `atomic-change-group' | ||
| 3083 | around the code that makes changes. For instance: | ||
| 3084 | |||
| 3085 | (atomic-change-group | ||
| 3086 | (insert foo) | ||
| 3087 | (delete-region x y)) | ||
| 3088 | |||
| 3089 | If an error (or other nonlocal exit) occurs inside the body of | ||
| 3090 | `atomic-change-group', it unmakes all the changes in that buffer that | ||
| 3091 | were during the execution of the body. The change group has no effect | ||
| 3092 | on any other buffers--any such changes remain. | ||
| 3093 | |||
| 3094 | If you need something more sophisticated, you can directly call the | ||
| 3095 | lower-level functions that `atomic-change-group' uses. Here is how. | ||
| 3096 | |||
| 3097 | To set up a change group for one buffer, call `prepare-change-group'. | ||
| 3098 | Specify the buffer as argument; it defaults to the current buffer. | ||
| 3099 | This function returns a "handle" for the change group. You must save | ||
| 3100 | the handle to activate the change group and then finish it. | ||
| 3101 | |||
| 3102 | Before you change the buffer again, you must activate the change | ||
| 3103 | group. Pass the handle to `activate-change-group' afterward to | ||
| 3104 | do this. | ||
| 3105 | |||
| 3106 | After you make the changes, you must finish the change group. You can | ||
| 3107 | either accept the changes or cancel them all. Call | ||
| 3108 | `accept-change-group' to accept the changes in the group as final; | ||
| 3109 | call `cancel-change-group' to undo them all. | ||
| 3110 | |||
| 3111 | You should use `unwind-protect' to make sure the group is always | ||
| 3112 | finished. The call to `activate-change-group' should be inside the | ||
| 3113 | `unwind-protect', in case the user types C-g just after it runs. | ||
| 3114 | (This is one reason why `prepare-change-group' and | ||
| 3115 | `activate-change-group' are separate functions.) Once you finish the | ||
| 3116 | group, don't use the handle again--don't try to finish the same group | ||
| 3117 | twice. | ||
| 3118 | |||
| 3119 | To make a multibuffer change group, call `prepare-change-group' once | ||
| 3120 | for each buffer you want to cover, then use `nconc' to combine the | ||
| 3121 | returned values, like this: | ||
| 3122 | |||
| 3123 | (nconc (prepare-change-group buffer-1) | ||
| 3124 | (prepare-change-group buffer-2)) | ||
| 3125 | |||
| 3126 | You can then activate the multibuffer change group with a single call | ||
| 3127 | to `activate-change-group', and finish it with a single call to | ||
| 3128 | `accept-change-group' or `cancel-change-group'. | ||
| 3129 | |||
| 3130 | Nested use of several change groups for the same buffer works as you | ||
| 3131 | would expect. Non-nested use of change groups for the same buffer | ||
| 3132 | will lead to undesirable results, so don't let it happen; the first | ||
| 3133 | change group you start for any given buffer should be the last one | ||
| 3134 | finished. | ||
| 2995 | 3135 | ||
| 2996 | +++ | 3136 | +++ |
| 2997 | ** Function `compute-motion' now calculates the usable window | 3137 | ** Progress reporters. |
| 2998 | width if the WIDTH argument is nil. If the TOPOS argument is nil, | 3138 | The new functions `make-progress-reporter', `progress-reporter-update', |
| 2999 | the usable window height and width is used. | 3139 | `progress-reporter-force-update', `progress-reporter-done', and |
| 3140 | `dotimes-with-progress-reporter' provide a simple and efficient way for | ||
| 3141 | a command to present progress messages for the user. | ||
| 3000 | 3142 | ||
| 3001 | +++ | 3143 | +++ |
| 3002 | ** `visited-file-modtime' and `calendar-time-from-absolute' now return | 3144 | ** New `yank-handler' text property may be used to control how |
| 3003 | a list of two integers, instead of a cons. | 3145 | previously killed text on the kill-ring is reinserted. |
| 3146 | |||
| 3147 | The value of the yank-handler property must be a list with one to four | ||
| 3148 | elements with the following format: | ||
| 3149 | (FUNCTION PARAM NOEXCLUDE UNDO). | ||
| 3150 | |||
| 3151 | The `insert-for-yank' function looks for a yank-handler property on | ||
| 3152 | the first character on its string argument (typically the first | ||
| 3153 | element on the kill-ring). If a yank-handler property is found, | ||
| 3154 | the normal behavior of `insert-for-yank' is modified in various ways: | ||
| 3155 | |||
| 3156 | When FUNCTION is present and non-nil, it is called instead of `insert' | ||
| 3157 | to insert the string. FUNCTION takes one argument--the object to insert. | ||
| 3158 | If PARAM is present and non-nil, it replaces STRING as the object | ||
| 3159 | passed to FUNCTION (or `insert'); for example, if FUNCTION is | ||
| 3160 | `yank-rectangle', PARAM should be a list of strings to insert as a | ||
| 3161 | rectangle. | ||
| 3162 | If NOEXCLUDE is present and non-nil, the normal removal of the | ||
| 3163 | yank-excluded-properties is not performed; instead FUNCTION is | ||
| 3164 | responsible for removing those properties. This may be necessary | ||
| 3165 | if FUNCTION adjusts point before or after inserting the object. | ||
| 3166 | If UNDO is present and non-nil, it is a function that will be called | ||
| 3167 | by `yank-pop' to undo the insertion of the current object. It is | ||
| 3168 | called with two arguments, the start and end of the current region. | ||
| 3169 | FUNCTION may set `yank-undo-function' to override the UNDO value. | ||
| 3170 | |||
| 3171 | *** The functions kill-new, kill-append, and kill-region now have an | ||
| 3172 | optional argument to specify the yank-handler text property to put on | ||
| 3173 | the killed text. | ||
| 3174 | |||
| 3175 | *** The function yank-pop will now use a non-nil value of the variable | ||
| 3176 | `yank-undo-function' (instead of delete-region) to undo the previous | ||
| 3177 | yank or yank-pop command (or a call to insert-for-yank). The function | ||
| 3178 | insert-for-yank automatically sets that variable according to the UNDO | ||
| 3179 | element of the string argument's yank-handler text property if present. | ||
| 3180 | |||
| 3181 | *** The function `insert-for-yank' now supports strings where the | ||
| 3182 | `yank-handler' property does not span the first character of the | ||
| 3183 | string. The old behavior is available if you call | ||
| 3184 | `insert-for-yank-1' instead. | ||
| 3185 | |||
| 3186 | *** The new function insert-for-yank normally works like `insert', but | ||
| 3187 | removes the text properties in the `yank-excluded-properties' list. | ||
| 3188 | However, the insertion of the text may be modified by a `yank-handler' | ||
| 3189 | text property. | ||
| 3004 | 3190 | ||
| 3005 | +++ | 3191 | +++ |
| 3006 | ** If a command sets transient-mark-mode to `only', that | 3192 | ** An element of buffer-undo-list can now have the form (apply FUNNAME |
| 3007 | enables Transient Mark mode for the following command only. | 3193 | . ARGS), where FUNNAME is a symbol other than t or nil. That stands |
| 3008 | During that following command, the value of transient-mark-mode | 3194 | for a high-level change that should be undone by evaluating (apply |
| 3009 | is `identity'. If it is still `identity' at the end of the command, | 3195 | FUNNAME ARGS). |
| 3010 | it changes to nil. | 3196 | |
| 3197 | These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS) | ||
| 3198 | which indicates that the change which took place was limited to the | ||
| 3199 | range BEG...END and increased the buffer size by DELTA. | ||
| 3011 | 3200 | ||
| 3012 | +++ | 3201 | +++ |
| 3013 | ** Cleaner way to enter key sequences. | 3202 | ** If the buffer's undo list for the current command gets longer than |
| 3203 | undo-outer-limit, garbage collection empties it. This is to prevent | ||
| 3204 | it from using up the available memory and choking Emacs. | ||
| 3014 | 3205 | ||
| 3015 | You can enter a constant key sequence in a more natural format, the | 3206 | +++ |
| 3016 | same one used for saving keyboard macros, using the macro `kbd'. For | 3207 | ** Enhancements to process support |
| 3017 | example, | ||
| 3018 | 3208 | ||
| 3019 | (kbd "C-x C-f") => "\^x\^f" | 3209 | *** Function list-processes now has an optional argument; if non-nil, |
| 3210 | only the processes whose query-on-exit flag is set are listed. | ||
| 3211 | |||
| 3212 | *** New set-process-query-on-exit-flag and process-query-on-exit-flag | ||
| 3213 | functions. The existing process-kill-without-query function is still | ||
| 3214 | supported, but new code should use the new functions. | ||
| 3215 | |||
| 3216 | *** Function signal-process now accepts a process object or process | ||
| 3217 | name in addition to a process id to identify the signalled process. | ||
| 3218 | |||
| 3219 | *** Processes now have an associated property list where programs can | ||
| 3220 | maintain process state and other per-process related information. | ||
| 3221 | |||
| 3222 | The new functions process-get and process-put are used to access, add, | ||
| 3223 | and modify elements on this property list. | ||
| 3224 | |||
| 3225 | The new low-level functions process-plist and set-process-plist are | ||
| 3226 | used to access and replace the entire property list of a process. | ||
| 3227 | |||
| 3228 | *** Function accept-process-output now has an optional fourth arg | ||
| 3229 | `just-this-one'. If non-nil, only output from the specified process | ||
| 3230 | is handled, suspending output from other processes. If value is an | ||
| 3231 | integer, also inhibit running timers. This feature is generally not | ||
| 3232 | recommended, but may be necessary for specific applications, such as | ||
| 3233 | speech synthesis. | ||
| 3234 | |||
| 3235 | *** Adaptive read buffering of subprocess output. | ||
| 3236 | |||
| 3237 | On some systems, when emacs reads the output from a subprocess, the | ||
| 3238 | output data is read in very small blocks, potentially resulting in | ||
| 3239 | very poor performance. This behavior can be remedied to some extent | ||
| 3240 | by setting the new variable process-adaptive-read-buffering to a | ||
| 3241 | non-nil value (the default), as it will automatically delay reading | ||
| 3242 | from such processes, to allowing them to produce more output before | ||
| 3243 | emacs tries to read it. | ||
| 3244 | |||
| 3245 | *** The new function `call-process-shell-command' executes a shell | ||
| 3246 | command command synchronously in a separate process. | ||
| 3247 | |||
| 3248 | *** The new function `process-file' is similar to `call-process', but | ||
| 3249 | obeys file handlers. The file handler is chosen based on | ||
| 3250 | default-directory. | ||
| 3251 | |||
| 3252 | *** The new function `set-process-filter-multibyte' sets the | ||
| 3253 | multibyteness of a string given to a process's filter. | ||
| 3254 | |||
| 3255 | *** The new function `process-filter-multibyte-p' returns t if a | ||
| 3256 | string given to a process's filter is multibyte. | ||
| 3257 | |||
| 3258 | *** A filter function of a process is called with a multibyte string | ||
| 3259 | if the filter's multibyteness is t. That multibyteness is decided by | ||
| 3260 | the value of `default-enable-multibyte-characters' when the process is | ||
| 3261 | created and can be changed later by `set-process-filter-multibyte'. | ||
| 3262 | |||
| 3263 | *** If a process's coding system is raw-text or no-conversion and its | ||
| 3264 | buffer is multibyte, the output of the process is at first converted | ||
| 3265 | to multibyte by `string-to-multibyte' then inserted in the buffer. | ||
| 3266 | Previously, it was converted to multibyte by `string-as-multibyte', | ||
| 3267 | which was not compatible with the behavior of file reading. | ||
| 3020 | 3268 | ||
| 3021 | +++ | 3269 | +++ |
| 3022 | ** The sentinel is now called when a network process is deleted with | 3270 | ** Enhanced networking support. |
| 3271 | |||
| 3272 | *** There is a new `make-network-process' function which supports | ||
| 3273 | opening of stream and datagram connections to a server, as well as | ||
| 3274 | create a stream or datagram server inside emacs. | ||
| 3275 | |||
| 3276 | - A server is started using :server t arg. | ||
| 3277 | - Datagram connection is selected using :type 'datagram arg. | ||
| 3278 | - A server can open on a random port using :service t arg. | ||
| 3279 | - Local sockets are supported using :family 'local arg. | ||
| 3280 | - Non-blocking connect is supported using :nowait t arg. | ||
| 3281 | - The process' property list may be initialized using :plist PLIST arg; | ||
| 3282 | a copy of the server process' property list is automatically inherited | ||
| 3283 | by new client processes created to handle incoming connections. | ||
| 3284 | |||
| 3285 | To test for the availability of a given feature, use featurep like this: | ||
| 3286 | (featurep 'make-network-process '(:type datagram)) | ||
| 3287 | |||
| 3288 | *** Original open-network-stream is now emulated using make-network-process. | ||
| 3289 | |||
| 3290 | *** New function open-network-stream-nowait. | ||
| 3291 | |||
| 3292 | This function initiates a non-blocking connect and returns immediately | ||
| 3293 | without waiting for the connection to be established. It takes the | ||
| 3294 | filter and sentinel functions as arguments; when the non-blocking | ||
| 3295 | connect completes, the sentinel is called with a status string | ||
| 3296 | matching "open" or "failed". | ||
| 3297 | |||
| 3298 | *** New function open-network-stream-server. | ||
| 3299 | |||
| 3300 | This function creates a network server process for a TCP service. | ||
| 3301 | When a client connects to the specified service, a new subprocess | ||
| 3302 | is created to handle the new connection, and the sentinel function | ||
| 3303 | is called for the new process. | ||
| 3304 | |||
| 3305 | *** New functions process-datagram-address and set-process-datagram-address. | ||
| 3306 | |||
| 3307 | These functions are used with datagram-based network processes to get | ||
| 3308 | and set the current address of the remote partner. | ||
| 3309 | |||
| 3310 | *** New function format-network-address. | ||
| 3311 | |||
| 3312 | This function reformats the lisp representation of a network address | ||
| 3313 | to a printable string. For example, an IP address A.B.C.D and port | ||
| 3314 | number P is represented as a five element vector [A B C D P], and the | ||
| 3315 | printable string returned for this vector is "A.B.C.D:P". See the doc | ||
| 3316 | string for other formatting options. | ||
| 3317 | |||
| 3318 | *** By default, the function process-contact still returns (HOST SERVICE) | ||
| 3319 | for a network process. Using the new optional KEY arg, the complete list | ||
| 3320 | of network process properties or a specific property can be selected. | ||
| 3321 | |||
| 3322 | Using :local and :remote as the KEY, the address of the local or | ||
| 3323 | remote end-point is returned. An Inet address is represented as a 5 | ||
| 3324 | element vector, where the first 4 elements contain the IP address and | ||
| 3325 | the fifth is the port number. | ||
| 3326 | |||
| 3327 | *** Network processes can now be stopped and restarted with | ||
| 3328 | `stop-process' and `continue-process'. For a server process, no | ||
| 3329 | connections are accepted in the stopped state. For a client process, | ||
| 3330 | no input is received in the stopped state. | ||
| 3331 | |||
| 3332 | *** New function network-interface-list. | ||
| 3333 | |||
| 3334 | This function returns a list of network interface names and their | ||
| 3335 | current network addresses. | ||
| 3336 | |||
| 3337 | *** New function network-interface-info. | ||
| 3338 | |||
| 3339 | This function returns the network address, hardware address, current | ||
| 3340 | status, and other information about a specific network interface. | ||
| 3341 | |||
| 3342 | *** The sentinel is now called when a network process is deleted with | ||
| 3023 | delete-process. The status message passed to the sentinel for a | 3343 | delete-process. The status message passed to the sentinel for a |
| 3024 | deleted network process is "deleted". The message passed to the | 3344 | deleted network process is "deleted". The message passed to the |
| 3025 | sentinel when the connection is closed by the remote peer has been | 3345 | sentinel when the connection is closed by the remote peer has been |
| 3026 | changed to "connection broken by remote peer". | 3346 | changed to "connection broken by remote peer". |
| 3027 | 3347 | ||
| 3028 | +++ | 3348 | +++ |
| 3029 | ** If the buffer's undo list for the current command gets longer than | 3349 | ** New function `force-window-update' can initiate a full redisplay of |
| 3030 | undo-outer-limit, garbage collection empties it. This is to prevent | 3350 | one or all windows. Normally, this is not needed as changes in window |
| 3031 | it from using up the available memory and choking Emacs. | 3351 | contents are detected automatically. However, certain implicit |
| 3352 | changes to mode lines, header lines, or display properties may require | ||
| 3353 | forcing an explicit window update. | ||
| 3032 | 3354 | ||
| 3033 | +++ | 3355 | +++ |
| 3034 | ** skip-chars-forward and skip-chars-backward now handle | 3356 | ** You can now make a window as short as one line. |
| 3035 | character classes such as [:alpha:], along with individual characters | 3357 | |
| 3036 | and ranges. | 3358 | A window that is just one line tall does not display either a mode |
| 3359 | line or a header line, even if the variables `mode-line-format' and | ||
| 3360 | `header-line-format' call for them. A window that is two lines tall | ||
| 3361 | cannot display both a mode line and a header line at once; if the | ||
| 3362 | variables call for both, only the mode line actually appears. | ||
| 3363 | |||
| 3364 | +++ | ||
| 3365 | ** The line-move, scroll-up, and scroll-down functions will now | ||
| 3366 | modify the window vscroll to scroll through display rows that are | ||
| 3367 | taller that the height of the window, for example in the presense of | ||
| 3368 | large images. To disable this feature, Lisp code may bind the new | ||
| 3369 | variable `auto-window-vscroll' to nil. | ||
| 3370 | |||
| 3371 | +++ | ||
| 3372 | ** Function `compute-motion' now calculates the usable window | ||
| 3373 | width if the WIDTH argument is nil. If the TOPOS argument is nil, | ||
| 3374 | the usable window height and width is used. | ||
| 3037 | 3375 | ||
| 3038 | +++ | 3376 | +++ |
| 3039 | ** Function pos-visible-in-window-p now returns the pixel coordinates | 3377 | ** Function pos-visible-in-window-p now returns the pixel coordinates |
| @@ -3041,23 +3379,131 @@ and partial visiblity state of the corresponding row, if the PARTIALLY | |||
| 3041 | arg is non-nil. | 3379 | arg is non-nil. |
| 3042 | 3380 | ||
| 3043 | +++ | 3381 | +++ |
| 3044 | ** The function `eql' is now available without requiring the CL package. | 3382 | ** The new function `window-inside-edges' returns the edges of the |
| 3383 | actual text portion of the window, not including the scroll bar or | ||
| 3384 | divider line, the fringes, the display margins, the header line and | ||
| 3385 | the mode line. | ||
| 3045 | 3386 | ||
| 3046 | +++ | 3387 | +++ |
| 3047 | ** The display space :width and :align-to text properties are now | 3388 | ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' |
| 3048 | supported on text terminals. | 3389 | return window edges in units of pixels, rather than columns and lines. |
| 3049 | 3390 | ||
| 3050 | +++ | 3391 | +++ |
| 3051 | ** Support for displaying image slices | 3392 | ** The new macro `with-selected-window' temporarily switches the |
| 3393 | selected window without impacting the order of buffer-list. | ||
| 3052 | 3394 | ||
| 3053 | *** New display property (slice X Y WIDTH HEIGHT) may be used with | 3395 | +++ |
| 3054 | an image property to display only a specific slice of the image. | 3396 | ** `select-window' takes an optional second argument `norecord', like |
| 3397 | `switch-to-buffer'. | ||
| 3055 | 3398 | ||
| 3056 | *** Function insert-image has new optional fourth arg to | 3399 | +++ |
| 3057 | specify image slice (X Y WIDTH HEIGHT). | 3400 | ** `save-selected-window' now saves and restores the selected window |
| 3401 | of every frame. This way, it restores everything that can be changed | ||
| 3402 | by calling `select-window'. | ||
| 3058 | 3403 | ||
| 3059 | *** New function insert-sliced-image inserts a given image as a | 3404 | +++ |
| 3060 | specified number of evenly sized slices (rows x columns). | 3405 | ** The function `set-window-buffer' now has an optional third argument |
| 3406 | KEEP-MARGINS which will preserve the window's current margin, fringe, | ||
| 3407 | and scroll-bar settings if non-nil. | ||
| 3408 | |||
| 3409 | +++ | ||
| 3410 | ** Customizable fringe bitmaps | ||
| 3411 | |||
| 3412 | *** New function 'define-fringe-bitmap' can now be used to create new | ||
| 3413 | fringe bitmaps, as well as change the built-in fringe bitmaps. | ||
| 3414 | |||
| 3415 | To change a built-in bitmap, do (require 'fringe) and use the symbol | ||
| 3416 | identifing the bitmap such as `left-truncation or `continued-line'. | ||
| 3417 | |||
| 3418 | *** New function 'destroy-fringe-bitmap' may be used to destroy a | ||
| 3419 | previously created bitmap, or restore a built-in bitmap. | ||
| 3420 | |||
| 3421 | *** New function 'set-fringe-bitmap-face' can now be used to set a | ||
| 3422 | specific face to be used for a specific fringe bitmap. The face is | ||
| 3423 | automatically merged with the `fringe' face, so normally, the face | ||
| 3424 | should only specify the foreground color of the bitmap. | ||
| 3425 | |||
| 3426 | *** There are new display properties, left-fringe and right-fringe, | ||
| 3427 | that can be used to show a specific bitmap in the left or right fringe | ||
| 3428 | bitmap of the display line. | ||
| 3429 | |||
| 3430 | Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a | ||
| 3431 | symbol identifying a fringe bitmap, either built-in or defined with | ||
| 3432 | `define-fringe-bitmap', and FACE is an optional face name to be used | ||
| 3433 | for displaying the bitmap instead of the default `fringe' face. | ||
| 3434 | When specified, FACE is automatically merged with the `fringe' face. | ||
| 3435 | |||
| 3436 | *** New function `fringe-bitmaps-at-pos' returns the current fringe | ||
| 3437 | bitmaps in the display line at a given buffer position. | ||
| 3438 | |||
| 3439 | +++ | ||
| 3440 | ** Controlling the default left and right fringe widths. | ||
| 3441 | |||
| 3442 | The default left and right fringe widths for all windows of a frame | ||
| 3443 | can now be controlled by setting the `left-fringe' and `right-fringe' | ||
| 3444 | frame parameters to an integer value specifying the width in pixels. | ||
| 3445 | Setting the width to 0 effectively removes the corresponding fringe. | ||
| 3446 | |||
| 3447 | The actual default fringe widths for the frame may deviate from the | ||
| 3448 | specified widths, since the combined fringe widths must match an | ||
| 3449 | integral number of columns. The extra width is distributed evenly | ||
| 3450 | between the left and right fringe. For force a specific fringe width, | ||
| 3451 | specify the width as a negative integer (if both widths are negative, | ||
| 3452 | only the left fringe gets the specified width). | ||
| 3453 | |||
| 3454 | Setting the width to nil (the default), restores the default fringe | ||
| 3455 | width which is the minimum number of pixels necessary to display any | ||
| 3456 | of the currently defined fringe bitmaps. The width of the built-in | ||
| 3457 | fringe bitmaps is 8 pixels. | ||
| 3458 | |||
| 3459 | +++ | ||
| 3460 | ** Per-window fringe and scrollbar settings | ||
| 3461 | |||
| 3462 | *** Windows can now have their own individual fringe widths and | ||
| 3463 | position settings. | ||
| 3464 | |||
| 3465 | To control the fringe widths of a window, either set the buffer-local | ||
| 3466 | variables `left-fringe-width', `right-fringe-width', or call | ||
| 3467 | `set-window-fringes'. | ||
| 3468 | |||
| 3469 | To control the fringe position in a window, that is, whether fringes | ||
| 3470 | are positioned between the display margins and the window's text area, | ||
| 3471 | or at the edges of the window, either set the buffer-local variable | ||
| 3472 | `fringes-outside-margins' or call `set-window-fringes'. | ||
| 3473 | |||
| 3474 | The function `window-fringes' can be used to obtain the current | ||
| 3475 | settings. To make `left-fringe-width', `right-fringe-width', and | ||
| 3476 | `fringes-outside-margins' take effect, you must set them before | ||
| 3477 | displaying the buffer in a window, or use `set-window-buffer' to force | ||
| 3478 | an update of the display margins. | ||
| 3479 | |||
| 3480 | *** Windows can now have their own individual scroll-bar settings | ||
| 3481 | controlling the width and position of scroll-bars. | ||
| 3482 | |||
| 3483 | To control the scroll-bar of a window, either set the buffer-local | ||
| 3484 | variables `scroll-bar-mode' and `scroll-bar-width', or call | ||
| 3485 | `set-window-scroll-bars'. The function `window-scroll-bars' can be | ||
| 3486 | used to obtain the current settings. To make `scroll-bar-mode' and | ||
| 3487 | `scroll-bar-width' take effect, you must set them before displaying | ||
| 3488 | the buffer in a window, or use `set-window-buffer' to force an update | ||
| 3489 | of the display margins. | ||
| 3490 | |||
| 3491 | +++ | ||
| 3492 | ** When using non-toolkit scroll bars with the default width, | ||
| 3493 | the scroll-bar-width frame parameter value is nil. | ||
| 3494 | |||
| 3495 | +++ | ||
| 3496 | ** Multiple overlay arrows can now be defined and managed via the new | ||
| 3497 | variable `overlay-arrow-variable-list'. It contains a list of | ||
| 3498 | varibles which contain overlay arrow position markers, including | ||
| 3499 | the original `overlay-arrow-position' variable. | ||
| 3500 | |||
| 3501 | Each variable on this list may have individual `overlay-arrow-string' | ||
| 3502 | and `overlay-arrow-bitmap' properties that specify an overlay arrow | ||
| 3503 | string (for non-window terminals) or fringe bitmap (for window | ||
| 3504 | systems) to display at the corresponding overlay arrow position. | ||
| 3505 | If either property is not set, the default `overlay-arrow-string' or | ||
| 3506 | 'overlay-arrow-fringe-bitmap' will be used. | ||
| 3061 | 3507 | ||
| 3062 | +++ | 3508 | +++ |
| 3063 | ** New line-height and line-spacing properties for newline characters | 3509 | ** New line-height and line-spacing properties for newline characters |
| @@ -3162,139 +3608,16 @@ The form `(+ EXPR ...)' adds up the value of the expressions. | |||
| 3162 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. | 3608 | The form `(- EXPR ...)' negates or subtracts the value of the expressions. |
| 3163 | 3609 | ||
| 3164 | +++ | 3610 | +++ |
| 3165 | ** Normally, the cursor is displayed at the end of any overlay and | 3611 | ** Support for displaying image slices |
| 3166 | text property string that may be present at the current window | ||
| 3167 | position. The cursor may now be placed on any character of such | ||
| 3168 | strings by giving that character a non-nil `cursor' text property. | ||
| 3169 | |||
| 3170 | +++ | ||
| 3171 | ** The first face specification element in a defface can specify | ||
| 3172 | `default' instead of frame classification. Then its attributes act as | ||
| 3173 | defaults that apply to all the subsequent cases (and may be overridden | ||
| 3174 | by them). | ||
| 3175 | |||
| 3176 | +++ | ||
| 3177 | ** New face attribute `min-colors' can be used to tailor the face color | ||
| 3178 | to the number of colors supported by a display, and define the | ||
| 3179 | foreground and background colors accordingly so that they look best on | ||
| 3180 | a terminal that supports at least this many colors. This is now the | ||
| 3181 | preferred method for defining default faces in a way that makes a good | ||
| 3182 | use of the capabilities of the display. | ||
| 3183 | |||
| 3184 | +++ | ||
| 3185 | ** Customizable fringe bitmaps | ||
| 3186 | |||
| 3187 | *** New function 'define-fringe-bitmap' can now be used to create new | ||
| 3188 | fringe bitmaps, as well as change the built-in fringe bitmaps. | ||
| 3189 | |||
| 3190 | To change a built-in bitmap, do (require 'fringe) and use the symbol | ||
| 3191 | identifing the bitmap such as `left-truncation or `continued-line'. | ||
| 3192 | |||
| 3193 | *** New function 'destroy-fringe-bitmap' may be used to destroy a | ||
| 3194 | previously created bitmap, or restore a built-in bitmap. | ||
| 3195 | |||
| 3196 | *** New function 'set-fringe-bitmap-face' can now be used to set a | ||
| 3197 | specific face to be used for a specific fringe bitmap. The face is | ||
| 3198 | automatically merged with the `fringe' face, so normally, the face | ||
| 3199 | should only specify the foreground color of the bitmap. | ||
| 3200 | |||
| 3201 | *** There are new display properties, left-fringe and right-fringe, | ||
| 3202 | that can be used to show a specific bitmap in the left or right fringe | ||
| 3203 | bitmap of the display line. | ||
| 3204 | |||
| 3205 | Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a | ||
| 3206 | symbol identifying a fringe bitmap, either built-in or defined with | ||
| 3207 | `define-fringe-bitmap', and FACE is an optional face name to be used | ||
| 3208 | for displaying the bitmap instead of the default `fringe' face. | ||
| 3209 | When specified, FACE is automatically merged with the `fringe' face. | ||
| 3210 | |||
| 3211 | *** New function `fringe-bitmaps-at-pos' returns the current fringe | ||
| 3212 | bitmaps in the display line at a given buffer position. | ||
| 3213 | |||
| 3214 | +++ | ||
| 3215 | ** Multiple overlay arrows can now be defined and managed via the new | ||
| 3216 | variable `overlay-arrow-variable-list'. It contains a list of | ||
| 3217 | varibles which contain overlay arrow position markers, including | ||
| 3218 | the original `overlay-arrow-position' variable. | ||
| 3219 | |||
| 3220 | Each variable on this list may have individual `overlay-arrow-string' | ||
| 3221 | and `overlay-arrow-bitmap' properties that specify an overlay arrow | ||
| 3222 | string (for non-window terminals) or fringe bitmap (for window | ||
| 3223 | systems) to display at the corresponding overlay arrow position. | ||
| 3224 | If either property is not set, the default `overlay-arrow-string' or | ||
| 3225 | 'overlay-arrow-fringe-bitmap' will be used. | ||
| 3226 | |||
| 3227 | +++ | ||
| 3228 | ** The default value of `sentence-end' is now defined using the new | ||
| 3229 | variable `sentence-end-without-space' which contains such characters | ||
| 3230 | that end a sentence without following spaces. | ||
| 3231 | |||
| 3232 | +++ | ||
| 3233 | ** The function `sentence-end' should be used to obtain the value of | ||
| 3234 | the variable `sentence-end'. If the variable `sentence-end' is nil, | ||
| 3235 | then this function returns the regexp constructed from the variables | ||
| 3236 | `sentence-end-without-period', `sentence-end-double-space' and | ||
| 3237 | `sentence-end-without-space'. | ||
| 3238 | |||
| 3239 | +++ | ||
| 3240 | ** The flags, width, and precision options for %-specifications in function | ||
| 3241 | `format' are now documented. Some flags that were accepted but not | ||
| 3242 | implemented (such as "*") are no longer accepted. | ||
| 3243 | |||
| 3244 | +++ | ||
| 3245 | ** New function `delete-dups' destructively removes `equal' duplicates | ||
| 3246 | from a list. Of several `equal' occurrences of an element in the list, | ||
| 3247 | the first one is kept. | ||
| 3248 | |||
| 3249 | +++ | ||
| 3250 | ** `declare' is now a macro. This change was made mostly for | ||
| 3251 | documentation purposes and should have no real effect on Lisp code. | ||
| 3252 | |||
| 3253 | +++ | ||
| 3254 | ** A file name handler can declare which operations it handles. | ||
| 3255 | |||
| 3256 | You do this by putting an `operation' property on the handler name | ||
| 3257 | symbol. The property value should be a list of the operations that | ||
| 3258 | the handler really handles. It won't be called for any other | ||
| 3259 | operations. | ||
| 3260 | |||
| 3261 | This is useful for autoloaded handlers, to prevent them from being | ||
| 3262 | autoloaded when not really necessary. | ||
| 3263 | |||
| 3264 | +++ | ||
| 3265 | ** The new hook `before-save-hook' is invoked by `basic-save-buffer' | ||
| 3266 | before saving buffers. This allows packages to perform various final | ||
| 3267 | tasks, for example; it can be used by the copyright package to make | ||
| 3268 | sure saved files have the current year in any copyright headers. | ||
| 3269 | |||
| 3270 | +++ | ||
| 3271 | ** The function `insert-for-yank' now supports strings where the | ||
| 3272 | `yank-handler' property does not span the first character of the | ||
| 3273 | string. The old behavior is available if you call | ||
| 3274 | `insert-for-yank-1' instead. | ||
| 3275 | |||
| 3276 | +++ | ||
| 3277 | ** New function `get-char-property-and-overlay' accepts the same | ||
| 3278 | arguments as `get-char-property' and returns a cons whose car is the | ||
| 3279 | return value of `get-char-property' called with those arguments and | ||
| 3280 | whose cdr is the overlay in which the property was found, or nil if | ||
| 3281 | it was found as a text property or not found at all. | ||
| 3282 | 3612 | ||
| 3283 | +++ (lispref) | 3613 | *** New display property (slice X Y WIDTH HEIGHT) may be used with |
| 3284 | ??? (man) | 3614 | an image property to display only a specific slice of the image. |
| 3285 | ** The mouse pointer shape in void text areas (i.e. after the end of a | ||
| 3286 | line or below the last line in the buffer) of the text window is now | ||
| 3287 | controlled by the new variable `void-text-area-pointer'. The default | ||
| 3288 | is to use the `arrow' (non-text) pointer. Other choices are `text' | ||
| 3289 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | ||
| 3290 | 3615 | ||
| 3291 | +++ | 3616 | *** Function insert-image has new optional fourth arg to |
| 3292 | ** The mouse pointer shape over an image can now be controlled by the | 3617 | specify image slice (X Y WIDTH HEIGHT). |
| 3293 | :pointer image property. | ||
| 3294 | 3618 | ||
| 3295 | +++ | 3619 | *** New function insert-sliced-image inserts a given image as a |
| 3296 | ** The mouse pointer shape over ordinary text or images may now be | 3620 | specified number of evenly sized slices (rows x columns). |
| 3297 | controlled/overriden via the `pointer' text property. | ||
| 3298 | 3621 | ||
| 3299 | +++ | 3622 | +++ |
| 3300 | ** Images may now have an associated image map via the :map property. | 3623 | ** Images may now have an associated image map via the :map property. |
| @@ -3319,6 +3642,27 @@ When you click the mouse when the mouse pointer is over a hot-spot, | |||
| 3319 | an event is composed by combining the ID of the hot-spot with the | 3642 | an event is composed by combining the ID of the hot-spot with the |
| 3320 | mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. | 3643 | mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'. |
| 3321 | 3644 | ||
| 3645 | +++ (lispref) | ||
| 3646 | ??? (man) | ||
| 3647 | ** The mouse pointer shape in void text areas (i.e. after the end of a | ||
| 3648 | line or below the last line in the buffer) of the text window is now | ||
| 3649 | controlled by the new variable `void-text-area-pointer'. The default | ||
| 3650 | is to use the `arrow' (non-text) pointer. Other choices are `text' | ||
| 3651 | (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'. | ||
| 3652 | |||
| 3653 | +++ | ||
| 3654 | ** The mouse pointer shape over an image can now be controlled by the | ||
| 3655 | :pointer image property. | ||
| 3656 | |||
| 3657 | +++ | ||
| 3658 | ** Lisp code can now test if a given buffer position is inside a | ||
| 3659 | clickable link with the new function `mouse-on-link-p'. This is the | ||
| 3660 | function used by the new `mouse-1-click-follows-link' functionality. | ||
| 3661 | |||
| 3662 | +++ | ||
| 3663 | ** The mouse pointer shape over ordinary text or images may now be | ||
| 3664 | controlled/overriden via the `pointer' text property. | ||
| 3665 | |||
| 3322 | ** Mouse event enhancements: | 3666 | ** Mouse event enhancements: |
| 3323 | 3667 | ||
| 3324 | +++ | 3668 | +++ |
| @@ -3367,45 +3711,58 @@ click, the x and y pixel coordinates relative to the top left corner | |||
| 3367 | of that object, and the total width and height of that object. | 3711 | of that object, and the total width and height of that object. |
| 3368 | 3712 | ||
| 3369 | +++ | 3713 | +++ |
| 3370 | ** New function `force-window-update' can initiate a full redisplay of | 3714 | ** At the end of a command, point moves out from within invisible |
| 3371 | one or all windows. Normally, this is not needed as changes in window | 3715 | text, in the same way it moves out from within text covered by an |
| 3372 | contents are detected automatically. However, certain implicit | 3716 | image or composition property. |
| 3373 | changes to mode lines, header lines, or display properties may require | ||
| 3374 | forcing an explicit window update. | ||
| 3375 | 3717 | ||
| 3376 | --- | 3718 | This makes it generally unnecessary to mark invisible text as intangible. |
| 3377 | ** New function `redirect-debugging-output' can be used to redirect | 3719 | This is particularly good because the intangible property often has |
| 3378 | debugging output on the stderr file handle to a file. | 3720 | unexpected side-effects since the property applies to everything |
| 3721 | (including `goto-char', ...) whereas this new code is only run after | ||
| 3722 | post-command-hook and thus does not care about intermediate states. | ||
| 3379 | 3723 | ||
| 3380 | +++ | 3724 | +++ |
| 3381 | ** `split-string' now includes null substrings in the returned list if | 3725 | ** Normally, the cursor is displayed at the end of any overlay and |
| 3382 | the optional argument SEPARATORS is non-nil and there are matches for | 3726 | text property string that may be present at the current window |
| 3383 | SEPARATORS at the beginning or end of the string. If SEPARATORS is | 3727 | position. The cursor may now be placed on any character of such |
| 3384 | nil, or if the new optional third argument OMIT-NULLS is non-nil, all | 3728 | strings by giving that character a non-nil `cursor' text property. |
| 3385 | empty matches are omitted from the returned list. | ||
| 3386 | 3729 | ||
| 3387 | +++ | 3730 | +++ |
| 3388 | ** `makehash' is now obsolete. Use `make-hash-table' instead. | 3731 | ** The display space :width and :align-to text properties are now |
| 3732 | supported on text terminals. | ||
| 3389 | 3733 | ||
| 3390 | +++ | 3734 | +++ |
| 3391 | ** If optional third argument APPEND to `add-to-list' is non-nil, a | 3735 | ** Arguments for remove-overlays are now optional, so that you can |
| 3392 | new element gets added at the end of the list instead of at the | 3736 | remove all overlays in the buffer by just calling (remove-overlay). |
| 3393 | beginning. This change actually occurred in Emacs-21.1, but was not | ||
| 3394 | documented. | ||
| 3395 | 3737 | ||
| 3396 | +++ | 3738 | +++ |
| 3397 | ** Major modes can define `eldoc-documentation-function' | 3739 | ** New variable char-property-alias-alist. |
| 3398 | locally to provide Eldoc functionality by some method appropriate to | ||
| 3399 | the language. | ||
| 3400 | 3740 | ||
| 3401 | --- | 3741 | This variable allows you to create alternative names for text |
| 3402 | ** New coding system property `mime-text-unsuitable' indicates that | 3742 | properties. It works at the same level as `default-text-properties', |
| 3403 | the coding system's `mime-charset' is not suitable for MIME text | 3743 | although it applies to overlays as well. This variable was introduced |
| 3404 | parts, e.g. utf-16. | 3744 | to implement the `font-lock-face' property. |
| 3405 | 3745 | ||
| 3406 | +++ | 3746 | +++ |
| 3407 | ** The argument to forward-word, backward-word, forward-to-indentation | 3747 | ** New function `get-char-property-and-overlay' accepts the same |
| 3408 | and backward-to-indentation is now optional, and defaults to 1. | 3748 | arguments as `get-char-property' and returns a cons whose car is the |
| 3749 | return value of `get-char-property' called with those arguments and | ||
| 3750 | whose cdr is the overlay in which the property was found, or nil if | ||
| 3751 | it was found as a text property or not found at all. | ||
| 3752 | |||
| 3753 | +++ | ||
| 3754 | ** The new frame parameter `tty-color-mode' specifies the mode to use | ||
| 3755 | for color support on character terminal frames. Its value can be a | ||
| 3756 | number of colors to support, or a symbol. See the Emacs Lisp | ||
| 3757 | Reference manual for more detailed documentation. | ||
| 3758 | |||
| 3759 | +++ | ||
| 3760 | ** The new face attribute `min-colors' can be used to tailor the face | ||
| 3761 | color to the number of colors supported by a display, and define the | ||
| 3762 | foreground and background colors accordingly so that they look best on | ||
| 3763 | a terminal that supports at least this many colors. This is now the | ||
| 3764 | preferred method for defining default faces in a way that makes a good | ||
| 3765 | use of the capabilities of the display. | ||
| 3409 | 3766 | ||
| 3410 | +++ | 3767 | +++ |
| 3411 | ** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able | 3768 | ** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able |
| @@ -3416,84 +3773,25 @@ Fontsets can specify a font on a per-character basis; when the fontset | |||
| 3416 | does that, this value may not be accurate. | 3773 | does that, this value may not be accurate. |
| 3417 | 3774 | ||
| 3418 | +++ | 3775 | +++ |
| 3419 | ** The new function `window-inside-edges' returns the edges of the | 3776 | ** New function display-supports-face-attributes-p may be used to test |
| 3420 | actual text portion of the window, not including the scroll bar or | 3777 | whether a given set of face attributes is actually displayable. |
| 3421 | divider line, the fringes, the display margins, the header line and | ||
| 3422 | the mode line. | ||
| 3423 | |||
| 3424 | +++ | ||
| 3425 | ** The new functions `window-pixel-edges' and `window-inside-pixel-edges' | ||
| 3426 | return window edges in units of pixels, rather than columns and lines. | ||
| 3427 | |||
| 3428 | +++ | ||
| 3429 | ** The kill-buffer-hook is now permanent-local. | ||
| 3430 | |||
| 3431 | +++ | ||
| 3432 | ** `select-window' takes an optional second argument `norecord', like | ||
| 3433 | `switch-to-buffer'. | ||
| 3434 | |||
| 3435 | +++ | ||
| 3436 | ** The new macro `with-selected-window' temporarily switches the | ||
| 3437 | selected window without impacting the order of buffer-list. | ||
| 3438 | |||
| 3439 | +++ | ||
| 3440 | ** The `keymap' property now also works at the ends of overlays and | ||
| 3441 | text-properties, according to their stickiness. This also means that it | ||
| 3442 | works with empty overlays. The same hold for the `local-map' property. | ||
| 3443 | 3778 | ||
| 3444 | +++ | 3779 | A new predicate `supports' has also been added to the `defface' face |
| 3445 | ** (map-keymap FUNCTION KEYMAP) applies the function to each binding | 3780 | specification language, which can be used to do this test for faces |
| 3446 | in the keymap. | 3781 | defined with defface. |
| 3447 | 3782 | ||
| 3448 | --- | 3783 | --- |
| 3449 | ** VC changes for backends: | 3784 | ** The special treatment of faces whose names are of the form `fg:COLOR' |
| 3450 | *** (vc-switches BACKEND OPERATION) is a new function for use by backends. | 3785 | or `bg:COLOR' has been removed. Lisp programs should use the |
| 3451 | *** The new `find-version' backend function replaces the `destfile' | 3786 | `defface' facility for defining faces with specific colors, or use |
| 3452 | parameter of the `checkout' backend function. | 3787 | the feature of specifying the face attributes :foreground and :background |
| 3453 | Old code still works thanks to a default `find-version' behavior that | 3788 | directly in the `face' property instead of using a named face. |
| 3454 | uses the old `destfile' parameter. | ||
| 3455 | |||
| 3456 | +++ | ||
| 3457 | ** The new macro dynamic-completion-table supports using functions | ||
| 3458 | as a dynamic completion table. | ||
| 3459 | |||
| 3460 | (dynamic-completion-table FUN) | ||
| 3461 | |||
| 3462 | FUN is called with one argument, the string for which completion is required, | ||
| 3463 | and it should return an alist containing all the intended possible | ||
| 3464 | completions. This alist may be a full list of possible completions so that FUN | ||
| 3465 | can ignore the value of its argument. If completion is performed in the | ||
| 3466 | minibuffer, FUN will be called in the buffer from which the minibuffer was | ||
| 3467 | entered. dynamic-completion-table then computes the completion. | ||
| 3468 | |||
| 3469 | +++ | ||
| 3470 | ** The new macro lazy-completion-table initializes a variable | ||
| 3471 | as a lazy completion table. | ||
| 3472 | |||
| 3473 | (lazy-completion-table VAR FUN &rest ARGS) | ||
| 3474 | |||
| 3475 | If the completion table VAR is used for the first time (e.g., by passing VAR | ||
| 3476 | as an argument to `try-completion'), the function FUN is called with arguments | ||
| 3477 | ARGS. FUN must return the completion table that will be stored in VAR. If | ||
| 3478 | completion is requested in the minibuffer, FUN will be called in the buffer | ||
| 3479 | from which the minibuffer was entered. The return value of | ||
| 3480 | `lazy-completion-table' must be used to initialize the value of VAR. | ||
| 3481 | |||
| 3482 | +++ | ||
| 3483 | ** `minor-mode-list' now holds a list of minor mode commands. | ||
| 3484 | |||
| 3485 | +++ | ||
| 3486 | ** The new function `modify-all-frames-parameters' modifies parameters | ||
| 3487 | for all (existing and future) frames. | ||
| 3488 | |||
| 3489 | +++ | ||
| 3490 | ** `sit-for' can now be called with args (SECONDS &optional NODISP). | ||
| 3491 | |||
| 3492 | +++ | ||
| 3493 | ** New standard font-lock face `font-lock-preprocessor-face'. | ||
| 3494 | 3789 | ||
| 3495 | +++ | 3790 | +++ |
| 3496 | ** The macro `with-syntax-table' does not copy the table any more. | 3791 | ** The first face specification element in a defface can specify |
| 3792 | `default' instead of frame classification. Then its attributes act as | ||
| 3793 | defaults that apply to all the subsequent cases (and may be overridden | ||
| 3794 | by them). | ||
| 3497 | 3795 | ||
| 3498 | +++ | 3796 | +++ |
| 3499 | ** The variable `face-font-rescale-alist' specifies how much larger | 3797 | ** The variable `face-font-rescale-alist' specifies how much larger |
| @@ -3502,342 +3800,172 @@ for all (existing and future) frames. | |||
| 3502 | point, we actually use a font of 13 point if the font matches | 3800 | point, we actually use a font of 13 point if the font matches |
| 3503 | SOME-FONTNAME-PATTERN. | 3801 | SOME-FONTNAME-PATTERN. |
| 3504 | 3802 | ||
| 3505 | +++ | ||
| 3506 | ** The function `number-sequence' returns a list of equally-separated | ||
| 3507 | numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). | ||
| 3508 | By default, the separation is 1, but you can specify a different separation | ||
| 3509 | as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). | ||
| 3510 | |||
| 3511 | +++ | ||
| 3512 | ** `file-chase-links' now takes an optional second argument LIMIT which | ||
| 3513 | specifies the maximum number of links to chase through. If after that | ||
| 3514 | many iterations the file name obtained is still a symbolic link, | ||
| 3515 | `file-chase-links' returns it anyway. | ||
| 3516 | |||
| 3517 | --- | 3803 | --- |
| 3518 | ** `set-fontset-font', `fontset-info', `fontset-font' now operate on | 3804 | ** `set-fontset-font', `fontset-info', `fontset-font' now operate on |
| 3519 | the default fontset if the argument NAME is nil.. | 3805 | the default fontset if the argument NAME is nil.. |
| 3520 | 3806 | ||
| 3521 | +++ | ||
| 3522 | ** The escape sequence \s is now interpreted as a SPACE character, | ||
| 3523 | unless it is followed by a `-' in a character constant (e.g. ?\s-A), | ||
| 3524 | in which case it is still interpreted as the super modifier. | ||
| 3525 | In strings, \s is always interpreted as a space. | ||
| 3526 | |||
| 3527 | +++ | ||
| 3528 | ** New function `set-process-filter-multibyte' sets the multibyteness | ||
| 3529 | of a string given to a process's filter. | ||
| 3530 | |||
| 3531 | +++ | ||
| 3532 | ** New function `process-filter-multibyte-p' returns t if | ||
| 3533 | a string given to a process's filter is multibyte. | ||
| 3534 | |||
| 3535 | +++ | ||
| 3536 | ** A filter function of a process is called with a multibyte string if | ||
| 3537 | the filter's multibyteness is t. That multibyteness is decided by the | ||
| 3538 | value of `default-enable-multibyte-characters' when the process is | ||
| 3539 | created and can be changed later by `set-process-filter-multibyte'. | ||
| 3540 | |||
| 3541 | +++ | ||
| 3542 | ** If a process's coding system is raw-text or no-conversion and its | ||
| 3543 | buffer is multibyte, the output of the process is at first converted | ||
| 3544 | to multibyte by `string-to-multibyte' then inserted in the buffer. | ||
| 3545 | Previously, it was converted to multibyte by `string-as-multibyte', | ||
| 3546 | which was not compatible with the behavior of file reading. | ||
| 3547 | |||
| 3548 | +++ | ||
| 3549 | ** New function `string-to-multibyte' converts a unibyte string to a | ||
| 3550 | multibyte string with the same individual character codes. | ||
| 3551 | |||
| 3552 | +++ | ||
| 3553 | ** New variables `gc-elapsed' and `gcs-done' provide extra information | ||
| 3554 | on garbage collection. | ||
| 3555 | |||
| 3556 | +++ | ||
| 3557 | ** New function `decode-coding-inserted-region' decodes a region as if | ||
| 3558 | it is read from a file without decoding. | ||
| 3559 | |||
| 3560 | +++ | ||
| 3561 | ** New function `locale-info' accesses locale information. | ||
| 3562 | |||
| 3563 | +++ | ||
| 3564 | ** `save-selected-window' now saves and restores the selected window | ||
| 3565 | of every frame. This way, it restores everything that can be changed | ||
| 3566 | by calling `select-window'. | ||
| 3567 | |||
| 3568 | --- | 3807 | --- |
| 3569 | ** `easy-menu-define' now allows you to use nil for the symbol name | 3808 | ** The function face-differs-from-default-p now truly checks whether the |
| 3570 | if you don't need to give the menu a name. If you install the menu | 3809 | given face displays differently from the default face or not (previously |
| 3571 | into other keymaps right away (MAPS is non-nil), it usually doesn't | 3810 | it did only a very cursory check). |
| 3572 | need to have a name. | ||
| 3573 | |||
| 3574 | ** Byte compiler changes: | ||
| 3575 | |||
| 3576 | --- | ||
| 3577 | *** `(featurep 'xemacs)' is treated by the compiler as nil. This | ||
| 3578 | helps to avoid noisy compiler warnings in code meant to run under both | ||
| 3579 | Emacs and XEmacs and may sometimes make the result significantly more | ||
| 3580 | efficient. Since byte code from recent versions of XEmacs won't | ||
| 3581 | generally run in Emacs and vice versa, this optimization doesn't lose | ||
| 3582 | you anything. | ||
| 3583 | 3811 | ||
| 3584 | +++ | 3812 | +++ |
| 3585 | *** You can avoid warnings for possibly-undefined symbols with a | 3813 | ** face-attribute, face-foreground, face-background, and face-stipple now |
| 3586 | simple convention that the compiler understands. (This is mostly | 3814 | accept a new optional argument, INHERIT, which controls how face |
| 3587 | useful in code meant to be portable to different Emacs versions.) | 3815 | inheritance is used when determining the value of a face attribute. |
| 3588 | Write forms like the following, or code that macroexpands into such | ||
| 3589 | forms: | ||
| 3590 | |||
| 3591 | (if (fboundp 'foo) <then> <else>) | ||
| 3592 | (if (boundp 'foo) <then> <else) | ||
| 3593 | |||
| 3594 | In the first case, using `foo' as a function inside the <then> form | ||
| 3595 | won't produce a warning if it's not defined as a function, and in the | ||
| 3596 | second case, using `foo' as a variable won't produce a warning if it's | ||
| 3597 | unbound. The test must be in exactly one of the above forms (after | ||
| 3598 | macro expansion), but such tests may be nested. Note that `when' and | ||
| 3599 | `unless' expand to `if', but `cond' doesn't. | ||
| 3600 | 3816 | ||
| 3601 | +++ | 3817 | +++ |
| 3602 | *** The new macro `with-no-warnings' suppresses all compiler warnings | 3818 | ** New functions face-attribute-relative-p and merge-face-attribute |
| 3603 | inside its body. In terms of execution, it is equivalent to `progn'. | 3819 | help with handling relative face attributes. |
| 3604 | 3820 | ||
| 3605 | +++ | 3821 | +++ |
| 3606 | ** The new translation table `translation-table-for-input' | 3822 | ** The priority of faces in an :inherit attribute face-list is reversed. |
| 3607 | is used for customizing self-insertion. The character to | 3823 | If a face contains an :inherit attribute with a list of faces, earlier |
| 3608 | be inserted is translated through it. | 3824 | faces in the list override later faces in the list; in previous releases |
| 3825 | of Emacs, the order was the opposite. This change was made so that | ||
| 3826 | :inherit face-lists operate identically to face-lists in text `face' | ||
| 3827 | properties. | ||
| 3609 | 3828 | ||
| 3610 | +++ | 3829 | +++ |
| 3611 | ** `load-history' can now have elements of the form (t . FUNNAME), | 3830 | ** New standard font-lock face `font-lock-preprocessor-face'. |
| 3612 | which means FUNNAME was previously defined as an autoload (before the | ||
| 3613 | current file redefined it). | ||
| 3614 | 3831 | ||
| 3615 | +++ | 3832 | +++ |
| 3616 | ** `load-history' now records (defun . FUNNAME) when a function is | 3833 | ** New special text property `font-lock-face'. |
| 3617 | defined. For a variable, it records just the variable name. | ||
| 3618 | 3834 | ||
| 3619 | +++ | 3835 | This property acts like the `face' property, but it is controlled by |
| 3620 | ** New Lisp library testcover.el works with edebug to help you determine | 3836 | M-x font-lock-mode. It is not, strictly speaking, a builtin text |
| 3621 | whether you've tested all your Lisp code. Function testcover-start | 3837 | property. Instead, it is implemented inside font-core.el, using the |
| 3622 | instruments all functions in a given file. Then test your code. Function | 3838 | new variable `char-property-alias-alist'. |
| 3623 | testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to | ||
| 3624 | show where coverage is lacking. Command testcover-next-mark (bind it to | ||
| 3625 | a key!) will move point forward to the next spot that has a splotch. | ||
| 3626 | 3839 | ||
| 3627 | *** Normally, a red splotch indicates the form was never completely evaluated; | 3840 | --- |
| 3628 | a brown splotch means it always evaluated to the same value. The red | 3841 | ** jit-lock obeys a new text-property `jit-lock-defer-multiline'. |
| 3629 | splotches are skipped for forms that can't possibly complete their evaluation, | 3842 | If a piece of text with that property gets contextually refontified |
| 3630 | such as `error'. The brown splotches are skipped for forms that are expected | 3843 | (see jit-lock-defer-contextually), then all of that text will |
| 3631 | to always evaluate to the same value, such as (setq x 14). | 3844 | be refontified. This is useful when the syntax of a textual element |
| 3845 | depends on text several lines further down (and when font-lock-multiline | ||
| 3846 | is not appropriate to solve that problem). For example in Perl: | ||
| 3632 | 3847 | ||
| 3633 | *** For difficult cases, you can add do-nothing macros to your code to help | 3848 | s{ |
| 3634 | out the test coverage tool. The macro `noreturn' suppresses a red splotch. | 3849 | foo |
| 3635 | It is an error if the argument to `noreturn' does return. The macro 1value | 3850 | }{ |
| 3636 | suppresses a brown splotch for its argument. This macro is a no-op except | 3851 | bar |
| 3637 | during test-coverage -- then it signals an error if the argument actually | 3852 | }e |
| 3638 | returns differing values. | ||
| 3639 | 3853 | ||
| 3640 | +++ | 3854 | Adding/removing the last `e' changes the `bar' from being a piece of |
| 3641 | ** New function unsafep returns nil if the given Lisp form can't possibly | 3855 | text to being a piece of code, so you'd put a jit-lock-defer-multiline |
| 3642 | do anything dangerous; otherwise it returns a reason why the form might be | 3856 | property over the second half of the command to force (deferred) |
| 3643 | unsafe (calls dangerous function, alters global variable, etc). | 3857 | refontification of `bar' whenever the `e' is added/removed. |
| 3644 | 3858 | ||
| 3645 | +++ | 3859 | +++ |
| 3646 | ** The new variable `print-continuous-numbering', when non-nil, says | 3860 | ** font-lock can manage arbitrary text-properties beside `face'. |
| 3647 | that successive calls to print functions should use the same | 3861 | *** the FACENAME returned in font-lock-keywords can be a list |
| 3648 | numberings for circular structure references. This is only relevant | 3862 | of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set |
| 3649 | when `print-circle' is non-nil. | 3863 | other properties than `face'. |
| 3650 | 3864 | *** font-lock-extra-managed-props can be set to make sure those extra | |
| 3651 | When you bind `print-continuous-numbering' to t, you should | 3865 | properties are automatically cleaned up by font-lock. |
| 3652 | also bind `print-number-table' to nil. | ||
| 3653 | 3866 | ||
| 3654 | +++ | 3867 | --- |
| 3655 | ** When using non-toolkit scroll bars with the default width, | 3868 | ** The precedence of file-name-handlers has been changed. |
| 3656 | the scroll-bar-width frame parameter value is nil. | 3869 | Instead of blindly choosing the first handler that matches, |
| 3870 | find-file-name-handler now gives precedence to a file-name handler | ||
| 3871 | that matches near the end of the file name. More specifically, the | ||
| 3872 | handler whose (match-beginning 0) is the largest is chosen. | ||
| 3873 | In case of ties, the old "first matched" rule applies. | ||
| 3657 | 3874 | ||
| 3658 | +++ | 3875 | +++ |
| 3659 | ** The new function copy-abbrev-table returns a new abbrev table that | 3876 | ** A file name handler can declare which operations it handles. |
| 3660 | is a copy of a given abbrev table. | ||
| 3661 | 3877 | ||
| 3662 | +++ | 3878 | You do this by putting an `operation' property on the handler name |
| 3663 | ** The option --script FILE runs Emacs in batch mode and loads FILE. | 3879 | symbol. The property value should be a list of the operations that |
| 3664 | It is useful for writing Emacs Lisp shell script files, because they | 3880 | the handler really handles. It won't be called for any other |
| 3665 | can start with this line: | 3881 | operations. |
| 3666 | 3882 | ||
| 3667 | #!/usr/bin/emacs --script | 3883 | This is useful for autoloaded handlers, to prevent them from being |
| 3884 | autoloaded when not really necessary. | ||
| 3668 | 3885 | ||
| 3669 | +++ | 3886 | +++ |
| 3670 | ** The option --directory DIR now modifies `load-path' immediately. | 3887 | ** `set-auto-mode' now gives the interpreter magic line (if present) |
| 3671 | Directories are added to the front of `load-path' in the order they | 3888 | precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration |
| 3672 | appear on the command line. For example, with this command line: | 3889 | will give the buffer XML or SGML mode, based on the new var |
| 3673 | 3890 | `magic-mode-alist'. | |
| 3674 | emacs -batch -L .. -L /tmp --eval "(require 'foo)" | ||
| 3675 | |||
| 3676 | Emacs looks for library `foo' in the parent directory, then in /tmp, then | ||
| 3677 | in the other directories in `load-path'. (-L is short for --directory.) | ||
| 3678 | 3891 | ||
| 3679 | +++ | 3892 | +++ |
| 3680 | ** A function's docstring can now hold the function's usage info on | 3893 | ** Major mode functions now run the new normal hook |
| 3681 | its last line. It should match the regexp "\n\n(fn.*)\\'". | 3894 | `after-change-major-mode-hook', at their very end, after the mode hooks. |
| 3682 | 3895 | ||
| 3683 | --- | 3896 | --- |
| 3684 | ** New CCL functions `lookup-character' and `lookup-integer' access | 3897 | ** If a major mode function has a non-nil `no-clone-indirect' |
| 3685 | hash tables defined by the Lisp function `define-translation-hash-table'. | 3898 | property, `clone-indirect-buffer' signals an error if you use |
| 3899 | it in that buffer. | ||
| 3686 | 3900 | ||
| 3687 | +++ | 3901 | +++ |
| 3688 | ** The new function `minibufferp' returns non-nil if its optional buffer | 3902 | ** Major modes can define `eldoc-documentation-function' |
| 3689 | argument is a minibuffer. If the argument is omitted it defaults to | 3903 | locally to provide Eldoc functionality by some method appropriate to |
| 3690 | the current buffer. | 3904 | the language. |
| 3691 | 3905 | ||
| 3692 | +++ | 3906 | +++ |
| 3693 | ** There is a new Warnings facility; see the functions `warn' | 3907 | ** define-derived-mode by default creates a new empty abbrev table. |
| 3694 | and `display-warning'. | 3908 | It does not copy abbrevs from the parent mode's abbrev table. |
| 3695 | 3909 | ||
| 3696 | +++ | 3910 | +++ |
| 3697 | ** The functions all-completions and try-completion now accept lists | 3911 | ** define-minor-mode now accepts arbitrary additional keyword arguments |
| 3698 | of strings as well as hash-tables additionally to alists, obarrays | 3912 | and simply passes them to defcustom, if applicable. |
| 3699 | and functions. Furthermore, the function `test-completion' is now | ||
| 3700 | exported to Lisp. The keys in alists and hash tables may be either | ||
| 3701 | strings or symbols, which are automatically converted with to strings. | ||
| 3702 | |||
| 3703 | --- | ||
| 3704 | ** When pure storage overflows while dumping, Emacs now prints how | ||
| 3705 | much pure storage it will approximately need. | ||
| 3706 | 3913 | ||
| 3707 | +++ | 3914 | +++ |
| 3708 | ** The new variable `auto-coding-functions' lets you specify functions | 3915 | ** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' |
| 3709 | to examine a file being visited and deduce the proper coding system | 3916 | are used by define-derived-mode to make sure the mode hook for the |
| 3710 | for it. (If the coding system is detected incorrectly for a specific | 3917 | parent mode is run at the end of the child mode. |
| 3711 | file, you can put a `coding:' tags to override it.) | ||
| 3712 | |||
| 3713 | --- | ||
| 3714 | ** The new function `merge-coding-systems' fills in unspecified aspects | ||
| 3715 | of one coding system from another coding system. | ||
| 3716 | 3918 | ||
| 3717 | +++ | 3919 | +++ |
| 3718 | ** The variable `safe-local-eval-forms' specifies a list of forms that | 3920 | ** `minor-mode-list' now holds a list of minor mode commands. |
| 3719 | are ok to evaluate when they appear in an `eval' local variables | ||
| 3720 | specification. Normally Emacs asks for confirmation before evaluating | ||
| 3721 | such a form, but if the form appears in this list, no confirmation is | ||
| 3722 | needed. | ||
| 3723 | |||
| 3724 | --- | ||
| 3725 | ** If a function has a non-nil `safe-local-eval-function' property, | ||
| 3726 | that means it is ok to evaluate some calls to that function when it | ||
| 3727 | appears in an `eval' local variables specification. If the property | ||
| 3728 | is t, then any form calling that function with constant arguments is | ||
| 3729 | ok. If the property is a function or list of functions, they are called | ||
| 3730 | with the form as argument, and if any returns t, the form is ok to call. | ||
| 3731 | |||
| 3732 | If the form is not "ok to call", that means Emacs asks for | ||
| 3733 | confirmation as before. | ||
| 3734 | 3921 | ||
| 3735 | +++ | 3922 | +++ |
| 3736 | ** Controlling the default left and right fringe widths. | 3923 | ** Both the variable and the function `disabled-command-hook' have |
| 3737 | 3924 | been renamed to `disabled-command-function'. The variable | |
| 3738 | The default left and right fringe widths for all windows of a frame | 3925 | `disabled-command-hook' has been kept as an obsolete alias. |
| 3739 | can now be controlled by setting the `left-fringe' and `right-fringe' | ||
| 3740 | frame parameters to an integer value specifying the width in pixels. | ||
| 3741 | Setting the width to 0 effectively removes the corresponding fringe. | ||
| 3742 | |||
| 3743 | The actual default fringe widths for the frame may deviate from the | ||
| 3744 | specified widths, since the combined fringe widths must match an | ||
| 3745 | integral number of columns. The extra width is distributed evenly | ||
| 3746 | between the left and right fringe. For force a specific fringe width, | ||
| 3747 | specify the width as a negative integer (if both widths are negative, | ||
| 3748 | only the left fringe gets the specified width). | ||
| 3749 | |||
| 3750 | Setting the width to nil (the default), restores the default fringe | ||
| 3751 | width which is the minimum number of pixels necessary to display any | ||
| 3752 | of the currently defined fringe bitmaps. The width of the built-in | ||
| 3753 | fringe bitmaps is 8 pixels. | ||
| 3754 | 3926 | ||
| 3755 | +++ | 3927 | +++ |
| 3756 | ** Per-window fringes settings | 3928 | ** The function `eql' is now available without requiring the CL package. |
| 3757 | |||
| 3758 | Windows can now have their own individual fringe widths and position | ||
| 3759 | settings. | ||
| 3760 | |||
| 3761 | To control the fringe widths of a window, either set the buffer-local | ||
| 3762 | variables `left-fringe-width', `right-fringe-width', or call | ||
| 3763 | `set-window-fringes'. | ||
| 3764 | |||
| 3765 | To control the fringe position in a window, that is, whether fringes | ||
| 3766 | are positioned between the display margins and the window's text area, | ||
| 3767 | or at the edges of the window, either set the buffer-local variable | ||
| 3768 | `fringes-outside-margins' or call `set-window-fringes'. | ||
| 3769 | |||
| 3770 | The function `window-fringes' can be used to obtain the current | ||
| 3771 | settings. To make `left-fringe-width', `right-fringe-width', and | ||
| 3772 | `fringes-outside-margins' take effect, you must set them before | ||
| 3773 | displaying the buffer in a window, or use `set-window-buffer' to force | ||
| 3774 | an update of the display margins. | ||
| 3775 | 3929 | ||
| 3776 | +++ | 3930 | +++ |
| 3777 | ** Per-window vertical scroll-bar settings | 3931 | ** If optional third argument APPEND to `add-to-list' is non-nil, a |
| 3778 | 3932 | new element gets added at the end of the list instead of at the | |
| 3779 | Windows can now have their own individual scroll-bar settings | 3933 | beginning. This change actually occurred in Emacs-21.1, but was not |
| 3780 | controlling the width and position of scroll-bars. | 3934 | documented. |
| 3781 | |||
| 3782 | To control the scroll-bar of a window, either set the buffer-local | ||
| 3783 | variables `scroll-bar-mode' and `scroll-bar-width', or call | ||
| 3784 | `set-window-scroll-bars'. The function `window-scroll-bars' can be | ||
| 3785 | used to obtain the current settings. To make `scroll-bar-mode' and | ||
| 3786 | `scroll-bar-width' take effect, you must set them before displaying | ||
| 3787 | the buffer in a window, or use `set-window-buffer' to force an update | ||
| 3788 | of the display margins. | ||
| 3789 | 3935 | ||
| 3790 | +++ | 3936 | +++ |
| 3791 | ** The function `set-window-buffer' now has an optional third argument | 3937 | ** The escape sequence \s is now interpreted as a SPACE character, |
| 3792 | KEEP-MARGINS which will preserve the window's current margin, fringe, | 3938 | unless it is followed by a `-' in a character constant (e.g. ?\s-A), |
| 3793 | and scroll-bar settings if non-nil. | 3939 | in which case it is still interpreted as the super modifier. |
| 3940 | In strings, \s is always interpreted as a space. | ||
| 3794 | 3941 | ||
| 3795 | +++ | 3942 | +++ |
| 3796 | ** Renamed hooks to better follow the naming convention: | 3943 | ** A hex escape in a string forces the string to be multibyte. |
| 3797 | find-file-hooks to find-file-hook, | 3944 | An octal escape makes it unibyte. |
| 3798 | find-file-not-found-hooks to find-file-not-found-functions, | ||
| 3799 | write-file-hooks to write-file-functions, | ||
| 3800 | write-contents-hooks to write-contents-functions, | ||
| 3801 | x-lost-selection-hooks to x-lost-selection-functions, | ||
| 3802 | x-sent-selection-hooks to x-sent-selection-functions. | ||
| 3803 | Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). | ||
| 3804 | 3945 | ||
| 3805 | +++ | 3946 | +++ |
| 3806 | ** The new variable `delete-frame-functions' replaces `delete-frame-hook'. | 3947 | ** `split-string' now includes null substrings in the returned list if |
| 3807 | It was renamed to follow the naming conventions for abnormal hooks. The old | 3948 | the optional argument SEPARATORS is non-nil and there are matches for |
| 3808 | name remains available as an alias, but has been marked obsolete. | 3949 | SEPARATORS at the beginning or end of the string. If SEPARATORS is |
| 3950 | nil, or if the new optional third argument OMIT-NULLS is non-nil, all | ||
| 3951 | empty matches are omitted from the returned list. | ||
| 3809 | 3952 | ||
| 3810 | +++ | 3953 | +++ |
| 3811 | ** The `read-file-name' function now takes an additional argument which | 3954 | ** New function `string-to-multibyte' converts a unibyte string to a |
| 3812 | specifies a predicate which the file name read must satify. The | 3955 | multibyte string with the same individual character codes. |
| 3813 | new variable `read-file-name-predicate' contains the predicate argument | ||
| 3814 | while reading the file name from the minibuffer; the predicate in this | ||
| 3815 | variable is used by read-file-name-internal to filter the completion list. | ||
| 3816 | |||
| 3817 | --- | ||
| 3818 | ** The new variable `read-file-name-function' can be used by lisp code | ||
| 3819 | to override the internal read-file-name function. | ||
| 3820 | 3956 | ||
| 3821 | +++ | 3957 | +++ |
| 3822 | ** The new variable `read-file-name-completion-ignore-case' specifies | 3958 | ** The function `number-sequence' returns a list of equally-separated |
| 3823 | whether completion ignores case when reading a file name with the | 3959 | numbers. For instance, (number-sequence 4 9) returns (4 5 6 7 8 9). |
| 3824 | `read-file-name' function. | 3960 | By default, the separation is 1, but you can specify a different separation |
| 3961 | as the third argument. (number-sequence 1.5 6 2) returns (1.5 3.5 5.5). | ||
| 3825 | 3962 | ||
| 3826 | +++ | 3963 | +++ |
| 3827 | ** The new function `read-directory-name' can be used instead of | 3964 | ** `sit-for' can now be called with args (SECONDS &optional NODISP). |
| 3828 | `read-file-name' to read a directory name; when used, completion | ||
| 3829 | will only show directories. | ||
| 3830 | 3965 | ||
| 3831 | +++ | 3966 | +++ |
| 3832 | ** The new function `file-remote-p' tests a file name and returns | 3967 | ** A function's docstring can now hold the function's usage info on |
| 3833 | non-nil if it specifies a remote file (one that Emacs accesses using | 3968 | its last line. It should match the regexp "\n\n(fn.*)\\'". |
| 3834 | its own special methods and not directly through the file system). | ||
| 3835 | The value in that case is an identifier for the remote file system. | ||
| 3836 | |||
| 3837 | --- | ||
| 3838 | ** When a Lisp file uses CL functions at run-time, compiling the file | ||
| 3839 | now issues warnings about these calls, unless the file performs | ||
| 3840 | (require 'cl) when loaded. | ||
| 3841 | 3969 | ||
| 3842 | +++ | 3970 | +++ |
| 3843 | ** The `defmacro' form may contain declarations specifying how to | 3971 | ** The `defmacro' form may contain declarations specifying how to |
| @@ -3857,407 +3985,209 @@ declaration specifiers supported are: | |||
| 3857 | equivalent to writing a `def-edebug-spec' for the macro. | 3985 | equivalent to writing a `def-edebug-spec' for the macro. |
| 3858 | 3986 | ||
| 3859 | +++ | 3987 | +++ |
| 3860 | ** Interactive commands can be remapped through keymaps. | 3988 | ** The functions all-completions and try-completion now accept lists |
| 3861 | 3989 | of strings as well as hash-tables additionally to alists, obarrays | |
| 3862 | This is an alternative to using defadvice or substitute-key-definition | 3990 | and functions. Furthermore, the function `test-completion' is now |
| 3863 | to modify the behavior of a key binding using the normal keymap | 3991 | exported to Lisp. The keys in alists and hash tables may be either |
| 3864 | binding and lookup functionality. | 3992 | strings or symbols, which are automatically converted with to strings. |
| 3865 | |||
| 3866 | When a key sequence is bound to a command, and that command is | ||
| 3867 | remapped to another command, that command is run instead of the | ||
| 3868 | original command. | ||
| 3869 | |||
| 3870 | Example: | ||
| 3871 | Suppose that minor mode my-mode has defined the commands | ||
| 3872 | my-kill-line and my-kill-word, and it wants C-k (and any other key | ||
| 3873 | bound to kill-line) to run the command my-kill-line instead of | ||
| 3874 | kill-line, and likewise it wants to run my-kill-word instead of | ||
| 3875 | kill-word. | ||
| 3876 | |||
| 3877 | Instead of rebinding C-k and the other keys in the minor mode map, | ||
| 3878 | command remapping allows you to directly map kill-line into | ||
| 3879 | my-kill-line and kill-word into my-kill-word through the minor mode | ||
| 3880 | map using define-key: | ||
| 3881 | |||
| 3882 | (define-key my-mode-map [remap kill-line] 'my-kill-line) | ||
| 3883 | (define-key my-mode-map [remap kill-word] 'my-kill-word) | ||
| 3884 | |||
| 3885 | Now, when my-mode is enabled, and the user enters C-k or M-d, | ||
| 3886 | the commands my-kill-line and my-kill-word are run. | ||
| 3887 | |||
| 3888 | Notice that only one level of remapping is supported. In the above | ||
| 3889 | example, this means that if my-kill-line is remapped to other-kill, | ||
| 3890 | then C-k still runs my-kill-line. | ||
| 3891 | |||
| 3892 | The following changes have been made to provide command remapping: | ||
| 3893 | |||
| 3894 | - Command remappings are defined using `define-key' with a prefix-key | ||
| 3895 | `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | ||
| 3896 | to definition DEF in keymap MAP. The definition is not limited to | ||
| 3897 | another command; it can be anything accepted for a normal binding. | ||
| 3898 | |||
| 3899 | - The new function `command-remapping' returns the binding for a | ||
| 3900 | remapped command in the current keymaps, or nil if not remapped. | ||
| 3901 | |||
| 3902 | - key-binding now remaps interactive commands unless the optional | ||
| 3903 | third argument NO-REMAP is non-nil. | ||
| 3904 | |||
| 3905 | - where-is-internal now returns nil for a remapped command (e.g. | ||
| 3906 | kill-line if my-mode is enabled), and the actual key binding for | ||
| 3907 | the command it is remapped to (e.g. C-k for my-kill-line). | ||
| 3908 | It also has a new optional fifth argument, NO-REMAP, which inhibits | ||
| 3909 | remapping if non-nil (e.g. it returns C-k for kill-line and | ||
| 3910 | <kill-line> for my-kill-line). | ||
| 3911 | |||
| 3912 | - The new variable `this-original-command' contains the original | ||
| 3913 | command before remapping. It is equal to `this-command' when the | ||
| 3914 | command was not remapped. | ||
| 3915 | |||
| 3916 | +++ | ||
| 3917 | ** New variable emulation-mode-map-alists. | ||
| 3918 | |||
| 3919 | Lisp packages using many minor mode keymaps can now maintain their own | ||
| 3920 | keymap alist separate from minor-mode-map-alist by adding their keymap | ||
| 3921 | alist to this list. | ||
| 3922 | 3993 | ||
| 3923 | +++ | 3994 | +++ |
| 3924 | ** Atomic change groups. | 3995 | ** The new macro dynamic-completion-table supports using functions |
| 3925 | 3996 | as a dynamic completion table. | |
| 3926 | To perform some changes in the current buffer "atomically" so that | ||
| 3927 | they either all succeed or are all undone, use `atomic-change-group' | ||
| 3928 | around the code that makes changes. For instance: | ||
| 3929 | |||
| 3930 | (atomic-change-group | ||
| 3931 | (insert foo) | ||
| 3932 | (delete-region x y)) | ||
| 3933 | |||
| 3934 | If an error (or other nonlocal exit) occurs inside the body of | ||
| 3935 | `atomic-change-group', it unmakes all the changes in that buffer that | ||
| 3936 | were during the execution of the body. The change group has no effect | ||
| 3937 | on any other buffers--any such changes remain. | ||
| 3938 | |||
| 3939 | If you need something more sophisticated, you can directly call the | ||
| 3940 | lower-level functions that `atomic-change-group' uses. Here is how. | ||
| 3941 | |||
| 3942 | To set up a change group for one buffer, call `prepare-change-group'. | ||
| 3943 | Specify the buffer as argument; it defaults to the current buffer. | ||
| 3944 | This function returns a "handle" for the change group. You must save | ||
| 3945 | the handle to activate the change group and then finish it. | ||
| 3946 | |||
| 3947 | Before you change the buffer again, you must activate the change | ||
| 3948 | group. Pass the handle to `activate-change-group' afterward to | ||
| 3949 | do this. | ||
| 3950 | |||
| 3951 | After you make the changes, you must finish the change group. You can | ||
| 3952 | either accept the changes or cancel them all. Call | ||
| 3953 | `accept-change-group' to accept the changes in the group as final; | ||
| 3954 | call `cancel-change-group' to undo them all. | ||
| 3955 | |||
| 3956 | You should use `unwind-protect' to make sure the group is always | ||
| 3957 | finished. The call to `activate-change-group' should be inside the | ||
| 3958 | `unwind-protect', in case the user types C-g just after it runs. | ||
| 3959 | (This is one reason why `prepare-change-group' and | ||
| 3960 | `activate-change-group' are separate functions.) Once you finish the | ||
| 3961 | group, don't use the handle again--don't try to finish the same group | ||
| 3962 | twice. | ||
| 3963 | |||
| 3964 | To make a multibuffer change group, call `prepare-change-group' once | ||
| 3965 | for each buffer you want to cover, then use `nconc' to combine the | ||
| 3966 | returned values, like this: | ||
| 3967 | |||
| 3968 | (nconc (prepare-change-group buffer-1) | ||
| 3969 | (prepare-change-group buffer-2)) | ||
| 3970 | 3997 | ||
| 3971 | You can then activate the multibuffer change group with a single call | 3998 | (dynamic-completion-table FUN) |
| 3972 | to `activate-change-group', and finish it with a single call to | ||
| 3973 | `accept-change-group' or `cancel-change-group'. | ||
| 3974 | 3999 | ||
| 3975 | Nested use of several change groups for the same buffer works as you | 4000 | FUN is called with one argument, the string for which completion is required, |
| 3976 | would expect. Non-nested use of change groups for the same buffer | 4001 | and it should return an alist containing all the intended possible |
| 3977 | will lead to undesirable results, so don't let it happen; the first | 4002 | completions. This alist may be a full list of possible completions so that FUN |
| 3978 | change group you start for any given buffer should be the last one | 4003 | can ignore the value of its argument. If completion is performed in the |
| 3979 | finished. | 4004 | minibuffer, FUN will be called in the buffer from which the minibuffer was |
| 4005 | entered. dynamic-completion-table then computes the completion. | ||
| 3980 | 4006 | ||
| 3981 | +++ | 4007 | +++ |
| 3982 | ** New variable char-property-alias-alist. | 4008 | ** The new macro lazy-completion-table initializes a variable |
| 3983 | 4009 | as a lazy completion table. | |
| 3984 | This variable allows you to create alternative names for text | ||
| 3985 | properties. It works at the same level as `default-text-properties', | ||
| 3986 | although it applies to overlays as well. This variable was introduced | ||
| 3987 | to implement the `font-lock-face' property. | ||
| 3988 | 4010 | ||
| 3989 | +++ | 4011 | (lazy-completion-table VAR FUN &rest ARGS) |
| 3990 | ** New special text property `font-lock-face'. | ||
| 3991 | 4012 | ||
| 3992 | This property acts like the `face' property, but it is controlled by | 4013 | If the completion table VAR is used for the first time (e.g., by passing VAR |
| 3993 | M-x font-lock-mode. It is not, strictly speaking, a builtin text | 4014 | as an argument to `try-completion'), the function FUN is called with arguments |
| 3994 | property. Instead, it is implemented inside font-core.el, using the | 4015 | ARGS. FUN must return the completion table that will be stored in VAR. If |
| 3995 | new variable `char-property-alias-alist'. | 4016 | completion is requested in the minibuffer, FUN will be called in the buffer |
| 4017 | from which the minibuffer was entered. The return value of | ||
| 4018 | `lazy-completion-table' must be used to initialize the value of VAR. | ||
| 3996 | 4019 | ||
| 3997 | +++ | 4020 | +++ |
| 3998 | ** New function remove-list-of-text-properties. | 4021 | ** `load-history' can now have elements of the form (t . FUNNAME), |
| 3999 | 4022 | which means FUNNAME was previously defined as an autoload (before the | |
| 4000 | The new function `remove-list-of-text-properties' is almost the same | 4023 | current file redefined it). |
| 4001 | as `remove-text-properties'. The only difference is that it takes | ||
| 4002 | a list of property names as argument rather than a property list. | ||
| 4003 | 4024 | ||
| 4004 | +++ | 4025 | +++ |
| 4005 | ** New function insert-for-yank. | 4026 | ** `load-history' now records (defun . FUNNAME) when a function is |
| 4027 | defined. For a variable, it records just the variable name. | ||
| 4006 | 4028 | ||
| 4007 | This function normally works like `insert' but removes the text | 4029 | --- |
| 4008 | properties in the `yank-excluded-properties' list. However, if the | 4030 | ** The variable `recursive-load-depth-limit' has been deleted. |
| 4009 | inserted text has a `yank-handler' text property on the first | 4031 | Emacs now signals an error if the same file is loaded with more |
| 4010 | character of the string, the insertion of the text may be modified in | 4032 | than 3 levels of nesting. |
| 4011 | a number of ways. See the description of `yank-handler' below. | ||
| 4012 | 4033 | ||
| 4013 | +++ | 4034 | +++ |
| 4014 | ** New function insert-buffer-substring-as-yank. | 4035 | ** The function symbol-file can now search specifically for function or |
| 4015 | 4036 | variable definitions. | |
| 4016 | This function works like `insert-buffer-substring', but removes the | ||
| 4017 | text properties in the `yank-excluded-properties' list. | ||
| 4018 | 4037 | ||
| 4019 | +++ | 4038 | +++ |
| 4020 | ** New function insert-buffer-substring-no-properties. | 4039 | ** `provide' and `featurep' now accept an optional second argument |
| 4040 | to test/provide subfeatures. Also `provide' now checks `after-load-alist' | ||
| 4041 | and runs any code associated with the provided feature. | ||
| 4021 | 4042 | ||
| 4022 | This function is like insert-buffer-substring, but removes all | 4043 | +++ |
| 4023 | text properties from the inserted substring. | 4044 | ** `declare' is now a macro. This change was made mostly for |
| 4045 | documentation purposes and should have no real effect on Lisp code. | ||
| 4024 | 4046 | ||
| 4025 | +++ | 4047 | +++ |
| 4026 | ** New `yank-handler' text property may be used to control how | 4048 | ** Byte compiler changes: |
| 4027 | previously killed text on the kill-ring is reinserted. | ||
| 4028 | 4049 | ||
| 4029 | The value of the yank-handler property must be a list with one to four | 4050 | *** The byte-compiler now displays the actual line and character |
| 4030 | elements with the following format: | 4051 | position of errors, where possible. Additionally, the form of its |
| 4031 | (FUNCTION PARAM NOEXCLUDE UNDO). | 4052 | warning and error messages have been brought more in line with the |
| 4053 | output of other GNU tools. | ||
| 4032 | 4054 | ||
| 4033 | The `insert-for-yank' function looks for a yank-handler property on | 4055 | *** The new macro `with-no-warnings' suppresses all compiler warnings |
| 4034 | the first character on its string argument (typically the first | 4056 | inside its body. In terms of execution, it is equivalent to `progn'. |
| 4035 | element on the kill-ring). If a yank-handler property is found, | ||
| 4036 | the normal behavior of `insert-for-yank' is modified in various ways: | ||
| 4037 | 4057 | ||
| 4038 | When FUNCTION is present and non-nil, it is called instead of `insert' | 4058 | *** You can avoid warnings for possibly-undefined symbols with a |
| 4039 | to insert the string. FUNCTION takes one argument--the object to insert. | 4059 | simple convention that the compiler understands. (This is mostly |
| 4040 | If PARAM is present and non-nil, it replaces STRING as the object | 4060 | useful in code meant to be portable to different Emacs versions.) |
| 4041 | passed to FUNCTION (or `insert'); for example, if FUNCTION is | 4061 | Write forms like the following, or code that macroexpands into such |
| 4042 | `yank-rectangle', PARAM should be a list of strings to insert as a | 4062 | forms: |
| 4043 | rectangle. | ||
| 4044 | If NOEXCLUDE is present and non-nil, the normal removal of the | ||
| 4045 | yank-excluded-properties is not performed; instead FUNCTION is | ||
| 4046 | responsible for removing those properties. This may be necessary | ||
| 4047 | if FUNCTION adjusts point before or after inserting the object. | ||
| 4048 | If UNDO is present and non-nil, it is a function that will be called | ||
| 4049 | by `yank-pop' to undo the insertion of the current object. It is | ||
| 4050 | called with two arguments, the start and end of the current region. | ||
| 4051 | FUNCTION may set `yank-undo-function' to override the UNDO value. | ||
| 4052 | 4063 | ||
| 4053 | +++ | 4064 | (if (fboundp 'foo) <then> <else>) |
| 4054 | *** The functions kill-new, kill-append, and kill-region now have an | 4065 | (if (boundp 'foo) <then> <else) |
| 4055 | optional argument to specify the yank-handler text property to put on | ||
| 4056 | the killed text. | ||
| 4057 | 4066 | ||
| 4058 | +++ | 4067 | In the first case, using `foo' as a function inside the <then> form |
| 4059 | *** The function yank-pop will now use a non-nil value of the variable | 4068 | won't produce a warning if it's not defined as a function, and in the |
| 4060 | `yank-undo-function' (instead of delete-region) to undo the previous | 4069 | second case, using `foo' as a variable won't produce a warning if it's |
| 4061 | yank or yank-pop command (or a call to insert-for-yank). The function | 4070 | unbound. The test must be in exactly one of the above forms (after |
| 4062 | insert-for-yank automatically sets that variable according to the UNDO | 4071 | macro expansion), but such tests may be nested. Note that `when' and |
| 4063 | element of the string argument's yank-handler text property if present. | 4072 | `unless' expand to `if', but `cond' doesn't. |
| 4064 | 4073 | ||
| 4065 | +++ | 4074 | *** `(featurep 'xemacs)' is treated by the compiler as nil. This |
| 4066 | ** New function display-supports-face-attributes-p may be used to test | 4075 | helps to avoid noisy compiler warnings in code meant to run under both |
| 4067 | whether a given set of face attributes is actually displayable. | 4076 | Emacs and XEmacs and may sometimes make the result significantly more |
| 4077 | efficient. Since byte code from recent versions of XEmacs won't | ||
| 4078 | generally run in Emacs and vice versa, this optimization doesn't lose | ||
| 4079 | you anything. | ||
| 4068 | 4080 | ||
| 4069 | A new predicate `supports' has also been added to the `defface' face | 4081 | *** The local variable `no-byte-compile' in elisp files is now obeyed. |
| 4070 | specification language, which can be used to do this test for faces | ||
| 4071 | defined with defface. | ||
| 4072 | 4082 | ||
| 4073 | --- | 4083 | --- |
| 4074 | ** The function face-differs-from-default-p now truly checks whether the | 4084 | ** When a Lisp file uses CL functions at run-time, compiling the file |
| 4075 | given face displays differently from the default face or not (previously | 4085 | now issues warnings about these calls, unless the file performs |
| 4076 | it did only a very cursory check). | 4086 | (require 'cl) when loaded. |
| 4077 | 4087 | ||
| 4078 | +++ | 4088 | +++ |
| 4079 | ** face-attribute, face-foreground, face-background, and face-stipple now | 4089 | ** New function unsafep returns nil if the given Lisp form can't possibly |
| 4080 | accept a new optional argument, INHERIT, which controls how face | 4090 | do anything dangerous; otherwise it returns a reason why the form might be |
| 4081 | inheritance is used when determining the value of a face attribute. | 4091 | unsafe (calls dangerous function, alters global variable, etc). |
| 4082 | 4092 | ||
| 4083 | +++ | 4093 | +++ |
| 4084 | ** New functions face-attribute-relative-p and merge-face-attribute | 4094 | ** There is a new Warnings facility; see the functions `warn' |
| 4085 | help with handling relative face attributes. | 4095 | and `display-warning'. |
| 4086 | 4096 | ||
| 4087 | +++ | 4097 | --- |
| 4088 | ** The priority of faces in an :inherit attribute face-list is reversed. | 4098 | ** VC changes for backends: |
| 4089 | If a face contains an :inherit attribute with a list of faces, earlier | 4099 | *** (vc-switches BACKEND OPERATION) is a new function for use by backends. |
| 4090 | faces in the list override later faces in the list; in previous releases | 4100 | *** The new `find-version' backend function replaces the `destfile' |
| 4091 | of Emacs, the order was the opposite. This change was made so that | 4101 | parameter of the `checkout' backend function. |
| 4092 | :inherit face-lists operate identically to face-lists in text `face' | 4102 | Old code still works thanks to a default `find-version' behavior that |
| 4093 | properties. | 4103 | uses the old `destfile' parameter. |
| 4094 | 4104 | ||
| 4095 | +++ | 4105 | +++ |
| 4096 | ** Enhancements to process support | 4106 | ** Already true in Emacs 21.1, but not emphasized clearly enough: |
| 4097 | |||
| 4098 | *** Function list-processes now has an optional argument; if non-nil, | ||
| 4099 | only the processes whose query-on-exit flag is set are listed. | ||
| 4100 | |||
| 4101 | *** New set-process-query-on-exit-flag and process-query-on-exit-flag | ||
| 4102 | functions. The existing process-kill-without-query function is still | ||
| 4103 | supported, but new code should use the new functions. | ||
| 4104 | |||
| 4105 | *** Function signal-process now accepts a process object or process | ||
| 4106 | name in addition to a process id to identify the signalled process. | ||
| 4107 | 4107 | ||
| 4108 | *** Processes now have an associated property list where programs can | 4108 | Multibyte buffers can now faithfully record all 256 character codes |
| 4109 | maintain process state and other per-process related information. | 4109 | from 0 to 255. As a result, most of the past reasons to use unibyte |
| 4110 | buffers no longer exist. We only know of three reasons to use them | ||
| 4111 | now: | ||
| 4110 | 4112 | ||
| 4111 | The new functions process-get and process-put are used to access, add, | 4113 | 1. If you prefer to use unibyte text all of the time. |
| 4112 | and modify elements on this property list. | ||
| 4113 | 4114 | ||
| 4114 | The new low-level functions process-plist and set-process-plist are | 4115 | 2. For reading files into temporary buffers, when you want to avoid |
| 4115 | used to access and replace the entire property list of a process. | 4116 | the time it takes to convert the format. |
| 4116 | 4117 | ||
| 4117 | *** Function accept-process-output now has an optional fourth arg | 4118 | 3. For binary files where format conversion would be pointless and |
| 4118 | `just-this-one'. If non-nil, only output from the specified process | 4119 | wasteful. |
| 4119 | is handled, suspending output from other processes. If value is an | ||
| 4120 | integer, also inhibit running timers. This feature is generally not | ||
| 4121 | recommended, but may be necessary for specific applications, such as | ||
| 4122 | speech synthesis. | ||
| 4123 | 4120 | ||
| 4124 | --- | 4121 | --- |
| 4125 | *** Adaptive read buffering of subprocess output. | 4122 | ** set-buffer-file-coding-system now takes an additional argument, |
| 4126 | 4123 | NOMODIFY. If it is non-nil, it means don't mark the buffer modified. | |
| 4127 | On some systems, when emacs reads the output from a subprocess, the | ||
| 4128 | output data is read in very small blocks, potentially resulting in | ||
| 4129 | very poor performance. This behavior can be remedied to some extent | ||
| 4130 | by setting the new variable process-adaptive-read-buffering to a | ||
| 4131 | non-nil value (the default), as it will automatically delay reading | ||
| 4132 | from such processes, to allowing them to produce more output before | ||
| 4133 | emacs tries to read it. | ||
| 4134 | 4124 | ||
| 4135 | +++ | 4125 | +++ |
| 4136 | ** Enhanced networking support. | 4126 | ** The new variable `auto-coding-functions' lets you specify functions |
| 4137 | 4127 | to examine a file being visited and deduce the proper coding system | |
| 4138 | *** There is a new `make-network-process' function which supports | 4128 | for it. (If the coding system is detected incorrectly for a specific |
| 4139 | opening of stream and datagram connections to a server, as well as | 4129 | file, you can put a `coding:' tags to override it.) |
| 4140 | create a stream or datagram server inside emacs. | ||
| 4141 | |||
| 4142 | - A server is started using :server t arg. | ||
| 4143 | - Datagram connection is selected using :type 'datagram arg. | ||
| 4144 | - A server can open on a random port using :service t arg. | ||
| 4145 | - Local sockets are supported using :family 'local arg. | ||
| 4146 | - Non-blocking connect is supported using :nowait t arg. | ||
| 4147 | - The process' property list may be initialized using :plist PLIST arg; | ||
| 4148 | a copy of the server process' property list is automatically inherited | ||
| 4149 | by new client processes created to handle incoming connections. | ||
| 4150 | |||
| 4151 | To test for the availability of a given feature, use featurep like this: | ||
| 4152 | (featurep 'make-network-process '(:type datagram)) | ||
| 4153 | |||
| 4154 | *** Original open-network-stream is now emulated using make-network-process. | ||
| 4155 | |||
| 4156 | *** New function open-network-stream-nowait. | ||
| 4157 | |||
| 4158 | This function initiates a non-blocking connect and returns immediately | ||
| 4159 | without waiting for the connection to be established. It takes the | ||
| 4160 | filter and sentinel functions as arguments; when the non-blocking | ||
| 4161 | connect completes, the sentinel is called with a status string | ||
| 4162 | matching "open" or "failed". | ||
| 4163 | |||
| 4164 | *** New function open-network-stream-server. | ||
| 4165 | |||
| 4166 | This function creates a network server process for a TCP service. | ||
| 4167 | When a client connects to the specified service, a new subprocess | ||
| 4168 | is created to handle the new connection, and the sentinel function | ||
| 4169 | is called for the new process. | ||
| 4170 | |||
| 4171 | *** New functions process-datagram-address and set-process-datagram-address. | ||
| 4172 | |||
| 4173 | These functions are used with datagram-based network processes to get | ||
| 4174 | and set the current address of the remote partner. | ||
| 4175 | |||
| 4176 | *** New function format-network-address. | ||
| 4177 | 4130 | ||
| 4178 | This function reformats the lisp representation of a network address | 4131 | --- |
| 4179 | to a printable string. For example, an IP address A.B.C.D and port | 4132 | ** The new function `merge-coding-systems' fills in unspecified aspects |
| 4180 | number P is represented as a five element vector [A B C D P], and the | 4133 | of one coding system from another coding system. |
| 4181 | printable string returned for this vector is "A.B.C.D:P". See the doc | ||
| 4182 | string for other formatting options. | ||
| 4183 | 4134 | ||
| 4184 | *** By default, the function process-contact still returns (HOST SERVICE) | 4135 | --- |
| 4185 | for a network process. Using the new optional KEY arg, the complete list | 4136 | ** New coding system property `mime-text-unsuitable' indicates that |
| 4186 | of network process properties or a specific property can be selected. | 4137 | the coding system's `mime-charset' is not suitable for MIME text |
| 4138 | parts, e.g. utf-16. | ||
| 4187 | 4139 | ||
| 4188 | Using :local and :remote as the KEY, the address of the local or | 4140 | +++ |
| 4189 | remote end-point is returned. An Inet address is represented as a 5 | 4141 | ** New function `decode-coding-inserted-region' decodes a region as if |
| 4190 | element vector, where the first 4 elements contain the IP address and | 4142 | it is read from a file without decoding. |
| 4191 | the fifth is the port number. | ||
| 4192 | 4143 | ||
| 4193 | *** Network processes can now be stopped and restarted with | 4144 | +++ |
| 4194 | `stop-process' and `continue-process'. For a server process, no | 4145 | ** Function `translate-region' accepts also a char-table as TABLE |
| 4195 | connections are accepted in the stopped state. For a client process, | 4146 | argument. |
| 4196 | no input is received in the stopped state. | ||
| 4197 | 4147 | ||
| 4198 | *** New function network-interface-list. | 4148 | +++ |
| 4149 | ** The new translation table `translation-table-for-input' | ||
| 4150 | is used for customizing self-insertion. The character to | ||
| 4151 | be inserted is translated through it. | ||
| 4199 | 4152 | ||
| 4200 | This function returns a list of network interface names and their | 4153 | --- |
| 4201 | current network addresses. | 4154 | ** New CCL functions `lookup-character' and `lookup-integer' access |
| 4155 | hash tables defined by the Lisp function `define-translation-hash-table'. | ||
| 4202 | 4156 | ||
| 4203 | *** New function network-interface-info. | 4157 | +++ |
| 4158 | ** The flags, width, and precision options for %-specifications in function | ||
| 4159 | `format' are now documented. Some flags that were accepted but not | ||
| 4160 | implemented (such as "*") are no longer accepted. | ||
| 4204 | 4161 | ||
| 4205 | This function returns the network address, hardware address, current | 4162 | --- |
| 4206 | status, and other information about a specific network interface. | 4163 | ** New function `redirect-debugging-output' can be used to redirect |
| 4164 | debugging output on the stderr file handle to a file. | ||
| 4207 | 4165 | ||
| 4208 | +++ | 4166 | +++ |
| 4209 | ** New function copy-tree. | 4167 | ** `makehash' is now obsolete. Use `make-hash-table' instead. |
| 4210 | 4168 | ||
| 4211 | +++ | 4169 | +++ |
| 4212 | ** New function substring-no-properties. | 4170 | ** The macro `with-syntax-table' does not copy the table any more. |
| 4213 | 4171 | ||
| 4214 | +++ | 4172 | +++ |
| 4215 | ** New function minibuffer-selected-window. | 4173 | ** New variables `gc-elapsed' and `gcs-done' provide extra information |
| 4174 | on garbage collection. | ||
| 4216 | 4175 | ||
| 4217 | +++ | 4176 | +++ |
| 4218 | ** New function `call-process-shell-command'. | 4177 | ** New function `locale-info' accesses locale information. |
| 4219 | 4178 | ||
| 4220 | +++ | 4179 | +++ |
| 4221 | ** New function `process-file'. | 4180 | ** The new variable `print-continuous-numbering', when non-nil, says |
| 4222 | 4181 | that successive calls to print functions should use the same | |
| 4223 | This is similar to `call-process', but obeys file handlers. The file | 4182 | numberings for circular structure references. This is only relevant |
| 4224 | handler is chosen based on default-directory. | 4183 | when `print-circle' is non-nil. |
| 4225 | |||
| 4226 | --- | ||
| 4227 | ** The dummy function keys made by easymenu | ||
| 4228 | are now always lower case. If you specify the | ||
| 4229 | menu item name "Ada", for instance, it uses `ada' | ||
| 4230 | as the "key" bound by that key binding. | ||
| 4231 | |||
| 4232 | This is relevant only if Lisp code looks for | ||
| 4233 | the bindings that were made with easymenu. | ||
| 4234 | 4184 | ||
| 4235 | +++ | 4185 | When you bind `print-continuous-numbering' to t, you should |
| 4236 | ** The function `commandp' takes an additional optional | 4186 | also bind `print-number-table' to nil. |
| 4237 | argument. If it is non-nil, then `commandp' checks | ||
| 4238 | for a function that could be called with `call-interactively', | ||
| 4239 | and does not return t for keyboard macros. | ||
| 4240 | 4187 | ||
| 4241 | --- | 4188 | --- |
| 4242 | ** master-mode.el implements a minor mode for scrolling a slave | 4189 | ** When pure storage overflows while dumping, Emacs now prints how |
| 4243 | buffer without leaving your current buffer, the master buffer. | 4190 | much pure storage it will approximately need. |
| 4244 | |||
| 4245 | It can be used by sql.el, for example: the SQL buffer is the master | ||
| 4246 | and its SQLi buffer is the slave. This allows you to scroll the SQLi | ||
| 4247 | buffer containing the output from the SQL buffer containing the | ||
| 4248 | commands. | ||
| 4249 | |||
| 4250 | This is how to use sql.el and master.el together: the variable | ||
| 4251 | sql-buffer contains the slave buffer. It is a local variable in the | ||
| 4252 | SQL buffer. | ||
| 4253 | |||
| 4254 | (add-hook 'sql-mode-hook | ||
| 4255 | (function (lambda () | ||
| 4256 | (master-mode t) | ||
| 4257 | (master-set-slave sql-buffer)))) | ||
| 4258 | (add-hook 'sql-set-sqli-hook | ||
| 4259 | (function (lambda () | ||
| 4260 | (master-set-slave sql-buffer)))) | ||
| 4261 | 4191 | ||
| 4262 | +++ | 4192 | +++ |
| 4263 | ** File local variables. | 4193 | ** File local variables. |
| @@ -4266,34 +4196,47 @@ A file local variables list cannot specify a string with text | |||
| 4266 | properties--any specified text properties are discarded. | 4196 | properties--any specified text properties are discarded. |
| 4267 | 4197 | ||
| 4268 | +++ | 4198 | +++ |
| 4269 | ** New function window-body-height. | 4199 | ** The variable `safe-local-eval-forms' specifies a list of forms that |
| 4270 | 4200 | are ok to evaluate when they appear in an `eval' local variables | |
| 4271 | This is like window-height but does not count the mode line | 4201 | specification. Normally Emacs asks for confirmation before evaluating |
| 4272 | or the header line. | 4202 | such a form, but if the form appears in this list, no confirmation is |
| 4203 | needed. | ||
| 4273 | 4204 | ||
| 4274 | +++ | 4205 | --- |
| 4275 | ** New function format-mode-line. | 4206 | ** If a function has a non-nil `safe-local-eval-function' property, |
| 4207 | that means it is ok to evaluate some calls to that function when it | ||
| 4208 | appears in an `eval' local variables specification. If the property | ||
| 4209 | is t, then any form calling that function with constant arguments is | ||
| 4210 | ok. If the property is a function or list of functions, they are called | ||
| 4211 | with the form as argument, and if any returns t, the form is ok to call. | ||
| 4276 | 4212 | ||
| 4277 | This returns the mode-line or header-line of the selected (or a | 4213 | If the form is not "ok to call", that means Emacs asks for |
| 4278 | specified) window as a string with or without text properties. | 4214 | confirmation as before. |
| 4279 | 4215 | ||
| 4280 | +++ | 4216 | +++ |
| 4281 | ** Functions `get' and `plist-get' no longer signals an error for | 4217 | ** Renamed hooks to better follow the naming convention: |
| 4282 | a malformed property list. They also detect cyclic lists. | 4218 | find-file-hooks to find-file-hook, |
| 4219 | find-file-not-found-hooks to find-file-not-found-functions, | ||
| 4220 | write-file-hooks to write-file-functions, | ||
| 4221 | write-contents-hooks to write-contents-functions, | ||
| 4222 | x-lost-selection-hooks to x-lost-selection-functions, | ||
| 4223 | x-sent-selection-hooks to x-sent-selection-functions. | ||
| 4224 | Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook'). | ||
| 4283 | 4225 | ||
| 4284 | +++ | 4226 | +++ |
| 4285 | ** New functions `lax-plist-get' and `lax-plist-put'. | 4227 | ** The new variable `delete-frame-functions' replaces `delete-frame-hook'. |
| 4286 | 4228 | It was renamed to follow the naming conventions for abnormal hooks. The old | |
| 4287 | These functions are like `plist-get' and `plist-put' except that they | 4229 | name remains available as an alias, but has been marked obsolete. |
| 4288 | compare the property name using `equal' rather than `eq'. | ||
| 4289 | 4230 | ||
| 4290 | +++ | 4231 | +++ |
| 4291 | ** New function `tool-bar-local-item-from-menu' | 4232 | ** The new function `file-remote-p' tests a file name and returns |
| 4233 | non-nil if it specifies a remote file (one that Emacs accesses using | ||
| 4234 | its own special methods and not directly through the file system). | ||
| 4235 | The value in that case is an identifier for the remote file system. | ||
| 4292 | 4236 | ||
| 4293 | The `tool-bar-add-item-from-menu' must not be used (as previously | 4237 | +++ |
| 4294 | recommended) for making entries in the tool bar for local keymaps. | 4238 | ** Functions `get' and `plist-get' no longer signals an error for |
| 4295 | Instead, use the function `tool-bar-local-item-from-menu', which lets | 4239 | a malformed property list. They also detect cyclic lists. |
| 4296 | you specify the map to use as an argument. | ||
| 4297 | 4240 | ||
| 4298 | +++ | 4241 | +++ |
| 4299 | ** The function `atan' now accepts an optional second argument. | 4242 | ** The function `atan' now accepts an optional second argument. |
| @@ -4303,19 +4246,10 @@ angle in radians between the vector [X, Y] and the X axis. (This is | |||
| 4303 | equivalent to the standard C library function `atan2'.) | 4246 | equivalent to the standard C library function `atan2'.) |
| 4304 | 4247 | ||
| 4305 | +++ | 4248 | +++ |
| 4306 | ** You can now make a window as short as one line. | 4249 | ** New function format-mode-line. |
| 4307 | |||
| 4308 | A window that is just one line tall does not display either a mode | ||
| 4309 | line or a header line, even if the variables `mode-line-format' and | ||
| 4310 | `header-line-format' call for them. A window that is two lines tall | ||
| 4311 | cannot display both a mode line and a header line at once; if the | ||
| 4312 | variables call for both, only the mode line actually appears. | ||
| 4313 | 4250 | ||
| 4314 | +++ | 4251 | This returns the mode-line or header-line of the selected (or a |
| 4315 | ** The new frame parameter `tty-color-mode' specifies the mode to use | 4252 | specified) window as a string with or without text properties. |
| 4316 | for color support on character terminal frames. Its value can be a | ||
| 4317 | number of colors to support, or a symbol. See the Emacs Lisp | ||
| 4318 | Reference manual for more detailed documentation. | ||
| 4319 | 4253 | ||
| 4320 | +++ | 4254 | +++ |
| 4321 | ** The new mode-line construct `(:propertize ELT PROPS...)' can be | 4255 | ** The new mode-line construct `(:propertize ELT PROPS...)' can be |
| @@ -4338,260 +4272,244 @@ indentation of keywords and forms in loop forms. | |||
| 4338 | cl-indent package. See the new user option `lisp-backquote-indentation'. | 4272 | cl-indent package. See the new user option `lisp-backquote-indentation'. |
| 4339 | 4273 | ||
| 4340 | +++ | 4274 | +++ |
| 4341 | ** Already true in Emacs 21.1, but not emphasized clearly enough: | 4275 | ** field-beginning and field-end now accept an additional optional |
| 4276 | argument, LIMIT. | ||
| 4342 | 4277 | ||
| 4343 | Multibyte buffers can now faithfully record all 256 character codes | 4278 | +++ |
| 4344 | from 0 to 255. As a result, most of the past reasons to use unibyte | 4279 | ** define-abbrev now accepts an optional argument SYSTEM-FLAG. If |
| 4345 | buffers no longer exist. We only know of three reasons to use them | 4280 | non-nil, this marks the abbrev as a "system" abbrev, which means that |
| 4346 | now: | 4281 | it won't be stored in the user's abbrevs file if he saves the abbrevs. |
| 4282 | Major modes that predefine some abbrevs should always specify this | ||
| 4283 | flag. | ||
| 4347 | 4284 | ||
| 4348 | 1. If you prefer to use unibyte text all of the time. | 4285 | --- |
| 4286 | ** describe-vector now takes a second argument `describer' which is | ||
| 4287 | called to print the entries' values. It defaults to `princ'. | ||
| 4349 | 4288 | ||
| 4350 | 2. For reading files into temporary buffers, when you want to avoid | 4289 | +++ |
| 4351 | the time it takes to convert the format. | 4290 | ** defcustom and other custom declarations now use a default group |
| 4291 | (the last prior group defined in the same file) when no :group was given. | ||
| 4352 | 4292 | ||
| 4353 | 3. For binary files where format conversion would be pointless and | 4293 | --- |
| 4354 | wasteful. | 4294 | ** The new customization type `float' specifies numbers with floating |
| 4295 | point (no integers are allowed). | ||
| 4355 | 4296 | ||
| 4356 | +++ | 4297 | +++ |
| 4357 | ** If text has a `keymap' property, that keymap takes precedence | 4298 | ** emacsserver now runs pre-command-hook and post-command-hook when |
| 4358 | over minor mode keymaps. | 4299 | it receives a request from emacsclient. |
| 4359 | 4300 | ||
| 4360 | +++ | 4301 | --- |
| 4361 | ** A hex escape in a string forces the string to be multibyte. | 4302 | ** New function `text-clone-create'. Text clones are chunks of text |
| 4362 | An octal escape makes it unibyte. | 4303 | that are kept identical by transparently propagating changes from one |
| 4304 | clone to the other. | ||
| 4363 | 4305 | ||
| 4364 | +++ | 4306 | +++ |
| 4365 | ** At the end of a command, point moves out from within invisible | 4307 | ** Functions `user-uid' and `user-real-uid' now return floats if the |
| 4366 | text, in the same way it moves out from within text covered by an | 4308 | user UID doesn't fit in a Lisp integer. Function `user-full-name' |
| 4367 | image or composition property. | 4309 | accepts a float as UID parameter. |
| 4368 | 4310 | ||
| 4369 | This makes it generally unnecessary to mark invisible text as intangible. | 4311 | +++ |
| 4370 | This is particularly good because the intangible property often has | 4312 | ** New vars `exec-suffixes' and `load-suffixes' used when |
| 4371 | unexpected side-effects since the property applies to everything | 4313 | searching for an executable resp. an elisp file. |
| 4372 | (including `goto-char', ...) whereas this new code is only run after | ||
| 4373 | post-command-hook and thus does not care about intermediate states. | ||
| 4374 | 4314 | ||
| 4375 | +++ | 4315 | +++ |
| 4376 | ** field-beginning and field-end now accept an additional optional | 4316 | ** Functions from `post-gc-hook' are run at the end of garbage |
| 4377 | argument, LIMIT. | 4317 | collection. The hook is run with GC inhibited, so use it with care. |
| 4378 | 4318 | ||
| 4379 | +++ | 4319 | +++ |
| 4380 | ** define-abbrev now accepts an optional argument SYSTEM-FLAG. If | 4320 | ** The variables most-positive-fixnum and most-negative-fixnum |
| 4381 | non-nil, this marks the abbrev as a "system" abbrev, which means that | 4321 | hold the largest and smallest possible integer values. |
| 4382 | it won't be stored in the user's abbrevs file if he saves the abbrevs. | ||
| 4383 | Major modes that predefine some abbrevs should always specify this | ||
| 4384 | flag. | ||
| 4385 | 4322 | ||
| 4386 | --- | 4323 | --- |
| 4387 | ** Support for Mocklisp has been removed. | 4324 | ** On MS Windows, locale-coding-system is used to interact with the OS. |
| 4325 | The Windows specific variable w32-system-coding-system, which was | ||
| 4326 | formerly used for that purpose is now an alias for locale-coding-system. | ||
| 4388 | 4327 | ||
| 4389 | --- | 4328 | --- |
| 4390 | ** The function insert-string is now obsolete. | 4329 | ** New function x-send-client-message sends a client message when |
| 4330 | running under X. | ||
| 4391 | 4331 | ||
| 4392 | --- | 4332 | --- |
| 4393 | ** The precedence of file-name-handlers has been changed. | 4333 | ** easy-mmode-define-global-mode has been renamed to |
| 4394 | Instead of blindly choosing the first handler that matches, | 4334 | define-global-minor-mode. The old name remains as an alias. |
| 4395 | find-file-name-handler now gives precedence to a file-name handler | ||
| 4396 | that matches near the end of the file name. More specifically, the | ||
| 4397 | handler whose (match-beginning 0) is the largest is chosen. | ||
| 4398 | In case of ties, the old "first matched" rule applies. | ||
| 4399 | 4335 | ||
| 4400 | --- | 4336 | --- |
| 4401 | ** Dense keymaps now handle inheritance correctly. | 4337 | ** To manipulate the File menu using easy-menu, you must specify the |
| 4402 | Previously a dense keymap would hide all of the simple-char key | 4338 | proper name "file". In previous Emacs versions, you had to specify |
| 4403 | bindings of the parent keymap. | 4339 | "files", even though the menu item itself was changed to say "File" |
| 4340 | several versions ago. | ||
| 4404 | 4341 | ||
| 4405 | --- | 4342 | --- |
| 4406 | ** jit-lock obeys a new text-property `jit-lock-defer-multiline'. | 4343 | ** The dummy function keys made by easymenu are now always lower case. |
| 4407 | If a piece of text with that property gets contextually refontified | 4344 | If you specify the menu item name "Ada", for instance, it uses `ada' |
| 4408 | (see jit-lock-defer-contextually), then all of that text will | 4345 | as the "key" bound by that key binding. |
| 4409 | be refontified. This is useful when the syntax of a textual element | ||
| 4410 | depends on text several lines further down (and when font-lock-multiline | ||
| 4411 | is not appropriate to solve that problem). For example in Perl: | ||
| 4412 | |||
| 4413 | s{ | ||
| 4414 | foo | ||
| 4415 | }{ | ||
| 4416 | bar | ||
| 4417 | }e | ||
| 4418 | 4346 | ||
| 4419 | Adding/removing the last `e' changes the `bar' from being a piece of | 4347 | This is relevant only if Lisp code looks for the bindings that were |
| 4420 | text to being a piece of code, so you'd put a jit-lock-defer-multiline | 4348 | made with easymenu. |
| 4421 | property over the second half of the command to force (deferred) | ||
| 4422 | refontification of `bar' whenever the `e' is added/removed. | ||
| 4423 | 4349 | ||
| 4424 | --- | 4350 | --- |
| 4425 | ** describe-vector now takes a second argument `describer' which is | 4351 | ** `easy-menu-define' now allows you to use nil for the symbol name |
| 4426 | called to print the entries' values. It defaults to `princ'. | 4352 | if you don't need to give the menu a name. If you install the menu |
| 4353 | into other keymaps right away (MAPS is non-nil), it usually doesn't | ||
| 4354 | need to have a name. | ||
| 4355 | |||
| 4356 | ** New functions, macros, and commands: | ||
| 4427 | 4357 | ||
| 4428 | +++ | 4358 | +++ |
| 4429 | ** defcustom and other custom declarations now use a default group | 4359 | *** The new function `assoc-string' replaces `assoc-ignore-case' and |
| 4430 | (the last prior group defined in the same file) when no :group was given. | 4360 | `assoc-ignore-representation', which are still available, but have |
| 4361 | been declared obsolete. | ||
| 4431 | 4362 | ||
| 4432 | +++ | 4363 | +++ |
| 4433 | ** emacsserver now runs pre-command-hook and post-command-hook when | 4364 | *** The new function `buffer-local-value' returns the buffer-local |
| 4434 | it receives a request from emacsclient. | 4365 | binding of VARIABLE (a symbol) in buffer BUFFER. If VARIABLE does not |
| 4366 | have a buffer-local binding in buffer BUFFER, it returns the default | ||
| 4367 | value of VARIABLE instead. | ||
| 4435 | 4368 | ||
| 4436 | --- | 4369 | +++ |
| 4437 | ** The variable `recursive-load-depth-limit' has been deleted. | 4370 | *** The new function `called-interactively-p' does what many people |
| 4438 | Emacs now signals an error if the same file is loaded with more | 4371 | have mistakenly believed `interactive-p' did: it returns t if the |
| 4439 | than 3 levels of nesting. | 4372 | calling function was called through `call-interactively'. This should |
| 4373 | only be used when you cannot add a new "interactive" argument to the | ||
| 4374 | command. | ||
| 4440 | 4375 | ||
| 4441 | --- | 4376 | *** The new function copy-abbrev-table returns a new abbrev table that |
| 4442 | ** If a major mode function has a non-nil `no-clone-indirect' | 4377 | is a copy of a given abbrev table. |
| 4443 | property, `clone-indirect-buffer' signals an error if you use | ||
| 4444 | it in that buffer. | ||
| 4445 | 4378 | ||
| 4446 | --- | 4379 | +++ |
| 4447 | ** In `replace-match', the replacement text no longer inherits | 4380 | *** New function copy-tree makes a copy of a tree, recursively copying |
| 4448 | properties from surrounding text. | 4381 | both cars and cdrs. |
| 4449 | 4382 | ||
| 4450 | +++ | 4383 | +++ |
| 4451 | ** The list returned by `(match-data t)' now has the buffer as a final | 4384 | *** New function `delete-dups' destructively removes `equal' |
| 4452 | element, if the last match was on a buffer. `set-match-data' | 4385 | duplicates from a list. Of several `equal' occurrences of an element |
| 4453 | accepts such a list for restoring the match state. | 4386 | in the list, the first one is kept. |
| 4454 | 4387 | ||
| 4455 | +++ | 4388 | +++ |
| 4456 | ** New function `buffer-local-value'. | 4389 | *** The new function `filter-buffer-substring' extracts a buffer |
| 4390 | substring, passes it through a set of filter functions, and returns | ||
| 4391 | the filtered substring. It is used instead of `buffer-substring' or | ||
| 4392 | `delete-and-extract-region' when copying text into a user-accessible | ||
| 4393 | data structure, like the kill-ring, X clipboard, or a register. The | ||
| 4394 | list of filter function is specified by the new variable | ||
| 4395 | `buffer-substring-filters'. For example, Longlines mode uses | ||
| 4396 | `buffer-substring-filters' to remove soft newlines from the copied | ||
| 4397 | text. | ||
| 4457 | 4398 | ||
| 4458 | This function returns the buffer-local binding of VARIABLE (a symbol) | 4399 | +++ |
| 4459 | in buffer BUFFER. If VARIABLE does not have a buffer-local binding in | 4400 | *** New functions frame-current-scroll-bars and window-current-scroll-bars. |
| 4460 | buffer BUFFER, it returns the default value of VARIABLE instead. | ||
| 4461 | 4401 | ||
| 4462 | --- | 4402 | These functions return the current locations of the vertical and |
| 4463 | ** New function `text-clone-create'. Text clones are chunks of text | 4403 | horizontal scroll bars in a frame or window. |
| 4464 | that are kept identical by transparently propagating changes from one | ||
| 4465 | clone to the other. | ||
| 4466 | 4404 | ||
| 4467 | +++ | 4405 | +++ |
| 4468 | ** font-lock can manage arbitrary text-properties beside `face'. | 4406 | *** The new primitive `get-internal-run-time' returns the processor |
| 4469 | *** the FACENAME returned in font-lock-keywords can be a list | 4407 | run time used by Emacs since start-up. |
| 4470 | of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set | ||
| 4471 | other properties than `face'. | ||
| 4472 | *** font-lock-extra-managed-props can be set to make sure those extra | ||
| 4473 | properties are automatically cleaned up by font-lock. | ||
| 4474 | |||
| 4475 | --- | ||
| 4476 | ** The special treatment of faces whose names are of the form `fg:COLOR' | ||
| 4477 | or `bg:COLOR' has been removed. Lisp programs should use the | ||
| 4478 | `defface' facility for defining faces with specific colors, or use | ||
| 4479 | the feature of specifying the face attributes :foreground and :background | ||
| 4480 | directly in the `face' property instead of using a named face. | ||
| 4481 | 4408 | ||
| 4482 | +++ | 4409 | +++ |
| 4483 | ** The new function `run-mode-hooks' and the new macro `delay-mode-hooks' | 4410 | *** The new function insert-buffer-substring-as-yank works like |
| 4484 | are used by define-derived-mode to make sure the mode hook for the | 4411 | `insert-buffer-substring', but removes the text properties in the |
| 4485 | parent mode is run at the end of the child mode. | 4412 | `yank-excluded-properties' list. |
| 4486 | 4413 | ||
| 4487 | +++ | 4414 | +++ |
| 4488 | ** define-minor-mode now accepts arbitrary additional keyword arguments | 4415 | *** The new function insert-buffer-substring-no-properties is like |
| 4489 | and simply passes them to defcustom, if applicable. | 4416 | insert-buffer-substring, but removes all text properties from the |
| 4417 | inserted substring. | ||
| 4490 | 4418 | ||
| 4491 | +++ | 4419 | +++ |
| 4492 | ** define-derived-mode by default creates a new empty abbrev table. | 4420 | *** The new functions `lax-plist-get' and `lax-plist-put' are like |
| 4493 | It does not copy abbrevs from the parent mode's abbrev table. | 4421 | `plist-get' and `plist-put', except that they compare the property |
| 4422 | name using `equal' rather than `eq'. | ||
| 4494 | 4423 | ||
| 4495 | +++ | 4424 | +++ |
| 4496 | ** `provide' and `featurep' now accept an optional second argument | 4425 | *** New function `line-number-at-pos' returns the line number of the |
| 4497 | to test/provide subfeatures. Also `provide' now checks `after-load-alist' | 4426 | current line in the current buffer, or if optional buffer position is |
| 4498 | and runs any code associated with the provided feature. | 4427 | given, line number of corresponding line in current buffer. |
| 4499 | 4428 | ||
| 4500 | +++ | 4429 | +++ |
| 4501 | ** Functions `file-name-sans-extension' and `file-name-extension' now | 4430 | *** New function `looking-back' checks whether a regular expression matches |
| 4502 | ignore the leading dots in file names, so that file names such as | 4431 | the text before point. Specifying the LIMIT argument bounds how far |
| 4503 | `.emacs' are treated as extensionless. | 4432 | back the match can start; this is a way to keep it from taking too long. |
| 4504 | 4433 | ||
| 4505 | +++ | 4434 | +++ |
| 4506 | ** Functions `user-uid' and `user-real-uid' now return floats if the | 4435 | *** New function `macroexpand-all' expands all macros in a form. |
| 4507 | user UID doesn't fit in a Lisp integer. Function `user-full-name' | 4436 | It is similar to the Common-Lisp function of the same name. |
| 4508 | accepts a float as UID parameter. | 4437 | One difference is that it guarantees to return the original argument |
| 4438 | if no expansion is done, which may be tested using `eq'. | ||
| 4509 | 4439 | ||
| 4510 | --- | 4440 | *** The new function `minibufferp' returns non-nil if its optional |
| 4511 | ** `define-key-after' now accepts keys longer than 1. | 4441 | buffer argument is a minibuffer. If the argument is omitted, it |
| 4442 | defaults to the current buffer. | ||
| 4512 | 4443 | ||
| 4513 | +++ | 4444 | +++ |
| 4514 | ** The local variable `no-byte-compile' in elisp files is now obeyed. | 4445 | *** New function minibuffer-selected-window returns the window which |
| 4446 | was selected when entering the minibuffer. | ||
| 4515 | 4447 | ||
| 4516 | +++ | 4448 | +++ |
| 4517 | ** The Emacs Lisp byte-compiler now displays the actual line and | 4449 | *** The new function `modify-all-frames-parameters' modifies parameters |
| 4518 | character position of errors, where possible. Additionally, the form | 4450 | for all (existing and future) frames. |
| 4519 | of its warning and error messages have been brought more in line with | ||
| 4520 | the output of other GNU tools. | ||
| 4521 | 4451 | ||
| 4522 | +++ | 4452 | +++ |
| 4523 | ** New functions `keymap-prompt' and `current-active-maps'. | 4453 | *** New functions posn-at-point and posn-at-x-y return |
| 4454 | click-event-style position information for a given visible buffer | ||
| 4455 | position or for a given window pixel coordinate. | ||
| 4524 | 4456 | ||
| 4525 | --- | 4457 | --- |
| 4526 | ** New function `describe-buffer-bindings'. | 4458 | *** New function quail-find-key returns a list of keys to type in the |
| 4459 | current input method to input a character. | ||
| 4527 | 4460 | ||
| 4528 | +++ | 4461 | +++ |
| 4529 | ** New vars `exec-suffixes' and `load-suffixes' used when | 4462 | *** The new function `rassq-delete-all' deletes all elements from an |
| 4530 | searching for an executable resp. an elisp file. | 4463 | alist whose cdr is `eq' to a specified value. |
| 4531 | 4464 | ||
| 4532 | +++ | 4465 | +++ |
| 4533 | ** Variable aliases have been implemented: | 4466 | *** The new function remove-list-of-text-properties is almost the same |
| 4534 | 4467 | as `remove-text-properties'. The only difference is that it takes a | |
| 4535 | *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING] | 4468 | list of property names as argument rather than a property list. |
| 4536 | |||
| 4537 | This function defines the symbol ALIAS-VAR as a variable alias for | ||
| 4538 | symbol BASE-VAR. This means that retrieving the value of ALIAS-VAR | ||
| 4539 | returns the value of BASE-VAR, and changing the value of ALIAS-VAR | ||
| 4540 | changes the value of BASE-VAR. | ||
| 4541 | |||
| 4542 | DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has | ||
| 4543 | the same documentation as BASE-VAR. | ||
| 4544 | |||
| 4545 | *** indirect-variable VARIABLE | ||
| 4546 | |||
| 4547 | This function returns the variable at the end of the chain of aliases | ||
| 4548 | of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not | ||
| 4549 | defined as an alias, the function returns VARIABLE. | ||
| 4550 | |||
| 4551 | It might be noteworthy that variables aliases work for all kinds of | ||
| 4552 | variables, including buffer-local and frame-local variables. | ||
| 4553 | 4469 | ||
| 4554 | +++ | 4470 | +++ |
| 4555 | ** Functions from `post-gc-hook' are run at the end of garbage | 4471 | *** The new primitive `set-file-times' sets a file's access and |
| 4556 | collection. The hook is run with GC inhibited, so use it with care. | 4472 | modification times. Magic file name handlers can handle this |
| 4473 | operation. | ||
| 4557 | 4474 | ||
| 4558 | +++ | 4475 | +++ |
| 4559 | ** If the second argument to `copy-file' is the name of a directory, | 4476 | *** New function substring-no-properties returns a substring without |
| 4560 | the file is copied to that directory instead of signaling an error. | 4477 | text properties. |
| 4561 | 4478 | ||
| 4562 | +++ | 4479 | +++ |
| 4563 | ** The variables most-positive-fixnum and most-negative-fixnum | 4480 | *** The new function syntax-after returns the syntax code |
| 4564 | hold the largest and smallest possible integer values. | 4481 | of the character after a specified buffer position, taking account |
| 4482 | of text properties as well as the character code. | ||
| 4565 | 4483 | ||
| 4566 | --- | 4484 | +++ |
| 4567 | ** On MS Windows, locale-coding-system is used to interact with the OS. | 4485 | *** `syntax-class' extracts the class of a syntax code (as returned |
| 4568 | The Windows specific variable w32-system-coding-system, which was | 4486 | by syntax-after). |
| 4569 | formerly used for that purpose is now an alias for locale-coding-system. | ||
| 4570 | 4487 | ||
| 4571 | --- | 4488 | +++ |
| 4572 | ** Functions y-or-n-p, read-char, read-key-sequence and the like, that | 4489 | *** New function `tool-bar-local-item-from-menu' |
| 4573 | display a prompt but don't use the minibuffer, now display the prompt | ||
| 4574 | using the text properties (esp. the face) of the prompt string. | ||
| 4575 | 4490 | ||
| 4576 | --- | 4491 | The `tool-bar-add-item-from-menu' must not be used (as previously |
| 4577 | ** New function x-send-client-message sends a client message when | 4492 | recommended) for making entries in the tool bar for local keymaps. |
| 4578 | running under X. | 4493 | Instead, use the function `tool-bar-local-item-from-menu', which lets |
| 4494 | you specify the map to use as an argument. | ||
| 4579 | 4495 | ||
| 4580 | +++ | 4496 | +++ |
| 4581 | ** Arguments for remove-overlays are now optional, so that you can remove | 4497 | *** New function window-body-height. |
| 4582 | all overlays in the buffer by just calling (remove-overlay). | 4498 | This is like window-height but does not count the mode line |
| 4499 | or the header line. | ||
| 4583 | 4500 | ||
| 4584 | ** New packages: | 4501 | +++ |
| 4502 | *** (while-no-input BODY...) runs BODY, but only so long as no input | ||
| 4503 | arrives. If the user types or clicks anything, BODY stops as if a | ||
| 4504 | quit had occurred. while-no-input returns the value of BODY, if BODY | ||
| 4505 | finishes. It returns nil if BODY was aborted. | ||
| 4585 | 4506 | ||
| 4586 | +++ | 4507 | +++ |
| 4587 | *** The new package gdb-ui.el provides an enhanced graphical interface to | 4508 | *** New macro with-local-quit temporarily sets inhibit-quit to nil for use |
| 4588 | GDB. You can interact with GDB through the GUD buffer in the usual way, but | 4509 | around potentially blocking or long-running code in timers |
| 4589 | there are also further buffers which control the execution and describe the | 4510 | and post-command-hooks. |
| 4590 | state of your program. It separates the input/output of your program from | ||
| 4591 | that of GDB and watches expressions in the speedbar. It also uses features of | ||
| 4592 | Emacs 21 such as the display margin for breakpoints, and the toolbar. | ||
| 4593 | 4511 | ||
| 4594 | Use M-x gdba to start GDB-UI. | 4512 | ** New packages: |
| 4595 | 4513 | ||
| 4596 | *** The new package syntax.el provides an efficient way to find the | 4514 | *** The new package syntax.el provides an efficient way to find the |
| 4597 | current syntactic context (as returned by parse-partial-sexp). | 4515 | current syntactic context (as returned by parse-partial-sexp). |
| @@ -4611,6 +4529,54 @@ implemented by widget.el, and can be used by lisp code that doesn't | |||
| 4611 | require the full power of widgets. Emacs uses buttons for such things | 4529 | require the full power of widgets. Emacs uses buttons for such things |
| 4612 | as help and apropos buffers. | 4530 | as help and apropos buffers. |
| 4613 | 4531 | ||
| 4532 | --- | ||
| 4533 | *** master-mode.el implements a minor mode for scrolling a slave | ||
| 4534 | buffer without leaving your current buffer, the master buffer. | ||
| 4535 | |||
| 4536 | It can be used by sql.el, for example: the SQL buffer is the master | ||
| 4537 | and its SQLi buffer is the slave. This allows you to scroll the SQLi | ||
| 4538 | buffer containing the output from the SQL buffer containing the | ||
| 4539 | commands. | ||
| 4540 | |||
| 4541 | This is how to use sql.el and master.el together: the variable | ||
| 4542 | sql-buffer contains the slave buffer. It is a local variable in the | ||
| 4543 | SQL buffer. | ||
| 4544 | |||
| 4545 | (add-hook 'sql-mode-hook | ||
| 4546 | (function (lambda () | ||
| 4547 | (master-mode t) | ||
| 4548 | (master-set-slave sql-buffer)))) | ||
| 4549 | (add-hook 'sql-set-sqli-hook | ||
| 4550 | (function (lambda () | ||
| 4551 | (master-set-slave sql-buffer)))) | ||
| 4552 | |||
| 4553 | +++ | ||
| 4554 | *** New Lisp library testcover.el works with edebug to help you determine | ||
| 4555 | whether you've tested all your Lisp code. Function testcover-start | ||
| 4556 | instruments all functions in a given file. Then test your code. Function | ||
| 4557 | testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to | ||
| 4558 | show where coverage is lacking. Command testcover-next-mark (bind it to | ||
| 4559 | a key!) will move point forward to the next spot that has a splotch. | ||
| 4560 | |||
| 4561 | Normally, a red splotch indicates the form was never completely | ||
| 4562 | evaluated; a brown splotch means it always evaluated to the same | ||
| 4563 | value. The red splotches are skipped for forms that can't possibly | ||
| 4564 | complete their evaluation, such as `error'. The brown splotches are | ||
| 4565 | skipped for forms that are expected to always evaluate to the same | ||
| 4566 | value, such as (setq x 14). | ||
| 4567 | |||
| 4568 | For difficult cases, you can add do-nothing macros to your code to | ||
| 4569 | help out the test coverage tool. The macro `noreturn' suppresses a | ||
| 4570 | red splotch. It is an error if the argument to `noreturn' does | ||
| 4571 | return. The macro 1value suppresses a brown splotch for its argument. | ||
| 4572 | This macro is a no-op except during test-coverage -- then it signals | ||
| 4573 | an error if the argument actually returns differing values. | ||
| 4574 | |||
| 4575 | --- | ||
| 4576 | ** Support for Mocklisp has been removed. | ||
| 4577 | |||
| 4578 | --- | ||
| 4579 | ** The function insert-string is now obsolete. | ||
| 4614 | 4580 | ||
| 4615 | * Installation changes in Emacs 21.3 | 4581 | * Installation changes in Emacs 21.3 |
| 4616 | 4582 | ||