GNU Emacs NEWS -- history of user-visible changes.

Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
          Free Software Foundation, Inc.
See the end of the file for license conditions.

Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
If possible, use M-x report-emacs-bug.

This file is about changes in the Emacs "unicode" branch.

Fixme: The notes about Emacs 23 are quite incomplete.


* Changes in Emacs 23.1

** 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
Unicode-based and called `utf-8-emacs'.  utf-8-emacs is backwards
compatible with the UTF-8 encoding of Unicode.  The `emacs-mule'
coding system can still read and write data in the old internal
encoding.

There are still charsets which contain disjoint sets of characters
where this is necessary or useful, especially for various Far Eastern
sets which are problematic with Unicode.

Since the internal encoding is also used by default for byte-compiled
files -- i.e. the normal coding system for byte-compiled Lisp files is
now utf-8-Emacs -- Lisp containing non-ASCII characters which is
compiled by Emacs 23 can't be read by earlier versions of Emacs.  Files
compiled by Emacs 20, 21, or 22 are loaded correctly as emacs-mule
(whether or not they contain multibyte characters), which makes loading
them somewhat slower than Emacs 23-compiled files.  Thus it may be worth
recompiling existing .elc files which don't need to be shared with older
Emacsen.

** There are assorted new coding systems/aliases -- see
M-x list-coding-systems.

** New charset implementation with many new charsets.
See M-x list-character-sets.  New charsets can be defined conveniently
as tables of unicodes.

The dimension of a charset is now 0, 1, 2, or 3, and the size of each
dimension is no longer limited to 94 or 96.

Generic characters no longer exist.  

A dynamic charset priority list is used to infer the charset of
unicodes for display &c.

** The following facilities are obsolete:

Minor modes: unify-8859-on-encoding-mode, unify-8859-on-decoding-mode


* Lisp changes in Emacs 23.1

map-char-table's behaviour has changed.

New functions: characterp, max-char, map-charset-chars,
define-charset-alias, primary-charset, set-primary-charset,
unify-charset, clear-charset-maps, charset-priority-list,
set-charset-priority, define-coding-system,
define-coding-system-alias, coding-system-aliases, langinfo,
string-to-multibyte.

Changed functions: copy-sequence, decode-char, encode-char,
set-fontset-font, new-fontset, modify-syntax-entry, define-charset,
modify-category-entry

Obsoleted: char-bytes, chars-in-region, set-coding-priority,
char-valid-p


* Incompatible Lisp changes

Deleted functions: make-coding-system, register-char-codings,
coding-system-spec

** The character codes for characters from the
eight-bit-control/eight-bit-graphic charsets aren't now in the range
128-255.



----------------------------------------------------------------------
This file is part of GNU Emacs.

GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.


Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end:

arch-tag: e21801b9-0724-4cda-8c07-7d60bf3db3fd
