comparison etc/NEWS @ 92001:7a6e0dab4698

Merge entries from NEWS.unicode.
author Glenn Morris <rgm@gnu.org>
date Thu, 21 Feb 2008 03:35:46 +0000
parents 07b62dd00afa
children f60998626e8a
comparison
equal deleted inserted replaced
92000:501d20267e59 92001:7a6e0dab4698
62 the current $DISPLAY or a tty frame if $DISPLAY is not set. 62 the current $DISPLAY or a tty frame if $DISPLAY is not set.
63 63
64 You can test for the presence of this feature in your Lisp code by 64 You can test for the presence of this feature in your Lisp code by
65 testing for the `multi-tty' feature. 65 testing for the `multi-tty' feature.
66 66
67 ** The Emacs character set is now a superset of Unicode.
68 (It has about four times the code space, which should be plenty).
69
70 The internal encoding used for buffers and strings is now
71 Unicode-based and called `utf-8-emacs'. utf-8-emacs is backwards
72 compatible with the UTF-8 encoding of Unicode. The `emacs-mule'
73 coding system can still read and write data in the old internal encoding.
74
75 Since the internal encoding is also used by default for byte-compiled
76 files -- i.e. the normal coding system for byte-compiled Lisp files is
77 now utf-8-Emacs -- Lisp containing non-ASCII characters which is
78 compiled by Emacs 23 can't be read by earlier versions of Emacs. Files
79 compiled by Emacs 20, 21, or 22 are loaded correctly as emacs-mule
80 (whether or not they contain multibyte characters), which makes loading
81 them somewhat slower than Emacs 23-compiled files. Thus it may be worth
82 recompiling existing .elc files which don't need to be shared with older
83 Emacsen.
84
85 ** Emacs now supports local fonts (fonts installed in the same machine
86 as Emacs is running) using the freetype and fontconfig libraries.
87 On X, antialias support is available via the Xft library.
88 Fontconfig-like font names (e.g. monospace-12) are also accepted.
89
90 ** There are assorted new coding systems/aliases -- see M-x list-coding-systems.
91
92 ** There is a new charset implementation with many new charsets.
93 See M-x list-character-sets. New charsets can be defined conveniently
94 as tables of unicodes.
95
96 The dimension of a charset is now 1, 2, 3, or 4, and the size of each
97 dimension is no longer limited to 94 or 96.
98
99 A dynamic charset priority list is used to infer the charset of
100 characters for display.
101
102 ** There are new Chinese-GBK, Chinese-GB18030, Khmer, and TaiViet language
103 environments.
104
67 ** Emacs now supports the XEmbed specification. 105 ** Emacs now supports the XEmbed specification.
68 You can embed Emacs in another application on X11. The new command line option 106 You can embed Emacs in another application on X11. The new command line option
69 --parent-id is used to pass the parent window id to Emacs. See 107 --parent-id is used to pass the parent window id to Emacs. See
70 http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html 108 http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
71 for details about XEmbed. 109 for details about XEmbed.
143 181
144 ** The new function `emacs-uptime' returns the uptime of an Emacs instance. 182 ** The new function `emacs-uptime' returns the uptime of an Emacs instance.
145 183
146 ** The new function `emacs-init-time' returns the duration of the 184 ** The new function `emacs-init-time' returns the duration of the
147 Emacs initialization. 185 Emacs initialization.
186
187 ** The minor modes unify-8859-on-encoding-mode, unify-8859-on-decoding-mode
188 are obsolete.
148 189
149 190
150 * Startup Changes in Emacs 23.1 191 * Startup Changes in Emacs 23.1
151 192
152 ** New user option `initial-buffer-choice' specifies what to display 193 ** New user option `initial-buffer-choice' specifies what to display
261 GnuPG interface which includes GnuPG keyring browser, cryptographic 302 GnuPG interface which includes GnuPG keyring browser, cryptographic
262 operations on regions and files, and automatic encryption of *.gpg 303 operations on regions and files, and automatic encryption of *.gpg
263 files. See the EasyPG Assistant User's Manual for further details. 304 files. See the EasyPG Assistant User's Manual for further details.
264 305
265 * Changes in Specialized Modes and Packages in Emacs 23.1 306 * Changes in Specialized Modes and Packages in Emacs 23.1
307
308 ** New minor mode Auto Composition Mode composes characters automatically
309 when they are displayed. This mode is globally on by default.
266 310
267 ** ChangeLog now has function bound to C-c C-f that finds the file in 311 ** ChangeLog now has function bound to C-c C-f that finds the file in
268 the current log entry. 312 the current log entry.
269 313
270 ** abbrev was rewritten in Elisp and extended with more flexibility. 314 ** abbrev was rewritten in Elisp and extended with more flexibility.
476 w32-pass-multimedia-buttons to nil. See the doc string of that variable 520 w32-pass-multimedia-buttons to nil. See the doc string of that variable
477 for the list of extra keys that are available. 521 for the list of extra keys that are available.
478 522
479 * Incompatible Lisp Changes in Emacs 23.1 523 * Incompatible Lisp Changes in Emacs 23.1
480 524
525 ** The behavior of map-char-table has changed. It may call the
526 specified function with a cons (FROM . TO) as a key if characters in
527 that range have the same value.
528
529 ** The value of the function `charset-id' is now always 0.
530
531 ** The functions `register-char-codings' and `coding-system-spec'
532 have been removed.
533
534 ** Many codepage related functions have been removed. They are:
535 cp-make-coding-systems-for-codepage, cp-charset-for-codepage,
536 cp-language-for-codepage, cp-offset-for-codepage,
537 cp-supported-codepages
538 You don't need them anymore because coding systems created by these
539 functions are supported from the start now.
540
481 +++ 541 +++
482 ** The function `dired-call-process' has been removed. 542 ** The function `dired-call-process' has been removed.
483 543
484 ** The variable `byte-compile-warnings' can now be a list starting with `not', 544 ** The variable `byte-compile-warnings' can now be a list starting with `not',
485 meaning to disable the specified warnings. The meaning of this list 545 meaning to disable the specified warnings. The meaning of this list
494 554
495 555
496 * Lisp Changes in Emacs 23.1 556 * Lisp Changes in Emacs 23.1
497 557
498 ** clone-indirect-buffer now runs the clone-indirect-buffer-hook. 558 ** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
559
499 ** `beginning-of-defun-function' now takes one argument, the count 560 ** `beginning-of-defun-function' now takes one argument, the count
500 given to `beginning-of-defun'. 561 given to `beginning-of-defun'.
501 562
502 ** The variable `inhibit-changing-match-data', if non-nil, prevents the 563 ** The variable `inhibit-changing-match-data', if non-nil, prevents the
503 search and match primitives from changing the match data. 564 search and match primitives from changing the match data.
504 565
505 +++ 566 +++
549 610
550 ** `interprogram-paste-function' can now return one string or a list 611 ** `interprogram-paste-function' can now return one string or a list
551 of strings. In the latter case, Emacs puts the second and following 612 of strings. In the latter case, Emacs puts the second and following
552 strings on the kill ring. 613 strings on the kill ring.
553 614
615 ** Character code, representation, and charset changes.
616
617 The character code space is now 0x0..0x3FFFFF with no gap.
618 Characters of code 0x0..0x10FFFF are Unicode characters of the same code points.
619 Characters of code 0x3FFF80..0x3FFFFF are raw 8-bit bytes.
620
621 Generic characters no longer exist.
622
623 In buffer and string, characters are represented by UTF-8 byte
624 sequence in a multibyte buffer/string.
625
626 The concept of a charset has changed. A single character may belong to
627 multiple charsets (e.g. a-grave, U+00E0, belongs to charsets unicode,
628 iso-8859-1, iso-8859-3, etc).
629
630 *** The new function `characterp' returns t if and only if the argument
631 is a character.
632
633 *** The new function `max-char' returns the maximum character code
634 (currently it is #x3FFFFF).
635
636 *** The functions `encode-char' and `decode-char' now accept any character sets.
637
638 *** The function `define-charset' now accepts a completely different
639 form of arguments (old-style arguments still work).
640
641 *** The new function `define-charset-alias' defines an alias of a charset.
642
643 *** The value of the function `char-charset' depends on the current
644 priorities of charsets.
645
646 *** The new function `charset-priority-list' returns the list of
647 charsets ordered by priority.
648
649 *** The new function `set-charset-priority' sets priorities of charsets.
650
651 *** The new function `unibyte-charset' returns the current unibyte
652 charset. The unibyte charset determines how unibyte/multibyte
653 conversion is done.
654
655 *** The new function `set-unibyte-charset' sets the unibyte charset.
656
657 *** The new function `unibyte-string' make a unibyte string from bytes.
658
659 *** The new function `define-char-code-property' defines a character
660 code property.
661
662 *** The new function `char-code-property-description' returns the
663 description string of a character code property.
664
665 *** The function get-char-code-property now accepts many Unicode base
666 character properties. They are `name', `general-category',
667 `canonical-combining-class', `bidi-class', `decomposition',
668 `decimal-digit-value', `digit-value', `numeric-value', `mirrored',
669 `old-name', `iso-10646-comment', `uppercase', `lowercase', and
670 `titlecase'.
671
672 *** The new variable `find-word-boundary-function-table' is a
673 char-table of functions to search for a word boundary.
674
675 *** The new variable `char-script-table' is a char-table of script names.
676
677 *** The new variable `char-width-table' is a char-table of character widths.
678
679 *** The new variable `print-charset-text-property' controls how to
680 handle `charset' text property on printing a string.
681
682 *** The new variable `printable-chars' is a char-table defining if a
683 character is printable or not.
684
685 *** The functions `modify-syntax-entry' and `modify-category-entry' now
686 accepts a cons of characters as the first argument, and modify all
687 entries in that range of characters.
688
689 *** The functions `char-bytes', `chars-in-region', and `char-valid-p' are
690 obsolete.
691
692 ** Code conversion changes.
693
694 *** The new function `define-coding-system' should be used to define a
695 coding system instead of `make-coding-system' (which is now obsolete).
696
697 *** The functions `encode-coding-region' and `decode-coding-region'
698 have an optional 4th argument to specify where the result of
699 conversion should go.
700
701 *** The functions `encode-coding-string' and `decode-coding-string'
702 have an optional 4th argument specifying a buffer to store the result
703 of conversion.
704
705 *** The new function `with-coding-priority' executes the body part with
706 the specified coding system priority order.
707
708 *** The new function `check-coding-systems-region' checks if the text
709 in the region is encodable by the specified coding systems.
710
711 *** The new function `coding-system-aliases' returns a list of aliases
712 of a coding system.
713
714 *** The new function `coding-system-charset-list' returns a list of
715 charsets supported by a coding system.
716
717 *** The new function `coding-system-priority-list' returns a list of
718 coding systems ordered by their priorities.
719
720 *** The new function `set-coding-system-priority' sets priorities of
721 coding systems.
722
723 *** The functions `set-coding-priority' and `make-coding-system' are obsolete.
724
725 ** There is a new input method, Robin, different from Quail.
726 It has three functionalities:
727 i) a simple input method (converts an ASCII sequence into a string).
728 ii) converts an existing buffer substring into another string
729 iii) reverse conversion (each character produced by a
730 robin rule can hold the original ASCII sequence as a char-code-property)
731
732 *** The new function `robin-define-package' defines a Robin package.
733
734 *** The new function `robin-modify-package' modifies an existing Robin package.
735
736 *** The new function `robin-use-package' starts using a Robin package
737 as an input method.
738
739 ** Composition changes.
740
741 *** New functions and variables `auto-composition-mode' and
742 `global-auto-composition-mode' toggles the new minor mode Auto
743 Composition Mode locally and globally.
744
745 *** New variable `auto-composition-function' is a function used in
746 Auto Composition Mode to compose characters. The default value is the
747 function `auto-compose-chars'.
748
749 ** Font Backend changes.
750
751 *** New frame parameter `font-backend' specifies a list of
752 font-backends supported by the frame's graphic device. On X, they are
753 currently `x' and `xft'.
754
755 *** New function `fontp' checks if the argument is a font-spec or font-entity.
756
757 *** New function `font-spec' creates a new font-spec object.
758
759 *** New function `font-get' returns a font property value.
760
761 *** New function `font-put' sets a font property value.
762
763 *** New function `list-fonts' returns a list of font-entities matching
764 the given specification.
765
766 *** New function `list-families' returns a list of family names of
767 available fonts.
768
769 *** New function `font-font' returns a font-entity best matching with
770 the given specification.
771
772 *** New function `font-xlfd-name' returns an XLFD name of a given font
773 (font-spec, font-entity, or font-object).
774
775 *** New function `clear-font-cache' clears all font caches.
776
777 *** The function `set-fontset-font' now accepts a script name as the
778 second argument, and has an optional 5th argument to control how to
779 set the font.
780
554 ** Changes related to multiple tty support. 781 ** Changes related to multiple tty support.
555 782
556 *** $TERM is now set to `dumb' for subprocesses. If you want to know the 783 *** $TERM is now set to `dumb' for subprocesses. If you want to know the
557 $TERM inherited by Emacs you will have to look inside initial-environment. 784 $TERM inherited by Emacs you will have to look inside initial-environment.
558 785