Mercurial > emacs
view etc/NEWS.unicode @ 91115:c8c995a127bc
*** empty log message ***
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 19 Nov 2007 05:17:26 +0000 |
parents | 6e2eacd2aadb |
children | f7875f77b416 |
line wrap: on
line source
GNU Emacs NEWS -- history of user-visible changes. Copyright (C) 2007 Free Software Foundation, Inc. Copyright (C) 2007 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H14PRO021 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. * Changes in Emacs 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 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. ** 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. A dynamic charset priority list is used to infer the charset of characters for display. ** New minor mode Auto Composition Mode composes characters automatically when they are displayed. This mode is globally on by default. ** Emacs now supports local fonts (fonts installed in the same machine as Emacs is running) by freetype and fontconfig libraries. On X, they are drived via Xft library with antialias support. Fontconfig-like font names (e.g. monospace-12) are also accepted. ** New language environments Chinese-GBK, Chinese-GB18030, and TaiViet. ** The following facilities are obsolete: Minor modes: unify-8859-on-encoding-mode, unify-8859-on-decoding-mode * Lisp changes in Emacs Unicode ** Character code, representation, and charset changes. Now character code space is 0x0..0x3FFFFF with no gap. Among them, 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 charset is changed. A single character may belong to multiple charset (e.g. a-grave (U+00E0) belongs to charsets unicode, iso-8859-1, iso-8859-3, and 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 function `encode-char' and `decode-char' now accepts any character sets. *** The function `define-charset' now accepts completely different form of argments (old-style arguments still works). *** The new function `define-charset-alias' defines an alias of a charset. *** The value of the function `char-charset' depends of 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 pliorities of charsets. *** The new function `unibyte-charset' returns the current unibyte charset. The unibyte charset determins 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. ** Code conversion changes *** The new function `define-coding-system' should be used to define a coding system instead of `make-coding-system' (which is obsolete now). *** The functions `encode-coding-region' and `decode-coding-region' have the optional 4th argument to specify where the result of conversion should go. *** The functions `encode-coding-string' and `decode-coding-string' have the optional 4th argument specifying a buffer to store the result of conversion. *** The new fuction `with-coding-priority' executs 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 funciton `coding-system-priority-list' returns a list of coding systems ordered by their priorities. *** Thew new function `set-coding-system-priority' sets priorities of coding systems. ** 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'. *** New variable `auto-compose-current-font' is set to the current font-object while characters are being composed in Auto Composition Mode. ** 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 with the give specificaiton. *** New function `list-families' returns a list 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 give font (font-spec, font-entity, or font-object). *** New function `clear-font-cache' clears all font caches. ** 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', `mirrord', `old-name', `iso-10646-comment', `uppercase', `lowercase', and `titlecase'. ** Thew new function `define-char-code-property' defines a character code property. ** The new function `char-code-property-description' returns the description string of a cahracter code property. *** 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. *** Thew new variable `printable-chars' is a char-table defining if a character is printable or not. *** The new function `robin-define-package' defines a Robin package which is an input method system different from Quail. *** The new function `robin-modify-package' modifies an existing Robin package. *** The new function `robin-use-package' start using a Robin package as an input method. ** 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 function `set-fontset-font' now accepts a script name as the second argument, and has the optional 5th argument to control how to set the font. ** The functions `char-bytes', `chars-in-region', `set-coding-priority', , `make-coding-system', and `char-valid-p' are now obsolete. * Incompatible Lisp changes ** 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 has the same value. ** The value of the function `charset-id' is now always 0. ** The functions `register-char-codings' and `coding-system-spec' are deleted. ---------------------------------------------------------------------- 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