* Makefile.in (Makefile): Use it for its timestamp value as well, and
[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 29** The default X toolkit is now Gtk+, rather than Lucid.
09e18d03
CY
30The configure option `--with-gtk' has been removed. Gtk is now the
31default toolkit, but you can use --with-x-toolkit=gtk if necessary.
3f7194ed 32
09e18d03
CY
33** New font code.
34Fonts are handled by new code capable of dealing with multiple font
35backends. This requires the freetype and fontconfig libraries
2b7a2553 36
09e18d03
CY
37*** Emacs now accepts font names supplied in the fontconfig format
38(e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12").
1abe3a1e 39
09e18d03
CY
40*** Added support for local fonts (fonts installed on the machine
41where Emacs is running).
42
43*** Added support for the Xft library for antialiasing.
44
45*** Added support for the otf library for complex text layout by
46OpenType fonts.
47
48*** Added support for the m17n library for text shaping.
15f02f65 49
09e18d03
CY
50** Changes to image support
51
52*** configure now checks for libgif before libungif when searching for
9d3cc9b2 53a GIF library.
b5ac89f8 54
09e18d03
CY
55*** Emacs now supports the SVG image format through librsvg2.
56
57** The Mac Carbon port is no longer supported.
58Instead, use... [FIXME what?]
36e625ec 59
09e18d03
CY
60** The new configuration option "--with-dbus" enables D-Bus language
61bindings for Emacs.
07e5c0b0 62
bb9f7948
EZ
63** Support for many obsolete platforms has been removed.
64See the list at the end of etc/MACHINES for details.
65
09e18d03
CY
66*** Support for systems without alloca has been removed.
67
68*** Support for Sun windows has been removed.
69
48a8be40
GM
70** The `emacstool' utility has been removed.
71
a46ee55c
GM
72** The configure options `--with-gcc', `--without-gcc' have been removed.
73Configure will use gcc by default. Set the CC environment variable if
74you need control over which C compiler is used.
75
09e18d03
CY
76** The refcards are now shipped as PDF files.
77
78** Emacs 23 comes with a new set of default icons.
79Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
80The Emacs 22 icon is available as `emacs22.png' in the same location.
4e5cdb4f 81\f
6dadd99f
NR
82* Changes in Emacs 23.1
83
09e18d03 84** Improved X Window System support
ba5ff07b 85
09e18d03
CY
86*** Emacs now supports using both X displays and ttys in one session.
87With an Emacs server active (M-x server-start), `emacsclient -t'
88creates a tty frame connected to the running emacs server. You can
89use any number of different ttys. `emacsclient -c' creates a new X11
90frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set).
780d7bb9
RS
91
92You can test for the presence of this feature in your Lisp code by
93testing for the `multi-tty' feature.
94
09e18d03
CY
95**** Emacsclient can now open new terminal frames.
96Now, the default behavior is to open a new Emacs frame by default.
97Use the -c option to get the old behavior of opening files in the
98currently selected Emacs frame.
d82c3d44 99
09e18d03
CY
100*** The new command close-display-connection closes a connection to a
101remote display.
d82c3d44 102
09e18d03
CY
103*** Emacs now supports the XEmbed specification.
104You can embed Emacs in another application on X11. The new command line
105option --parent-id is used to pass the parent window id to Emacs. See
7b476dbe
JD
106http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
107for details about XEmbed.
108
09e18d03
CY
109*** Emacs can now set the frame opacity.
110The opacity of a frame can be controlled by setting the `alpha' frame
111parameter. This only takes effect on a compositing window manager for
112the X Window System, such as Compiz, Beryl and Compiz Fusion.
55f9bad5
GM
113
114The alpha parameter should be an integer between 0 (transparent) and
09e18d03
CY
115100 (opaque), or a float number between 0.0 and 1.0. It can also be a
116cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an
117active frame and INACTIVE is the opactity of non-active frames.
55f9bad5 118
09e18d03
CY
119The variable `frame-alpha-lower-limit' defines a lower bound for the
120opacity; the default is 20.
55f9bad5 121
09e18d03 122** Internationalization changes
fec8ef06 123
09e18d03
CY
124*** The Emacs character set is now a superset of Unicode.
125(It has about four times the code space, which should be plenty).
0a963185 126
09e18d03
CY
127The internal encoding used for buffers and strings is now
128Unicode-based and called `utf-8-emacs'. This encoding is backwards
129compatible with Unicode's UTF-8 encoding. The internal encoding
130previously used by Emacs, `emacs-mule', is still available.
6dadd99f 131
09e18d03
CY
132During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files.
133As a result, byte-compiled files containing non-ASCII characters can't
134be read by earlier versions of Emacs. Files compiled by Emacs 20, 21,
135or 22 are loaded correctly as emacs-mule (whether or not they contain
136multibyte characters). This takes somewhat more time, so it may be
137worth recompiling existing .elc files which don't need to be shared
138with older Emacsen.
3ae459e5 139
09e18d03 140*** There are new coding systems/aliases; see M-x list-coding-systems.
c2e8590b 141
09e18d03
CY
142*** There is a new charset implementation with many new charsets.
143See M-x list-character-sets. New charsets can be defined conveniently
144as tables of unicodes.
1abe3a1e 145
09e18d03
CY
146**** The dimension of a charset is now 1, 2, 3, or 4, and the size of
147each dimension is no longer limited to 94 or 96.
eb28688c 148
09e18d03
CY
149**** A dynamic charset priority list is used to infer the charset of
150characters for display.
6c5d503f 151
09e18d03
CY
152*** There are new language environments for Chinese-GBK,
153Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu,
154Sinhala, and TaiViet.
c9447ae1 155
09e18d03
CY
156*** The minor modes unify-8859-on-encoding-mode and
157unify-8859-on-decoding-mode are obsolete.
d466e9fc 158
09e18d03
CY
159** Emacs now supports serial port access on GNU/Linux, Unix, and
160Windows. `serial-term' starts an interactive terminal,
161`make-serial-process' and `serial-process-configure' provide a Lisp
162interface. The serial port can be configured at runtime with the
163mode-line mouse menu.
6c5d503f 164
09e18d03 165** Menu Bar changes
aff2ba04 166
09e18d03
CY
167*** In the Options menu, the "Set Default Font" item applies the
168selected font to the `default' face on all frames, not just the
169current frame. Furthermore, if Emacs is compiled with both GTK and
170Fontconfig support, the "Set Default Font" item uses the GTK font
171selection dialog instead of an Emacs pop-up menu.
c4c9b6f9 172
09e18d03
CY
173*** The font setting chosen by "Set Default Font" is saved if the
174"Save Options" item is used.
1b21ee06 175
09e18d03 176*** The Options menu contains a new entry to turn on Longlines mode.
5c4a15b3 177
09e18d03 178** Mode-line changes
c4c9b6f9 179
09e18d03
CY
180*** The mode-line displays a `@', instead of `-', if the
181default-directory for the current buffer is on a remote machine.
c4c9b6f9 182
09e18d03
CY
183*** The mode-line displays a mode menu when mouse-1 is clicked on a
184minor mode, in the same way as it already did for major modes.
b3cf10d7 185
09e18d03
CY
186*** The `mode-line-emphasis' face is used to highlight certain
187mode-line information (e.g. waiting for a VC command to finish).
d82c3d44 188
09e18d03
CY
189** Directory-local variables can now be defined.
190By default, Emacs looks in .dir-settings.el for directory-local
191variables. For more information, see `set-directory-project' and
192`define-project-bindings'.
307f3501 193
6dadd99f 194\f
0bfd685e 195* Startup Changes in Emacs 23.1
21f7b9d8 196
3063e326
JL
197** The option `inhibit-startup-screen' (with aliases to old names
198`inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit
199display of the initial message in the *scratch* buffer. If you don't
200want to display the initial message in the *scratch* buffer at startup,
201you can set the option `initial-scratch-message' to nil.
202
56e1896b
JL
203** New user option `initial-buffer-choice' specifies what to display
204after starting Emacs: startup screen, *scratch* buffer, visiting a
205file or directory.
206
aa5310e4
DK
207** New alias `argv' for `command-line-args-left'
208This is a convenience alias, so that one can write `(pop argv)'
209inside of --eval command line arguments in order to access
210following arguments.
f8fd7ed3
GM
211
212** The abbrev file is no longer read at startup in batch mode.
c44da964 213\f
0bfd685e 214* Incompatible Editing Changes in Emacs 23.1
b58cb59f 215
117907d4
JL
216+++
217** In Dired-x, all command guesses for ! are now added to the default
218list accessible by M-n instead of pushing all guesses temporarily into
219the history list.
220
e405fa5f 221** The following input methods were removed in Emacs 22.2, but this was
9a930d75 222not advertised: danish-alt-postfix, esperanto-alt-postfix,
e405fa5f
RS
223finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix,
224norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix,
225and swedish-alt-postfix. Use the versions without "alt-", which are
226identical.
0b0914ae 227
406c0f12 228\f
0bfd685e 229* Editing Changes in Emacs 23.1
406c0f12 230
09e18d03
CY
231** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now
232invokes `suspend-frame'. This change is for compatibility with the
233new multi-tty support (see `Improved X Window System support' above).
3ae459e5 234
09e18d03 235** Mark changes
59b5d020 236+++
3ae459e5 237*** Transient Mark mode is now on by default.
3ae459e5
CY
238+++
239*** mark-even-if-inactive now defaults to t
3ae459e5
CY
240+++
241*** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without activating it.
1ac03a31 242+++
3ae459e5
CY
243*** When Transient Mark mode is on, M-q now fills the region if the
244region is active. Otherwise, it fills the current paragraph.
ecde850a 245+++
3ae459e5
CY
246*** When Transient Mark mode is on, M-$ now checks spelling of the
247region if the region is active. Otherwise, it checks spelling of the
dc868f13 248word at point.
3ae459e5
CY
249*** When Transient Mark mode is on, TAB now indents the region if the
250region is active.
3ae459e5
CY
251*** `use-empty-active-region' controls whether an empty active region
252in Transient Mark mode should make commands operate on that empty
253region.
254
255** Temporarily active regions
256
257*** The new variable shift-select-mode, non-nil by default, controls
258shift-selection. When Shift Select mode is on, shift-translated
259motion keys (e.g. S-left and S-down) activate and extend a temporary
260region, similar to mouse-selection.
261
262*** Temporarily active regions, created using shift-selection or
263mouse-selection, are not necessarily deactivated in the next command.
264They are only deactivated after point motion commands that are not
265shift-translated, or after commands that would ordinarily deactivate
266the mark in Transient Mark mode (e.g., any command that modifies the
267buffer).
268
505d8756 269** Minibuffer changes
297b8ccd 270
09e18d03
CY
271*** Operations like C-x b and C-x C-f, which use switch-to-buffer, do
272not fail any more when used in a minibuffer or a dedicated window.
273Instead, they fallback on using pop-to-buffer, which will use some
274other window.
23d2b215 275
d47a29c1
JL
276*** When M-n in the minibuffer reaches the end of the list of defaults,
277it adds the completion list to the end, so next M-n continues putting
278completion items to the minibuffer. The same principle applies to
279incremental search commands as well: C-s or C-M-s starts searching
280the default values and after the end of defaults they continue
281searching minibuffer completion items.
f3ed2b83 282
09e18d03
CY
283*** Minibuffer input of shell commands now comes with completion.
284
285*** In the `C-x d' (Dired) prompt, typing M-n gives the visited file
286name of the current buffer.
dc2f6c05 287
09e18d03
CY
288*** In the M-! (shell-command) prompt, M-n provides some default commands.
289These are guessed using the file extension of the current file, based
290on the file-handlers specified in the operating system's `mailcap'
291file. The ! command in Dired (dired-do-shell-command) works
292similarly, using the file displayed on the current line.
117907d4
JL
293
294*** A list of regexp default values is available via M-n for `occur',
295`keep-lines', `flush-lines' and `how-many'. This list includes the active
296region in transient-mark-mode, the word under the cursor, the last isearch
297regexp, the last isearch string and the last replacement regexp.
298
297b8ccd
JL
299*** isearch started in the minibuffer searches in the minibuffer history.
300Reverse isearch commands (C-r, C-M-r) search in previous minibuffer
301history elements, and forward isearch commands (C-s, C-M-s) search in
302next history elements. When the reverse search reaches the first history
303element, it wraps to the last history element, and the forward search
304wraps to the first history element. When the search is terminated, the
305history element containing the search string becomes the current.
306
505d8756
GM
307** Face changes
308
309*** The new function `face-all-attributes' returns an alist describing
310all the basic attributes of a given face.
311
d2d160bd
CY
312*** S-down-mouse-1 now pops up a menu for changing the default font
313and text size of the default face in the current buffer. The face is
314changed via face remapping (see below).
315
f20186fd
GM
316*** FIXME face-remap
317
09e18d03 318** Primary selection changes
0091c67e 319
09e18d03
CY
320*** If `select-active-regions' is t, setting the mark automatically
321makes the new region into the primary selection (for interaction with
322other window applications). If you enable this, you might want to
323bind `mouse-yank-primary' to Mouse-2.
c160dc76 324
09e18d03
CY
325*** You can disable kill ring commands from accessing the primary selection
326by setting `x-select-enable-primary' to nil.
2e282009 327
09e18d03 328** Completion changes
1816bda7 329
09e18d03
CY
330*** `completion-styles' can be customized to choose your favorite
331completion style.
c06c430f 332
09e18d03 333*** The default completion styles include a form of partial-completion.
c06c430f 334
09e18d03
CY
335*** The new command `minibuffer-force-complete' chooses one of the
336possible completions, rather than stopping at the common prefix.
a2e0b5dd 337
09e18d03
CY
338*** `completion-auto-help' can be set to `lazy' to list the completions only
339if you repeat the completion. This was already supported in
340`partial-completion-mode'.
a0818148 341
85b1de32
CY
342** Continuation lines can be wrapped at word boundaries
343(word-wrapping) instead of the right window edge. The new per-buffer
344variable `word-wrap', if non-nil turns on word-wrapping. Word
345wrapping does not take place if continuation lines are not shown,
346e.g. if truncate-lines is non-nil.
347
463c6766
CY
348** Window management changes
349
350*** truncate-partial-width-windows now accepts integer values, which
351specify a minimum window width for partial-width windows, below which
352lines are truncated. The default has been changed to 30.
353
354*** The new command balance-windows-area balances windows both
355vertically and horizontally.
356
357** Continuation lines can be wrapped at word boundaries
358(word-wrapping) instead of the right window edge. The new per-buffer
359variable `word-wrap', if non-nil turns on word-wrapping. Word
360wrapping does not take place if continuation lines are not shown,
361e.g. if truncate-lines is non-nil.
362
09e18d03 363** Miscellaneous changes:
3f7194ed 364
09e18d03
CY
365*** C-l is bound to the new command recenter-top-bottom, rather than recenter.
366This moves the current line to window center, top and bottom on
367successive invokations.
15f3eb73 368
09e18d03 369*** scroll-preserve-screen-position also preserves the column position.
c154c0be 370
09e18d03
CY
371*** If `yank-pop-change-selection' is t, rotating the kill ring also
372updates the selection or clipboard to the current yank, just as M-w
373would do so with the text it copies to the kill ring.
374
375+++
376*** C-M-% now shows replacement as it would look in the buffer, with
377`\N' and `\&' substituted according to the match. Old behavior can be
378restored by customizing `query-replace-show-replacement'.
379
380*** The command shell prompts for the default directory, when it is
381called with a prefix and the default directory is a remote file name.
382This is because some file name handlers (like ange-ftp) are not able to
383run processes remotely.
384
385*** The new command kill-matching-buffers kills buffers whose name
386matches a regexp.
387
388*** The new commands `pp-macroexpand-expression' and `pp-macroexpand-last-sexp'
389pretty-print macro expansions.
8f377a4b 390
09e18d03
CY
391\f
392* New Modes and Packages in Emacs 23.1
e11910e2 393
09e18d03
CY
394** FIXME add details of new packages imported from lisp/gnus.
395[Maybe some information from doc/misc/gnus-coding.texi can be reused]
c06c430f 396
e11910e2
GM
397** Auto Composition Mode is a minor mode that composes characters
398automatically when they are displayed. It is globally on by default.
399It uses `auto-composition-function' (default `auto-compose-chars').
400
09e18d03 401** Bubbles, a new game, is similar to SameGame.
f6b26818 402
7ef39c6e
GM
403** bug-reference.el provides clickable links to bug reports.
404
09e18d03 405** copyright.el adds utilities for specifying copyright holders' names.
61d244ca 406
09e18d03
CY
407*** Only copyright lines with holders matching copyright-names-regexp
408will be considered for update.
409
410*** The Copyright package looks for copyright at the end of the buffer
411if `copyright-at-end-flag' is non-nil (change-log-mode sets this).
412
413** dbus.el provides D-Bus language bindings.
414D-Bus is an inter-process communication mechanism for applications
415residing on the same host, based on messages. See the manual for
416details.
417
418** Doc View Mode supports viewing of PDF, PostScript and DVI documents
419inside an Emacs buffer. It works by converting the document to a set
420of PNG images first. One can also search for a regular expression in
421the document. The commentary in doc-view.el explains its usage.
422
423** EasyPG is an all-in-one GnuPG interface.
424It includes GnuPG keyring browser, cryptographic operations on regions
425and files, and automatic encryption of *.gpg files. For details, see
426the EasyPG Assistant User's Manual.
427
428** json.el is a library for parsing and generating JSON
429(JavaScript Object Notation), a lightweight data-interchange format.
430
431** linum.el is a new minor mode to display line numbers for the
432current buffer.
433
434** minibuffer-indicate-depth-mode shows the minibuffer depth in the prompt.
435
436** nXML Mode
437This is a new mode for editing XML documents. It allows a schema to
438be associated with the XML document being edited, using Relax NG as
439the schema language. The schema is used to provide two key features:
440
441*** Continuous validation. nXML validates as you type, highlighting
442any invalid parts of your document.
443
444*** Completion. nXML can assist you in entering an element name,
445attribute name or data value by using information about what is
446allowed by the schema in that context.
447
448** proced.el provides a Dired-like interface for operating on processes.
449Proced makes an Emacs buffer containing a listing of the current
450processes (using ps(1)). You can use the normal Emacs commands to
451move around in this buffer, and special Proced commands to operate on
452the processes listed.
453
454** Remember Mode is a mode for jotting down things to remember.
455Notes can be saved to a Diary file. For details, see the Remember
456Manual.
457
458** RST mode is a major mode for editing ReSTructured-Text files.
c2d0b538 459
c934813f
GM
460** A new `whitespace' package has been installed, and the pre-existing one
461renamed to `old-whitespace'.
462[FIXME someone explain why this is good, if it is...]
463
09e18d03
CY
464** zeroconf.el offers service discovery and service publishing
465interfaces according to the zeroconf specification. It communicates
466with Avahi, a zeroconf implementation, via D-Bus messages on systems
467which have installed this software.
468
469\f
470* Changes in Specialized Modes and Packages in Emacs 23.1
471
472** Abbrev has been rewritten in Elisp and extended with more flexibility.
e047f448 473*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
a3709a8c 474 abbrev-table-p, abbrev-insert, abbrev-table-menu.
e047f448
SM
475*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
476*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
477 extra arguments for arbitrary properties.
478*** New variable `abbrev-minor-mode-table-alist'.
479*** `local-abbrev-table' can hold a list of abbrev-tables.
480*** Abbrevs have now the following special properties:
79415279 481 `:count', `:system', `:enable-function', `:case-fixed'.
e047f448
SM
482*** Abbrev-tables have now the following special properties:
483 `:parents', `:case-fixed', `:enable-function', `:regexp',
484 `abbrev-table-modiff'.
485
09e18d03
CY
486** Apropos
487*** `apropos-library' describes the elements defined in a given library.
488*** Set `apropos-compact-layout' is you want a more compact (but wider) layout.
0253fffa 489
09e18d03 490** Archive Mode has basic support to browse Rar archives.
0253fffa 491
09e18d03 492** BibTeX mode
bafbec39 493
09e18d03 494*** New command `bibtex-initialize' (re)initializes BibTeX buffers.
bafbec39 495
09e18d03
CY
496*** New `bibtex-entry-format' options `whitespace', `braces', and
497`string', disabled by default.
12bbb989 498
09e18d03
CY
499*** New variable `bibtex-cite-matcher-alist' contains rules to
500identify cited keys in BibTeX entries, used by `bibtex-find-crossref'.
9097e8af 501
09e18d03 502*** Command `bibtex-url' allows multiple URLs per entry.
4c24d241 503
09e18d03 504** Calendar and diary
320bc739 505
09e18d03
CY
506+++
507*** There is a new date style, `iso', essentially year/month/day.
508The variable `european-calendar-style' is obsolete - use `calendar-date-style'.
509Similarly, the commands `american-calendar' and `european-calendar'
510should be replaced by `calendar-set-date-style'.
c3bb6fdb 511
09e18d03
CY
512+++
513*** The calendar namespace has been rationalized.
514All functions and variables now begin with a `calendar-', `diary-', or
515`holiday-' prefix. The various calendar systems have secondary
516prefixes, eg `calendar-french-'. The old names you are likely to use
517directly still exist, for the time being, as aliases, but please start
518using the new names.
519
520*** The function `holiday-chinese' computes holidays on the Chinese calendar.
521It has been used to add items to the list `holiday-oriental-holidays'.
522
523*** `diary-remind' accepts a negative number -DAYS as a shorthand for
524the list (1 2 ... DAYS).
24cdde13 525
76be286d
DN
526** Compile and grep modes
527
528*** The mode-line entry for the *compilation* and *grep* buffer is color coded.
529It has different colors for to show that: (a) the command is still
530running, (b) successful completion, (c) error.
531
532*** compilation-auto-jump-to-first-error tells `compile' to jump to
813fb3fe
SM
533the first error encountered during compilations.
534
09e18d03 535** Custom
b68769f2 536+++
09e18d03 537*** defcustom accepts new keyword arguments, `:safe' and `:risky', which
b68769f2
GM
538set a variable's `safe-local-variable' and `risky-local-variable' property.
539
09e18d03 540** Diff mode
38b627ce 541
09e18d03
CY
542*** diff-refine-hunk highlights word-level details of changes in a diff hunk.
543It's used automatically as you move through hunks, see
544diff-auto-refine. It is bound to `C-c C-b'.
b58a65fa 545
09e18d03
CY
546*** diff-add-change-log-entries-other-window iterates through the diff
547buffer and tries to create ChangeLog entries for each change.
548It is bound to `C-x 4 A'.
f3ff0fe9 549
09e18d03
CY
550** Fortran
551*** The variable `fortran-line-length' can change the fixed-form line-length.
117d3cc5 552
09e18d03
CY
553*** In Fortran mode, M-; is now bound to the standard comment-dwim,
554rather than fortran-indent-comment.
76be286d 555
09e18d03
CY
556+++
557*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax.
b592c357 558
09e18d03 559** Gnus
6653c6b7 560
09e18d03
CY
561*** The Gnus package has been updated
562There are many news features, bug fixes and improvements; see the file
563GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
db86064f 564
09e18d03
CY
565*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
566saving articles drafts and ~/.newsrc.eld. These file may not be read
567correctly in Emacs 22 and below. If you want to Gnus across different Emacs
568versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
15947a44 569
09e18d03
CY
570** Help mode
571*** New macro `with-help-window' should set up help windows better
572than `with-output-to-temp-buffer' with `print-help-return-message'.
573*** New option `help-window-select' permits to customize whether help
574window shall be automatically selected when invoking help.
575*** New variable `help-window-point-marker' permits to specify new
576position of point in help window (for example in `view-lossage').
15947a44 577
09e18d03 578** Isearch
15947a44 579
09e18d03
CY
580*** New command `isearch-occur' bound to `M-s o' in isearch mode
581runs `occur' with the current search string.
15947a44 582
09e18d03
CY
583*** isearch can now search through multiple ChangeLog files.
584When running isearch in a ChangeLog file, if the search fails,
585then another C-s tries searching the previous ChangeLog,
586if there is one (e.g. go from ChangeLog to ChangeLog.12).
93a142e1 587
09e18d03 588This is enabled if isearch-buffers-multi is non-nil.
15947a44 589
09e18d03
CY
590*** The part of an isearch that failed to match is highlighted in `isearch-fail'
591face.
5d503af9 592
09e18d03
CY
593*** `C-h C-h' in isearch mode displays isearch-specific Help screen,
594`C-h b' displays all isearch key bindings, `C-h k' displays the full
595documentation of the given isearch key sequence, `C-h m' displays
596documentation of isearch mode. All the rest Help commands exit isearch mode
597and execute their global definitions.
332de56f 598
09e18d03
CY
599*** When started in the minibuffer, Isearch searches in the minibuffer
600history. See `Minibuffer changes', above.
2793c9bb 601
09e18d03
CY
602** Python
603*** The file etc/emacs.py now supports both Python 2 and 3, meaning
604that either version can be used as inferior Python by python.el.
c5578d5f 605
09e18d03
CY
606*** Python mode now has `pdbtrack' functionality. When using pdb to
607debug a Python program, pdbtrack notices the pdb prompt and displays
608the source file and line that the program is stopped at, much the same
609way as gud-mode does for debugging C programs with gdb.
2793c9bb 610
09e18d03 611** T-mouse Mode
2793c9bb 612
09e18d03
CY
613*** If the gpm mouse server is running and t-mouse-mode is enabled,
614Emacs uses a Unix socket in a GNU/Linux console to talk to server,
615rather than faking events using the client program mev. This C level
616approach provides mouse highlighting and help echoing in the
617minibuffer.
2793c9bb 618
cc213f24
MA
619+++
620** Tramp
621
622*** New connection methods.
623The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have
624been introduced. There are also new so-called gateway methods
625"tunnel" and "socks".
626
627*** Multihop syntax has been removed.
628The pseudo-method "multi" has been removed. Instead of, multi hops
629can be specified by the new variable `tramp-default-proxies-alist'.
630
631*** More default settings.
632Default values can be set via the variables `tramp-default-user',
633`tramp-default-user-alist' and `tramp-default-host'.
634
635*** Connection information is cached.
636In order to reduce connection setup, information about used
637connections are kept persistent in a file. The name of this file is
638defined in the variable `tramp-persistency-file-name'.
639
640*** Control of remote processes.
641Running processes on a remote host can be controlled by settings in
642`tramp-remote-path' and `tramp-remote-process-environment'.
643
644*** Success of remote copy is checked.
645When the variable `file-precious-flag' is set, the success of a remote
646file copy is checked via the file's checksum.
647
7cba69f2
MA
648*** Passwords can be read from an authentification file.
649Tramp uses the package `auth-source' to read passwords from a file, if
650necessary.
651
09e18d03 652** VC
95d8772f 653
09e18d03
CY
654*** VC now supports applying VC operations to a set of files at a time.
655This enables VC to work much more effectively with changeset-oriented
656version-control systems such as Subversion, GNU Arch, Mercurial, Git
657and Bzr. VC will now pass a multiple-file commit to these systems as
658a single changeset.
d15f7b68 659
09e18d03
CY
660*** vc-dir is a new command that displays file names and their VC
661status. It allows to apply various VC operations to a file or a
662set of files.
c3f01f42 663
09e18d03 664*** Clicking on the VC mode-line entry now pops the VC menu.
4c24d241 665
09e18d03 666*** The VC mode-line entry now has a tooltip that explains the VC file status.
d15f7b68 667
09e18d03
CY
668*** In VC Annotate mode, for VC systems that support changesets, you can
669see the diff for the whole changeset (not only for the current file)
670by using the vc-annotate-show-changeset-diff-revision-at-line function.
a9f480e8 671
09e18d03 672*** In VC Annotate mode, you can type V to toggle the annotation visibility.
2fb6c6be 673
09e18d03
CY
674*** In VC Annotate mode, you can type f to show the file revision on
675the current line.
d5d381e2 676
09e18d03 677*** vc-git supports the "git grep" command.
cf944fa4 678
09e18d03
CY
679*** Asynchronous VC commands display [Waiting...] in the mode-line
680of the corresponding buffer as long as the asynchronous process is
681active.
cf944fa4 682
09e18d03
CY
683*** Log entries can be modified using the key "e" in log-view.
684For now only CVS, RCS, SCCS and SVN support this functionality.
685This is done by the `modify-change-comment' backend function.
143cecdb 686
09e18d03
CY
687*** In log-view-mode, for VC systems that support changesets, you can
688see the diff for the whole changeset (not only for the current file)
689by typing the D key or using the "Changeset Diff" menu entry.
cf944fa4 690
09e18d03
CY
691*** VC Support for Meta-CVS has been removed for lack of maintainer able
692to update it to the new VC.
cf944fa4 693
d15f7b68
GM
694** Miscellaneous
695
09e18d03
CY
696*** In Change Log mode, the new command C-c C-f (change-log-find-file)
697finds the file associated with the current log entry.
7ef39c6e 698
d15f7b68 699*** comint-mode uses `start-file-process' now (see Lisp Changes).
cc213f24
MA
700If `default-directory' is a remote file name, subprocesses are started
701on the corresponding remote system.
702
09e18d03 703*** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode,
40aa8257
JL
704and C-x C-q in wdired-mode exits it with asking a question about
705saving changes.
d15f7b68 706
09e18d03
CY
707*** Eldoc highlights the function argument under point
708with the face `eldoc-highlight-function-argument'.
4596901f 709
09e18d03
CY
710*** In Etags, the --members option is now the default.
711Use --no-members if you want the old default behaviour of not tagging
712struct members in C, members variables in C++ and variables in PHP.
1752e205 713
09e18d03
CY
714*** The `gdb' command only works with the graphical interface now.
715Use `gud-gdb' if you want the (old) text command mode.
716
717*** goto-address.el provides two new minor modes, goto-address-mode and
718goto-address-prog-mode, which buttonize URLS and email addresses.
719
720*** The new command `eshell/info' runs info in an eshell buffer.
3cf86f00 721
4d1e89e3
GM
722*** The new variable `ffap-rfc-directories' specifies a list of local
723directories in which `ffap-rfc' will first search for RFCs.
724
09e18d03
CY
725*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
726See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
727
728*** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'.
729
730*** Info displays breadcrumbs in the header of the page.
731See Info-breadcrumbs-depth to control it.
732
733*** In Log Edit mode, C-c C-d now shows the diff for the files involved.
734
d2c98acc 735*** net-utils has an `iwconfig' command, similar to the existing `ifconfig'.
b7bfcc8a 736It is used to configure wireless interfaces.
d2c98acc 737
09e18d03
CY
738*** The pcmpl-unix package supports hostname completion for ssh and scp.
739
740*** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs.
741
742*** smerge-refine highlights word-level details of changes in conflict.
743It's used automatically as you move through conflicts, see smerge-auto-refine.
744
745*** talk.el has been extended for multiple tty support.
746
747*** A new command `display-time-world' has been added to the Time
748package. It creates a buffer with an updating time display using
749several time zones.
750
751*** The appearance of superscript and subscript in TeX is more customizable.
752See the documentation of the variables: tex-fontify-script,
753tex-font-script-display, tex-suscript-height-ratio, and
754tex-suscript-height-minimum.
755
756*** view-remove-frame-by-deleting is now by default t
757since users found iconification of view-mode frames distracting.
758
759*** WoMan tries to add locale-specific manual page directories to the
760search path. This can be disabled by setting `woman-locale' to nil.
761
0bfd685e
GM
762\f
763* Changes in Emacs 23.1 on non-free operating systems
8ab314f9 764
203553fd
JPW
765** Case is now considered significant in completion on MS-Windows.
766The default value of `completion-ignore-case' is now nil on
767MS-Windows, the same as it is for other operating systems. The
768variable doesn't apply to reading a file name -- in that case Emacs
769heeds `read-file-name-completion-ignore-case' instead.
770
672f99b6
JR
771---
772** IPv6 is supported on MS-Windows.
773Emacs now supports IPv6 on Windows XP and later, and earlier versions
2660a9da 774of Windows with third party IPv6 stacks installed. In Emacs 22, IPv6 was
672f99b6
JR
775supported on other platforms, but not on Windows due to using the winsock
7761.1 header file, even though Emacs was linking to the winsock 2 library.
777
0d22595d 778---
6e344060
JR
779** Busy cursor (hourglass) now displays on MS-Windows.
780When Emacs is busy, an hourglass mouse cursor is displayed on Windows.
2660a9da
JR
781In Emacs 22 only X supported the busy cursor.
782
783---
784** Battery status is available on MS-Windows
785Emacs can now display the battery status in the mode-line when enabled with
786display-battery-mode or from the Options menu. More verbose battery
787information is also available with the command `battery'. In Emacs 22
788battery status was supported only on GNU/Linux and Mac.
6e344060 789
3280c5c5
JR
790** More keys available on MS-Windows.
791Keys normally associated with IMEs, and some exotic keys not normally found
792on standard keyboards have been given names so they can be bound to functions
793inside Emacs. If there are keys on your keyboard that have not been exposed
794to Emacs in the past, try C-h k to see if they are available now.
795
796Emacs can now bind functions to the extra buttons for media player and
797browser control present on some keyboards. These buttons are disabled
798by default, since enabling them prevents their system-wide use when
799Emacs has focus. To enable them, set the variable
0caa490b 800w32-pass-multimedia-buttons to nil. See the doc string of that variable
3280c5c5 801for the list of extra keys that are available.
2660a9da 802
0bfd685e
GM
803\f
804* Incompatible Lisp Changes in Emacs 23.1
8ec65cd7 805
fd9440c5 806** Variables cannot be both buffer-local and frame-local any more.
a9b08254
JL
807** The argument DEFAULT of minibuffer input functions `read-from-minibuffer',
808`read-string', `completing-read', `read-buffer', `read-command',
809`read-variable' now can be a list of default values. The elements of
810this list are available for inserting to the minibuffer with `M-n'.
811If the user enters empty input, the first element is used as the default.
812
fc944cd4 813** `functionp' returns nil for special forms.
65f81a0b 814I.e., it only returns t for objects that can be passed to `funcall'.
fc944cd4 815
58555d81 816+++
4972c361
SM
817** The multibyteness of process filters is determined by the coding-system
818used for decoding. The functions `process-filter-multibyte-p' and
819`set-process-filter-multibyte' are obsolete.
820
d82c3d44
GM
821** The behavior of map-char-table has changed. It may call the
822specified function with a cons (FROM . TO) as a key if characters in
823that range have the same value.
824
825** The value of the function `charset-id' is now always 0.
826
827** The functions `register-char-codings' and `coding-system-spec'
828have been removed.
829
6a6b4d7d
KH
830** The cpXXX coding systems are now supported automatically. The
831functions cp-...-codepage, which you had to use in Emacs 22 to enable
832support for these coding systems, have been deleted.
d82c3d44 833
03605a28
MA
834+++
835** The function `dired-call-process' has been removed.
836
777ea444 837** The variable `byte-compile-warnings' can now be a list starting with `not',
0caa490b 838meaning to disable the specified warnings. The meaning of this list
777ea444 839may therefore be the reverse of what you expect (of course, this is
0caa490b 840only an issue if you make use of the new `not' syntax). Rather than
777ea444
GM
841checking/manipulating elements directly, use the new functions
842`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
843`byte-compile-enable-warning.'
844
69df9d6d
GM
845** `mode-name' is no longer guaranteed to be a string.
846Use `(format-mode-line mode-name)' to ensure a string value.
847
85a1f98d
GM
848** The following features have been removed. They were used for
849displaying various scripts with specific fonts, and are no longer
850needed now that OpenType font support is available:
851
852*** `devanagari' and `devan-util', and all associated devanagari-* and
853dev-* functions and variables (formerly used for Devanagari script).
854
855*** `kannada' and `knd-util', and all associated kannada-* and knd-*
856functions and variables (formerly used for Kannada script).
857
858*** `malayalam' and `mlm-util', and all associated malayalam-* and
859mlm-* functions and variables (formerly used for Malayalam script).
860
861*** `tamil' and `tml-util, and all associated tamil-* and tml-*
862functions and variables (formerly used for Tamil script).
6a6b4d7d 863
0bfd685e
GM
864\f
865* Lisp Changes in Emacs 23.1
8ab314f9 866
09e18d03
CY
867** The new variable next-error-recenter specifies how next-error should
868recenter the visited source file. Its value can be a number (for example,
8690 for top line, -1 for bottom line), or nil for no recentering.
870
871** Emacs session information
872
873*** The new variables `before-init-time' and `after-init-time' record the
874value of `current-time' before and after Emacs loads the init files.
875
876*** The new function `emacs-uptime' returns the uptime of an Emacs instance.
877
878*** The new function `emacs-init-time' returns the duration of the
879Emacs initialization.
880
881** The new function `format-seconds' converts a number of seconds into a
882readable string of days, hours, etc.
883
884** set-file-modes is now interactive and can take the mode value in
885symbolic notation thanks to auxiliary functions.
886
887** If you set find-file-confirm-nonexistent-file to t, then C-x C-f
888requires confirmation before opening a non-existent file.
889
890** Built-in functions (subr) can now have an interactive specification
891that is not a prompt string. If the `intspec' parameter of a `DEFUN'
892starts with a `(', the string is evaluated as a Lisp form.
893
894** Changes affecting display-buffer
895*** New value nil for split-height-threshold inhibits vertical splitting
896unless there's no other window.
897*** New option split-width-threshold controls horizontal splitting.
898*** A window can be split horizontally even when it's not full-width.
899*** New option split-window-preferred-function can be set to a function
900to override the default splitting mechanism of display-buffer.
901
a1562258
SM
902** The variable window-point-insertion-type determines the insertion-type
903of the marker used for window-point.
904
8ba31f36
SM
905** minibuffer-local-must-match-filename-map is now named
906minibuffer-local-filename-must-match-map.
907
e2947429
SM
908** `all-completions' may now return the base size in the last cdr.
909Since this means the returned list is not properly nil-terminated, this
910is an incompatible change and is thus enabled by the new variable
911completion-all-completions-with-base-size.
912
913** New function `apply-partially' for curried application.
914
d87be1df
SM
915** `fill-forward-paragraph-function' specifies which function the filling
916code should use to find paragraph boundaries.
917
3ae459e5
CY
918** The variable `this-command-keys-shift-translated' is non-nil if the
919key sequence invoking the current command was found by
920shift-translation.
921
922** The new interactive spec code ^ says to first call
923handle-shift-selection if shift-select-mode is non-nil, before reading
924the command arguments.
925
8bf5c8a6
GM
926** When deleting a terminal, the special hook `delete-terminal-functions'
927is run.
58555d81 928
e5c4079c
SM
929** The `read-shell-command' function does what its name says, with completion.
930It uses the minibuffer-local-shell-command-map for that.
931
932** The `buffer-swap-text' function can swap the text between two buffers.
13cda5f9
SM
933This can be useful for modes such as tar-mode, archive-mode, RMAIL.
934
a2bc5bdd
SM
935** `clear-image-cache' can be told to flush only images of a specific file.
936
64663f06 937** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
d82c3d44 938
50bfa18a 939** `beginning-of-defun-function' now takes one argument, the count
d82c3d44 940 given to `beginning-of-defun'.
50bfa18a 941
39d0bf74
RS
942** The variable `inhibit-changing-match-data', if non-nil, prevents the
943search and match primitives from changing the match data.
944
59b5d020
JL
945+++
946** New function `match-substitute-replacement' returns the result of
947`replace-match' without actually using it in the buffer.
948
426e6ba0
CY
949** The new variable `replace-search-function' determines the function
950to use for searching in query-replace and replace-string.
951
952** The new variable `replace-re-search-function' determines the
953function to use for searching in `query-replace-regexp',
954`replace-regexp', + `query-replace-regexp-eval', and
955`map-query-replace-regexp'.
956
2d105adf
RS
957** If a local hook function has a non-nil `permanent-local-hook'
958property, then `kill-all-local-variables' does not remove it from
959the local value of the hook variable. This means it remains
960even if you change major modes.
961
b9694062
JL
962+++
963** A list of default values can be specified for the DEFAULT argument of
964functions `read-from-minibuffer', `read-string', `read-command',
965`read-variable', `read-buffer', `completing-read'. Elements of this list
966are available for inserting into the minibuffer by typing `M-n'.
967For empty input these functions return the first element of this list.
968
66dc1ca2
RS
969** `custom-note-var-changed' tells Custom to treat the change in a certain
970variable as having been made within Custom.
971
ab6198b2
SM
972** `frame-inherited-parameters' lets new frames inherit parameters from
973the selected frame.
66dc1ca2 974
c60d543d 975** Commands should use `use-region-p' to test whether there is
d03b9b31
RS
976an active region that they should operate on.
977
c60d543d
RS
978** `region-active-p' returns non-nil when Transient Mark mode
979is enabled and there is an active region. This is NOT the best function
980to use to test whether a command should operate on the region instead
981of the usual behavior -- for that, use `use-region-p'.
982
3ae459e5
CY
983** If a command sets `transient-mark-mode' to (only . OLDVAL), that
984means to activate transient-mark-mode temporarily, until the next
985unshifted point motion command or mark deactivation. Afterwards,
986reset transient-mark-mode to the value OLDVAL. The values `only' and
987`identity', introduced in Emacs 22, are now deprecated.
988
4f4a84ec
SM
989** New keymap `input-decode-map' overrides like key-translation-map, but
990applies before function-key-map. Also it is terminal-local contrary to
991key-translation-map. Terminal-specific key-sequences are generally added to
992this map rather than to function-key-map now.
993
967b2682
GM
994** The new macro `declare-function' suppresses compiler warnings about
995undefined functions. The new `check-declare' package verifies that such
996statements are accurate (i.e. the functions are actually defined in
997the specified files).
998
8bf5c8a6
GM
999** `ignore-errors' is now a standard macro (does not require the CL package).
1000
d9774611
RS
1001** The new function `read-color' reads a color name using the minibuffer.
1002
63571b5a
RS
1003** `interprogram-paste-function' can now return one string or a list
1004of strings. In the latter case, Emacs puts the second and following
1005strings on the kill ring.
1006
d82c3d44
GM
1007** Character code, representation, and charset changes.
1008
0caa490b 1009The character code space is now 0x0..0x3FFFFF with no gap.
d82c3d44
GM
1010Characters of code 0x0..0x10FFFF are Unicode characters of the same code points.
1011Characters of code 0x3FFF80..0x3FFFFF are raw 8-bit bytes.
1012
0caa490b 1013Generic characters no longer exist.
d82c3d44
GM
1014
1015In buffer and string, characters are represented by UTF-8 byte
1016sequence in a multibyte buffer/string.
1017
1018The concept of a charset has changed. A single character may belong to
1019multiple charsets (e.g. a-grave, U+00E0, belongs to charsets unicode,
1020iso-8859-1, iso-8859-3, etc).
1021
1022*** The new function `characterp' returns t if and only if the argument
db4f9d2a 1023is a character. This replaces `char-valid-p', which is now obsolete.
d82c3d44
GM
1024
1025*** The new function `max-char' returns the maximum character code
1026(currently it is #x3FFFFF).
1027
1028*** The functions `encode-char' and `decode-char' now accept any character sets.
1029
1030*** The function `define-charset' now accepts a completely different
1031form of arguments (old-style arguments still work).
1032
1033*** The new function `define-charset-alias' defines an alias of a charset.
1034
1035*** The value of the function `char-charset' depends on the current
1036priorities of charsets.
1037
1038*** The new function `charset-priority-list' returns the list of
1039charsets ordered by priority.
1040
1041*** The new function `set-charset-priority' sets priorities of charsets.
1042
d82c3d44
GM
1043*** The new function `unibyte-string' make a unibyte string from bytes.
1044
1045*** The new function `define-char-code-property' defines a character
1046code property.
1047
1048*** The new function `char-code-property-description' returns the
1049description string of a character code property.
1050
1051*** The function get-char-code-property now accepts many Unicode base
1052character properties. They are `name', `general-category',
1053`canonical-combining-class', `bidi-class', `decomposition',
1054`decimal-digit-value', `digit-value', `numeric-value', `mirrored',
1055`old-name', `iso-10646-comment', `uppercase', `lowercase', and
1056`titlecase'.
1057
1058*** The new variable `find-word-boundary-function-table' is a
1059char-table of functions to search for a word boundary.
1060
1061*** The new variable `char-script-table' is a char-table of script names.
1062
1063*** The new variable `char-width-table' is a char-table of character widths.
1064
1065*** The new variable `print-charset-text-property' controls how to
1066handle `charset' text property on printing a string.
1067
1068*** The new variable `printable-chars' is a char-table defining if a
1069character is printable or not.
1070
1071*** The functions `modify-syntax-entry' and `modify-category-entry' now
1072accepts a cons of characters as the first argument, and modify all
1073entries in that range of characters.
ca7871a3
SM
1074+++
1075*** `translation-table-for-input' is now obsolete.
d82c3d44 1076
505d8756 1077** Code conversion changes
d82c3d44
GM
1078
1079*** The new function `define-coding-system' should be used to define a
1080coding system instead of `make-coding-system' (which is now obsolete).
1081
1082*** The functions `encode-coding-region' and `decode-coding-region'
1083have an optional 4th argument to specify where the result of
1084conversion should go.
1085
1086*** The functions `encode-coding-string' and `decode-coding-string'
1087have an optional 4th argument specifying a buffer to store the result
1088of conversion.
1089
1090*** The new function `with-coding-priority' executes the body part with
1091the specified coding system priority order.
1092
1093*** The new function `check-coding-systems-region' checks if the text
1094in the region is encodable by the specified coding systems.
1095
1096*** The new function `coding-system-aliases' returns a list of aliases
1097of a coding system.
1098
1099*** The new function `coding-system-charset-list' returns a list of
1100charsets supported by a coding system.
1101
1102*** The new function `coding-system-priority-list' returns a list of
1103coding systems ordered by their priorities.
1104
1105*** The new function `set-coding-system-priority' sets priorities of
1106coding systems.
1107
1108*** The functions `set-coding-priority' and `make-coding-system' are obsolete.
1109
1110** There is a new input method, Robin, different from Quail.
0caa490b 1111It has three functionalities:
d82c3d44
GM
1112 i) a simple input method (converts an ASCII sequence into a string).
1113ii) converts an existing buffer substring into another string
1114iii) reverse conversion (each character produced by a
1115robin rule can hold the original ASCII sequence as a char-code-property)
1116
1117*** The new function `robin-define-package' defines a Robin package.
1118
1119*** The new function `robin-modify-package' modifies an existing Robin package.
1120
1121*** The new function `robin-use-package' starts using a Robin package
1122as an input method.
1123
888d7d86
KH
1124*** The new function `string-to-unibyte' is like `string-as-unibyte'
1125but signals an error if STRING contains a non-ASCII, non-eight-bit
1126character.
1127
505d8756 1128** Changes related to the new font backend
2b7a2553 1129
b19aa6dd
GM
1130Which font backends to use can be specified by the X resource "FontBackend".
1131For instance, to use both X core fonts and Xft fonts:
2b7a2553 1132
b19aa6dd 1133Emacs.FontBackend: x,xft
2b7a2553 1134
b19aa6dd
GM
1135If this resource is not set, Emacs tries to use all font backends
1136available on your graphic device.
d82c3d44
GM
1137
1138*** New frame parameter `font-backend' specifies a list of
1139font-backends supported by the frame's graphic device. On X, they are
1140currently `x' and `xft'.
1141
1142*** New function `fontp' checks if the argument is a font-spec or font-entity.
1143
1144*** New function `font-spec' creates a new font-spec object.
1145
1146*** New function `font-get' returns a font property value.
1147
d54b8954
CY
1148*** New function `font-face-attributes' returns a plist of face
1149attributes set by a font.
1150
d82c3d44
GM
1151*** New function `font-put' sets a font property value.
1152
1153*** New function `list-fonts' returns a list of font-entities matching
1154the given specification.
1155
1156*** New function `list-families' returns a list of family names of
1157available fonts.
1158
1159*** New function `font-font' returns a font-entity best matching with
1160the given specification.
1161
1162*** New function `font-xlfd-name' returns an XLFD name of a given font
1163(font-spec, font-entity, or font-object).
1164
1165*** New function `clear-font-cache' clears all font caches.
1166
1167*** The function `set-fontset-font' now accepts a script name as the
1168second argument, and has an optional 5th argument to control how to
1169set the font.
1170
505d8756 1171** Changes related to multiple tty support
24cdde13 1172
b12f6e85
SM
1173*** $TERM is now set to `dumb' for subprocesses. If you want to know the
1174$TERM inherited by Emacs you will have to look inside initial-environment.
1175
6168122d
SM
1176*** $DISPLAY is now dynamically inherited from the frame's `display'.
1177
0caa490b 1178*** The `window-system' variable has been made frame-local. The new
24cdde13 1179`initial-window-system' variable contains the `window-system' value
bbe3eb99
GM
1180for the first frame. `window-system' is also now a function that
1181takes a frame argument.
24cdde13
GM
1182
1183*** You can specify a terminal device (`tty' parameter) and a terminal
1184type (`tty-type' parameter) to `make-terminal-frame'.
1185
1186*** The new function `make-frame-on-tty' allows you to create a new
1187frame on another tty device interactively.
1188
1189*** The function `make-frame-on-display' now works during a tty
1190session, and `make-frame-on-tty' works during a graphical session.
1191
da406961 1192*** New functions: `delete-tty', `suspend-tty', `resume-tty'.
24cdde13 1193
419f8f49
SM
1194*** A new data type for terminals with functions: `get-device-terminal',
1195`terminal-parameters', `terminal-parameter', `set-terminal-parameter'.
24cdde13 1196
1816bda7 1197*** New hooks: `suspend-tty-functions' and `resume-tty-functions'
92cd6a7c 1198are called after a tty frame has been suspended or resumed,
de3054d5 1199respectively. The functions are called with the terminal id of the frame
92cd6a7c
DN
1200being suspended/resumed as a parameter.
1201
01ff458e 1202*** New function: `environment'.
da406961 1203
4f4a84ec 1204*** New variable: `local-function-key-map'.
01ff458e
SM
1205This in addition to the global function-key-map variable that
1206already existed. The global variable is not used directly any more;
1207instead, the local-function-key-map is initialized so as to inherit from
1208function-key-map.
da406961 1209
82866ad5
SM
1210*** `initial-environment' holds the environment inherited from Emacs's parent.
1211
24cdde13
GM
1212*** The `keyboard-translate-table' variable and the terminal and
1213keyboard coding systems have been made terminal-local.
1214
1aa423e9
SM
1215*** In addition to the global function-key-map, Emacs has terminal-local
1216local-function-key-map variables, and uses them instead of the
24cdde13
GM
1217global keymaps to set up translations and function key sequences
1218relevant to a specific terminal device.
1219
09e18d03 1220*** `underline-minimum-offset' keeps the underline away from the baseline.
24cdde13 1221
90ab5c62
SM
1222** You can now also pass the value of the `invisible' property to invisible-p
1223to check whether it would cause the text to be invisible. Convenient when
1224checking invisibility of text which has no buffer position
1225(e.g. in before/after-strings).
9f44d41a 1226
ea2e3ef4
RS
1227** Non-breaking space now acts as whitespace.
1228
41bd52f7 1229+++
8d371994
RS
1230** In `condition-case', a handler can specify "let the debugger run first".
1231
1232You do this by writing `debug' in the list of conditions to be handled,
1233like this:
1234
1235 (condition-case nil
1236 (foo bar)
1237 ((debug error) nil))
1238
0a963185
SM
1239** The `require-match' argument to `completing-read' accepts a new value
1240`confirm-only'.
1241
c69b0314
SM
1242+++
1243** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly.
1244
9f44d41a
RS
1245** New function `window-full-width-p' returns t if a window is as wide
1246as its frame.
1247
1248** The new function `split-string-and-unquote' does (what?)
1249
1250** The new function `combine-and-quote-strings' does (what?)
1251
1252** The new function `image-refresh' refreshes all images associated
1253with a given image specification.
1254
abf13a8b
CY
1255+++
1256** New variable `user-emacs-directory'.
1257Use this instead of "~/.emacs.d".
1258
b2b387f9 1259+++
0f3cd6b2 1260** The new function `start-file-process' is similar to `start-process',
b2b387f9 1261but obeys file handlers. The file handler is chosen based on
6dbe7eb4
MA
1262`default-directory'. The functions `start-file-process-shell-command'
1263and `process-file-shell-command' are also new; they call internally
0f3cd6b2 1264`start-file-process' and `process-file', respectively.
b2b387f9 1265
967b2682
GM
1266** The new function `process-lines' executes an external program and
1267returns its output as a list of lines.
1268
64639e26 1269+++
41bd52f7
MA
1270** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
1271IDENTIFICATION specifies which part of the remote identifier has to be
1272returned. With CONNECTED passed non-nil, it is checked whether a
1273remote connection has been established already.
64639e26 1274
45595a4f
RS
1275** The two new functions `looking-at-p' and `string-match-p' can do
1276the same matching as `looking-at' and `string-match' without changing
1277the match data.
89835619
SM
1278
1279** The interactive-form of a function can be added post-facto via the
1280`interactive-form' symbol property. Mostly useful to add complex interactive
1281forms to subroutines.
9bae34bf 1282\f
0bfd685e 1283* New Packages for Lisp Programming in Emacs 23.1
efeb796b 1284
d445b3f8
SM
1285** The new major mode `special-mode' is intended as a parent for
1286major modes such as those that set the "'mode-class 'special" property.
1287
20202f5e 1288** find-cmd.el can build `find' commands using lisp syntax.
6dfcbe31 1289
9097e8af
RS
1290** The package isearch-multi.el has been added. It implements a new mode
1291`isearch-buffers-minor-mode' that allows isearch to search through
1292multiple buffers. In this mode a new variable
1293`isearch-buffers-next-buffer-function' defines the function to call
1294to get the next buffer to search in the series of multiple buffers.
1295
d53a60a6
TTN
1296** The new package avl-tree.el deals with the AVL tree data structure.
1297
05197f40 1298\f
a933dad1 1299----------------------------------------------------------------------
5b87ad55 1300This file is part of GNU Emacs.
a933dad1 1301
ab73e885 1302GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 1303it under the terms of the GNU General Public License as published by
ab73e885
GM
1304the Free Software Foundation, either version 3 of the License, or
1305(at your option) any later version.
5b87ad55
GM
1306
1307GNU Emacs is distributed in the hope that it will be useful,
1308but WITHOUT ANY WARRANTY; without even the implied warranty of
1309MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1310GNU General Public License for more details.
a933dad1 1311
5b87ad55 1312You should have received a copy of the GNU General Public License
ab73e885 1313along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
a933dad1 1314
05197f40 1315\f
a933dad1
DL
1316Local variables:
1317mode: outline
1318paragraph-separate: "[ \f]*$"
1319end:
ab5796a9 1320
a533413c 1321arch-tag: e759449d-88b3-4de4-9900-3a6c3dfa23e2