** The default X toolkit is now Gtk+, rather than Lucid.
-** The new configuration option "--enable-font-backend" enables new code
-for handling fonts by multiple backends (the old font handling codes
-still exist). This requires the freetype and fontconfig libraries, and
-supports local fonts (fonts installed on the machine where Emacs is running).
-Additionally, the Xft library can be used for antialiasing support.
-Fontconfig-like font names (e.g. monospace-12) are also accepted.
+** Fonts are handled by new code capable of dealing with multiple font
+backends. This requires the freetype and fontconfig libraries, and
+supports local fonts (fonts installed on the machine where Emacs is
+running). Additionally, the Xft library can be used for antialiasing
+support, the otf library for complex text layout by OpenType fonts,
+and the m17n library for text shaping. Fontconfig-like font names
+(e.g. monospace-12) are accepted. The old font handling code can
+be used by passing the configure option `--disable-font-backend'
+(also available as a run-time option).
** The new configuration option "--with-dbus" enables D-Bus language
bindings for Emacs.
** The Mac Carbon port is no longer supported.
-Instead, use... [what?]
+Instead, use... [FIXME what?]
** configure now checks for libgif before libungif when searching for
a GIF library.
Configure will use gcc by default. Set the CC environment variable if
you need control over which C compiler is used.
-** The configure option `--with-gtk' has been removed. Gtk is now the
+** The configure option `--with-gtk' has been removed. Gtk is now the
default toolkit, but you can use --with-x-toolkit=gtk if necessary.
\f
* Changes in Emacs 23.1
+** Operations like C-x b and C-x C-f which use switch-to-buffer do not fail
+any more when used in a minibuffer or a dedicated window. Instead, they
+fallback on using pop-to-buffer which will use some other window.
+
** Emacs now supports using both X displays and ttys in one session.
Start the server (M-x server-start). Then `emacsclient -t' creates a
tty frame connected to the running emacs server. You can also use any
You can test for the presence of this feature in your Lisp code by
testing for the `multi-tty' feature.
-** The Emacs character set is now a superset of Unicode.
+** The Emacs character set is now a superset of Unicode.
(It has about four times the code space, which should be plenty).
The internal encoding used for buffers and strings is now
A dynamic charset priority list is used to infer the charset of
characters for display.
-** There are new Chinese-GBK, Chinese-GB18030, Khmer, and TaiViet language
+** There are new Chinese-GBK, Chinese-GB18030, Khmer, Bengali,
+Punjabi, Gujarati, Oriya, Telugu, Sinhala, and TaiViet language
environments.
** Emacs now supports the XEmbed specification.
http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
for details about XEmbed.
-** Emacs comes with a new set of icons for Mac OS X.
-OS-X-style icons (an application icon and a relevant document icon)
-were contributed by Kentaro Ohkouchi.
-Source files for these icons can be found in Emacs.app/Contents/Resources.
-PNG versions are available as etc/images/icons/emacs*_mac.png.
+** Emacs comes with a new set of default icons.
+Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
+The Emacs 22 icon is available as `emacs22.png' in the same location.
** Built-in functions (subr) can now have an interactive specification
that is not a prompt string. If the `intspec' parameter of a `DEFUN'
** Emacs now supports the SVG image format through librsvg2.
-** transient-mark-mode is now enabled by default.
+** C-SPC C-SPC in transient-mark-mode pushes a mark without activating it.
** If you set find-file-confirm-nonexistent-file to t, then C-x C-f
requires confirmation before opening a non-existent file.
** The new function `emacs-init-time' returns the duration of the
Emacs initialization.
+** The new face `mode-line-emphasis' is used to highlight certain mode-line
+information; for example while waiting for a VC command to finish.
+
** The minor modes unify-8859-on-encoding-mode, unify-8859-on-decoding-mode
are obsolete.
inside of --eval command line arguments in order to access
following arguments.
+** The new command-line option `--disable-font-backend' disables the
+new font backend code at runtime. This option is not available if
+Emacs was compiled without font-backend support.
+
** The abbrev file is no longer read at startup in batch mode.
\f
* Incompatible Editing Changes in Emacs 23.1
* New Modes and Packages in Emacs 23.1
** FIXME add details of new packages imported from lisp/gnus.
+[Maybe some information from doc/misc/gnus-coding.texi can be reused]
** The package doc-view.el has been added. It supports viewing of PDF,
PostScript and DVI documents inside an Emacs buffer by converting the
attribute name or data value by using information about what is
allowed by the schema in that context.
-** A new game called `bubbles' has been added.
+** A new game called `bubbles' has been added. This is a version of
+the "Same Game" with configurable difficulty level.
** minibuffer-indicate-depth-mode shows the minibuffer depth in the prompt.
automatically when they are displayed. It is globally on by default.
It uses `auto-composition-function' (default `auto-compose-chars').
+** The package linum.el is now included with Emacs. It it a new minor
+mode to display line numbers for the current buffer.
+
\f
* Changes in Specialized Modes and Packages in Emacs 23.1
+** A new `whitespace' package has been installed, and the pre-existing one
+renamed to `old-whitespace'.
+[FIXME someone explain why this is good, if it is...]
+
** In Change Log mode, the new function `change-log-find-file', bound to
C-c C-f, finds the file associated with the current log entry.
This enables VC to work much more effectively with changeset-oriented
version-control systems such as Subversion, GNU Arch, Mercurial, and
-Bzr. VC will now pass a multiple-file commit to these systems
+Bzr. VC will now pass a multiple-file commit to these systems
as a single changeset.
*** In VC Annotate mode, you can type V to toggle the annotation visibility.
** BibTeX mode:
-*** New command `bibtex-initialize' (re)initializes BibTeX buffers.
+*** New command `bibtex-initialize' (re)initializes BibTeX buffers.
*** New `bibtex-entry-format' options `whitespace', `braces', and
`string', disabled by default.
*** The Gnus package has been updated
+*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
+saving articles drafts and ~/.newsrc.eld. These file may not be read
+correctly in Emacs 22 and below. If you want to Gnus across different Emacs
+versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
+
*** There are many news features, bug fixes and improvements.
See the file GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
*** The new variable `ffap-rfc-directories' specifies a list of local
directories in which `ffap-rfc' will first search for RFCs.
+*** net-utils has an `iwconfig' command, similar to the existing `ifconfig'.
+It is used to configure wireless interfaces.
+
\f
* Changes in Emacs 23.1 on non-free operating systems
---
** IPv6 is supported on MS-Windows.
Emacs now supports IPv6 on Windows XP and later, and earlier versions
-of Windows with third party IPv6 stacks installed. Previously IPv6 was
+of Windows with third party IPv6 stacks installed. Previously IPv6 was
supported on other platforms, but not on Windows due to using the winsock
1.1 header file, even though Emacs was linking to the winsock 2 library.
browser control present on some keyboards. These buttons are disabled
by default, since enabling them prevents their system-wide use when
Emacs has focus. To enable them, set the variable
-w32-pass-multimedia-buttons to nil. See the doc string of that variable
+w32-pass-multimedia-buttons to nil. See the doc string of that variable
for the list of extra keys that are available.
\f
* Incompatible Lisp Changes in Emacs 23.1
** The function `dired-call-process' has been removed.
** The variable `byte-compile-warnings' can now be a list starting with `not',
-meaning to disable the specified warnings. The meaning of this list
+meaning to disable the specified warnings. The meaning of this list
may therefore be the reverse of what you expect (of course, this is
-only an issue if you make use of the new `not' syntax). Rather than
+only an issue if you make use of the new `not' syntax). Rather than
checking/manipulating elements directly, use the new functions
`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
`byte-compile-enable-warning.'
** `mode-name' is no longer guaranteed to be a string.
Use `(format-mode-line mode-name)' to ensure a string value.
-** The feature `devan-util' is removed, and the file devan-util.el
-providing the feature is removed. Accordingly the following functions
-and variables are removed:
- devanagari-consonant, devanagari-composable-pattern,
- devanagari-compose-region, devanagari-compose-string,
- devanagari-post-read-conversion, devanagari-regexp-of-hashtbl-keys,
- devanagari-composition-function, dev-char-glyph,
- dev-char-glyph-hash, dev-char-glyph-regexp, dev-glyph-glyph,
- dev-glyph-glyph-hash, dev-glyph-glyph-regexp, dev-glyph-glyph-2,
- dev-glyph-glyph-2-hash, dev-glyph-glyph-2-regexp, dev-charseq,
- dev-glyph-cvn, dev-glyph-space, dev-glyph-right-modifier,
- dev-glyph-right-modifier-regexp, dev-glyph-left-matra,
- dev-glyph-top-matra, dev-glyph-bottom-modifier, dev-glyph-order,
- devanagari-compose-syllable-string, devanagari-compose-syllable-region
-These were for displaying Devanagari text with a specific kind of font
-in Emacs 22, and not necessary anymore because of OpenType font
-support.
+** The following features have been removed. They were used for
+displaying various scripts with specific fonts, and are no longer
+needed now that OpenType font support is available:
+
+*** `devanagari' and `devan-util', and all associated devanagari-* and
+dev-* functions and variables (formerly used for Devanagari script).
+
+*** `kannada' and `knd-util', and all associated kannada-* and knd-*
+functions and variables (formerly used for Kannada script).
+
+*** `malayalam' and `mlm-util', and all associated malayalam-* and
+mlm-* functions and variables (formerly used for Malayalam script).
+
+*** `tamil' and `tml-util, and all associated tamil-* and tml-*
+functions and variables (formerly used for Tamil script).
\f
* Lisp Changes in Emacs 23.1
+** The new `buffer-swap-text' function can swap the text between two buffers.
+This can be useful for modes such as tar-mode, archive-mode, RMAIL.
+
+** `clear-image-cache' can be told to flush only images of a specific file.
+
** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
** `beginning-of-defun-function' now takes one argument, the count
** Character code, representation, and charset changes.
-The character code space is now 0x0..0x3FFFFF with no gap.
+The character code space is now 0x0..0x3FFFFF with no gap.
Characters of code 0x0..0x10FFFF are Unicode characters of the same code points.
Characters of code 0x3FFF80..0x3FFFFF are raw 8-bit bytes.
-Generic characters no longer exist.
+Generic characters no longer exist.
In buffer and string, characters are represented by UTF-8 byte
sequence in a multibyte buffer/string.
iso-8859-1, iso-8859-3, etc).
*** The new function `characterp' returns t if and only if the argument
-is a character.
+is a character. This replaces `char-valid-p', which is now obsolete.
*** The new function `max-char' returns the maximum character code
(currently it is #x3FFFFF).
accepts a cons of characters as the first argument, and modify all
entries in that range of characters.
-*** The functions `char-bytes', `chars-in-region', and `char-valid-p' are
-obsolete.
-
** Code conversion changes.
*** The new function `define-coding-system' should be used to define a
*** The functions `set-coding-priority' and `make-coding-system' are obsolete.
** There is a new input method, Robin, different from Quail.
-It has three functionalities:
+It has three functionalities:
i) a simple input method (converts an ASCII sequence into a string).
ii) converts an existing buffer substring into another string
iii) reverse conversion (each character produced by a
*** $DISPLAY is now dynamically inherited from the frame's `display'.
-*** The `window-system' variable has been made frame-local. The new
+*** The `window-system' variable has been made frame-local. The new
`initial-window-system' variable contains the `window-system' value
for the first frame.