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