changeset 92001:7a6e0dab4698

Merge entries from NEWS.unicode.
author Glenn Morris <rgm@gnu.org>
date Thu, 21 Feb 2008 03:35:46 +0000
parents 501d20267e59
children cfa9e2f5d094
files etc/NEWS
diffstat 1 files changed, 228 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS	Thu Feb 21 03:35:31 2008 +0000
+++ b/etc/NEWS	Thu Feb 21 03:35:46 2008 +0000
@@ -64,6 +64,44 @@
 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.  
+(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.
+
+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.
+
+** Emacs now supports local fonts (fonts installed in the same machine
+as Emacs is running) using the freetype and fontconfig libraries.
+On X, antialias support is available via the Xft library.
+Fontconfig-like font names (e.g. monospace-12) are also accepted.
+
+** There are assorted new coding systems/aliases -- see M-x list-coding-systems.
+
+** There is a 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 1, 2, 3, or 4, and the size of each
+dimension is no longer limited to 94 or 96.
+
+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
+environments.
+
 ** Emacs now supports the XEmbed specification.
 You can embed Emacs in another application on X11.  The new command line option
 --parent-id is used to pass the parent window id to Emacs.  See
@@ -146,6 +184,9 @@
 ** The new function `emacs-init-time' returns the duration of the
 Emacs initialization.
 
+** The minor modes unify-8859-on-encoding-mode, unify-8859-on-decoding-mode
+are obsolete.
+
 
 * Startup Changes in Emacs 23.1
 
@@ -264,6 +305,9 @@
 
 * Changes in Specialized Modes and Packages in Emacs 23.1
 
+** New minor mode Auto Composition Mode composes characters automatically
+when they are displayed.  This mode is globally on by default.
+
 ** ChangeLog now has function bound to C-c C-f that finds the file in
 the current log entry.
 
@@ -478,6 +522,22 @@
 
 * Incompatible Lisp Changes in Emacs 23.1
 
+** The behavior of map-char-table has changed.  It may call the
+specified function with a cons (FROM . TO) as a key if characters in
+that range have the same value.
+
+** The value of the function `charset-id' is now always 0.
+
+** The functions `register-char-codings' and `coding-system-spec'
+have been removed.
+
+** Many codepage related functions have been removed.  They are:
+  cp-make-coding-systems-for-codepage, cp-charset-for-codepage,
+  cp-language-for-codepage, cp-offset-for-codepage,
+  cp-supported-codepages
+You don't need them anymore because coding systems created by these
+functions are supported from the start now.
+
 +++
 ** The function `dired-call-process' has been removed.
 
@@ -496,8 +556,9 @@
 * Lisp Changes in Emacs 23.1
 
 ** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
+
 ** `beginning-of-defun-function' now takes one argument, the count
-   given to `beginning-of-defun'.
+ given to `beginning-of-defun'.
 
 ** The variable `inhibit-changing-match-data', if non-nil, prevents the
 search and match primitives from changing the match data.
@@ -551,6 +612,172 @@
 of strings.  In the latter case, Emacs puts the second and following
 strings on the kill ring.
 
+** Character code, representation, and charset changes.
+
+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.  
+
+In buffer and string, characters are represented by UTF-8 byte
+sequence in a multibyte buffer/string.
+
+The concept of a charset has changed.  A single character may belong to
+multiple charsets (e.g. a-grave, U+00E0, belongs to charsets unicode,
+iso-8859-1, iso-8859-3, etc).
+
+*** The new function `characterp' returns t if and only if the argument
+is a character.
+
+*** The new function `max-char' returns the maximum character code
+(currently it is #x3FFFFF).
+
+*** The functions `encode-char' and `decode-char' now accept any character sets.
+
+*** The function `define-charset' now accepts a completely different
+form of arguments (old-style arguments still work).
+
+*** The new function `define-charset-alias' defines an alias of a charset.
+
+*** The value of the function `char-charset' depends on the current
+priorities of charsets.
+
+*** The new function `charset-priority-list' returns the list of
+charsets ordered by priority.
+
+*** The new function `set-charset-priority' sets priorities of charsets.
+
+*** The new function `unibyte-charset' returns the current unibyte
+charset.  The unibyte charset determines how unibyte/multibyte
+conversion is done.
+
+*** The new function `set-unibyte-charset' sets the unibyte charset.
+
+*** The new function `unibyte-string' make a unibyte string from bytes.
+
+*** The new function `define-char-code-property' defines a character
+code property.
+
+*** The new function `char-code-property-description' returns the
+description string of a character code property.
+
+*** The function get-char-code-property now accepts many Unicode base
+character properties.  They are `name', `general-category',
+`canonical-combining-class', `bidi-class', `decomposition',
+`decimal-digit-value', `digit-value', `numeric-value', `mirrored',
+`old-name', `iso-10646-comment', `uppercase', `lowercase', and
+`titlecase'.
+
+*** The new variable `find-word-boundary-function-table' is a
+char-table of functions to search for a word boundary.
+
+*** The new variable `char-script-table' is a char-table of script names.
+
+*** The new variable `char-width-table' is a char-table of character widths.
+
+*** The new variable `print-charset-text-property' controls how to
+handle `charset' text property on printing a string.
+
+*** The new variable `printable-chars' is a char-table defining if a
+character is printable or not.
+
+*** The functions `modify-syntax-entry' and `modify-category-entry' now
+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
+coding system instead of `make-coding-system' (which is now obsolete).
+
+*** The functions `encode-coding-region' and `decode-coding-region'
+have an optional 4th argument to specify where the result of
+conversion should go.
+
+*** The functions `encode-coding-string' and `decode-coding-string'
+have an optional 4th argument specifying a buffer to store the result
+of conversion.
+
+*** The new function `with-coding-priority' executes the body part with
+the specified coding system priority order.
+
+*** The new function `check-coding-systems-region' checks if the text
+in the region is encodable by the specified coding systems.
+
+*** The new function `coding-system-aliases' returns a list of aliases
+of a coding system.
+
+*** The new function `coding-system-charset-list' returns a list of
+charsets supported by a coding system.
+
+*** The new function `coding-system-priority-list' returns a list of
+coding systems ordered by their priorities.
+
+*** The new function `set-coding-system-priority' sets priorities of
+coding systems.
+
+*** 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: 
+ 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
+robin rule can hold the original ASCII sequence as a char-code-property)
+
+*** The new function `robin-define-package' defines a Robin package.
+
+*** The new function `robin-modify-package' modifies an existing Robin package.
+
+*** The new function `robin-use-package' starts using a Robin package
+as an input method.
+
+** Composition changes.
+
+*** New functions and variables `auto-composition-mode' and
+`global-auto-composition-mode' toggles the new minor mode Auto
+Composition Mode locally and globally.
+
+*** New variable `auto-composition-function' is a function used in
+Auto Composition Mode to compose characters.  The default value is the
+function `auto-compose-chars'.
+
+** Font Backend changes.
+
+*** New frame parameter `font-backend' specifies a list of
+font-backends supported by the frame's graphic device.  On X, they are
+currently `x' and `xft'.
+
+*** New function `fontp' checks if the argument is a font-spec or font-entity.
+
+*** New function `font-spec' creates a new font-spec object.
+
+*** New function `font-get' returns a font property value.
+
+*** New function `font-put' sets a font property value.
+
+*** New function `list-fonts' returns a list of font-entities matching
+the given specification.
+
+*** New function `list-families' returns a list of family names of
+available fonts.
+
+*** New function `font-font' returns a font-entity best matching with
+the given specification.
+
+*** New function `font-xlfd-name' returns an XLFD name of a given font
+(font-spec, font-entity, or font-object).
+
+*** New function `clear-font-cache' clears all font caches.
+
+*** The function `set-fontset-font' now accepts a script name as the
+second argument, and has an optional 5th argument to control how to
+set the font.
+
 ** Changes related to multiple tty support.
 
 *** $TERM is now set to `dumb' for subprocesses.  If you want to know the