Commit d82c3d44 authored by Glenn Morris's avatar Glenn Morris
Browse files

Merge entries from NEWS.unicode.

parent 67125135
......@@ -64,6 +64,44 @@ the current $DISPLAY or a tty frame if $DISPLAY is not set.
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 @@ records the value of `current-time' after loading the init files.
** 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 @@ files. See the EasyPG Assistant User's Manual for further details.
* 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 @@ for the list of extra keys that are available.
* 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 @@ Use `(format-mode-line mode-name)' to ensure a string value.
* 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 @@ describing all the basic attributes of a given face.
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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment