| 1 | GNU Emacs NEWS -- history of user-visible changes. |
| 2 | |
| 3 | Copyright (C) 2007, 2008 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. |
| 5 | |
| 6 | Please send Emacs bug reports to emacs-pretest-bug@gnu.org. |
| 7 | If possible, use M-x report-emacs-bug. |
| 8 | |
| 9 | This file is about changes in Emacs version 23. |
| 10 | |
| 11 | See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 |
| 12 | for changes in older Emacs versions. |
| 13 | |
| 14 | You can narrow news to a specific version by calling `view-emacs-news' |
| 15 | with a prefix argument or by typing C-u C-h C-n. |
| 16 | |
| 17 | Temporary note: |
| 18 | +++ indicates that the appropriate manual has already been updated. |
| 19 | --- means no change in the manuals is called for. |
| 20 | When you add a new item, please add it without either +++ or --- |
| 21 | so we will look at it and add it to the manual. |
| 22 | |
| 23 | \f |
| 24 | * About external Lisp packages |
| 25 | |
| 26 | \f |
| 27 | * Installation Changes in Emacs 23.1 |
| 28 | |
| 29 | ** The default X toolkit is now Gtk+, rather than Lucid. |
| 30 | |
| 31 | ** The new configuration option "--with-dbus" enables D-Bus language |
| 32 | bindings for Emacs. |
| 33 | |
| 34 | ** The Mac Carbon port is no longer supported. |
| 35 | Instead, use... [what?] |
| 36 | |
| 37 | ** configure now checks for libgif before libungif when searching for |
| 38 | a GIF library. |
| 39 | |
| 40 | ** Support for systems without alloca has been removed. |
| 41 | |
| 42 | ** Support for Sun windows has been removed. |
| 43 | |
| 44 | ** Support for many obsolete platforms has been removed. |
| 45 | See the list at the end of etc/MACHINES for details. |
| 46 | |
| 47 | ** The `emacstool' utility has been removed. |
| 48 | |
| 49 | ** The configure options `--with-gcc', `--without-gcc' have been removed. |
| 50 | Configure will use gcc by default. Set the CC environment variable if |
| 51 | you need control over which C compiler is used. |
| 52 | |
| 53 | ** The configure option `--with-gtk' has been removed. Gtk is now the |
| 54 | default toolkit, but you can use --with-x-toolkit=gtk if necessary. |
| 55 | \f |
| 56 | * Changes in Emacs 23.1 |
| 57 | |
| 58 | ** Emacs now supports using both X displays and ttys in one session. |
| 59 | Start the server (M-x server-start). Then `emacsclient -t' creates a |
| 60 | tty frame connected to the running emacs server. You can also use any |
| 61 | number of different ttys. `emacsclient -c' creates a new X11 frame on |
| 62 | the current $DISPLAY or a tty frame if $DISPLAY is not set. |
| 63 | |
| 64 | You can test for the presence of this feature in your Lisp code by |
| 65 | testing for the `multi-tty' feature. |
| 66 | |
| 67 | ** Emacs now supports the XEmbed specification. |
| 68 | You can embed Emacs in another application on X11. The new command line option |
| 69 | --parent-id is used to pass the parent window id to Emacs. See |
| 70 | http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html |
| 71 | for details about XEmbed. |
| 72 | |
| 73 | ** Emacs comes with a new set of icons for Mac OS X. |
| 74 | OS-X-style icons (an application icon and a relevant document icon) |
| 75 | were contributed by Kentaro Ohkouchi. |
| 76 | Source files for these icons can be found in Emacs.app/Contents/Resources. |
| 77 | PNG versions are available as etc/images/icons/emacs*_mac.png. |
| 78 | |
| 79 | ** Built-in functions (subr) can now have an interactive specification |
| 80 | that is not a prompt string. If the `intspec' parameter of a `DEFUN' |
| 81 | starts with a `(', the string is evaluated as a Lisp form. |
| 82 | |
| 83 | ** set-file-modes is now interactive and can take the mode value in |
| 84 | symbolic notation thanks to auxiliary functions. |
| 85 | |
| 86 | ** split-window-preferred-function specifies whether display-buffer should |
| 87 | split windows vertically or horizontally. |
| 88 | |
| 89 | ** Emacsclient has been extended to support opening a new terminal |
| 90 | frame. Its behavior has been changed to open a new Emacs frame by |
| 91 | default. Use the -c option to get the old behavior of opening files in |
| 92 | the currently selected Emacs frame. |
| 93 | |
| 94 | ** The refcards are now shipped as PDF files. |
| 95 | |
| 96 | ** Emacs now supports the SVG image format through librsvg2. |
| 97 | |
| 98 | ** transient-mark-mode is now enabled by default. |
| 99 | |
| 100 | ** If you set find-file-confirm-nonexistent-file to t, then C-x C-f |
| 101 | requires confirmation before opening a non-existent file. |
| 102 | |
| 103 | ** If the gpm mouse server is running and t-mouse-mode enabled, Emacs uses a |
| 104 | Unix socket in a GNU/Linux console to talk to server, rather than faking events |
| 105 | using the client program mev. This C level approach provides mouse |
| 106 | highlighting, and help echoing in the minibuffer. |
| 107 | |
| 108 | ** The new variable next-error-recenter specifies how next-error should |
| 109 | recenter the visited source file. Its value can be a number (for example, |
| 110 | 0 for top line, -1 for bottom line), or nil for no recentering. |
| 111 | |
| 112 | ** New command recenter-top-bottom moves the current line to window |
| 113 | center, top and bottom on successive invokations. |
| 114 | |
| 115 | ** C-l is bound to the new command recenter-top-bottom, rather than recenter. |
| 116 | |
| 117 | ** The mode-line displays a `@' if the default-directory for the current buffer |
| 118 | is on a remote machine, or a hyphen otherwise. |
| 119 | |
| 120 | ** The mode-line displays a mode menu when mouse-1 is clicked on a minor mode, |
| 121 | in the same way as it already did for major modes. |
| 122 | |
| 123 | ** The new command balance-windows-area balances windows both vertically |
| 124 | and horizontally. |
| 125 | |
| 126 | ** The new command close-display-connection can be used to close a connection |
| 127 | to a remote display, e.g. because the display is about to become unreachable. |
| 128 | |
| 129 | ** The command shell prompts for the default directory, when it is |
| 130 | called with a prefix, and the default directory is a remote file name. |
| 131 | This is because some file name handlers (like ange-ftp) are not able to |
| 132 | run processes remotely. |
| 133 | |
| 134 | ** The new command `display-time-world' starts an updating time display |
| 135 | using several time zones, in a buffer. |
| 136 | |
| 137 | ** The new function `format-seconds' converts a number of seconds into a |
| 138 | readable string of days, hours, etc. |
| 139 | |
| 140 | ** The new variable `before-init-time' records the value of `current-time' |
| 141 | when Emacs begins initialization, and the new variable `after-init-time' |
| 142 | records the value of `current-time' after loading the init files. |
| 143 | |
| 144 | ** The new function `emacs-uptime' returns the uptime of an Emacs instance. |
| 145 | |
| 146 | ** The new function `emacs-init-time' returns the duration of the |
| 147 | Emacs initialization. |
| 148 | |
| 149 | \f |
| 150 | * Startup Changes in Emacs 23.1 |
| 151 | |
| 152 | ** New user option `initial-buffer-choice' specifies what to display |
| 153 | after starting Emacs: startup screen, *scratch* buffer, visiting a |
| 154 | file or directory. |
| 155 | |
| 156 | ** New alias `argv' for `command-line-args-left' |
| 157 | This is a convenience alias, so that one can write `(pop argv)' |
| 158 | inside of --eval command line arguments in order to access |
| 159 | following arguments. |
| 160 | |
| 161 | ** The abbrev file is no longer read at startup in batch mode. |
| 162 | \f |
| 163 | * Incompatible Editing Changes in Emacs 23.1 |
| 164 | |
| 165 | +++ |
| 166 | ** In Dired-x, all command guesses for ! are now added to the default |
| 167 | list accessible by M-n instead of pushing all guesses temporarily into |
| 168 | the history list. |
| 169 | |
| 170 | \f |
| 171 | * Editing Changes in Emacs 23.1 |
| 172 | |
| 173 | +++ |
| 174 | ** C-M-% now shows replacement as it would look in the buffer, with |
| 175 | `\N' and `\&' substituted according to the match. Old behavior can be |
| 176 | restored by customizing `query-replace-show-replacement'. |
| 177 | |
| 178 | +++ |
| 179 | ** M-q now fills the region if the region is active and |
| 180 | `transient-mark-mode' is turned on. Otherwise, it fills the current |
| 181 | paragraph. |
| 182 | |
| 183 | +++ |
| 184 | ** M-$ now checks spelling of the region if the region is active and |
| 185 | `transient-mark-mode' is turned on. Otherwise, it checks spelling of the |
| 186 | word at point. |
| 187 | |
| 188 | ** TAB now indents the region if the region is active and |
| 189 | `transient-mark-mode' is turned on. |
| 190 | |
| 191 | ** `use-empty-active-region' controls whether an empty active region |
| 192 | in Transient Mark mode should make commands operate on that empty region. |
| 193 | |
| 194 | ** C-z now invokes `suspend-frame', C-x C-c now invokes |
| 195 | `save-buffers-kill-terminal'. |
| 196 | |
| 197 | ** New command kill-matching-buffers kills buffers whose name matches a regexp. |
| 198 | |
| 199 | ** You can disable kill ring commands from accessing the primary selection |
| 200 | by setting `x-select-enable-primary' to nil. |
| 201 | |
| 202 | ** If `select-active-regions' is t, setting the mark automatically |
| 203 | makes the new region into the primary selection (for interaction with |
| 204 | other window applications). If you enable this, you might want to bind |
| 205 | `mouse-yank-primary' to Mouse-2. |
| 206 | |
| 207 | ** If `yank-pop-change-selection' is t, rotating the kill ring |
| 208 | also updates the selection or clipboard to the current yank, |
| 209 | just as M-w would do so with the text it copies to the kill ring. |
| 210 | |
| 211 | ** Minibuffer changes: |
| 212 | |
| 213 | *** In C-x d, if you type M-n you get the visited file name of the |
| 214 | current buffer. |
| 215 | |
| 216 | *** In Dired, a list of commands for ! extracted from mailcap according to |
| 217 | file extensions are added to the default list accessible by M-n. |
| 218 | |
| 219 | *** A list of regexp default values is available via M-n for `occur', |
| 220 | `keep-lines', `flush-lines' and `how-many'. This list includes the active |
| 221 | region in transient-mark-mode, the word under the cursor, the last isearch |
| 222 | regexp, the last isearch string and the last replacement regexp. |
| 223 | |
| 224 | *** isearch started in the minibuffer searches in the minibuffer history. |
| 225 | Reverse isearch commands (C-r, C-M-r) search in previous minibuffer |
| 226 | history elements, and forward isearch commands (C-s, C-M-s) search in |
| 227 | next history elements. When the reverse search reaches the first history |
| 228 | element, it wraps to the last history element, and the forward search |
| 229 | wraps to the first history element. When the search is terminated, the |
| 230 | history element containing the search string becomes the current. |
| 231 | |
| 232 | \f |
| 233 | * New Modes and Packages in Emacs 23.1 |
| 234 | |
| 235 | ** FIXME add details of new packages imported from lisp/gnus. |
| 236 | |
| 237 | ** The package doc-view.el has been added. It supports viewing of PDF, |
| 238 | PostScript and DVI documents inside an Emacs buffer by converting the |
| 239 | document to a set of PNG images first. One can also search for a |
| 240 | regular expression in the document. The commentary of the file explains |
| 241 | its usage. |
| 242 | |
| 243 | ** The nXML package has been added. |
| 244 | [FIXME someone who uses this, please write a brief description.] |
| 245 | |
| 246 | ** A new game called `bubbles' has been added. |
| 247 | |
| 248 | ** minibuffer-indicate-depth-mode shows the minibuffer depth in the prompt. |
| 249 | |
| 250 | ** Remember Mode (remember.el) is now included with Emacs. It is a |
| 251 | mode for quickly jotting down things to remember. Included with |
| 252 | remember.el is a backend that can save notes to a Diary file. Please |
| 253 | consult the Remember Manual for usage details. |
| 254 | |
| 255 | ** D-Bus language bindings for Elisp are provided by the package |
| 256 | dbus.el and by extensions to the C modules of Emacs. D-Bus is an |
| 257 | inter-process communication mechanism for applications residing on the |
| 258 | same host, based on messages. See the manual for further details. |
| 259 | |
| 260 | ** EasyPG is now part of the Emacs distribution. It is an all-in-one |
| 261 | GnuPG interface which includes GnuPG keyring browser, cryptographic |
| 262 | operations on regions and files, and automatic encryption of *.gpg |
| 263 | files. See the EasyPG Assistant User's Manual for further details. |
| 264 | \f |
| 265 | * Changes in Specialized Modes and Packages in Emacs 23.1 |
| 266 | |
| 267 | ** ChangeLog now has function bound to C-c C-f that finds the file in |
| 268 | the current log entry. |
| 269 | |
| 270 | ** abbrev was rewritten in Elisp and extended with more flexibility. |
| 271 | *** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put, |
| 272 | abbrev-table-p. |
| 273 | *** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'. |
| 274 | *** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take |
| 275 | extra arguments for arbitrary properties. |
| 276 | *** New variable `abbrev-minor-mode-table-alist'. |
| 277 | *** `local-abbrev-table' can hold a list of abbrev-tables. |
| 278 | *** Abbrevs have now the following special properties: |
| 279 | `:count', `:system', `:enable-function', `:case-fixed'. |
| 280 | *** Abbrev-tables have now the following special properties: |
| 281 | `:parents', `:case-fixed', `:enable-function', `:regexp', |
| 282 | `abbrev-table-modiff'. |
| 283 | |
| 284 | ** Help mode. |
| 285 | *** New macro `with-help-window' should set up help windows better |
| 286 | than `with-output-to-temp-buffer' with `print-help-return-message'. |
| 287 | *** New option `help-window-select' permits to customize whether help |
| 288 | window shall be automatically selected when invoking help. |
| 289 | *** New variable `help-window-point-marker' permits to specify new |
| 290 | position of point in help window (for example in `view-lossage'). |
| 291 | |
| 292 | ** view-remove-frame-by-deleting is now by default t |
| 293 | since users found iconification of view-mode frames distracting. |
| 294 | |
| 295 | ** Isearch mode |
| 296 | |
| 297 | *** New command `isearch-occur' bound to `M-s o' in isearch mode |
| 298 | runs `occur' with the current search string. |
| 299 | |
| 300 | *** isearch can now search through multiple ChangeLog files. |
| 301 | When running isearch in a ChangeLog file, if the search fails, |
| 302 | then another C-s tries searching the previous ChangeLog, |
| 303 | if there is one (e.g. go from ChangeLog to ChangeLog.12). |
| 304 | |
| 305 | This is enabled if isearch-buffers-multi is non-nil. |
| 306 | |
| 307 | ** smerge-refine highlights word-level details of changes in conflict. |
| 308 | It's used automatically as you move through conflicts, see smerge-auto-refine. |
| 309 | |
| 310 | ** Diff mode |
| 311 | |
| 312 | *** diff-refine-hunk highlights word-level details of changes in a diff hunk. |
| 313 | It's used automatically as you move through hunks, see |
| 314 | diff-auto-refine. It is bound to `C-c C-b'. |
| 315 | |
| 316 | *** diff-add-change-log-entries-other-window iterates through the diff |
| 317 | buffer and tries to create ChangeLog entries for each change. |
| 318 | It is bound to `C-x 4 A'. |
| 319 | |
| 320 | ** archive-mode has basic support to browse Rar archives. |
| 321 | |
| 322 | ** talk.el has been extended for multiple tty support. |
| 323 | |
| 324 | ** compilation-auto-jump-to-first-error tells `compile' to jump to |
| 325 | the first error encountered during compilations. |
| 326 | |
| 327 | ** In the `copyright' package, you can specify your copyright holders' names. |
| 328 | Only copyright lines with holders matching copyright-names-regexp will be |
| 329 | considered for update. |
| 330 | |
| 331 | ** eldoc highlights the function argument under point |
| 332 | with the face `eldoc-highlight-function-argument'. |
| 333 | |
| 334 | ** hide-ifdef-mode permits to shadow ifdef-blocks instead of hiding them. |
| 335 | See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'. |
| 336 | |
| 337 | +++ |
| 338 | ** defcustom accepts new keyword arguments, `:safe' and `:risky', which |
| 339 | set a variable's `safe-local-variable' and `risky-local-variable' property. |
| 340 | |
| 341 | ** Etags changes. |
| 342 | *** The --members option is now the default. |
| 343 | |
| 344 | Use --no-members if you want the old default behaviour of not tagging |
| 345 | struct members in C, members variables in C++ and variables in PHP. |
| 346 | |
| 347 | ** VC |
| 348 | *** Clicking on the VC mode-line entry now pops the VC menu. |
| 349 | |
| 350 | *** The VC mode-line entry now has a tooltip that explains the VC file status. |
| 351 | |
| 352 | *** VC now supports applying VC operations to a set of files at a time. |
| 353 | |
| 354 | This enables VC to work much more effectively with changeset-oriented |
| 355 | version-control systems such as Subversion, GNU Arch, Mercurial, and |
| 356 | Bzr. VC will now pass a multiple-file commit to these systems |
| 357 | as a single changeset. |
| 358 | |
| 359 | *** In VC Annotate mode, you can type V to toggle the annotation visibility. |
| 360 | |
| 361 | *** In VC Annotate mode, you can type f to show the file revision on |
| 362 | the current line. |
| 363 | |
| 364 | ** log-edit now has a command bound to C-c C-d to show the diff for |
| 365 | the files involved. |
| 366 | |
| 367 | ** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs. |
| 368 | |
| 369 | ** The appearance of superscript and subscript in TeX is more customizable. |
| 370 | See the documentation of the variables: tex-fontify-script, |
| 371 | tex-font-script-display, tex-suscript-height-ratio, and |
| 372 | tex-suscript-height-minimum. |
| 373 | |
| 374 | ** BibTeX mode: |
| 375 | |
| 376 | *** New command `bibtex-initialize' (re)initializes BibTeX buffers. |
| 377 | |
| 378 | *** New `bibtex-entry-format' options `whitespace', `braces', and |
| 379 | `string', disabled by default. |
| 380 | |
| 381 | *** New variable `bibtex-cite-matcher-alist' contains rules to |
| 382 | identify cited keys in BibTeX entries, used by `bibtex-find-crossref'. |
| 383 | |
| 384 | *** Command `bibtex-url' allows multiple URLs per entry. |
| 385 | |
| 386 | +++ |
| 387 | ** Tramp |
| 388 | |
| 389 | *** New connection methods. |
| 390 | The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have |
| 391 | been introduced. There are also new so-called gateway methods |
| 392 | "tunnel" and "socks". |
| 393 | |
| 394 | *** Multihop syntax has been removed. |
| 395 | The pseudo-method "multi" has been removed. Instead of, multi hops |
| 396 | can be specified by the new variable `tramp-default-proxies-alist'. |
| 397 | |
| 398 | *** More default settings. |
| 399 | Default values can be set via the variables `tramp-default-user', |
| 400 | `tramp-default-user-alist' and `tramp-default-host'. |
| 401 | |
| 402 | *** Connection information is cached. |
| 403 | In order to reduce connection setup, information about used |
| 404 | connections are kept persistent in a file. The name of this file is |
| 405 | defined in the variable `tramp-persistency-file-name'. |
| 406 | |
| 407 | *** Control of remote processes. |
| 408 | Running processes on a remote host can be controlled by settings in |
| 409 | `tramp-remote-path' and `tramp-remote-process-environment'. |
| 410 | |
| 411 | *** Success of remote copy is checked. |
| 412 | When the variable `file-precious-flag' is set, the success of a remote |
| 413 | file copy is checked via the file's checksum. |
| 414 | |
| 415 | ** Miscellaneous programming mode changes |
| 416 | |
| 417 | *** The file etc/emacs.py now supports both Python 2 and 3, meaning |
| 418 | that either version can be used as inferior Python by python.el. |
| 419 | |
| 420 | *** The variable `fortran-line-length' can change the fixed-form line-length. |
| 421 | |
| 422 | *** In Fortran mode, M-; is now bound to the standard comment-dwim, |
| 423 | rather than fortran-indent-comment. |
| 424 | |
| 425 | +++ |
| 426 | *** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax. |
| 427 | |
| 428 | ** Gnus package |
| 429 | |
| 430 | *** The Gnus package has been updated |
| 431 | |
| 432 | *** There are many news features, bug fixes and improvements. |
| 433 | |
| 434 | See the file GNUS-NEWS or the node "No Gnus" in the Gnus manual for details. |
| 435 | |
| 436 | ** Miscellaneous |
| 437 | |
| 438 | *** comint-mode uses `start-file-process' now (see Lisp Changes). |
| 439 | If `default-directory' is a remote file name, subprocesses are started |
| 440 | on the corresponding remote system. |
| 441 | |
| 442 | *** C-x C-q in dired-mode now runs the command wdired-change-to-wdired-mode, |
| 443 | and C-x C-q in wdired-mode exits it with asking a question about |
| 444 | saving changes. |
| 445 | |
| 446 | *** The new command `eshell/info' runs info in an eshell buffer. |
| 447 | |
| 448 | *** The pcmpl-unix package supports hostname completion for ssh and scp. |
| 449 | |
| 450 | *** WoMan tries to add locale-specific manual page directories to the |
| 451 | search path. This can be disabled by setting `woman-locale' to nil. |
| 452 | |
| 453 | *** The new variable `ffap-rfc-directories' specifies a list of local |
| 454 | directories in which `ffap-rfc' will first search for RFCs. |
| 455 | |
| 456 | \f |
| 457 | * Changes in Emacs 23.1 on non-free operating systems |
| 458 | |
| 459 | --- |
| 460 | ** IPv6 is supported on MS-Windows. |
| 461 | Emacs now supports IPv6 on Windows XP and later, and earlier versions |
| 462 | of Windows with third party IPv6 stacks installed. Previously IPv6 was |
| 463 | supported on other platforms, but not on Windows due to using the winsock |
| 464 | 1.1 header file, even though Emacs was linking to the winsock 2 library. |
| 465 | |
| 466 | ** More keys available on MS-Windows. |
| 467 | Keys normally associated with IMEs, and some exotic keys not normally found |
| 468 | on standard keyboards have been given names so they can be bound to functions |
| 469 | inside Emacs. If there are keys on your keyboard that have not been exposed |
| 470 | to Emacs in the past, try C-h k to see if they are available now. |
| 471 | |
| 472 | Emacs can now bind functions to the extra buttons for media player and |
| 473 | browser control present on some keyboards. These buttons are disabled |
| 474 | by default, since enabling them prevents their system-wide use when |
| 475 | Emacs has focus. To enable them, set the variable |
| 476 | w32-pass-multimedia-buttons to nil. See the doc string of that variable |
| 477 | for the list of extra keys that are available. |
| 478 | \f |
| 479 | * Incompatible Lisp Changes in Emacs 23.1 |
| 480 | |
| 481 | +++ |
| 482 | ** The function `dired-call-process' has been removed. |
| 483 | |
| 484 | ** The variable `byte-compile-warnings' can now be a list starting with `not', |
| 485 | meaning to disable the specified warnings. The meaning of this list |
| 486 | may therefore be the reverse of what you expect (of course, this is |
| 487 | only an issue if you make use of the new `not' syntax). Rather than |
| 488 | checking/manipulating elements directly, use the new functions |
| 489 | `byte-compile-warning-enabled-p', `byte-compile-disable-warning', and |
| 490 | `byte-compile-enable-warning.' |
| 491 | |
| 492 | ** `mode-name' is no longer guaranteed to be a string. |
| 493 | Use `(format-mode-line mode-name)' to ensure a string value. |
| 494 | |
| 495 | \f |
| 496 | * Lisp Changes in Emacs 23.1 |
| 497 | |
| 498 | ** clone-indirect-buffer now runs the clone-indirect-buffer-hook. |
| 499 | ** `beginning-of-defun-function' now takes one argument, the count |
| 500 | given to `beginning-of-defun'. |
| 501 | |
| 502 | ** The variable `inhibit-changing-match-data', if non-nil, prevents the |
| 503 | search and match primitives from changing the match data. |
| 504 | |
| 505 | +++ |
| 506 | ** New function `match-substitute-replacement' returns the result of |
| 507 | `replace-match' without actually using it in the buffer. |
| 508 | |
| 509 | ** If a local hook function has a non-nil `permanent-local-hook' |
| 510 | property, then `kill-all-local-variables' does not remove it from |
| 511 | the local value of the hook variable. This means it remains |
| 512 | even if you change major modes. |
| 513 | |
| 514 | +++ |
| 515 | ** A list of default values can be specified for the DEFAULT argument of |
| 516 | functions `read-from-minibuffer', `read-string', `read-command', |
| 517 | `read-variable', `read-buffer', `completing-read'. Elements of this list |
| 518 | are available for inserting into the minibuffer by typing `M-n'. |
| 519 | For empty input these functions return the first element of this list. |
| 520 | |
| 521 | ** `custom-note-var-changed' tells Custom to treat the change in a certain |
| 522 | variable as having been made within Custom. |
| 523 | |
| 524 | ** `frame-inherited-parameters' lets new frames inherit parameters from |
| 525 | the selected frame. |
| 526 | |
| 527 | ** Commands should use `use-region-p' to test whether there is |
| 528 | an active region that they should operate on. |
| 529 | |
| 530 | ** `region-active-p' returns non-nil when Transient Mark mode |
| 531 | is enabled and there is an active region. This is NOT the best function |
| 532 | to use to test whether a command should operate on the region instead |
| 533 | of the usual behavior -- for that, use `use-region-p'. |
| 534 | |
| 535 | ** New keymap `input-decode-map' overrides like key-translation-map, but |
| 536 | applies before function-key-map. Also it is terminal-local contrary to |
| 537 | key-translation-map. Terminal-specific key-sequences are generally added to |
| 538 | this map rather than to function-key-map now. |
| 539 | |
| 540 | ** The new macro `declare-function' suppresses compiler warnings about |
| 541 | undefined functions. The new `check-declare' package verifies that such |
| 542 | statements are accurate (i.e. the functions are actually defined in |
| 543 | the specified files). |
| 544 | |
| 545 | ** The new function `read-color' reads a color name using the minibuffer. |
| 546 | |
| 547 | ** The new function `face-all-attributes' returns an alist |
| 548 | describing all the basic attributes of a given face. |
| 549 | |
| 550 | ** `interprogram-paste-function' can now return one string or a list |
| 551 | of strings. In the latter case, Emacs puts the second and following |
| 552 | strings on the kill ring. |
| 553 | |
| 554 | ** Changes related to multiple tty support. |
| 555 | |
| 556 | *** $TERM is now set to `dumb' for subprocesses. If you want to know the |
| 557 | $TERM inherited by Emacs you will have to look inside initial-environment. |
| 558 | |
| 559 | *** $DISPLAY is now dynamically inherited from the frame's `display'. |
| 560 | |
| 561 | *** The `window-system' variable has been made frame-local. The new |
| 562 | `initial-window-system' variable contains the `window-system' value |
| 563 | for the first frame. |
| 564 | |
| 565 | *** You can specify a terminal device (`tty' parameter) and a terminal |
| 566 | type (`tty-type' parameter) to `make-terminal-frame'. |
| 567 | |
| 568 | *** The new function `make-frame-on-tty' allows you to create a new |
| 569 | frame on another tty device interactively. |
| 570 | |
| 571 | *** The function `make-frame-on-display' now works during a tty |
| 572 | session, and `make-frame-on-tty' works during a graphical session. |
| 573 | |
| 574 | *** New functions: `delete-tty', `suspend-tty', `resume-tty'. |
| 575 | |
| 576 | *** A new data type for terminals with functions: `get-device-terminal', |
| 577 | `terminal-parameters', `terminal-parameter', `set-terminal-parameter'. |
| 578 | |
| 579 | *** New hooks: `suspend-tty-functions' and `resume-tty-functions' |
| 580 | are called after a tty frame has been suspended or resumed, |
| 581 | respectively. The functions are called with the terminal id of the frame |
| 582 | being suspended/resumed as a parameter. |
| 583 | |
| 584 | *** New function: `environment'. |
| 585 | |
| 586 | *** New variable: `local-function-key-map'. |
| 587 | This in addition to the global function-key-map variable that |
| 588 | already existed. The global variable is not used directly any more; |
| 589 | instead, the local-function-key-map is initialized so as to inherit from |
| 590 | function-key-map. |
| 591 | |
| 592 | *** `initial-environment' holds the environment inherited from Emacs's parent. |
| 593 | |
| 594 | *** The `keyboard-translate-table' variable and the terminal and |
| 595 | keyboard coding systems have been made terminal-local. |
| 596 | |
| 597 | *** In addition to the global function-key-map, Emacs has terminal-local |
| 598 | local-function-key-map variables, and uses them instead of the |
| 599 | global keymaps to set up translations and function key sequences |
| 600 | relevant to a specific terminal device. |
| 601 | |
| 602 | |
| 603 | ** You can now also pass the value of the `invisible' property to invisible-p |
| 604 | to check whether it would cause the text to be invisible. Convenient when |
| 605 | checking invisibility of text which has no buffer position |
| 606 | (e.g. in before/after-strings). |
| 607 | |
| 608 | ** Non-breaking space now acts as whitespace. |
| 609 | |
| 610 | +++ |
| 611 | ** In `condition-case', a handler can specify "let the debugger run first". |
| 612 | |
| 613 | You do this by writing `debug' in the list of conditions to be handled, |
| 614 | like this: |
| 615 | |
| 616 | (condition-case nil |
| 617 | (foo bar) |
| 618 | ((debug error) nil)) |
| 619 | |
| 620 | ** The `require-match' argument to `completing-read' accepts a new value |
| 621 | `confirm-only'. |
| 622 | |
| 623 | +++ |
| 624 | ** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly. |
| 625 | |
| 626 | ** New function `window-full-width-p' returns t if a window is as wide |
| 627 | as its frame. |
| 628 | |
| 629 | ** The new function `split-string-and-unquote' does (what?) |
| 630 | |
| 631 | ** The new function `combine-and-quote-strings' does (what?) |
| 632 | |
| 633 | ** The new function `image-refresh' refreshes all images associated |
| 634 | with a given image specification. |
| 635 | |
| 636 | +++ |
| 637 | ** New variable `user-emacs-directory'. |
| 638 | Use this instead of "~/.emacs.d". |
| 639 | |
| 640 | +++ |
| 641 | ** The new function `start-file-process' is similar to `start-process', |
| 642 | but obeys file handlers. The file handler is chosen based on |
| 643 | `default-directory'. The functions `start-file-process-shell-command' |
| 644 | and `process-file-shell-command' are also new; they call internally |
| 645 | `start-file-process' and `process-file', respectively. |
| 646 | |
| 647 | ** The new function `process-lines' executes an external program and |
| 648 | returns its output as a list of lines. |
| 649 | |
| 650 | +++ |
| 651 | ** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED. |
| 652 | IDENTIFICATION specifies which part of the remote identifier has to be |
| 653 | returned. With CONNECTED passed non-nil, it is checked whether a |
| 654 | remote connection has been established already. |
| 655 | |
| 656 | ** The two new functions `looking-at-p' and `string-match-p' can do |
| 657 | the same matching as `looking-at' and `string-match' without changing |
| 658 | the match data. |
| 659 | |
| 660 | ** The interactive-form of a function can be added post-facto via the |
| 661 | `interactive-form' symbol property. Mostly useful to add complex interactive |
| 662 | forms to subroutines. |
| 663 | \f |
| 664 | * New Packages for Lisp Programming in Emacs 23.1 |
| 665 | |
| 666 | ** The package isearch-multi.el has been added. It implements a new mode |
| 667 | `isearch-buffers-minor-mode' that allows isearch to search through |
| 668 | multiple buffers. In this mode a new variable |
| 669 | `isearch-buffers-next-buffer-function' defines the function to call |
| 670 | to get the next buffer to search in the series of multiple buffers. |
| 671 | |
| 672 | ** The new package avl-tree.el deals with the AVL tree data structure. |
| 673 | |
| 674 | \f |
| 675 | ---------------------------------------------------------------------- |
| 676 | This file is part of GNU Emacs. |
| 677 | |
| 678 | GNU Emacs is free software; you can redistribute it and/or modify |
| 679 | it under the terms of the GNU General Public License as published by |
| 680 | the Free Software Foundation; either version 3, or (at your option) |
| 681 | any later version. |
| 682 | |
| 683 | GNU Emacs is distributed in the hope that it will be useful, |
| 684 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 685 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 686 | GNU General Public License for more details. |
| 687 | |
| 688 | You should have received a copy of the GNU General Public License |
| 689 | along with GNU Emacs; see the file COPYING. If not, write to the |
| 690 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 691 | Boston, MA 02110-1301, USA. |
| 692 | |
| 693 | \f |
| 694 | Local variables: |
| 695 | mode: outline |
| 696 | paragraph-separate: "[ \f]*$" |
| 697 | end: |
| 698 | |
| 699 | arch-tag: e759449d-88b3-4de4-9900-3a6c3dfa23e2 |