diff options
Diffstat (limited to 'lisp')
155 files changed, 18010 insertions, 64584 deletions
diff --git a/lisp/ChangeLog.12 b/lisp/ChangeLog.12 index dca4aed54d1..1dccfd1a0a3 100644 --- a/lisp/ChangeLog.12 +++ b/lisp/ChangeLog.12 @@ -24547,21 +24547,6 @@ * elide-head.el (elide-head-headers-to-hide): Recognize the FSF's new address as well. -2005-07-07 Kenichi Handa <handa@m17n.org> - - * international/mule.el (make-coding-system): - Describe `ascii-incompatible' property in the docstring. - (set-file-name-coding-system): Signal an error if coding-system is - ascii-incompatible. - (set-keyboard-coding-system): Likewise. - - * international/mule-cmds.el (set-default-coding-systems): - Don't set default-file-name-coding-system and - default-keyboard-coding-system if coding-system is ASCII-incompatible. - - * international/utf-16.el: Declare that all UTF-16-based coding - systems are ASCII-incompatible. - 2005-07-07 Nick Roberts <nickrob@snap.net.nz> * progmodes/gud.el: Require font-lock for displaying errors. diff --git a/lisp/ChangeLog.unicode b/lisp/ChangeLog.unicode new file mode 100644 index 00000000000..1c7eb24a83d --- /dev/null +++ b/lisp/ChangeLog.unicode @@ -0,0 +1,2905 @@ +2007-07-26 Andreas Schwab <schwab@suse.de> + + * international/mule-diag.el (print-fontset-element): Use fontp + only if defined. + +2007-07-25 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el (ps-multibyte-buffer): Docstring fix. + + * ps-mule.el: Doc fix. + (ps-multibyte-buffer, ps-mule-font-info-database, ps-mule-prepare-font) + (ps-mule-external-libraries, ps-mule-encode-region) + (ps-mule-plot-composition, ps-mule-encode-header-string) + (ps-mule-begin-job): Docstring fix. + (ps-mule-prologue-generated): Code fix. + +2007-07-20 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Problem with foreground and background color when + printing a buffer with and without faces. Reported by Christian + Schlauer <cs-muelleimer-rubbish.bin@arcor.de>. + (ps-print-version): New version 7.2.4. + (ps-default-fg): Change default value to nil, so black color is used + when a face does not specify a foreground color. + (ps-default-bg): Change default value to nil, so white color is used + for background color. + (ps-begin-job): Fix code. + +2007-06-26 Kenichi Handa <handa@m17n.org> + + * dnd.el (dnd-get-local-file-name): Call replace-regexp-in-string + with FIXEDCASE t. + +2007-06-20 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (print-fontset-element): Fix for the + format change of a fontset element for font-backend feature. + +2007-06-19 Kenichi Handa <handa@m17n.org> + + * descr-text.el (describe-char): Fix for the case that a component + character is TAB. + +2007-06-16 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el + (select-safe-coding-system-interactively): Fix printing of + rejected and unsafe coding-systems. + + * international/fontset.el (setup-default-fontset): Add tai-viet. + + * international/characters.el: Setup syntax/category table for Tai + Viet. + (script-list): Add tai-viet. + + * loadup.el: Load "language/tai-viet". + + * language/tai-viet.el: New file. + + * language/tv-util.el: New file. + +2007-06-01 Jason Rumney <jasonr@gnu.org> + + * faces.el (font-weight-table): Use defaults on w32 that match + LOGFONT.lfWeight. + + * term/w32-win.el: Don't create fontset from command-line font. + +2007-05-29 Juanma Barranquero <lekktu@gmail.com> + + * international/mule-cmds.el (toggle-enable-multibyte-characters) + (sort-coding-systems, search-unencodable-char): Doc fixes. + (default-input-method, input-method-verbose-flag) + (input-method-highlight-flag): Remove * in defcustom's docstrings. + (exit-language-environment-hook, set-default-coding-systems) + (coding-system-change-eol-conversion, prefer-coding-system) + (find-multibyte-characters, leim-list-entry-regexp) + (set-input-method, input-method-exit-on-first-char, princ-list) + (locale-language-names, locale-charset-language-names) + (define-char-code-property): Fix typos in docstrings. + +2007-05-28 Kenichi Handa <handa@m17n.org> + + * disp-table.el (make-glyph-code): Fix for a new character code + space (22-bit). + (glyph-char): Likewise. + (glyph-face): Likewise. + +2007-05-16 Juanma Barranquero <lekktu@gmail.com> + + * printing.el (pr-ps-fast-fire): Fix typos in docstring. + +2007-05-13 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Use default color when foreground or background color + are unspecified. Reported by Leo <sdl.web@gmail.com>. + (ps-print-version): New version 7.2.3. + (ps-rgb-color): New argument. Use default color when color is + unspecified. + (ps-begin-job): Fix code. + +2007-03-28 Riccardo Murri <riccardo.murri@gmail.com> + + * vc-bzr.el: New file. + +2007-03-23 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Add more cases/syntaxes from Latin + characters. + +2007-03-09 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-def.el (installation-directory): Must be initialized when defining + it in XEmacs. + (coding-system-for-read): Eliminate duplicated definition. + +2007-03-05 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Replace some (defvar VAR) by (defvar VAR nil). + +2007-03-01 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Replace (defvar VAR nil) by (defvar VAR). + (ps-print-emacs-type): Var eliminated. + (ps-setup): Remove ps-print-emacs-type. Print which Emacsen is + running ps-print package. + + * ps-def.el: Replace (defvar VAR nil) by (defvar VAR). + (ps-frame-parameter): Replace defun by defalias. + (mark-active): defvar eliminated. + + * ps-samp.el (ps-prsc, ps-c-prsc, ps-s-prsc): Macros eliminated. + (ps-rmail-mode-hook, ps-vm-mode-hook, ps-gnus-summary-setup) + (ps-jts-ps-setup): Replace macros by vector key definition. + +2007-02-16 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * progmodes/ebnf-abn.el (ebnf-abn-skip-comment): + * progmodes/ebnf-bnf.el (ebnf-bnf-skip-comment): + * progmodes/ebnf-dtd.el (ebnf-dtd-skip-comment): + * progmodes/ebnf-ebx.el (ebnf-ebx-skip-comment): + * progmodes/ebnf-iso.el (ebnf-iso-skip-comment): + * progmodes/ebnf-yac.el (ebnf-yac-skip-comment): New version. + New command actions for EPS header and EPS footer. + + * progmodes/ebnf2ps.el: New command actions for EPS header and EPS + footer. Fix some problems with one-or-more, zero-or-more and + alternative constructions generation. Some log messages + implementation. Doc fix. + (ebnf-version): New version 4.4. + (ebnf-eps-header-font, ebnf-eps-header, ebnf-eps-footer-font) + (ebnf-eps-footer, ebnf-log): New options. + (ebnf-find-style, ebnf-eps-header-footer, ebnf-eps-header) + (ebnf-eps-footer, ebnf-eps-string, ebnf-eps-header-footer-comment) + (ebnf-eps-header-footer-p, ebnf-eps-header-comment) + (ebnf-eps-footer-comment, ebnf-eps-header-footer-file) + (ebnf-eps-header-footer-set, ebnf-log-header, ebnf-log): New funs. + (ebnf-style-custom-list, ebnf-style-database): Put new values. + (ebnf-print-directory, ebnf-print-file, ebnf-print-buffer) + (ebnf-print-region, ebnf-spool-directory, ebnf-spool-file) + (ebnf-spool-buffer, ebnf-spool-region, ebnf-eps-directory) + (ebnf-eps-file, ebnf-eps-buffer, ebnf-eps-region) + (ebnf-syntax-directory, ebnf-syntax-file, ebnf-syntax-buffer) + (ebnf-syntax-region, ebnf-parse-and-sort, ebnf-begin-job) + (ebnf-dimensions, ebnf-production-dimension, ebnf-terminal-dimension) + (ebnf-non-terminal-dimension, ebnf-special-dimension) + (ebnf-terminal-dimension1, ebnf-repeat-dimension) + (ebnf-except-dimension, ebnf-alternative-dimension) + (ebnf-optional-dimension, ebnf-one-or-more-dimension) + (ebnf-zero-or-more-dimension, ebnf-sequence-dimension): Insert log + message fun. + (ebnf-setup, ebnf-generate-one-or-more, ebnf-generate-zero-or-more) + (ebnf-begin-job, ebnf-begin-file, ebnf-eps-finish-and-write) + (ebnf-insert-ebnf-prologue, ebnf-production-dimension) + (ebnf-terminal-dimension1, ebnf-alternative-dimension) + (ebnf-one-or-more-dimension, ebnf-zero-or-more-dimension) + (ebnf-eps-add-context, ebnf-eps-add-production): Fix code. + (ebnf-eps-filename, ebnf-trim-right): Replace `?\s' by `?\ ' to keep + compatibility with Emacs 20 & 21. + (ebnf-eps-header-comment, ebnf-eps-footer-comment) + (ebnf-eps-file-alist, ebnf-basic-width-extra) + (ebnf-basic-empty-height): New vars. + (ebnf-prologue): Fix PostScript code. + (ebnf-make-empty, ebnf-make-terminal1, ebnf-make-or-more1) + (ebnf-make-production, ebnf-make-alternative, ebnf-make-optional) + (ebnf-make-except, ebnf-make-repeat, ebnf-make-sequence) + (ebnf-make-dup-sequence, ebnf-token-alternative): Add comments. + +2007-02-14 Kenichi Handa <handa@m17n.org> + + * international/titdic-cnv.el: Synch with HEAD. + +2007-02-11 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * printing.el: Group together all XEmacs/Emacs definitions. + (pr-version): New version 6.9. + (pr-global-menubar, pr-menu-char-height, pr-menu-char-width): New funs. + (pr-menu-char-height, pr-menu-char-width): Fix initialization code. + (pr-menu-bind): Fix code. + (pr-e-frame-char-height, pr-e-frame-char-width) + (pr-e-mouse-pixel-position, pr-x-add-submenu, pr-x-event-function) + (pr-x-event-object, pr-x-find-menu-item, pr-x-font-height) + (pr-x-font-width, pr-x-get-popup-menu-response, pr-x-make-event) + (pr-x-misc-user-event-p, pr-x-relabel-menu-item, pr-x-event-x-pixel) + (pr-x-event-y-pixel): Aliases eliminated. + (pr-xemacs-global-menubar): Macro moved. + (current-menubar, current-mouse-event, zmacs-region-stays) + (deactivate-mark, pr-menu-position, pr-menu-state, pr-ps-name-old) + (pr-txt-name-old, pr-ps-utility-old, pr-even-or-odd-old, pr-temp-menu): + Vars moved. + (pr-region-active-p, pr-menu-position, pr-menu-lookup, pr-menu-lock) + (pr-update-mode-line, pr-do-update-menus, pr-menu-alist) + (pr-relabel-menu-item, pr-menu-set-ps-title, pr-menu-set-txt-title) + (pr-menu-set-utility-title, pr-even-or-odd-pages) + (pr-f-set-keymap-parents, pr-f-set-keymap-name, pr-f-read-string) + (pr-keep-region-active, pr-menu-get-item, pr-menu-set-item-name): Funs + moved. + +2007-02-07 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.ps: The ps-print commands without face printing should not + print background color. Reported by Leo <sdl.web@gmail.com>. + (ps-print-version): New version 7.2.2. + (ps-begin-job): New arg. Fix ps-default-background and + ps-default-foreground initialization. + (ps-face-attributes): Fix doc string. + (ps-face-background, ps-generate-postscript, ps-generate): Fix code. + + * printing.el: Fix ps-print link. + +2007-01-30 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (list-character-sets-2): Don't print + width. + +2007-01-26 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.ps: Fix background height. + (ps-print-version): New version 7.2.1. + +2007-01-25 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Split XEmacs/Emacs definitions and sample setup code + into separate files. + (ps-print-version): New version 7.2. + (ps-postscript-code-directory): Fix XEmacs initialization. + (ps-generate-postscript-with-faces): Call + ps-generate-postscript-with-faces1 (new fun). + (ps-color-format, ps-float-format): Vars moved to ps-def.el. + (ps-xemacs-color-name, ps-mapper, ps-extent-sorter) + (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name) + (ps-face-background-name, ps-frame-parameter, ps-color-device) + (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved to + ps-def.el. + (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook) + (ps-rmail-print-message-from-summary, ps-print-message-from-summary) + (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook) + (ps-vm-mode-hook, ps-gnus-print-article-from-summary) + (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file) + (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs + moved to ps-samp.el. + + * ps-bdf.el (installation-directory, coding-system-for-read): Vars + moved to ps-def.el. + + * ps-mule.el (leading-code-private-22): Var moved to ps-def.el. + (charset-bytes, charset-dimension, charset-id, charset-width) + (find-charset-region, char-width, chars-in-region, forward-point) + (decompose-composite-char, encode-coding-string, coding-system-p) + (ccl-execute-on-string, define-ccl-program, multibyte-string-p) + (string-make-multibyte, encode-char): Funs moved to ps-def.el. + + * ps-def.el: New file. XEmacs/Emacs definitions. + (ps-generate-postscript-with-faces1): New fun. + (ps-color-format, ps-float-format): Vars moved from ps-print.el. + (ps-xemacs-color-name, ps-mapper, ps-extent-sorter) + (ps-xemacs-face-kind-p, ps-mark-active-p, ps-face-foreground-name) + (ps-face-background-name, ps-frame-parameter, ps-color-device) + (ps-color-values, ps-face-bold-p, ps-face-italic-p): Funs moved from + ps-print.el. + (installation-directory, coding-system-for-read): Vars moved from + ps-bdf.el. + (leading-code-private-22): Var moved from ps-mule.el. + (charset-bytes, charset-dimension, charset-id, charset-width) + (find-charset-region, char-width, chars-in-region, forward-point) + (decompose-composite-char, encode-coding-string, coding-system-p) + (ccl-execute-on-string, define-ccl-program, multibyte-string-p) + (string-make-multibyte, encode-char): Funs moved from ps-mule.el. + + * ps-samp.el: New file. Sample setup code. + (ps-prsc, ps-c-prsc, ps-s-prsc, ps-rmail-mode-hook) + (ps-rmail-print-message-from-summary, ps-print-message-from-summary) + (ps-article-subject, ps-article-author, ps-gnus-article-prepare-hook) + (ps-vm-mode-hook, ps-gnus-print-article-from-summary) + (ps-vm-print-message-from-summary, ps-gnus-summary-setup, ps-info-file) + (ps-info-node, ps-info-mode-hook, ps-jts-ps-setup, ps-jack-setup): Funs + moved from ps-print.el. + +2007-01-21 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Handle frame parameters (background and/or foreground + colors) changing dynamically. Reported by Leo <sdl.web@gmail.com>. + (ps-print-version): New version 7.1. + (ps-x-frame-property, ps-e-frame-parameter): New aliases. + (ps-frame-parameter): New fun. + (ps-default-fg, ps-default-bg): New default value ('frame-parameter). + Fix doc and customization. + (ps-begin-job): Get frame parameters (background and/or foreground + colors). + (ps-do-despool): Ensure ps-printer-name has a valid value. + +2006-12-04 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * progmodes/ebnf-abn.el: + * progmodes/ebnf-bnf.el: + * progmodes/ebnf-dtd.el: + * progmodes/ebnf-ebx.el: + * progmodes/ebnf-iso.el: + * progmodes/ebnf-otz.el: + * progmodes/ebnf-yac.el: + * progmodes/ebnf2ps.el: + * delim-col.el: + * printing.el: + * ps-bdf.el: + * ps-mule.el: + * ps-print.el: Remove 'Time-stamp' comment mark. + + * printing.el (pr-menu-bind): Replace 'easy-menu-change' by + 'easy-menu-add-item' when called in Emacs 21 or higher. + +2006-12-01 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el : Fix doc. + (ps-print-version): New version 7.0. + +2006-11-29 Kenichi Handa <handa@m17n.org> + + * mail/emacsbug.el (report-emacs-bug): Insert also the value of + XMODIFIERS. + +2006-11-28 Vinicius Jose Latorre <viniciusjl@ig.com.br> + + * ps-print.el: Fix maintainer email. Eliminate function declaration + that kept compatibility with older Emacs version. + (ps-print-version): New version 6.7. + +2006-11-28 Kenichi Handa <handa@m17n.org> + + * international/quail.el (quail-get-translations): Make + quail-current-key multibyte if not yet done. + +2006-11-27 Zhang Wei <id.brep@gmail.com> + + * language/chinese.el ("Chinese-GBK"): Add tutorial. + ("Chinese-GB18030"): Add sample-text and tutorial. + + * international/fontset.el (font-encoding-alist): Add gb18030. + (setup-default-fontset): Likewise. + (x-pixel-size-width-font-regexp, vertical-centering-font-regexp): + Add gbk and gb18030. + (charset-script-alist): Likewise. + + * international/characters.el: Put property + preferred-coding-system to gbk and gb18030. + + * international/mule-cmds.el (locale-language-names): Add an entry + for "zh_CN.UTF-8" and change "chs" to "Chinese-GBK". + + * faces.el (face-font-registry-alternatives): Add gb18030. + +2006-11-22 Vinicius Jose Latorre <viniciusjl@ig.com.br> (tiny change) + + * ps-mule.el: Fix maintainer email. + +2006-11-22 Kenichi Handa <handa@m17n.org> + + * language/european.el ("Turkish"): Sync with HEAD. + + * international/characters.el: Sync with HEAD. + + * international/mule-cmds.el (set-default-coding-systems): Sync + with HEAD. + +2006-11-21 Kenichi Handa <handa@m17n.org> + + * international/quail.el (quail-insert-kbd-layout): Check the + length of (cdr translation). + (quail-get-current-str): Check the length of (cdr def). + +2006-11-16 Kenichi Handa <handa@m17n.org> + + * ruler-mode.el (ruler-mode-ruler): Make the string `ruler' + mulitbyte. + +2006-11-13 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (ucs-insert): Re-implement. + +2006-11-09 Kenichi Handa <handa@m17n.org> + + * composite.el (terminal-composition-modification): New function. + (terminal-composition-function): Create composition with the above + modification function. + +2006-11-08 Zhang Wei <id.brep@gmail.com> (tiny change) + + * international/characters.el: Add more full-width characters in + char-width-table. + +2006-10-30 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (create-fontset-from-fontset-spec): Fix + script name handling. + +2006-10-26 Kenichi Handa <handa@m17n.org> + + * composite.el (terminal-composition-function): New function. + (terminal-composition-function-table): New variable. + (auto-compose-chars): If running on a terminal, use + terminal-composition-function-table. + + * loadup.el: Load "composite" after "international/characters". + + * international/characters.el: Delete codes for setting up charset + property nospace-between-words. Fix setting up of + char-width-table. Don't make ethiopic and tibetan double column. + + * textmodes/fill.el (fill-find-break-point-function-table): Don't + setup it in defvar. + (fill-nospace-between-words-table): New variable. + (fill-delete-newlines): Check fill-nospace-between-words-table + instead of charset property nospcae-between-words. + +2006-10-23 Kenichi Handa <handa@m17n.org> + + * composite.el (global-auto-composition-mode): Make the initial + value not depend on emacs-basic-display. + + * textmodes/fill.el: Don't use charset property + `fill-find-break-point-function'. + (fill-find-break-point-function-table): New variable. + (fill-find-break-point): Lookup + fill-find-break-point-function-table. + +2006-10-17 Kenichi Handa <handa@m17n.org> + + * international/mule.el (coding-system-list): Be sure to exclude + subsidiary coding systems. + +2006-10-05 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-composition-after-change): Remove + `auto-composed' property instead of put nil to it. + (toggle-auto-composition): Likewise. + +2006-10-02 Kenichi Handa <handa@m17n.org> + + * language/misc-lang.el (iso-8859-6): New coding system. + +2006-09-21 Kenichi Handa <handa@m17n.org> + + * dnd.el (dnd-get-local-file-name): Give a unibyte string to + replace-regexp-in-string as replacement. + +2006-08-28 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (otf-script-alist): Add byzm, math, + musc, and nko. + + * international/characters.el (script-list): Add nko, + byzantine-musical-symbol, musical-symbol, and mathematical. + +2006-08-21 Kenichi Handa <handa@m17n.org> + + * international/uni-bidi.el, international/uni-category.el, + international/uni-combining.el, international/uni-comment.el, + international/uni-decimal.el, international/uni-decomposition.el, + international/uni-digit.el, international/uni-lowercase.el, + international/uni-mirrored.el, international/uni-name.el, + international/uni-numeric.el, international/uni-old-name.el, + international/uni-titlecase.el, international/uni-uppercase.el: + Re-generated. + +2006-08-04 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system): Fix + synching with head. + +2006-08-03 Katsumi Yamaoka <yamaoka@jpl.org> + + * ldefs-boot.el: Delete the section for utf-7. + +2006-07-24 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-compose-current-font): New variable. + (auto-compose-chars): New arg FONT-OBJECT. + +2006-07-20 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Modify category-table and + script-table for new Ethiopic character range. + +2006-07-07 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (set-language-info): Fix synching + with HEAD. + (set-language-environment): Likewise. + (standard-display-european-internal): Sync with HEAD. + (set-language-environment-nonascii-translation): Fix synching with + HEAD. + (set-language-environment-fontset): Delete it. + (set-language-environment-unibyte): Fix synching with HEAD. + +2006-07-03 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (otf-script-alist): Set it. + +2006-06-28 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (font-encoding-alist): Fix for + "ethiopic-unicode". + +2006-06-23 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (script-representative-chars): Add an + entry for latin script. + +2006-06-19 Kenichi Handa <handa@m17n.org> + + * faces.el (font-weight-table): Treat regular and normal as the + same as medium. + (font-slant-table): Add (roman . 100). + +2006-06-09 Kenichi Handa <handa@m17n.org> + + * tar-mode.el (tar-extract): Sync with HEAD. + +2006-06-06 Kenichi Handa <handa@m17n.org> + + These changes are for the new font handling codes. + + * faces.el (font-weight-table, font-slant-table) + (font-swidth-table): New customizable variables. + + * international/fontset.el (font-encoding-alist): Add koi8-4. + (script-representative-chars): Set the default value. + (create-fontset-from-x-resource): Delete `message'. + +2006-05-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * term/mac-win.el (mac-utxt-to-string, mac-string-to-utxt) + (mac-TEXT-to-string, mac-string-to-TEXT): Sync with HEAD. + +2006-04-09 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Cancel unnecessary sync code for + HEAD. + +2006-03-28 Kenichi Handa <handa@m17n.org> + + * tar-mode.el (tar-untar-buffer, tar-summarize-buffer): Call + set-buffer-multibyte with arg `to'. + +2006-03-14 Kenichi Handa <handa@m17n.org> + + * info.el (Info-fontify-node): Check if already fontified or not + by next-single-property-change. + +2006-03-08 Kenichi Handa <handa@m17n.org> + + * international/mule.el (ctext-pre-write-conversion): Produce + extra designation sequence for ASCII at the end off extended + segment. + +2006-03-07 Kenichi Handa <handa@m17n.org> + + * international/mule.el (ctext-non-standard-encodings-table): + Reverse the returning list. + (ctext-pre-write-conversion): Fix encoding with extended segments. + + * international/mule-conf.el (compound-text) + (compound-text-with-extensions): Add long-form in :flags. + +2006-03-06 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (create-fontset-from-fontset-spec): Fix + regexp for paring FONTSET-SPEC (allow spaces after `:'). + +2006-03-03 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (create-fontset-from-fontset-spec): Fix + for the case that a charset is specified as target. + + * international/ccl.el (ccl-dump-write-const-string): Fix previous + change. + +2006-03-02 Kenichi Handa <handa@m17n.org> + + * international/ccl.el (ccl-embed-string): Check string length. + Set special flag for multibyte character sequence. + (ccl-compile-write-string): Don't make str unibyte. + (ccl-compile-write-repeat): Likewise. + (ccl-compile-write): If the character code doesn't fit in 22-bit + (ccl-dump-write-const-string): Check special flag for multibyte + character sequence. + +2006-02-28 Kenichi Handa <handa@m17n.org> + + * ps-mule.el (ps-mule-eight-bit-char): Delete this function. + (ps-mule-encode-region): Don't use ps-mule-eight-bit-char. + (ps-mule-plot-composition): Likewise. + +2006-02-27 Kenichi Handa <handa@m17n.org> + + * language/chinese.el ("Chinese-BIG5"): Set + ctext-non-standard-encodings property to "big5-0". + + * international/mule.el (ctext-non-standard-encodings): Initialize + to nil. + (ctext-non-standard-encodings-alist): Set charset `big5' in the + entry for "big5-0". + (ctext-non-standard-encodings-table): Return a list instead of + char-table. + (ctext-pre-write-conversion): Adjusted for the above change. + +2006-02-27 Zhang Wei <id.brep@gmail.com> (tiny change) + + * international/mule.el (ctext-non-standard-encodings-alist): Add + an entry for gbk-0. + (ctext-post-read-conversion): Use multibyt-char-to-unibyte to read + a row 8-bit. + + * language/chinese.el ("Chinese-GBK"): Set + ctext-non-standard-encodings property to "gbk-0". Add sample-text + property. + +2006-02-27 Kenichi Handa <handa@m17n.org> + + * international/kkc.el (kkc-region): Use + this-single-command-raw-keys on pushing back an unhandled key + sequence. + +2006-02-24 Kenichi Handa <handa@m17n.org> + + * international/encoded-kb.el (encoded-kbd-mode): Check + saved-input-mode on turing off Encoded Kbd mode. + + * composite.el (auto-composition-after-change): Use + save-buffer-state. + (turn-on-auto-composition-if-enabled): Don't turn on + auto-composition-mode in a unibyte buffer. + +2006-02-21 Kenichi Handa <handa@m17n.org> + + * startup.el (command-line): Use custom-reevaluate-setting for + global-auto-composition-mode. + + * composite.el (auto-composition-function): Make it buffer local. + (auto-composition-mode): New minor mode. + (turn-on-auto-composition-if-enabled): New function. + (global-auto-composition-mode): New global minor mode. + +2006-01-24 Kenichi Handa <handa@m17n.org> + + * descr-text.el (describe-char): Use insert-text-button instead of + widget-create for "customize what to show" button. + +2006-01-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * tar-mode.el: Merge changes from the trunk: + (tar-header-block-tokenize): Tighten regexp. + (tar-summarize-buffer): Don't clear the modified-p bit if it wasn't + cleared before. Obey default-enable-multibyte-characters. + Use mapconcat. + (tar-mode-map): Move initialization inside delcaration. + (tar-alter-one-field): Don't hardcode point-min==1. + +2006-01-20 Naoto Takahashi <ntakahas@m17n.org> + + * language/ethiopic.el: Copyright fixed. + (composition-function-table): Support a new character in Unicode + 4.1. + + * language/ethio-util.el (ethio-fidel-to-tex-buffer) + (ethio-tex-to-fidel-buffer, ethio-composition-function) + ("ethiopic-tex"): Support new characters in Unicode 4.1. + + * descr-text.el (describe-char): Fix for sync with HEAD. + +2006-01-19 Kenichi Handa <handa@m17n.org> + + * international/mule.el (autoload-coding-system): Install the same + function as in HEAD. + +2005-12-28 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Register characters in + auto-fill-chars. Put nospace-between-words to more charsets. + +2005-10-27 Zhang Wei <id.brep@gmail.com> (tiny change) + + * international/mule-cmds.el (locale-language-names): Add entries + for zh_CN.GB2312, zh_CN.GBK, and zh_CN.GB18030. + (locale-preferred-coding-systems): Fix entries for Chinese locales. + +2005-10-24 Kenichi Handa <handa@etlken> + + * international/utf-7.el: Delete the definition of utf-7. + (utf-7-post-read-conversion, utf-7-pre-write-conversion): + Add autoload cookies. + +2005-10-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * term/mac-win.el: Delete the code to create a fontset from the X + resource "Font". + +2005-07-29 Naoto Takahashi <ntakahas@m17n.org> + + * international/robin.el (robin-define-package): Be sure to call + put-char-code-property. + +2005-07-29 Kenichi Handa <handa@m17n.org> + + * language/korean.el (iso-2022-kr): Set :suitable-for-keyboard + property to 1. + + * international/mule-conf.el (cp1125): Set :ascii-compatible-p + property to t. + + * descr-text.el (describe-char): Sync with the main trunk. + + * international/mule.el (coding-system-get): + Check `ascii-incompatible' for backward compatiblity. + (set-file-name-coding-system): Signal an error for a coding system + not suitable for file name. + (set-keyboard-coding-system): Signal an error for a coding system + not suitable for keyboard. + + * language/chinese.el (iso-2022-cn, iso-2022-cn-ext): + Set :suitable-for-keyboard property to 1. + + * language/japanese.el (iso-2022-jp, iso-2022-jp-2) + (iso-2022-jp-2004): Set :suitable-for-keyboard property to 1. + + * language/vietnamese.el (vietnamese-viscii, vietnamese-vscii) + (vietnamese-tcvn): Set :suitable-for-file-name property to t. + +2005-07-26 Naoto Takahashi <ntakahas@m17n.org> + + * international/robin.el (robin-define-package): Delete redundant code. + (robin-add-rule): Allow N-1 reverse conversion. + +2005-07-26 Naoto Takahashi <ntakahas@m17n.org> + + * international/robin.el (robin-define-package): Make the + expaneded form shorter. + +2005-06-05 Zhang Wei <id.brep@gmail.com> (tiny change) + + * language/chinese.el (chinese-iso-8bit): Fix mime-charset of + chiense-iso-8bit. + +2005-05-11 Kenichi Handa <handa@m17n.org> + + * loadup.el: If we are byte-compiling unidata-gen.el or running + unidata-ge-files, set purify-flag to nil. + +2005-05-10 Kenichi Handa <handa@m17n.org> + + * loadup.el: Load international/charprop.el with NOERROR t. + + * Makefile.in (AUTOGENEL): Add charprop.el and uni-*.el. + +2005-05-07 Kenichi Handa <handa@m17n.org> + + * international/uni-bidi.el, international/uni-category.el, + international/uni-combining.el, international/uni-comment.el, + international/uni-decimal.el, international/uni-decomposition.el, + international/uni-digit.el, international/uni-lowercase.el, + international/uni-mirrored.el, international/uni-name.el, + international/uni-numeric.el, international/uni-old-name.el, + international/uni-titlecase.el, international/uni-uppercase.el, + international/charprop.el: Re-generated. + +2005-04-22 Kenichi Handa <handa@m17n.org> + + * term/mac-win.el: Sync with the main trunk. + (mac-centraleurroman, mac-cyrillic): New charsets and coding + systems. + (mac-symbol, mac-dingbats): New charsets. + +2005-04-21 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Set syntax of NBSP to punctuation. + +2005-04-11 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el: Don't require wid-edit. + +2005-04-09 Kenichi Handa <handa@m17n.org> + + * language/thai-util.el: Fix previous change. + +2005-03-28 Kenichi Handa <handa@m17n.org> + + * language/thai-util.el: Sync with the main trunk. + +2005-03-16 Naoto Takahashi <ntakahas@m17n.org> + + * international/robin.el: New file. + + * language/ethiopic.el: Encoding changed to utf-8-emacs. + Register ethio-composition-function in composition-function-table. + ("Ethiopic"): Coding-systems changed to utf-8-emacs. + + * language/ethio-util.el: Encoding changed to utf-8-emacs. All + transliteration functions rewritten to use robin.el. + (ethio-fidel-to-sera-map, ethio-fidel-to-tex-map) + (ethio-sera-to-fidel-table, ethio-implicit-period-conversion) + (ethio-prefer-ascii-punctuation): Deleted variables. + (ethio-char-to-ethiocode, ethio-convert-digit) + (ethio-ethiocode-to-char, ethio-fidel-to-sera-mail) + (ethio-fidel-to-sera-mail-or-marker, ethio-lone-consonant-p) + (ethio-sera-to-fidel-english, ethio-sera-to-fidel-ethio) + (ethio-sera-to-fidel-mail, ethio-sera-to-fidel-mail-or-marker) + (ethio-tilde-escape, ethio-toggle-punctuation): Deleted functions. + (ethio-adjust-robin, ethio-composition-function) + (ethio-get-consonant, ethio-prefer-amharic, ethio-process-digits) + (ethio-sera-to-fidel-region-ethio) + (ethio-sera-to-fidel-region-noethio) + (ethio-use-colon-for-colon, ethio-use-three-dot-question): New + functions. + +2005-01-30 Kenichi Handa <handa@m17n.org> + + * international/uni-name.el: Re-generated. + +2005-02-24 Miles Bader <miles@gnu.org> + + * international/mule.el (auto-coding-regexp-alist) + (ctext-pre-write-conversion): Replace embedded control characters + with octal escapes; this prevents diff from thinking the file is + binary. + +2005-02-12 Miles Bader <miles@gnu.org> + + * version.el (emacs-version): Change to "23.0.0". + + * descr-text.el (describe-char-unidata-list): + Replace references to Emacs version "22" with "23". + * emacs-lisp/bytecomp.el (byte-compile-fix-header) + (byte-compile-insert-header): Likewise. + * international/mule.el (charset-list, set-coding-priority) + (ignore-relative-composition): Likewise. + * international/mule-util.el (detect-coding-with-priority): Likewise. + * international/mule-diag.el: Likewise. + * international/mule-cmds.el (language-info-custom-alist): Likewise. + * international/codepage.el (codepage-setup): Likewise. + +2005-02-13 Kenichi Handa <handa@m17n.org> + + * case-table.el: Adjust code merged from trunk for unicode + branch (for the change on 2005-02-02). + +2005-01-30 Kenichi Handa <handa@m17n.org> + + * Makefile.in (DONTCOMPILE): Include charprop.el and uni-*.el. + + * international/fontset.el (font-encoding-alist): Add an entry for + microsoft-cp1251. + (setup-default-fontset): Add entries for microsoft-cp1251 and + koi8-r for cyrillic. + + * international/mule-cmds.el (char-code-property-alist): New + variable. + (define-char-code-property): New function. + (get-char-code-property): Handle a char-table registerd in + char-code-property-alist. + (put-char-code-property): Likewise. + (set-language-environment): Check :ascii-compatible-p property of + nonascii charset instead of its dimension. + + * international/uni-bidi.el, international/uni-category.el, + international/uni-combining.el, international/uni-comment.el, + international/uni-decimal.el, international/uni-decomposition.el, + international/uni-digit.el, international/uni-lowercase.el, + international/uni-mirrored.el, international/uni-name.el, + international/uni-numeric.el, international/uni-old-name.el, + international/uni-titlecase.el, international/uni-uppercase.el, + international/charprop.el: New files automatically generated by + admin/unidata/Makefile. + + * loadup.el: Load internationnal/charprop.el. + + * descr-text.el (describe-char-unidata-list): New variable. + (describe-char-unicode-data): Use char-code-property-description. + (describe-char): Add lines for describing Unicode-based character + properties. + +2005-01-17 Kenichi Handa <handa@m17n.org> + + * textmodes/ispell.el: These changes are to fix the code merged + from trunk for the change on 2005-01-13. + (ispell-unified-chars-table): Delete it. + (ispell-get-decoded-string): Don't check + ispell-unified-chars-table. + + * tar-mode.el (tar-extract): Adjust code merged from trunk for + unicode branch (for the change on 2005-01-15). + +2004-12-09 Kenichi Handa <handa@m17n.org> + + * international/mule-util.el (char-displayable-p): Check + :charset-list property of CODING. + +2004-12-06 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system-interactively): + Change 'mime-charset to :mime-charset. + (select-safe-coding-system): Use above (sync to HEAD). + (set-language-environment): Delete unnecessary code for handling + overriding-fontspec + +2004-10-28 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el: New coding system aliases unix, dos, + and mac. + +2004-10-19 Kenichi Handa <handa@m17n.org> + + * international/titdic-cnv.el (tit-process-header): Fix embedded + coding tag. + (titdic-convert): Bind coding-system-for-write to the coding + system specfied in the map file. Remove `charset' property after + decoding. + (miscdic-convert): Bind coding-system-for-write to the coding + system specfied for the map file. Fix LANGUAGE arg to + quail-define-package. + (batch-miscdic-convert): Check if a file is directory or not. + +2004-10-16 Kenichi Handa <handa@m17n.org> + + * international/mule.el (coding-system-equal): Move from mule-util.el. + + * international/mule-util.el (coding-system-equal): Move to mule.el. + +2004-10-15 Kenichi Handa <handa@m17n.org> + + * international/encoded-kb.el (encoded-kbd-decode-code-list): New + function. + (encoded-kbd-self-insert-charset): Support multibyte charsets. + (encoded-kbd-setup-keymap): Likewise. + +2004-10-12 Kenichi Handa <handa@m17n.org> + + * language/china-util.el (hz-set-msb-table): Turn chars beyond 128 + to eight-bit chars. + + * international/mule-conf.el: Dont' define coding system + `undecided' here. + +2004-10-06 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (locale-language-names): Fix for + gb18030 and gdk. + +2004-10-05 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (font-encoding-alist): Add gbk. + (charset-script-alist): Add chinese-gbk. + +2004-10-04 Kenichi Handa <handa@m17n.org> + + * language/chinese.el (chinese-gbk): Include ascii in + charset-list. + + * international/encoded-kb.el (encoded-kbd-setup-keymap): Fix + previous change. + +2004-09-19 Kenichi Handa <handa@m17n.org> + + * language/japanese.el ("Japanese"): Fix ordering of charsets. + +2004-08-18 Kenichi Handa <handa@m17n.org> + + * international/encoded-kb.el (encoded-kbd-self-insert-charset) + (encoded-kbd-self-insert-utf-8, encoded-kbd-setup-keymap) + (encoded-kbd-mode): Adjust code merged from trunk for unicode branch. + +2004-08-17 Kenichi Handa <handa@m17n.org> + + * descr-text.el (describe-char): Fix for the case CODE is a cons + of integers. + +2004-08-03 Steven Tamm <steventamm@mac.com> + + * term/mac-win.el: Use mac-standard-fontset-spec to create + fontset-mac + (mac-standard-fontset-spec): Created + +2004-04-27 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (unicode-data): Call + find-file-noselect with NOWARN t. + +2004-04-21 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (cp932-2-byte): Fix :code-space. + +2004-04-20 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Give more CJK characters the + category `|'. + + * descr-text.el (describe-char): Make it work on *Help* buffer. + Suppress auto-compostion on a region describing about composition. + + * language/european.el (diacritic-compose-region): Compose + diacritical marks only with a character whose syntax is word + constituent. + (diacritic-compose-string): Likewise. + (diacritic-composition-function): Likewise. + (diacritic-post-read-conversion): Delete it. + +2004-04-19 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Fix invalid encoding caused by the + previous sync. + +2004-04-16 Kenichi Handa <handa@m17n.org> + + Sync all files to HEAD. + +2004-04-15 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-compose-chars): Execute the main code in + condition-case. + +2004-04-14 Kenichi Handa <handa@m17n.org> + + * descr-text.el (describe-property-list): Sync to HEAD. + + * international/mule-diag.el: Sync to HEAD. + + * international/fontset.el (x-complement-fontset-spec): Don't + change CHARSET_REGISTRY and CHARSET_ENCODING fields. + +2004-04-13 Kenichi Handa <handa@m17n.org> + + * international/characters.el (next-word-boundary-kana): Handle + half-width kana. + +2004-04-12 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (indian-1-column): Fix :emacs-mule-id. + +2004-04-09 Kenichi Handa <handa@m17n.org> + + * language/japanese.el (japanese-iso-8bit): Fix order of + :charset-list. + + * mail/rmail.el (rmail-decode-babyl-format): Use + with-coding-priority instead of detect-coding-with-priority. + +2004-04-07 Kenichi Handa <handa@m17n.org> + + * international/mule.el (make-translation-table): Set the second + extra slot of the char table to 1. + (make-translation-table-from-vector): Likewise. + (make-translation-table-from-alist): Fix handling of multiple + entries. + +2004-03-11 Kenichi Handa <handa@m17n.org> + + * language/japanese.el (jisx0213-to-unicode, unicode-to-jisx0213): + New translation tables. + + * international/mule.el (make-translation-table-from-alist): New + function. + +2004-03-04 Kenichi Handa <handa@m17n.org> + + * international/mule.el (translate-region): Re-implement it here. + Make it interactive. + +2004-03-03 Kenichi Handa <handa@m17n.org> + + * ps-mule.el (ps-mule-font-info-database): Typo in doc fixed. + +2004-02-16 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (font-encoding-alist): Cancel previous + change. + +2004-02-13 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (font-encoding-alist): Register + "iso10646-2" for unicode-sip. + +2004-02-12 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (chinese-cns11643-15): New charset. + +2004-02-09 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (font-encoding-alist): Add entries for + variations of cns11643 fonts. + (setup-default-fontset): Add cns11643 fonts as fallback fonts. + +2004-02-06 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (list-charset-chars): Put charset + text property. + + * international/fontset.el (setup-default-fontset): Delete the + entry for symbol script, add JISX0213 to kana script, specify + fallback fonts. + +2004-02-05 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (setup-default-fontset): Register + "JISX0213.2004-1". + (font-encoding-alist): Likewise. + + * international/mule-diag.el (list-character-sets): Fix the first + line message. + (sort-listed-character-sets): Adjusted for the change of + list-characters-sets-1. + (list-character-sets-1): List supplementary character sets in a + different section. + (list-charset-chars): Validate charset at early stage. + + * international/characters.el: Fix `han' script range. + + * international/mule-conf.el (japanese-jisx0213.2004-1): Specify + :code-space. + (cp932-2-byte): Fix :code-space. + (unicode-smp, unicode-sip, unicode-ssp): New charsets. + +2004-02-03 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (japanese-jisx0213.2004-1): Specify + :dimension 2. + + * language/japanese.el (iso-2022-jp): Exclude japanese-jisx0212. + (japanese-ucs-cp932-to-jis-map): Fix previous change. + (japanese-ucs-jis-to-cp932-map): Likewise. + (iso-2022-jp-2004, euc-jis-2004, japanese-shift-jis-2004): New + coding systems. + (iso-2022-jp-3, euc-jisx0213, shift_jis-2004): New coding system + aliases. + ("Japanese"): Add new charsets and coding system.s + +2004-02-02 Kenichi Handa <handa@m17n.org> + + * language/japanese.el (japanese-ucs-cp932-to-jis-map): Renamed + from japanese-ucs-cp932-map. + (japanese-ucs-jis-to-cp932-map): Renamed from + japanese-ucs-jis-map. + (japanese-ucs-glibc-map): Delete this tranlastion table. + (japanese-ucs-glibc-to-jis-map): New tranlastion table. + (japanese-ucs-jis-to-glibc-map): New tranlastion table. + +2004-01-30 Kenichi Handa <handa@m17n.org> + + * cus-start.el: Handle charset-map-path, not + charset-map-directory. + +2004-01-29 Kenichi Handa <handa@m17n.org> + + * term/x-win.el (x-selection-value): Optimize for ASCII only case. + +2004-01-28 Kenichi Handa <handa@m17n.org> + + * language/japanese.el: Add map #x00A6 <-> #xFFE4 to translation + tables japanese-ucs-*-map. + +2004-01-27 Kenichi Handa <handa@m17n.org> + + * international/eucjp-ms.el: New file (automatically generated by + admin/charsets/Makefile). + + * international/cp51932.el: New file (automatically generated by + admin/charsets/Makefile). + + * language/japanese.el: Load cp51932 and eucjp-ms. + (japanese-ucs-cp932-map, japanese-ucs-jis-map) + (japanese-ucs-glibc-map): New translation tables. + (eucjp-ms): New coding system. + + * international/mule.el (coding-system-put): Delete it + (implemented in C). + + * international/mule-conf.el (katakana-sjis): Fix :superset to + :subset. + (japanese-jisx0213-a): New supplementary charset. + (japanese-jisx0213.2004-1): New charset. + +2004-01-25 Kenichi Handa <handa@m17n.org> + + * language/japanese.el (japanese-cp932): New coding system. + (cp932): New alias of it. + + * international/mule-conf.el (katakana-sjis, cp932-2-byte) + (cp932): New charsets. + + * international/mule.el (define-charset): If :code-space is not + given, generate it from :dimension. + +2004-01-23 Kenichi Handa <handa@m17n.org> + + * composite.el (reference-point-alist): Doc fixed. + (encode-composition-rule): Handle a rule (GREF NREF XOFF YOFF). + (decode-composition-rule): Likewise. + +2004-01-20 Kenichi Handa <handa@m17n.org> + + * language/european.el (diacritic-composition-function): Fix for + the case that POS is at the head. Allow combining with more + characters. + +2004-01-16 Kenichi Handa <handa@m17n.org> + + * descr-text.el (describe-char): Check `charset' property. + Show the code point in the charset in hexadigits. + + * international/mule-diag.el (stretches-for-character-list): + Delete it. + (list-block-of-chars): Use tabs instead of `display' property for + aligning characters. + (print-fontset-element): Fix the printing of XLFD. + +2004-01-15 Kenichi Handa <handa@m17n.org> + + * international/encoded-kb.el (encoded-kbd-self-insert-utf-8): + New function. + (encoded-kbd-setup-keymap): Add code for handling utf-8. + (encoded-kbd-mode): Likewise. + +2003-12-29 Kenichi Handa <handa@m17n.org> + + * faces.el (read-face-font): Include fontsets in the completion + list. + + * international/mule-cmds.el (set-locale-environment): Insert + locale-translation-file-name in a unibyte buffer. + + * international/characters.el: Fix setting of category `|'. + +2003-12-02 Kenichi Handa <handa@m17n.org> + + * language/chinese.el (chinese-gb18030): Fix :charset-list. + +2003-11-26 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-compose-chars): Fix previous change. + +2003-11-25 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system): Fix for + the case that the first element of default-coding-system is t. + Fix a message when some coding systems are rejected. + + * composite.el (auto-compose-chars): Fix previous change. + +2003-11-24 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (set-language-environment): Put + higher priority to charsets listed in `charset' property of the + language environment. + +2003-11-23 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-compose-chars): Don't do unnecessary + save-exclusion and save-restriction. + +2003-11-22 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (ctext-no-compositions): Remove + garbage arguments. + + * international/mule.el (make-coding-system): Fix generation of + properties. + + * international/fontset.el (setup-default-fontset): Specify fonts + for `symbol' script. + + * international/characters.el (script-list): Include `currency' + in `symbol'. + +2003-11-13 Alex Schroeder <alex@gnu.org> + + * timezone.el (timezone-parse-date): Fix style 8 to accept ISO + 8601 format (a capital T between the date and the time). + +2003-11-17 Kenichi Handa <handa@m17n.org> + + * international/mule.el (private-char-area-1-min) + (private-char-area-1-max, private-char-area-2-min) + (private-char-area-2-max, emacs-mule-charset-table): New + variables. + (convert-define-charset-argument): New function. + (define-charset): Handle the old calling style. Update + emacs-mule-charset-table. + (make-char-internal): New function. + +2003-11-03 Jason Rumney <jasonr@gnu.org> + + * w32-charset-info-alist: Define iso10646-1 always. + +2003-10-24 Kenichi Handa <handa@m17n.org> + + * composite.el (compose-region): Doc fix (delete duplicated line). + +2003-10-17 Kenichi Handa <handa@m17n.org> + + * international/characters.el: Fix syntax for Ethiopic. + +2003-10-12 Jason Rumney <jasonr@gnu.org> + + * w32-fns.el (w32-charset-info-alist): Accept more charset aliases. + + * makefile.w32-in (DONTCOMPILE): Remove old languages. Add + international/latin1-disp.el. + (LC_ALL): Define as C. + +2003-10-11 Jason Rumney <jasonr@gnu.org> + + * term/w32-win.el: Don't set fontsets to use sjis. + +2003-10-01 Kenichi Handa <handa@m17n.org> + + * language/japanese.el (iso-2022-jp, iso-2022-jp-2) + (japanese-iso-8bit): Fix the order of charsets in :charset-list. + +2003-09-30 Kenichi Handa <handa@m17n.org> + + * composite.el (auto-composition-chunk-size): Variable deleted. + (auto-compose-chars): Always stop after processing a newline. + +2003-09-28 Kenichi Handa <handa@m17n.org> + + * international/mule.el (define-coding-system): Fix attribute + name :for-unibyte. + +2003-09-26 Kenichi Handa <handa@m17n.org> + + * ps-bdf.el: Mostly re-written. + + * ps-mule.el: Mostly re-written. + + * ps-print.el (ps-generate-string-list): Function deleted. + (ps-rh-cache, ps-lf-cache, ps-rf-cache): Variables deleted. + (ps-header-footer-string): Function deleted. + (ps-encode-header-string-function): New variable + (ps-generate-header-line): Call ps-encode-header-string-function. + (ps-basic-plot-string-function): New variable + (ps-begin-job): Set ps-basic-plot-string-function and + ps-encode-header-string-function. For setting up headers and + footers, don't use caches such as ps-rh-cache. Don't call + ps-mule-begin-page. + (ps-basic-plot-str): Don't call ps-mule-prepare-ascii-font. + (ps-basic-plot-string): Likewise. + (ps-control-character): Likewise. + (ps-plot-region): Don't pay attention to composition and + non-ASCII characters. + (ps-generate): Call ps-mule-end-job. + (ps-mule-prepare-ascii-font): Delete autoload. + (ps-mule-set-ascii-font): Likewise. + (ps-mule-plot-string): Likewise. + (ps-mule-begin-page): Likewise. + (ps-mule-end-job): Declare autoload. + + * composite.el (auto-compose-region): New function. + +2003-09-11 Dave Love <fx@gnu.org> + + * international/mule-util.el + (detect-coding-with-language-environment): Doc fix. + + * composite.el: Doc fixes. + (auto-compose-chars): Use functionp, not fboundp. + + * international/mule-diag.el (list-charset-chars): Set buffer file + coding system. + + * progmodes/cap-words.el (capitalized-words-mode): Add autoload + cookie. Doc fix. + +2003-09-10 Dave Love <fx@gnu.org> + + * international/mule-diag.el (list-charset-chars): Set buffer file + coding system. + + * progmodes/cap-words.el (capitalized-words-mode): Add autoload + cookie. Doc fix. + + * textmodes/tex-mode.el (tex-font-lock-syntactic-face-function): + * progmodes/sh-script.el (sh-font-lock-syntactic-face-function): + * progmodes/perl-mode.el (perl-font-lock-syntactic-face-function): + * eshell/esh-opt.el (eshell-process-option): + * emulation/keypad.el (keypad-setup): + * emacs-lisp/lisp-mode.el (prin1-char): + * generic.el (generic-mode-set-comments): + * edmacro.el (edmacro-parse-keys): + * disp-table.el (standard-display-default): Use characterp. + +2003-06-23 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (utf-16-be): Make it an alias of + utf-16be-with-signature. + (utf-16-le): Make it an alias of utf-16le-with-signature. + (utf-16-be-with-signature, utf-16-le-with-signature): Remove these + coding system aliases. + + * international/utf-7.el (utf-7-decode, utf-7-encode): Use + utf-16be, not utf-16-be. + +2003-06-06 Kenichi Handa <handa@m17n.org> + + * international/mule.el (coding-system-category): New function. + (set-coding-priority): Re-written. + (make-translation-table): Re-written. + + * international/mule-cmds.el (universal-coding-system-argument): + Check the coding system type `undecided', not `t'. + (sort-coding-systems): Fix for iso-2022 coding systems. + (find-multibyte-characters): Fix for eight-bit chars. + (set-language-environment): Set charset priorities according to + the charsets supported by the coding systems of higher priorities. + +2003-06-05 Kenichi Handa <handa@m17n.org> + + * font-lock.el + (font-lock-match-c-style-declaration-item-and-skip-to-next): + Check (match-end 2) before goto there. + +2003-05-30 Kenichi Handa <handa@m17n.org> + + * international/mule.el (ctext-non-standard-designations-alist): + Exclude entries for iso8859-1[03456]. Fix docstring. + (ctext-pre-write-conversion): Make it work for the case that FROM + is a string. Don't do unnecessary save-restriction and + narrow-to-region. + +2003-05-28 Kenichi Handa <handa@m17n.org> + + * international/mule.el (ctext-non-standard-encodings-alist): + Renamed from non-standard-icccm-encodings-alist. + (ctext-non-standard-encodings-regexp): New variable + (ctext-post-read-conversion): Full rewrite. + (ctext-non-standard-designations-alist): Renamed from + non-standard-designations-alist. + (ctext-pre-write-conversion): Full rewrite. + (define-coding-system): Doc fix (escape '"' by '\'). + +2003-05-24 Dave Love <fx@gnu.org> + + * international/mule-conf.el (utf-16le, utf-16be-16be) + (utf-16le-with-signature, utf-16be-with-signature, utf-16): + Define :mime-text-unsuitable. `utf-16{b,l}e...' renamed from + `-16-{b,l}e-' and aliases defined for the old names. + + * international/mule.el (define-coding-system): Doc fix. + +2003-05-08 Dave Love <fx@gnu.org> + + * international/utf-7.el: New file. + + * international/mule-conf.el (utf-7): New. + +2003-05-06 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (utf-16-be) + (utf-16-be-with-signature): Cancel the previous change. + (utf-16): Add :endinan 'big. + + * international/mule.el (define-coding-system): Fix docstring + about :bom and :endian. + +2003-04-30 Dave Love <fx@gnu.org> + + * mule-conf.el (utf-16-be) + (utf-16-be-with-signature): Comment-out :endian. + + * mule-diag.el (describe-character-set): Fix + printing dimensions. Use `,AW(B', not `x'. + +2003-04-12 Kenichi Handa <handa@m17n.org> + + * international/fontset.el: Register CDAC fonts in + face-font-rescale-alist instead of face-resizing-fonts. + +2003-03-28 Kenichi Handa <handa@m17n.org> + + * international/mule-conf.el (utf-16-le): Renamed from + utf-16-le-nosig. + (utf-16-be): Renamed from utf-16-be-nosig. + (utf-16-le-with-signature): Renamed from utf-16-le. + (utf-16-be-with-signature): Renamed from utf-16-be. + (utf-16): Set :bom to (utf-16-le-with-signature . + utf-16-be-with-signature). + +2003-02-12 Dave Love <fx@gnu.org> + + * language/georgian.el (georgian-ps, georgian-academy): New coding + system. + + * language/chinese.el (chinese-big5-hkscs): New coding system. + (big5-hkscs, cn-big5-hkscs): New aliases. + + * international/mule-conf.el (big5-hkscs, georgian-academy): New + charset. + (ibm1047): Doc fix. + (pt154): Add mime-charset. + (ptcp154, cp154): New aliases. + +2003-02-04 Dave Love <fx@gnu.org> + + * international/mule.el (charset-iso-final-char) + (define-coding-system): Doc fix. + +2003-01-30 Kenichi Handa <handa@m17n.org> + + * international/ccl.el (define-ccl-program): Fset charset-id + to charset-id-internal temporarily. + +2003-01-21 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (list-block-of-chars): Use + decode-char instead of make-char. + +2003-01-10 Kenichi Handa <handa@m17n.org> + + * international/fontset.el: Enable the default fontset to use + unicode fonts for ASCII characters. + (x-decompose-font-name): Don't try to resolve PATTERN by + x-resolve-font-name. + (x-complement-fontset-spec): Never prepend an ASCII font. + (create-fontset-from-fontset-spec): If a fontset of the same name + already exists, override it instead of signalling an error. Don't + turn `ascii' into `latin'. Don't update fontset-alias-alist here. + + * international/mule-conf.el (unicode-bmp): Delete duplicated + definition. Give it :code-offset 0. + + * international/mule-diag.el (print-fontset-element): New + function. + (print-fontset): Use print-fontset-element to print the elements + of a fontset. Use it also to print fonts fallen back to the + default fontsets. + + * term/x-win.el: Delete the code to create a fontset from the X + resource "Font". + +2003-01-09 Kenichi Handa <handa@m17n.org> + + * international/mule-diag.el (print-fontset): Insert proper + newline and indentation spaces. + +2003-01-07 Dave Love <fx@gnu.org> + + * emacs-lisp/byte-opt.el (side-effect-free-fns): Add langinfo, + multibyte-char-to-unibyte. + + * emacs-lisp/cl-macs.el (cl-make-type-test): Use characterp. + + * international/mule-cmds.el (find-coding-systems-for-charsets): + Use coding-system-type, coding-system-charset-list. + (standard-keyboard-coding-systems): Deleted. + (set-locale-environment): Maybe set keyboard coding system. Avoid + typical warning about codeset in C locale. + +2003-01-06 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el (x-complement-fontset-spec): If a + fontname doesn't conform to XLFD format, try to get XLFD name by + x-list-fonts. + +2002-12-08 Dave Love <fx@gnu.org> + + * international/mule-conf.el (mik, pt154): New charsets. + + * language/cyrillic.el (mik, pt154): New coding systems. + +2002-12-05 Dave Love <fx@gnu.org> + + * international/characters.el: Move parts around so that syntax + definitions aren't overwritten wrongly. + + * international/mule-diag.el (unicode-data): Fix treatment of + numeric-value fields. + +2002-12-01 Dave Love <fx@gnu.org> + + * progmodes/cap-words.el: New file. + +2002-11-07 Kenichi Handa <handa@m17n.org> + + The following changes are to make character composition happen + automatically on displaying. + + * composite.el: Remove all autoload cookies. + (composition-function-table): Variable declaration moved from + composite.c. Format changed. + (save-buffer-state): Copied from font-lock.el. + (auto-composition-chunk-size): New variable. + (auto-compose-chars): New function. Set + auto-composition-function to it. + (toggle-auto-composition): New function. + + * international/characters.el: Make all chararacters in the + charset tibetan to tibetan script. + + * international/mule-conf.el (tibetan): Fix :code-space property. + (tibetan-1-column): Delete :superset property, add :code-offset + property. + + * international/quail.el (quail-input-string-to-events): Don't + generate compose-chars-after events. + + * language/devanagari.el: Register devanagari-composable-function + in composition-function-table for Devanagari characters. + + * language/devan-util.el: Register devanagari-composable-pattern + in indian-composable-pattern. + (devanagari-composition-function): Add autoload cookie. Change + arguments to conform to composition-function-table. + + * language/european.el: Register combining characters in + composition-function-table. + (diacritic-composition-function): Change arguments to conform to + composition-function-table. + + * language/indian.el (indian-composable-pattern): New variable. + + * language/ind-util.el (indian-compose-region): Don't call + compose-chars-after, instead call a function registered in + composition-function-table. + + * language/lao.el: Register lao-composition-function in + composition-function-table for Lao vowels and tones. + (lao): Don't use lao-post-read-conversion. + + * language/lao-util.el (lao-post-read-conversion): Delete this + function. + (lao-composition-function): Change arguments to conform to + composition-function-table. + + * language/thai.el: Register thai-composition-function in + composition-function-table for Thai vowels and tones. + (thai-tis620): Don't use thai-post-read-conversion. + + * language/thai-util.el (thai-post-read-conversion): Delete this + function. + (thai-composition-function): Change arguments to conform to + composition-function-table. + + * language/tibetan.el: Register tibetan-composition-function in + composition-function-table for Tibetan characters. + + * language/tibet-util.el (tibetan-composition-function): Change + arguments to conform to composition-function-table. + + * loadup.el: Load composite. + +2002-11-01 Dave Love <fx@gnu.org> + + * international/mule-diag.el (unicode-data): Find unicodedata-file + literally. + +2002-10-31 Dave Love <fx@gnu.org> + + * international/fontset.el: Doc fixes. + ("fontset-default"): Add iso8859-15. + +2002-10-30 Kenichi Handa <handa@m17n.org> + + * international/fontset.el ("fontset-default"): Add an entry for + `indian-is13194' charset. + + * international/mule-conf.el (indian-is13194): Delete :unify-map + property. Don't unify this charset. + (indian-2-column): Delete :superset property, add :code-offset + property. + + * language/devan-util.el: Delete the superfluous autoload cookie + near the head of the file. + (devanagari-compose-region): Add autoload cookie. + + * language/ind-util.el (indian-2-column-to-ucs-region): Add + autoload cookie. + +2002-10-29 Kenichi Handa <handa@m17n.org> + + * international/fontset.el ("fontset-default"): Add an entry for + `devanagari' script and `malayalam-glyph' charset. + (face-resizing-fonts): Register CDAC fonts. + + * international/mule-conf.el (malayalam-glyph): New charset. + +2002-10-28 Dave Love <fx@gnu.org> + + * term/x-win.el: Fix typo in loop setting x-keysym-table. + +2002-10-27 Dave Love <fx@gnu.org> + + * international/mule-conf.el (utf-8-emacs): Delete :mime-charset. + + * term/x-win.el: Remove some ancient compatibility code. Populate + x-keysym-table. + + * international/mule-cmds.el (wid-edit): Require when compiling. + (set-locale-environment): Check locale against coding system + aliases too. + +2002-10-25 Kenichi Handa <handa@m17n.org> + + * language/indian.el (in-is13194-devanagari): Fix + :post-read-conversion and :pre-write-conversion. + +2002-10-16 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (charset): Supply doc, :tag. + +2002-10-16 Kenichi Handa <handa@m17n.org> + + * emacs-lisp/bytecomp.el (byte-compile-lapcode): Be sure to + return a unibyte string. + +2002-10-15 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (set-locale-environment): Delete + superfluous ')'s at the tail. + +2002-10-14 Kenichi Handa <handa@etl.go.jp> + + * international/mule.el (define-coding-system): Fix typo; + "docode" -> "decode". + +2002-10-14 Dave Love <fx@gnu.org> + + * emacs-lisp/byte-opt.el (side-effect-free-fns): Add + string-make-unibyte string-make-multibyte string-to-multibyte + string-as-multibyte string-as-unibyte. + +2002-10-11 Dave Love <fx@gnu.org> + + * language/english.el (ibm1047, cp1047): New. + + * international/mule-conf.el (alternativnyj): Use new table. + (cp866): Define standalone, not as alias. + (ibm866): Change alias. + (ibm1047): New. + + * language/cyrillic.el (cyrillic-alternativnyj): Remove + mime-charset. Use alternativnj charset. + (cp866): Remove alias. Define standalone. + +2002-10-09 Dave Love <fx@gnu.org> + + * language/european.el ("Latin-2", "Latin-5"): Doc fix. + + * language/cyrillic.el ("Bulgarian"): Fix input method and + charset. + ("Tajik", "Belarusian"): Fix charset. + + * international/mule-cmds.el (describe-language-environment): Be + case-insensitive when looking for input methods. + (locale-name-match): Doc fix. + (locale-charset-match-p): New. + (set-locale-environment): Warn if coding system doesn't agree + with system locale. + +2002-10-09 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system): If + :mime-charset property of a coding system is not equal to that + coding system, don't show that :mime-charset name. + +2002-10-06 Dave Love <fx@gnu.org> + + * international/quail.el (quail-help): Fix underlining. + + * language/chinese.el (chinese-gb18030, gb18030) + ("Chinese-GB18030"): New. + + * international/mule-cmds.el (locale-language-names): Add GB18030. + + * international/swedish.el: Don't require latin-1. + +2002-10-05 Dave Love <fx@gnu.org> + + * language/czech.el ("Czech"): + * language/slovak.el ("Slovak"): + * language/romanian.el ("Romanian"): Remove unibyte-syntax property. + + * language/greek.el ("Greek"): Remove unibyte-syntax property. + (cp737): New coding system. + + * language/european.el: Remove unibyte-syntax properties. + Augment some coding-system properties. + + * international/mule-cmds.el (set-language-environment): Check + for charset property of environment. + (language-info-alist): Doc fix. + + * Makefile.in (DONTCOMPILE): Remove latin-N.el. + + * international/characters.el: Add Latin-1. + + * international/latin-1, international/latin-2, international/latin-3: + * international/latin-4, international/latin-5, international/latin-8: + * international/latin-9: Deleted. + + * loadup.el: Remove international/latin-N.el. + + * case-table.el (set-case-syntax-charset, set-case-syntax-1) + (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax): + Undo last changes. + + * international/mule-diag.el (unicode-data): Check that + `unicodedata-file' exists. + +2002-10-05 Kenichi Handa <handa@m17n.org> + + * international/fontset.el (charset-script-alist): Fix script + names. + +2002-10-01 Kenichi Handa <handa@m17n.org> + + * international/latin-1.el: Bind set-case-syntax-charset to + iso-8859-1. Never provide latin-1. + + * international/latin-2.el: Bind set-case-syntax-charset to + iso-8859-2. Never provide latin-2. + + * international/latin-3.el: Bind set-case-syntax-charset to + iso-8859-3. Never provide latin-3. + + * international/latin-4.el: Bind set-case-syntax-charset to + iso-8859-4. Never provide latin-4. + + * international/latin-5.el: Bind set-case-syntax-charset to + iso-8859-9. Never provide latin-5. + + * international/latin-8.el: Bind set-case-syntax-charset to + iso-8859-14. Never provide latin-8. + + * international/latin-9.el: Bind set-case-syntax-charset to + iso-8859-15. Never provide latin-9. + + * case-table.el (set-case-syntax-set-multibyte): This variable + deleted. + (set-case-syntax-charset): New variable. + (set-case-syntax-1): New function. + (set-case-syntax-delims, set-case-syntax-pair, set-case-syntax): + Call set-case-syntax-1 on arguments. + + * international/mule-cmds.el (set-language-environment): Delete + unnecessary setup of syntax/case for unibyte case. + +2002-09-27 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el (generate-fontset-menu): Exclude the + default fontset. + + * faces.el (describe-face): Describe :fontset property too. + +2002-09-25 Dave Love <fx@gnu.org> + + * international/characters.el: Fix last change. + +2002-09-23 Dave Love <fx@gnu.org> + + * international/characters.el: Don't set char width of CJK + charsets generally. Add some non-word syntax cases. + (korean-ksc5601): Fix ranges with symbol syntax. + +2002-09-14 Dave Love <fx@gnu.org> + + * Makefile.in (DONTCOMPILE): Add indian.el. + + * language/ind-util.el: + (ucs-bengali-to-is13194-alist, ucs-assamese-to-is13194-alist) + (ucs-gurmukhi-to-is13194-alist, ucs-gujarati-to-is13194-alist) + (ucs-oriya-to-is13194-alist, ucs-tamil-to-is13194-alist) + (ucs-telugu-to-is13194-alist, ucs-malayalam-to-is13194-alist))): + Remove declarations and let-bind them in re-written top-level loop + over scripts, including ucs-devanagari-to-is13194-alist. + +2002-09-14 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (charset): Move. + (language-info-custom-alist): Move. Alter :set. + (find-coding-systems-for-charsets): Check charset type before + getting :charset-list. + + * language/ind-util.el (iscii-to-ucs-region): Fix typo. + +2002-09-12 Kenichi Handa <handa@etl.go.jp> + + * international/mule-conf.el (emacs-mule, iso-2022-7bit) + (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2) + (compound-text, ctext-no-compositions): Cancel provious change. + +2002-09-09 Dave Love <fx@gnu.org> + + * wid-edit.el (widget-string-complete): New. + (widget-coding-system-prompt-value-history): Deleted. + (coding-system): Use coding-system-value-history. + + * international/mule-cmds.el (charset): New widget. + (language-info-custom-alist): Use it. + (default-input-method): Modify :type. + +2002-09-08 Dave Love <fx@gnu.org> + + * language/ind-util.el (ucs-devanagari-to-is13194-alist) + (indian-glyph-char, indian-char-glyph): Delete. + (is13194-default-repertory): Rename from is13194-default-repartory. + (iscii-to-ucs-region): Hoist evals from loop. + + * language/devan-util.el (dev-charseq): Avoid indian-glyph-char. + + * language/indian.el (indian-script-table) + (ccl-encode-indian-glyph-font): Delete. + + * international/mule-conf.el (emacs-mule, iso-2022-7bit) + (iso-2022-7bit-ss2, iso-2022-7bit-lock, iso-2022-8bit-ss2) + (compound-text, ctext-no-compositions): Remove :charset-list. + + * international/mule-cmds.el (language-info-custom-alist): New. + (input-method-activate-hook, input-method-inactivate-hook) + (input-method-after-insert-chunk-hook) + (input-method-use-echo-area, set-language-environment-hook) + (exit-language-environment-hook): Customize. + (find-coding-systems-for-charsets): Rewritten. + (default-input-method): Add :link. + +2002-09-08 Dave Love <fx@gnu.org> + + * international/mule-conf.el (eight-bit): Add :docstring, + :short-name properties. + (cp851): Doc fix. + (unicode-bmp): New. + + * case-table.el (set-case-syntax-pair): Remove check on byte lengths. + + * language/european.el (cp858): New. + ("Turkish"): Add special case rules. + +2002-09-05 Dave Love <fx@gnu.org> + + * international/characters.el: Make ,_/(B and ,A(B a case pair. + +2002-09-03 Kenichi Handa <handa@etl.go.jp> + + * international/mule-conf.el: Don't define the charset iso-8859-1 + here, just setup its properties. + +2002-08-21 Kenichi Handa <handa@etl.go.jp> + + * international/mule-conf.el (utf-8): Give :mime-charset property. + +2002-08-20 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el: Remove duplicated case setting for + Cyrillic and Greek letters. Don't setup printable-chars here. + + * case-table.el (describe-buffer-case-table): Handle the case + that KEY is a cons within map-char-table. + +2002-08-19 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el: Fix categories ?A and ?C. + Treat ASCII characters as `latin' script. + +2002-08-18 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el (fontset-plain-name): If the fontset + name doesn't ends with "-fontset-*", use family name as the first + part of the plain name. + (create-fontset-from-ascii-font): If "fontset-startup" is not yet + created, use that name for the fontset. Fix arguments to + subst-char-in-string. + +2002-08-18 Dave Love <fx@gnu.org> + + * term.el (term-char-mode): Remove generic-character-list code. + + * ruler-mode.el (ruler-mode-character-validate): Use characterp. + + * wid-edit.el (character): Use characterp. + + * international/mule-diag.el (describe-coding-system): Add utf-16 case. + + * language/viet-util.el (viet-encode-viscii-char): Use encode-char. + + * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"): + Add charset. + ("Ukrainian"): New. + + * language/georgian.el (georgian-ps): New coding system. + +2002-08-15 Kenichi Handa <handa@etl.go.jp> + + * international/mule-cmds.el (reset-language-environment): + Don't set nonascii-translation-table and nonascii-insert-offset. + Call set-unibyte-charset, not set-primary-charset. + (nonascii-translation-table, nonascii-insert-offset): + Declare these variable as obsolete ones. + (set-language-environment): Call set-unibyte-charset, not + set-primary-charset. Call set-charset-priority with `charset' + info of the language environment. + +2002-08-08 Kenichi Handa <handa@etl.go.jp> + + * tar-mode.el (tar-extract): Fix previous change. + +2002-08-02 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el (next-word-boundary-han): + Don't treat katakana following han characters as a part of a word. + +2002-08-01 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el: Call map-charset-chars on big5 + (not chinese-big5-1/2) to set categories `c', `C', and `|'. + (next-word-boundary-han): New function. Register it in + next-word-boundary-function-table. + (next-word-boundary-kana): Likewise. + +2002-07-31 Kenichi Handa <handa@etl.go.jp> + + * arc-mode.el (archive-file-name-coding-system): New variable. + Make it permanent-local. + (byte-after, bref, insert-unibyte): New function. Change most of + char-after, aref, insert to them respectively. + (archive-mode): Set archive-file-name-coding-system. + (archive-summarize): Don't change the buffer's multibyteness. + (archive-extract): Inherit archive-file-name-coding-system from + archive-superior-buffer. Bind coding-system-for-write to + archive-file-name-coding-system. + (archive-*-write-file-member): Encode ENAME by + archive-file-name-coding-system. Bind coding-system-for-write to + no-conversion. + (archive-rename-entry): Encode the filename by + archive-file-name-coding-system. + (archive-mode-revert): Don't change the buffer's multibyteness. + (archive-arc-summarize, archive-lzh-summarize) + (archive-zoo-summarize): Don't change the buffer's multibyteness. + Decode filenames by archive-file-name-coding-system. + (archive-arc-rename-entry, archive-zip-chmod-entry): Don't change + the buffer's multibyteness. + + * tar-mode.el (tar-file-name-coding-system): New variable. + Make it permanent-local. + (tar-header-block-tokenize): Decode filename and linkname by + tar-file-name-coding-system. + (tar-header-block-checksum): Call multibyte-char-to-unibyte to get + the byte value of eight-bit chars. + (tar-summarize-buffer): Call set-buffer-multibyte with METHOD + `to'. Delete unnecessary call of position-bytes. + (tar-mode): Set tar-file-name-coding-system. Delete unnecessary + call of position-bytes. + (tar-extract): Simplify by calling decode-coding-region with + DESTINATION argument. Don't toggle multibyteness of tar buffer. + (tar-copy): Don't toggle multibyteness of tar buffer. + (tar-expunge): Likewise. + (tar-clear-modification-flags): Delete unnecessary call of + position-bytes. + (tar-rename-entry): Call tar-alter-one-field with encoded new name. + (tar-alter-one-field): Don't toggle multibyteness of tar buffer. + Convert new-data-string by string-to-multibyte before inserting it. + (tar-subfile-save-buffer): Don't toggle multibyteness of tar + buffer. Simplify by calling encoding-coding-region with + DESTINATION argument. + (tar-mode-write-file): Delete unnecessary call of byte-to-position. + +2002-07-30 Dave Love <fx@gnu.org> + + * international/titdic-cnv.el (quail-cxterm-package-ext-info): Doc fix. + + * emacs-lisp/copyright.el (copyright-regexp): Remove redundancy. + +2002-07-26 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el: Setup char-script-table. + + * international/fontset.el: Setup the default fontset by the new + script based way. + (x-complement-fontset-spec): Change the format of arg FONTLIST to + an alist of charsets vs font name lists. + (charset-script-alist): New variable. + (create-fontset-from-fontset-spec): Allow script name in + FONTSET-SPEC. If charset is specified in FONTSET-SPEC, change it + to the corresponding script name. + (create-fontset-from-ascii-font): Slightly tuned. + + * international/mule-conf.el (devanagari-glyph): New charset. + Unify these charsets: korean-ksc5601, ipa, tibetan, ethiopic, + japanese-jisx0208, japanese-jisx0212, japanese-jisx0213-1, + japanese-jisx0213-2. + + * international/mule-diag.el (print-fontset): Use describe-vector + to handle a char table returned by fontset-info. + + * language/indian.el: Don't register ccl-encode-indian-glyph-font + and ccl-encode-unicode-font in font-ccl-encoder-alist. + +2002-07-18 Dave Love <fx@gnu.org> + + * startup.el (fancy-splash-head): Warn about status. + (fancy-splash-tail): Copyright up-date. + +2002-07-17 Kenichi Handa <handa@etl.go.jp> + + * international/mule-util.el (detect-coding-with-priority): + Fix the place of using `,' marker in backguote form. + +2002-07-12 Dave Love <fx@gnu.org> + + * international/mule-conf.el (mule-unicode-e000-ffff): Set :max-code. + + * international/mule-util.el (with-coding-priority): Fix. + + * international/mule.el (set-coding-priority): Fix obsolete spec. + +2002-07-05 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (leim-list-header): Add coding tag. + +2002-07-05 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (find-coding-systems-region) + (language-info-alist, reset-language-environment, princ-list): Doc + fix. + (input-method-verbose-flag): Fix :type. + (set-locale-environment): Revert last change. + +2002-07-03 Dave Love <fx@gnu.org> + + * international/mule.el (set-char-table-default): Make obsolete. + +2002-07-01 Dave Love <fx@gnu.org> + + * language/devanagari.el ("Devanagari"): Fix coding-system, + coding-priority. + + * international/mule-diag.el (describe-char-after): Modify display + list processing. + (unicodedata-file, unicodedata-find): New. + +2002-06-29 Dave Love <fx@gnu.org> + + * emacs-lisp/bytecomp.el (batch-byte-compile-if-not-done): Add + autoload cookie. + + * international/ja-dic-cnv.el (skkdic-convert): Add coding tag. + +2002-06-28 Dave Love <fx@gnu.org> + + * international/mule-util.el (detect-coding-with-priority): + Rewritten. + +2002-06-27 Dave Love <fx@gnu.org> + + * composite.el (compose-string): Doc fix. + + * language/georgian.el ("Georgian"): Delete code-pages feature, + add nonascii-translation. + + * language/european.el ("German", "French", "Spanish"): Add + latin-9 as alternative coding system. + ("Slovenian", "Polish"): Add windows-1250 as alternative coding + system. + ("Dutch"): Add latin-9 as alternative coding system. Add input + method. + ("Turkish"): Add windows-1254 and latin-3 as alternative coding + systems. + ("Lithuanian", "Latvian"): Add windows-1257 as alternative coding + system. + + * emacs-lisp/byte-opt.el (side-effect-free-fns): Add decode-char, + encode-coding-char. + (side-effect-and-error-free-fns): Add charsetp, max-char, + primary-charset. + + * simple.el: Don't require cl when compiling. + + * Makefile.in (DONTCOMPILE): Fix duplicates. + + * emacs-lisp/bytecomp.el (byte-compile-insert-header): Fix typo. + + * international/mule.el: Doc fixes. + (load-with-code-conversion): Fix coding-system-type test. + + * international/mule-cmds.el (sort-coding-systems): Comment out + iso-2022 case. + (encoded-string-description): Fix coding-system-type test. + +2002-06-24 Dave Love <fx@gnu.org> + + * international/characters.el: Make korean-ksc5601 double-width. + + * international/mule.el (auto-coding-regexp-alist): Recognize + Emacs 20/1 byte-compiled files. + + * international/mule-conf.el (file-coding-system-alist): Change + .elc to utf-8-emacs. + + * emacs-lisp/bytecomp.el (byte-recompile-directory) + (batch-byte-recompile-directory): Update from trunk. + (byte-compile-fix-header): Adjust for use of utf-8-emacs. + (byte-compile-insert-header): Update magic number. Add ballast. + (map-char-table): Use byte-compile-funarg-2. + +2002-06-16 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (set-locale-environment): Use + locale-codeset. + +2002-06-15 Dave Love <fx@gnu.org> + + * language/cyrillic.el ("Belarusian"): Doc fix. + (cp1125, koi8-t): Doc fix. + + * international/mule-cmds.el (find-multibyte-characters): Doc fix. + (find-multibyte-characters): Don't test for charset `unknown'. + (locale-language-names): Change or add: be, bs, cy, mk, ru.koi8, + ru, sr_YU, tg, wa, zh.gbk. + (locale-language-names): Change sp to Cyrillic. + (locale-charset-language-names): Match @euro after utf-8. + +2002-06-13 Dave Love <fx@gnu.org> + + * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New + coding systems. + ("Chinese-GBK"): New environment. + +2002-06-12 Dave Love <fx@gnu.org> + + * language/chinese.el (chinese-gbk, gbk, cp936, windows-936): New + coding systems. + ("Chinese-GBK"): New environment. + + * language/thai-util.el: Remove redundant unicodes in + category-setting. + + * language/lao-util.el: Remove redundant unicodes in + category-setting. + + * international/mule-conf.el (japanese-jisx0213-1) + (japanese-jisx0213-2): Add unify-map. + +2002-06-12 Kenichi Handa <handa@etl.go.jp> + + * international/quail.el (quail-update-leim-list-file): Force + writing the file by iso-2022-7bit. + + * international/titdic-cnv.el (miscdic-convert): Force writing the + file by iso-2022-7bit. + + * international/mule.el (define-charset): Change the attribute + :parents to :subset or :superset. + + * international/mule-conf.el: Adjusted for the change of + define-charset (:parent -> :subset or :superset). + + * international/characters.el: Fix the last change. + +2002-06-11 Dave Love <fx@gnu.org> + + * language/cyril-util.el (cyrillic-encode-koi8-r-char) + (cyrillic-encode-alternativnyj-char): Fixed. + (standard-display-cyrillic-translit): Remove redundant unicodes. + +2002-06-10 Dave Love <fx@gnu.org> + + * language/cyrillic.el ("Tajik", "Bulgarian", "Belarusian"): New + environments. + + * international/mule-conf.el (control-1): New charset. + (eight-bit-control, eight-bit-graphic): Redefined to use raw-bytes + space. + (korean-ksc5601): Redefine to use code-offset and unify-map. + +2002-06-07 Dave Love <fx@gnu.org> + + * international/mule-conf.el (tcvn-5712): New charset. + + * language/vietnamese.el (vietnamese-tcvn, tcvn): New coding + system. + ("Vietnamese"): Doc fix. + +2002-06-06 Dave Love <fx@gnu.org> + + * international/mule-conf.el (windows-936): New alias. + + * cus-start.el: Add scalable-fonts-allowed. + + * international/characters.el: Reinstate various CJK syntax and + category setup. Remove obsolete syntax setting in Greek section. + Optimize the char tables. + + * language/thai.el ("Thai"): Add cp874, iso-8859-11 coding + systems. + + * language/vietnamese.el ("Vietnamese"): Add windows-1258 coding + system. + + * language/greek.el ("Greek"): Add windows-1253, cp851, cp869 + coding systems. + + * language/romanian.el ("Romanian"): Add iso-latin-10 coding + system. + +2002-06-03 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el (printable-chars): Setup correctly. + +2002-06-02 Dave Love <fx@gnu.org> + + * cus-start.el: Add selection-coding-system. + + * language/hebrew.el ("Hebrew"): Add windows-1255, cp862 coding + systems. + + * language/china-util.el (post-read-decode-hz) + (pre-write-encode-hz): Moved from chinese.el. + (big5-to-flat-code, flat-code-to-big5, euc-to-flat-code) + (flat-code-to-euc, expand-euc-big5-alist, big5-to-cns): Deleted. + + * language/chinese.el (post-read-decode-hz) + (pre-write-encode-hz): Moved to china-util.el. + + * case-table.el (set-case-syntax-pair): Test again for equal byte + lengths of the pair. + + * international/characters.el: Add Vietnamese category to + equivalent unicodes. + +2002-05-31 Dave Love <fx@gnu.org> + + * international/mule-conf.el (chinese-sisheng, ipa) + (indian-is13194, tibetan, ethiopic): Add :unify-map. + + * international/mule-diag.el (describe-character-set): Account for + more than two dimensions of possibly different size. + (describe-current-coding-system): Add selection-coding-system. + + * international/mule-cmds.el (unify-8859-on-encoding-mode) + (unify-8859-on-decoding-mode): Moved from mule.el. + + * international/mule.el (unify-8859-on-encoding-mode) + (unify-8859-on-decoding-mode): Remove :init-value. + (charset-chars): Add optional dimension arg. + (unify-8859-on-encoding-mode, unify-8859-on-decoding-mode): Moved + to mule-cmds.el. + +2002-05-31 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el: Change registry for japanese-jisx0208 + to "JISX0208*" in the default fontset. + (font-encoding-alist): Add an entry for "JISX0208.1983" and + "ISO10646.indian-1". + +2002-05-30 Kenichi Handa <handa@etl.go.jp> + + * language/japanese.el (japanese-iso-7bit-1978-irv): Add + `designation' to :flags, `ascii' to :charset-list. + + * international/mule.el (define-charset): New args :min-code and + :max-code. + (coding-system-iso-2022-flags): Add use-roman, use-oldjis. + + * international/mule-conf.el (chinese-gbk): Change :code-offset to + #x160000. + (gb18030-2-byte, gb18030-4-byte-bmp, gb18030-4-byte-smp, + gb18030-4-byte-ext-1, gb18030-4-byte-ext-2, gb18030): New + charsets. + +2002-05-29 Dave Love <fx@gnu.org> + + * language/thai.el (iso-8859-11): New coding system. + + * international/mule-conf.el: Doc fixes. + (iso-8859-11): New. + +2002-05-28 Dave Love <fx@albion.dl.ac.uk> + + * cus-start.el (scalable-fonts-allowed): Add. + +2002-05-27 Dave Love <fx@gnu.org> + + * international/mule.el (unify-8859-on-encoding-mode) + (unify-8859-on-decoding-mode): Dummy versions. + + * international/ucs-tables.el: Removed. + + * Makefile.in (DONTCOMPILE): Add language/chinese.el, + language/japanese.el. + + * international/mule-conf.el: Doc fixes. + (cp936): New alias. + (cp720, cp858): New charsets. + + * mail/sendmail.el (mail-recover-1, mail-recover): Use utf-8-emacs + coding system, not emacs-mule. + + * files.el (revert-buffer, recover-file): Likewise. + + * desktop.el (desktop-save): Likewise. + +2002-05-26 Dave Love <fx@gnu.org> + + * international/mule.el (with-category-table): Use make-symbol. + (coding-system-list): Use coding-system-aliases. + (make-translation-table): Don't deal with generic characters. + + * international/mule-util.el: (coding-system-post-read-conversion) + (coding-system-pre-write-conversion) + (coding-system-translation-table-for-decode) + (coding-system-translation-table-for-encode): Get the right + properties. + (with-coding-priority): New macro. + (detect-coding-with-language-environment): Use it. + (coding-system-equal): Use coding-system-plist. + + * encoded-kb.el: (encoded-kbd-setup-keymap) <ccl>: + Use :valid property. + + * mule-cmds.el (encode-coding-char): Use + find-coding-systems-string. Don't use make-char. + (describe-language-environment): Use coding-system-aliases. + (prefer-coding-system): Doc fix. + + * mule-diag.el (describe-current-coding-system): Fix aliases + listing. + (print-iso-2022-flags): Deleted. + (print-designation): Partly re-written. + (describe-coding-system): Deal with iso-2022 designations, flags. + Fix shift_jis case. + (describe-char-after): Use characterp. Print explicit unicode. + Remove some obsolete code. + (print-coding-system-briefly): Fix printing aliases. + (print-coding-system): Use coding-system-aliases. + (mule-diag): Don't list coding categories. + + * mule-conf.el: Doc fixes. Remove redundant + :long-name properties. Re-order charset priorities. + (binary): New alias. + (iso-8859-16): Fix nickname. + (define-iso-single-byte-charset): Un-define after use. + +2002-05-26 Dave Love <fx@gnu.org> + + * international/mule.el (coding-system-iso-2022-flags): Revert + last change. + +2002-05-25 Dave Love <fx@gnu.org> + + * international/characters.el: Additional double width + specifications. + + * international/mule-diag.el (print-coding-system): Incomplete + updates. + (describe-character-set): List more properties. + (print-fontset): Fix case of vector font-spec. + (describe-current-coding-system): Fix iso-7, iso-7-else. + + * international/mule-conf.el (ibm866): Fix alias. + (iso-8859-16): Fix nickname. + + * international/mule.el (coding-system-iso-2022-flags): Add + use-roman, use-oldjis. + +2002-05-23 Dave Love <fx@gnu.org> + + * language/ind-util.el: Avoid decode-char. + (indian--puthash-char, indian--puthash-c, indian--puthash-cv): + Use characterp, not char-valid-p. + + * language/devan-util.el: Add coding tag, avoid decode-char. + + * international/titdic-cnv.el: Add coding tag. + (tit-process-header): Add coding tag to output. + + * language/thai.el (cp874, ibm874): New coding systems. + + * emacs-lisp/byte-opt.el <side-effect-and-error-free-fns>: Add + character-p. + + * language/european.el (cp852, ibm852, cp857, ibm857, cp860) + (ibm860, cp861, ibm861, cp863, cp865, ibm865, cp437, ibm437): New + coding systems. + <set-language-info-alist>: Avoid decode-char. + + * language/hebrew.el (cp862, ibm862): New coding systems. + + * language/greek.el (cp851, ibm851, cp869, ibm869): New coding + systems. + + * language/cyrillic.el (cp855, ibm855): New coding systems. + + * international/mule-conf.el: Avoid decode-char in top-level code + for self-inserting multibyte chars. + (cp437, cp737, cp775, cp851, cp852, cp855, cp857, cp855, cp857) + (cp860, cp861, cp862, cp863, cp864, cp865, cp869, cp874): New + charsets. + + * international/characters.el: Various simplifications and + additions. + +2002-05-22 Dave Love <fx@gnu.org> + + * international/mule-conf.el (code-pages): Provide, for + compatibility. + + * international/code-pages.el: Removed. + +2002-05-22 Kenichi Handa <handa@etl.go.jp> + + * Makefile.in: Cancel the 2002-05-17 change of mine. + + * international/fontset.el: Add setting for unicode font at the + end of the default fontset. + +2002-05-21 Dave Love <fx@gnu.org> + + * international/mule-conf.el (adobe-standard-encoding, symbol): + Adjust :code-space. + (ibm850): Add :ascii-compatible-p. + +2002-05-21 Kenichi Handa <handa@etl.go.jp> + + * international/mule-conf.el (vietnamese-viscii-lower) + (vietnamese-viscii-upper): Supply them :code-offset, then unify by + mapping table. + +2002-05-20 Dave Love <fx@gnu.org> + + * cus-start.el: Add charset-map-directory. + + * international/fontset.el (font-encoding-alist): Add + adobe-symbol. + + * format.el (format-alist): Remove ibm, mac, hp entries (available + natively). + + * language/romanian.el (iso-latin-10): Add :mime-charset. + ("Romanian"): Add doc. + + * international/mule-conf.el (iso-8859-10, symbol) + (adobe-standard-encoding, ibm850): New charsets. + (iso-8859-13): Fix IR number, final char. + (file-coding-system-alist): Add .xml. + + * language/european.el (iso-latin-6, iso-8859-10, latin-6) + (iso-latin-7, iso-8859-13, latin-7, hp-roman8, roman8) + (adobe-standard-encoding, cp850, ibm850): New coding systems. + ("Latin-6", "Latin-7"): New language environments. + +2002-05-19 Dave Love <fx@gnu.org> + + * Makefile.in (DONTCOMPILE): Remove ucs-tables, utf-8, + utf-8-subst; add vietnamese, cyrillic, czech. + + * language/romanian.el (iso-latin-10): New coding system. + + * international/mule-conf.el (emacs-mule): Set :charset-list, + consistent with coding-system-charset-list doc. + (iso-8859-16): New charset. + + * international/mule-diag.el (describe-coding-system): Avoid error + for iso-2022, emacs-mule. + +2002-05-17 Dave Love <fx@gnu.org> + + * international/codepage.el: Most of code removed or commented + out. + (codepage-setup): Re-written as trivial, obsolete function. + + * language/utf-8-lang.el ("UTF-8"): Use utf-8, not mule-utf-8. + Remove setup function. + + * language/english.el (ebcdic-us, ebcdic-uk): New coding systems. + + * Makefile.in (DONTCOMPILE): Add language/vietnamese.el, + language/cyrillic.el, language/czech.el. + + * language/vietnamese.el (windows-1258, cp1258): New coding + systems. + (font-ccl-encoder-alist): Remove viscii, vscii. + + * language/hebrew.el (windows-1255, cp1255): New coding systems. + + * language/european.el (windows-1254, cp1254, windows-1257) + (cp1257, next, iso-latin-7, iso-8859-13, latin-7): New coding + systems. + ("Latin-7", "Lithuanian", "Latvian"): Don't require code-pages. + + * language/greek.el (windows-1253, cp1253): New coding systems. + + * international/mule-conf.el (ebcdic-us, ebcdic-uk): Change map + file name. + (windows-1253, windows-1254, windows-1255, windows-1256) + (windows-1257, windows-1258, next): New charsets. + + * international/utf-8.el, international/utf-8-subst.el: Removed. + + * international/mule.el: Doc fixes. + (charset-list, generic-char-p, set-coding-priority): Make + obsolete. + (coding-system-get): Try to convert old-style symbol to keyword. + (define-charset): Purecopy strings in property list. + (define-coding-system): Purecopy docstring. + + * international/mule-diag.el (list-character-sets-2): Avoid + charset-bytes. + (list-iso-charset-chars, list-non-iso-charset-chars): Deleted. + (list-block-of-chars): Re-written. + (describe-character-set): Show more properties. + (describe-char-after): Correct codepoint display. + (print-coding-system): Use symbolic types. + +2002-05-17 Kenichi Handa <handa@etl.go.jp> + + * Makefile.in: Be sure also to run emacs with LANG=C. + +2002-05-16 Dave Love <fx@gnu.org> + + * international/mule-diag.el: Doc fixes. + (sort-charset-list, charset-multibyte-form-string): Removed. + (list-character-sets, list-character-sets-1) + (list-character-sets-2): Re-written. + (non-iso-charset-alist): Set to nil and made obsolete. + (decode-codepage-char): Re-written and made obsolete. + (read-charset): Don't use non-iso-charset-alist. + (describe-coding-system): Use keyword properties. + (describe-character-set): Re-written. + + * international/mule-conf.el (koi8-u, koi8-t, georgian-ps) + (windows-1250, windows-1251, windows-1252, cp1125, ebcdic-us) + (ebcdic-uk): New charsets. + + * language/cyrillic.el (koi8-u, koi8-t, windows-1251, cp1125): New + coding systems. + + * language/european.el (windows-1252): New coding system. + +2002-05-16 Kenichi Handa <handa@etl.go.jp> + + * Makefile.in: By sure to run emacs with LC_ALL=C. + + * international/encoded-kb.el (encoded-kbd-handle-8bit): Call + encoded-kbd-self-insert-iso2022-8bit with argument 1. + (encoded-kbd-self-insert-charset): New function. + (encoded-kbd-setup-keymap): Handle a coding-system of type + charset. + (encoded-kbd-mode): Likewise. + +2002-05-15 Dave Love <fx@gnu.org> + + * international/mule-cmds.el (set-locale-environment): Comment out + set-keyboard-coding-system stuff. + +2002-05-14 Kenichi Handa <handa@etl.go.jp> + + * international/mule.el (define-coding-system): Docstring + fixed (sjis->shift-jis). + + * international/mule-conf.el: Use decode-char instead of + make-char. + + * international/encoded-kb.el + (encoded-kbd-self-insert-iso2022-8bit): New arg ARG. Directly + call self-insert-command. This is a temporary workaround to + make it work with latin-1. + (encoded-kbd-mode): Change `sjis' to `shift-jis'. + + * international/characters.el: Setup char-width-table for CJK + characters. + +2002-05-15 Kenichi Handa <handa@etl.go.jp> + + * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block): + Fix the initial value to specify character range of + japanese-jisx0208, not unicode. + + * international/characters.el: Set syntax/category for + japanese-jisx0208. + +2002-05-14 Dave Love <fx@gnu.org> + + * mail/sendmail.el (sendmail-send-it): Use :mime-charset, not + mime-charset. + + * language/vietnamese.el, language/korean.el, language/japanese.el: + * language/hebrew.el, language/greek.el, language/chinese.el: + Fix :mime-charset properties. + + * language/cyrillic.el (cyrillic-iso-8bit, cyrillic-koi8) + (cyrillic-alternativnyj): Fix :mime-charset. + (cp878, cp866): New alias. + + * language/european.el: Fix mime-charset properties. + + * international/mule-cmds.el (sort-coding-systems) + (select-safe-coding-system, select-message-coding-system): Use + :mime-charset, not 'mime-charset. + + * international/mule-conf.el: Add various :mime-charset + properties. + +2002-05-13 Dave Love <fx@gnu.org> + + * international/encoded-kb.el (encoded-kbd-self-insert-ccl): Fix + getting decoder. + (encoded-kbd-mode): Fix code for coding system type and + designations. + + * international/mule-conf.el: Speling fixes. + +2002-05-13 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el (fontset-plain-name): Handle the case + that size, weight, slant are not specified in the fontset name. + +2002-05-10 Yong Lu <lyongu@asia-infonet.com> + + * language/greek.el (greek-iso-8bit): Fix typo. + +2002-05-10 Kenichi Handa <handa@etl.go.jp> + + * language/chinese.el (chinese-big5): Change :coding-type to + `charset'. + +2002-05-09 Kenichi Handa <handa@etl.go.jp> + + * international/characters.el: Change encoding to utf-8-emacs. + Remove apparent duplicate codes. + +2002-05-07 Kenichi Handa <handa@etl.go.jp> + + * international/fontset.el: Change the registry for + chinese-gb2312 and add the registry for chinese-gbk. + + * international/mule.el (charset-chars): Fix typo. + + * international/mule-conf.el (chinese-gbk): New charset. + + * international/titdic-cnv.el (titdic-convert): Read into a + unibyte buffer then make the buffer multibyte. + +2002-03-07 Kenichi Handa <handa@etl.go.jp> + + * international/mule-conf.el (utf-16-le): Use :bom attribute + instead of :signature. + (utf-16-be): Likewise. + +2002-03-05 Kenichi Handa <handa@etl.go.jp> + + * language/czech.el ("Czech"): Set `iso-8859-2' for + `nonascii-translation'. + + * language/romanian.el ("Romanian"): Likewise. + + * language/slovak.el ("Slovak"): Likewise. + + * international/characters.el: Optimize calls of + modify-category-entry. + +2002-03-01 Kenichi Handa <handa@etl.go.jp> + + * bindings.el: Don't bind multibyte characters to + self-insert-command here. It's done in mule-conf.el + + * case-table.el (set-case-syntax-offset): Variable deleted. + (set-case-syntax-1): Function deleted. Callers changed. + (set-case-syntax-delims): Don't check byte length of characters. + + * isearch.el (isearch-mode-map): Call set-char-table-range to bind + characters to isearch-printing-char. + + * loadup.el: Don't load "international/utf-8". Don't call + update-coding-systems-internal. Bind coding-system-for-write to + `utf-8' while writing fns-XXX.el. Call clear-charset-maps before + dumping. + + * version.el (emacs-version): Set to "22.0.0". + + * emacs-lisp/regexp-opt.el (regexp-opt-charset): Adjusted for the + change of map-char-table. + + * eshell/esh-mode.el: Adjusted for the change of map-char-table. + + * international/characters.el: Adjusted for the deletion of + generic characters. + + * international/code-pages.el (cp-make-translation-table, + cp-valid-codes, cp-fix-safe-chars): Deleted. Caller changed. + (cp-make-coding-system): Call define-coding-system. + + * international/fontset.el: Mostly re-written. + + * international/ja-dic-cnv.el (skkdic-get-kana-compact-codes): + Call encode-char instead of split-char. + + * international/ja-dic-utl.el (skkdic-jisx0208-hiragana-block): + Value changed. + (skkdic-lookup-key): Call encode-char instead of split-char. + + * international/titdic-cnv.el (titdic-convert): Bind + coding-system-for-write to 'iso-2022-7bit. Don't work on unibyte + buffer. + + * international/latin-1.el: Don't bind set-case-syntax-offset. + + * international/latin-2.el: Don't bind set-case-syntax-offset. + + * international/latin-3.el: Don't bind set-case-syntax-offset. + + * international/latin-4.el: Don't bind set-case-syntax-offset. + + * international/latin-5.el: Don't bind set-case-syntax-offset. + + * international/latin-8.el: Don't bind set-case-syntax-offset. + + * international/latin-9.el: Don't bind set-case-syntax-offset. + + * international/mule-cmds.el: Don't use coding category. Call + set-coding-system-priority instead of set-coding-priority. + (sort-coding-systems): Call coding-system-priority-list to get the + most preferred one. + (select-safe-coding-system): Likewise. + (reset-language-environment): Order of coding system priority + changed. Set primary charset to iso-8859-1. + (set-language-environment-coding-systems): Call + set-coding-system-priority instead of set-coding-priority. + (get-charset-property, put-charset-property): Moved to mule.el. + + * international/mule-conf.el: Fully Re-written. + + * international/mule-diag.el (print-designation): Arguments + changed. + (print-iso-2022-flags): New function. + (describe-coding-system): Adjusted for the new structure of coding + system. + (describe-current-coding-system): Likewise. + + * international/mule.el (char-valid-p): Make it an alias of + characterp. + (define-charset): Fully re-designed. + (charset-quoted-standard-p): Deleted. + (charsetp): Moved to charset.c. + (charset-info, charset-id, charset-bytes, charset-width, + charset-directioin, charset-iso-graphic-plane, + charset-reverse-charset): Deleted. + (charset-dimension, charset-chars, charset-iso-final-char, + charset-description, charset-short-name, charset-long-name): Call + charset-plist instead of charset-info. + (charset-plist, set-charset-plist): Moved to charset.c. + (get-charset-property, put-charset-property): Moved from + mule-cmds.el. Call charset-plist and set-charset-plist. + (make-char): Deleted. + (generic-char-p): Make it always return nil. + (decode-char, encode-char): Moved to charset.c. + (coding-spec-XXX-idx): Variables deleted. + (coding-system-iso-2022-flags): New variable. + (define-coding-system): New function. + (transform-make-coding-system-args, make-coding-system): Delete. + (set-coding-priority): Make it obsolete. + (after-insert-file-set-buffer-file-coding-system): Adjust for + the new coding system structure. + (find-new-buffer-file-coding-system): Likewise. + + * language/chinese.el, language/cyrillic.el, language/european.el, + language/greek.el, language/hebrew.el, language/indian.el, + language/japanese.el, language/korean.el, language/lao.el, + language/thai.el, language/tibetan.el, language/vietnamese.el: + Call define-coding-system instead of make-coding-system. All CCL + program deleted. + + * textmodes/sgml-mode.el (sgml-mode-map): Use encode-char instead + of make-char. + (sgml-char-names-table): Iteration limit fixed. + + * term/mac-win.el: Deleted unnecessary calls of set-fontset-font. + (ccl-encode-mac-roman-font): Delete. + + * Makefile.in (DONTCOMPILE): Add latin1-disp.el, ucs-tables.el, + utf-8.el, and utf-8-subst.el as they can't be bytecompiled + currently. This is just a temporary workaround. + +;; Local Variables: +;; coding: iso-2022-7bit +;; End: + + Copyright (C) 2002 Free Software Foundation, Inc. + Copying and distribution of this file, with or without modification, + are permitted provided the copyright notice and this notice are preserved. + +;;; arch-tag: d0d613db-0a9b-459c-a1c7-8a1722c771c1 diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 490bde95d35..69efa57a2fb 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in @@ -46,7 +46,9 @@ AUTOGENEL = loaddefs.el \ finder-inf.el \ subdirs.el \ eshell/esh-groups.el \ - mh-e/mh-loaddefs.el + mh-e/mh-loaddefs.el \ + international/charprop.el \ + international/uni-*.el # Files to compile before others during a bootstrap. This is done to # speed up the bootstrap process. The CC files are compiled first @@ -63,7 +65,7 @@ COMPILE_FIRST = \ # The actual Emacs command run in the targets below. -emacs = EMACSLOADPATH=$(lisp) $(EMACS) $(EMACSOPT) +emacs = EMACSLOADPATH=$(lisp) LC_ALL=C $(EMACS) $(EMACSOPT) # Common command to find subdirectories @@ -90,12 +92,12 @@ $(lisp)/cus-load.el: custom-deps: $(lisp)/subdirs.el $(lisp)/loaddefs.el $(lisp)/cus-load.el doit wd=$(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(EMACS) $(EMACSOPT) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins + LC_ALL=C $(EMACS) $(EMACSOPT) -l cus-dep --eval '(setq generated-custom-dependencies-file "$(lisp)/cus-load.el")' -f custom-make-dependencies $$wins finder-data: $(lisp)/subdirs.el $(lisp)/loaddefs.el doit wd=$(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(EMACS) $(EMACSOPT) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins + LC_ALL=C $(EMACS) $(EMACSOPT) -l finder --eval '(setq generated-finder-keywords-file "$(lisp)/finder-inf.el")' -f finder-compile-keywords-make-dist $$wins $(lisp)/loaddefs.el: echo ";;; loaddefs.el --- automatically extracted autoloads" >> $@ @@ -110,7 +112,7 @@ $(lisp)/loaddefs.el: autoloads: $(lisp)/subdirs.el $(lisp)/loaddefs.el doit wd=$(lisp); $(setwins_almost); \ echo Directories: $$wins; \ - $(EMACS) $(EMACSOPT) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins + LC_ALL=C $(EMACS) $(EMACSOPT) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins $(lisp)/subdirs.el: $(MAKE) $(MFLAGS) update-subdirs @@ -210,7 +212,7 @@ compile-after-backup: backup-compiled-files compile-always # new ones. recompile: doit mh-autoloads $(lisp)/progmodes/cc-mode.elc - $(EMACS) $(EMACSOPT) --eval "(batch-byte-recompile-directory 0)" $(lisp) + LC_ALL=C $(EMACS) $(EMACSOPT) --eval "(batch-byte-recompile-directory 0)" $(lisp) # CC Mode uses a compile time macro system which causes a compile time # dependency in cc-mode.elc on the macros in cc-langs.el and the diff --git a/lisp/arc-mode.el b/lisp/arc-mode.el index 39fd10c6b6f..20757586aea 100644 --- a/lisp/arc-mode.el +++ b/lisp/arc-mode.el @@ -452,6 +452,10 @@ Archive and member name will be added." (make-variable-buffer-local 'archive-subfile-mode) (put 'archive-subfile-mode 'permanent-local t) +(defvar archive-file-name-coding-system nil) +(make-variable-buffer-local 'archive-file-name-coding-system) +(put 'archive-file-name-coding-system 'permanent-local t) + (defvar archive-files nil "Vector of file descriptors. Each descriptor is a vector of the form @@ -461,6 +465,18 @@ Each descriptor is a vector of the form ;; ------------------------------------------------------------------------- ;; Section: Support functions. +(eval-when-compile + (defsubst byte-after (pos) + "Like char-after but an eight-bit char is converted to unibyte." + (multibyte-char-to-unibyte (char-after pos))) + (defsubst insert-unibyte (&rest args) + "Like insert but don't make unibyte string and eight-bit char multibyte." + (dolist (elt args) + (if (integerp elt) + (insert (if (< elt 128) elt (decode-char 'eight-bit elt))) + (insert (string-to-multibyte elt))))) + ) + (defsubst archive-name (suffix) (intern (concat "archive-" (symbol-name archive-subtype) "-" suffix))) @@ -473,6 +489,7 @@ FLOAT, if non-nil, means generate and return a float instead of an integer (if (stringp str) (setq len (length str)) (setq str (buffer-substring str (+ str len)))) + (setq str (string-as-unibyte str)) (let ((result 0) (i 0)) (while (< i len) @@ -677,6 +694,12 @@ archive. (make-local-variable 'archive-file-list-start) (make-local-variable 'archive-file-list-end) (make-local-variable 'archive-file-name-indent) + (setq archive-file-name-coding-system + (or file-name-coding-system + default-file-name-coding-system + locale-coding-system)) + (if default-enable-multibyte-characters + (set-buffer-multibyte 'to)) (archive-summarize nil) (setq buffer-read-only t)))) @@ -714,7 +737,6 @@ is visible (and the real data of the buffer is hidden). Optional argument SHUT-UP, if non-nil, means don't print messages when parsing the archive." (widen) - (set-buffer-multibyte nil) (let ((inhibit-read-only t)) (or shut-up (message "Parsing archive file...")) @@ -922,7 +944,8 @@ using `make-temp-file', and the generated name is returned." (string-match file-name-invalid-regexp ename))) (arcfilename (expand-file-name (concat arcname ":" iname))) (buffer (get-buffer bufname)) - (just-created nil)) + (just-created nil) + (file-name-coding archive-file-name-coding-system)) (if (and buffer (string= (buffer-file-name buffer) arcfilename)) nil @@ -940,13 +963,14 @@ using `make-temp-file', and the generated name is returned." (setq archive-superior-buffer archive-buffer) (add-hook 'write-file-functions 'archive-write-file-member nil t) (setq archive-subfile-mode descr) + (setq archive-file-name-coding-system file-name-coding) (if (and (null (let (;; We may have to encode file name arguement for ;; external programs. (coding-system-for-write (and enable-multibyte-characters - file-name-coding-system)) + archive-file-name-coding-system)) ;; We read an archive member by no-conversion at ;; first, then decode appropriately by calling ;; archive-set-buffer-as-visiting-file later. @@ -1123,15 +1147,16 @@ using `make-temp-file', and the generated name is returned." (if (aref descr 3) ;; Set the file modes, but make sure we can read it. (set-file-modes tmpfile (logior ?\400 (aref descr 3)))) - (if enable-multibyte-characters - (setq ename - (encode-coding-string ename file-name-coding-system))) - (let ((exitcode (apply 'call-process - (car command) - nil - nil - nil - (append (cdr command) (list archive ename))))) + (setq ename + (encode-coding-string ename archive-file-name-coding-system)) + (let* ((coding-system-for-write 'no-conversion) + (exitcode (apply 'call-process + (car command) + nil + nil + nil + (append (cdr command) + (list archive ename))))) (if (equal exitcode 0) nil (error "Updating was unsuccessful (%S)" exitcode)))) @@ -1304,9 +1329,8 @@ as a relative change like \"g+rw\" as for chmod(2)." (if (fboundp func) (progn (funcall func - (if enable-multibyte-characters - (encode-coding-string newname file-name-coding-system) - newname) + (encode-coding-string newname + archive-file-name-coding-system) descr) (archive-resummarize)) (error "Renaming is not supported for this archive type")))) @@ -1317,7 +1341,6 @@ as a relative change like \"g+rw\" as for chmod(2)." (setq archive-files nil) (let ((revert-buffer-function nil) (coding-system-for-read 'no-conversion)) - (set-buffer-multibyte nil) (revert-buffer t t)) (archive-mode) (goto-char archive-file-list-start) @@ -1339,11 +1362,12 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." files visual) (while (and (< (+ p 29) (point-max)) - (= (char-after p) ?\C-z) - (> (char-after (1+ p)) 0)) + (= (byte-after p) ?\C-z) + (> (byte-after (1+ p)) 0)) (let* ((namefld (buffer-substring (+ p 2) (+ p 2 13))) (fnlen (or (string-match "\0" namefld) 13)) - (efnname (substring namefld 0 fnlen)) + (efnname (decode-coding-string (substring namefld 0 fnlen) + archive-file-name-coding-system)) ;; Convert to float to avoid overflow for very large files. (csize (archive-l-e (+ p 15) 4 'float)) (moddate (archive-l-e (+ p 19) 2)) @@ -1395,10 +1419,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (save-restriction (save-excursion (widen) - (set-buffer-multibyte nil) (goto-char (+ archive-proper-file-start (aref descr 4) 2)) (delete-char 13) - (insert name))))) + (insert-unibyte name))))) ;; ------------------------------------------------------------------------- ;; Section: Lzh Archives @@ -1410,14 +1433,14 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." visual) (while (progn (goto-char p) ;beginning of a base header. (looking-at "\\(.\\|\n\\)\\(.\\|\n\\)-l[hz][0-9ds]-")) - (let* ((hsize (char-after p)) ;size of the base header (level 0 and 1) + (let* ((hsize (byte-after p)) ;size of the base header (level 0 and 1) ;; Convert to float to avoid overflow for very large files. (csize (archive-l-e (+ p 7) 4 'float)) ;size of a compressed file to follow (level 0 and 2), ;size of extended headers + the compressed file to follow (level 1). (ucsize (archive-l-e (+ p 11) 4 'float)) ;size of an uncompressed file. (time1 (archive-l-e (+ p 15) 2)) ;date/time (MSDOS format in level 0, 1 headers (time2 (archive-l-e (+ p 17) 2)) ;and UNIX format in level 2 header.) - (hdrlvl (char-after (+ p 20))) ;header level + (hdrlvl (byte-after (+ p 20))) ;header level thsize ;total header size (base + extensions) fnlen efnname osid fiddle ifnname width p2 neh ;beginning of next extension header (level 1 and 2) @@ -1425,11 +1448,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." gname uname modtime moddate) (if (= hdrlvl 3) (error "can't handle lzh level 3 header type")) (when (or (= hdrlvl 0) (= hdrlvl 1)) - (setq fnlen (char-after (+ p 21))) ;filename length + (setq fnlen (byte-after (+ p 21))) ;filename length (setq efnname (let ((str (buffer-substring (+ p 22) (+ p 22 fnlen)))) ;filename from offset 22 - (if file-name-coding-system - (decode-coding-string str file-name-coding-system) - (string-as-multibyte str)))) + (decode-coding-string + str archive-file-name-coding-system))) (setq p2 (+ p 22 fnlen))) ; (if (= hdrlvl 1) (setq neh (+ p2 3)) ;specific to level 1 header @@ -1437,19 +1459,19 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (setq neh (+ p 24)))) ;specific to level 2 header (if neh ;if level 1 or 2 we expect extension headers to follow (let* ((ehsize (archive-l-e neh 2)) ;size of the extension header - (etype (char-after (+ neh 2)))) ;extension type + (etype (byte-after (+ neh 2)))) ;extension type (while (not (= ehsize 0)) (cond ((= etype 1) ;file name (let ((i (+ neh 3))) (while (< i (+ neh ehsize)) - (setq efnname (concat efnname (char-to-string (char-after i)))) + (setq efnname (concat efnname (char-to-string (byte-after i)))) (setq i (1+ i))))) ((= etype 2) ;directory name (let ((i (+ neh 3))) (while (< i (+ neh ehsize)) (setq dir (concat dir - (if (= (char-after i) + (if (= (byte-after i) 255) "/" (char-to-string @@ -1473,7 +1495,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." ) (setq neh (+ neh ehsize)) (setq ehsize (archive-l-e neh 2)) - (setq etype (char-after (+ neh 2)))) + (setq etype (byte-after (+ neh 2)))) ;;get total header size for level 1 and 2 headers (setq thsize (- neh p)))) (if (= hdrlvl 0) ;total header size @@ -1534,7 +1556,6 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (setq p (+ p thsize 2 (round csize))))) )) (goto-char (point-min)) - (set-buffer-multibyte default-enable-multibyte-characters) (let ((dash (concat (if archive-alternate-display "- -------- ----- ----- " "- ---------- -------- ----------- -------- ") @@ -1565,7 +1586,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (let ((sum 0)) (while (> count 0) (setq count (1- count) - sum (+ sum (char-after p)) + sum (+ sum (byte-after p)) p (1+ p))) (logand sum 255))) @@ -1573,10 +1594,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (save-restriction (save-excursion (widen) - (set-buffer-multibyte nil) (let* ((p (+ archive-proper-file-start (aref descr 4))) - (oldhsize (char-after p)) - (oldfnlen (char-after (+ p 21))) + (oldhsize (byte-after p)) + (oldfnlen (byte-after (+ p 21))) (newfnlen (length newname)) (newhsize (+ oldhsize newfnlen (- oldfnlen))) (inhibit-read-only t)) @@ -1584,22 +1604,21 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (error "The file name is too long")) (goto-char (+ p 21)) (delete-char (1+ oldfnlen)) - (insert newfnlen newname) + (insert-unibyte newfnlen newname) (goto-char p) (delete-char 2) - (insert newhsize (archive-lzh-resum p newhsize)))))) + (insert-unibyte newhsize (archive-lzh-resum p newhsize)))))) (defun archive-lzh-ogm (newval files errtxt ofs) (save-excursion (save-restriction (widen) - (set-buffer-multibyte nil) (dolist (fil files) (let* ((p (+ archive-proper-file-start (aref fil 4))) - (hsize (char-after p)) - (fnlen (char-after (+ p 21))) + (hsize (byte-after p)) + (fnlen (byte-after (+ p 21))) (p2 (+ p 22 fnlen)) - (creator (if (>= (- hsize fnlen) 24) (char-after (+ p2 2)) 0)) + (creator (if (>= (- hsize fnlen) 24) (byte-after (+ p2 2)) 0)) (inhibit-read-only t)) (if (= creator ?U) (progn @@ -1607,10 +1626,10 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (setq newval (funcall newval (archive-l-e (+ p2 ofs) 2)))) (goto-char (+ p2 ofs)) (delete-char 2) - (insert (logand newval 255) (lsh newval -8)) + (insert-unibyte (logand newval 255) (lsh newval -8)) (goto-char (1+ p)) (delete-char 1) - (insert (archive-lzh-resum (1+ p) hsize))) + (insert-unibyte (archive-lzh-resum (1+ p) hsize))) (message "Member %s does not have %s field" (aref fil 1) errtxt))))))) @@ -1665,7 +1684,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." files visual) (while (string= "PK\001\002" (buffer-substring p (+ p 4))) - (let* ((creator (char-after (+ p 5))) + (let* ((creator (byte-after (+ p 5))) ;; (method (archive-l-e (+ p 10) 2)) (modtime (archive-l-e (+ p 12) 2)) (moddate (archive-l-e (+ p 14) 2)) @@ -1676,9 +1695,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (fclen (archive-l-e (+ p 32) 2)) (lheader (archive-l-e (+ p 42) 4)) (efnname (let ((str (buffer-substring (+ p 46) (+ p 46 fnlen)))) - (if file-name-coding-system - (decode-coding-string str file-name-coding-system) - (string-as-multibyte str)))) + (decode-coding-string + str archive-file-name-coding-system))) (isdir (and (= ucsize 0) (string= (file-name-nondirectory efnname) ""))) (mode (cond ((memq creator '(2 3)) ; Unix + VMS @@ -1687,7 +1705,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (logior ?\444 (if isdir (logior 16384 ?\111) 0) (if (zerop - (logand 1 (char-after (+ p 38)))) + (logand 1 (byte-after (+ p 38)))) ?\222 0))) (t nil))) (modestr (if mode (archive-int-to-mode mode) "??????????")) @@ -1744,21 +1762,20 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (save-restriction (save-excursion (widen) - (set-buffer-multibyte nil) (dolist (fil files) (let* ((p (+ archive-proper-file-start (car (aref fil 4)))) - (creator (char-after (+ p 5))) + (creator (byte-after (+ p 5))) (oldmode (aref fil 3)) (newval (archive-calc-mode oldmode newmode t)) (inhibit-read-only t)) (cond ((memq creator '(2 3)) ; Unix + VMS (goto-char (+ p 40)) (delete-char 2) - (insert (logand newval 255) (lsh newval -8))) + (insert-unibyte (logand newval 255) (lsh newval -8))) ((memq creator '(0 5 6 7 10 11 15)) ; Dos etc. (goto-char (+ p 38)) - (insert (logior (logand (char-after (point)) 254) - (logand (logxor 1 (lsh newval -7)) 1))) + (insert-unibyte (logior (logand (byte-after (point)) 254) + (logand (logxor 1 (lsh newval -7)) 1))) (delete-char 1)) (t (message "Don't know how to change mode for this member")))) )))) @@ -1779,9 +1796,9 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." ;; Convert to float to avoid overflow for very large files. (ucsize (archive-l-e (+ p 20) 4 'float)) (namefld (buffer-substring (+ p 38) (+ p 38 13))) - (dirtype (char-after (+ p 4))) - (lfnlen (if (= dirtype 2) (char-after (+ p 56)) 0)) - (ldirlen (if (= dirtype 2) (char-after (+ p 57)) 0)) + (dirtype (byte-after (+ p 4))) + (lfnlen (if (= dirtype 2) (byte-after (+ p 56)) 0)) + (ldirlen (if (= dirtype 2) (byte-after (+ p 57)) 0)) (fnlen (or (string-match "\0" namefld) 13)) (efnname (let ((str (concat @@ -1795,9 +1812,8 @@ This doesn't recover lost files, it just undoes changes in the buffer itself." (buffer-substring (+ p 58) (+ p 58 lfnlen -1)) (substring namefld 0 fnlen))))) - (if file-name-coding-system - (decode-coding-string str file-name-coding-system) - (string-as-multibyte str)))) + (decode-coding-string + str archive-file-name-coding-system))) (fiddle (and (= lfnlen 0) (string= efnname (upcase efnname)))) (ifnname (if fiddle (downcase efnname) efnname)) (width (string-width ifnname)) diff --git a/lisp/bindings.el b/lisp/bindings.el index c26cbb7269b..669652564d5 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -614,12 +614,6 @@ language you are using." ;; that we will not need to keep permanently. (garbage-collect) -;; Make all multibyte characters self-insert. -(let ((l (generic-character-list)) - (table (nth 1 global-map))) - (while l - (aset table (car l) 'self-insert-command) - (setq l (cdr l)))) (setq help-event-list '(help f1)) diff --git a/lisp/case-table.el b/lisp/case-table.el index 33768bb2277..10b6af5d567 100644 --- a/lisp/case-table.el +++ b/lisp/case-table.el @@ -35,27 +35,25 @@ ;;; Code: -(defvar set-case-syntax-offset 0) - -(defvar set-case-syntax-set-multibyte nil) - (defun describe-buffer-case-table () "Describe the case table of the current buffer." (interactive) (let ((description (make-char-table 'case-table))) (map-char-table (function (lambda (key value) - (aset - description key - (cond ((not (natnump value)) - "case-invariant") - ((/= key (downcase key)) - (concat "uppercase, matches " - (char-to-string (downcase key)))) - ((/= key (upcase key)) - (concat "lowercase, matches " - (char-to-string (upcase key)))) - (t "case-invariant"))))) + (if (consp key) + (set-char-table-range description key "case-invariant") + (aset + description key + (cond ((not (natnump value)) + "case-invariant") + ((/= key (downcase key)) + (concat "uppercase, matches " + (char-to-string (downcase key)))) + ((/= key (upcase key)) + (concat "lowercase, matches " + (char-to-string (upcase key)))) + (t "case-invariant")))))) (current-case-table)) (save-excursion (with-output-to-temp-buffer "*Help*" @@ -87,20 +85,12 @@ (set-char-table-extra-slot copy 2 nil) copy)) -(defsubst set-case-syntax-1 (char) - "Offset CHAR by `set-case-syntax-offset' if CHAR is a non-ASCII 8-bit char." - (if (and (>= char 128) (< char 256)) - (+ char set-case-syntax-offset) - char)) - (defun set-case-syntax-delims (l r table) "Make characters L and R a matching pair of non-case-converting delimiters. This sets the entries for L and R in TABLE, which is a string that will be used as the downcase part of a case table. It also modifies `standard-syntax-table' to indicate left and right delimiters." - (setq l (set-case-syntax-1 l)) - (setq r (set-case-syntax-1 r)) (aset table l l) (aset table r r) (let ((up (get-upcase-table table))) @@ -121,8 +111,6 @@ This sets the entries for characters UC and LC in TABLE, which is a string that will be used as the downcase part of a case table. It also modifies `standard-syntax-table' to give them the syntax of word constituents." - (setq uc (set-case-syntax-1 uc)) - (setq lc (set-case-syntax-1 lc)) (aset table uc lc) (aset table lc lc) (let ((up (get-upcase-table table))) @@ -139,8 +127,6 @@ word constituents." "Make character UC an upcase of character LC. It also modifies `standard-syntax-table' to give them the syntax of word constituents." - (setq uc (set-case-syntax-1 uc)) - (setq lc (set-case-syntax-1 lc)) (aset table lc lc) (let ((up (get-upcase-table table))) (aset up uc uc) @@ -156,8 +142,6 @@ word constituents." "Make character LC a downcase of character UC. It also modifies `standard-syntax-table' to give them the syntax of word constituents." - (setq uc (set-case-syntax-1 uc)) - (setq lc (set-case-syntax-1 lc)) (aset table uc lc) (aset table lc lc) (let ((up (get-upcase-table table))) @@ -175,7 +159,6 @@ This sets the entry for character C in TABLE, which is a string that will be used as the downcase part of a case table. It also modifies `standard-syntax-table'. SYNTAX should be \" \", \"w\", \".\" or \"_\"." - (setq c (set-case-syntax-1 c)) (aset table c c) (let ((up (get-upcase-table table))) (aset up c c)) diff --git a/lisp/composite.el b/lisp/composite.el index a2457ab7514..278b7e3bf62 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -27,7 +27,6 @@ ;;; Code: -;;;###autoload (defconst reference-point-alist '((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) @@ -42,8 +41,7 @@ (mid-left . 3) (mid-center . 10) (mid-right . 5)) "Alist of symbols vs integer codes of glyph reference points. A glyph reference point symbol is to be used to specify a composition -rule in COMPONENTS argument to such functions as `compose-region' and -`make-composition'. +rule in COMPONENTS argument to such functions as `compose-region'. Meanings of glyph reference point codes are as follows: @@ -76,7 +74,12 @@ follows (the point `*' corresponds to both reference points): | | new | | |glyph| +----+-----+ <--- new descent -") + +A composition rule may have the form \(GLOBAL-REF-POINT +NEW-REF-POINT XOFF YOFF), where XOFF and YOFF specifies how much +to shift NEW-REF-POINT from GLOBAL-REF-POINT. In this case, XOFF +and YOFF are integers in the range -100..100 representing the +shifting percentage against the font size.") ;;;###autoload @@ -91,17 +94,29 @@ RULE is a cons of global and new reference point symbols (if (and (integerp rule) (< rule 144)) ;; Already encoded. rule - (or (consp rule) - (error "Invalid composition rule: %S" rule)) - (let ((gref (car rule)) - (nref (cdr rule))) - (or (integerp gref) - (setq gref (cdr (assq gref reference-point-alist)))) - (or (integerp nref) - (setq nref (cdr (assq nref reference-point-alist)))) - (or (and (>= gref 0) (< gref 12) (>= nref 0) (< nref 12)) - (error "Invalid composition rule: %S" rule)) - (+ (* gref 12) nref)))) + (if (consp rule) + (let ((gref (car rule)) + (nref (cdr rule)) + xoff yoff) + (if (consp nref) ; (GREF NREF XOFF YOFF) + (progn + (setq xoff (nth 1 nref) + yoff (nth 2 nref) + nref (car nref)) + (or (and (>= xoff -100) (<= xoff 100) + (>= yoff -100) (<= yoff 100)) + (error "Invalid compostion rule: %s" rule)) + (setq xoff (+ xoff 128) yoff (+ yoff 128))) + ;; (GREF . NREF) + (setq xoff 0 yoff 0)) + (or (integerp gref) + (setq gref (cdr (assq gref reference-point-alist)))) + (or (integerp nref) + (setq nref (cdr (assq nref reference-point-alist)))) + (or (and (>= gref 0) (< gref 12) (>= nref 0) (< nref 12)) + (error "Invalid composition rule: %S" rule)) + (logior (lsh xoff 16) (lsh yoff 8) (+ (* gref 12) nref))) + (error "Invalid composition rule: %S" rule)))) ;; Decode encoded composition rule RULE-CODE. The value is a cons of ;; global and new reference point symbols. @@ -109,13 +124,20 @@ RULE is a cons of global and new reference point symbols ;; defined in composite.h. (defun decode-composition-rule (rule-code) - (or (and (natnump rule-code) (< rule-code 144)) + (or (and (natnump rule-code) (< rule-code #x1000000)) (error "Invalid encoded composition rule: %S" rule-code)) - (let ((gref (car (rassq (/ rule-code 12) reference-point-alist))) - (nref (car (rassq (% rule-code 12) reference-point-alist)))) + (let ((xoff (lsh rule-code -16)) + (yoff (logand (lsh rule-code -8) #xFF)) + gref nref) + (setq rule-code (logand rule-code #xFF) + gref (car (rassq (/ rule-code 12) reference-point-alist)) + nref (car (rassq (% rule-code 12) reference-point-alist))) (or (and gref (symbolp gref) nref (symbolp nref)) (error "Invalid composition rule code: %S" rule-code)) - (cons gref nref))) + (if (and (= xoff 0) (= yoff 0)) + (cons gref nref) + (setq xoff (- xoff 128) yoff (- yoff 128)) + (list gref xoff yoff nref)))) ;; Encode composition rules in composition components COMPONENTS. The ;; value is a copy of COMPONENTS, where composition rules (cons of @@ -159,7 +181,6 @@ RULE is a cons of global and new reference point symbols (setq i (+ i 2)))) components) -;;;###autoload (defun compose-region (start end &optional components modification-func) "Compose characters in the current region. @@ -171,9 +192,8 @@ When called from a program, expects these four arguments. First two arguments START and END are positions (integers or markers) specifying the region. -Optional 3rd argument COMPONENTS, if non-nil, is a character or a -sequence (vector, list, or string) of integers. In this case, -characters are composed not relatively but according to COMPONENTS. +Optional 3rd argument COMPONENTS, if non-nil, is a character, a string +or a vector or list of integers and rules. If it is a character, it is an alternate character to display instead of the text in the region. @@ -200,7 +220,6 @@ text in the composition." (compose-region-internal start end components modification-func) (restore-buffer-modified-p modified-p))) -;;;###autoload (defun decompose-region (start end) "Decompose text in the current region. @@ -212,11 +231,10 @@ positions (integers or markers) specifying the region." (remove-text-properties start end '(composition nil)) (restore-buffer-modified-p modified-p))) -;;;###autoload (defun compose-string (string &optional start end components modification-func) "Compose characters in string STRING. -The return value is STRING where `composition' property is put on all +The return value is STRING with the `composition' property put on all the characters in it. Optional 2nd and 3rd arguments START and END specify the range of @@ -237,13 +255,11 @@ text in the composition." (compose-string-internal string start end components modification-func) string) -;;;###autoload (defun decompose-string (string) "Return STRING where `composition' property is removed." (remove-text-properties 0 (length string) '(composition nil) string) string) -;;;###autoload (defun compose-chars (&rest args) "Return a string from arguments in which all characters are composed. For relative composition, arguments are characters. @@ -267,7 +283,6 @@ A composition rule is a cons of glyph reference points of the form (setq str (concat args))) (compose-string-internal str 0 (length str) components))) -;;;###autoload (defun find-composition (pos &optional limit string detail-p) "Return information about a composition at or nearest to buffer position POS. @@ -307,7 +322,6 @@ WIDTH is a number of columns the composition occupies on the screen." result)) -;;;###autoload (defun compose-chars-after (pos &optional limit object) "Compose characters in current buffer after position POS. @@ -328,7 +342,7 @@ is: Optional 2nd arg LIMIT, if non-nil, limits the matching of text. Optional 3rd arg OBJECT, if non-nil, is a string that contains the -text to compose. In that case, POS and LIMIT index to the string. +text to compose. In that case, POS and LIMIT index into the string. This function is the default value of `compose-chars-after-function'." (let ((tail (aref composition-function-table (char-after pos))) @@ -348,7 +362,6 @@ This function is the default value of `compose-chars-after-function'." (setq func nil tail (cdr tail))))))) result)) -;;;###autoload (defun compose-last-chars (args) "Compose last characters. The argument is a parameterized event of the form @@ -369,13 +382,275 @@ after a sequence of character events." (compose-region (- (point) chars) (point) (nth 2 args)) (compose-chars-after (- (point) chars) (point)))))) -;;;###autoload(global-set-key [compose-last-chars] 'compose-last-chars) +(global-set-key [compose-last-chars] 'compose-last-chars) + + +;;; Automatic character composition. + +(defvar composition-function-table + (make-char-table nil) + "Char table of functions for automatic character composition. +For each character that has to be composed automatically with +preceding and/or following characters, this char table contains +a function to call to compose that character. + +Each function is called with two arguments, POS and STRING. + +If STRING is nil, POS is a position in the current buffer, and the +function has to compose a character at POS with surrounding characters +in the current buffer. + +Otherwise, STRING is a string, and POS is an index into the string. In +this case, the function has to compose a character at POS with +surrounding characters in the string. + +See also the command `toggle-auto-composition'.") + +;; Copied from font-lock.el. +(eval-when-compile + ;; Borrowed from lazy-lock.el. + ;; We use this to preserve or protect things when modifying text properties. + (defmacro save-buffer-state (varlist &rest body) + "Bind variables according to VARLIST and eval BODY restoring buffer state." + `(let* ,(append varlist + '((modified (buffer-modified-p)) (buffer-undo-list t) + (inhibit-read-only t) (inhibit-point-motion-hooks t) + (inhibit-modification-hooks t) + deactivate-mark buffer-file-name buffer-file-truename)) + ,@body + (unless modified + (restore-buffer-modified-p nil)))) + ;; Fixme: This makes bootstrapping fail with this error. + ;; Symbol's function definition is void: eval-defun + ;;(def-edebug-spec save-buffer-state let) + ) + +(put 'save-buffer-state 'lisp-indent-function 1) + +;; This function is called when a composition created by +;; terminal-composition-function is partially modified. +(defun terminal-composition-modification (from to) + (terminal-composition-function from)) + +(defun terminal-composition-function (pos &optional string) + "General composition function used on terminal. +Non-spacing characters are composed with the preceding spacing +character. All non-spacing characters has this function in +`terminal-composition-function-table'." + (let ((from (1- pos)) + ch) + (if string + (length string) + (setq pos (1+ pos)) + (while (and (< pos (point-max)) + (= (aref char-width-table (char-after pos)) 0)) + (setq pos (1+ pos))) + (if (and (>= from (point-min)) + (= (aref (symbol-name (get-char-code-property + (char-after from) + 'general-category)) 0) ?L)) + (compose-region from pos (buffer-substring from pos)) + (compose-region (1+ from) pos + (concat " " (buffer-substring (1+ from) pos)) + 'terminal-composition-modification)) + pos))) + +(defvar terminal-composition-function-table + (let ((table (make-char-table nil))) + (map-char-table + #'(lambda (key val) + (if (= val 0) (set-char-table-range table key + 'terminal-composition-function))) + char-width-table) + table) + "Char table of functions for automatic character composition on terminal. +This is like `composition-function-table' but used when Emacs is running +on a terminal.") + +(defvar auto-compose-current-font nil + "The current font-object used for characters being composed automatically.") + +(defun auto-compose-chars (pos string font-object) + "Compose characters after the buffer position POS. +If STRING is non-nil, it is a string, and POS is an index into the string. +In that case, compose characters in the string. +FONT-OBJECT is a font selected for the character at POS. + +This function is the default value of `auto-composition-function' (which see)." + (save-buffer-state nil + (save-excursion + (save-match-data + (condition-case nil + (let ((start pos) + (limit (if string (length string) (point-max))) + (auto-compose-current-font font-object) + (table (if (display-graphic-p) + composition-function-table + terminal-composition-function-table)) + ch func newpos) + (setq limit + (or (text-property-any pos limit 'auto-composed t string) + limit) + pos + (catch 'tag + (if string + (while (< pos limit) + (setq ch (aref string pos)) + (if (= ch ?\n) + (throw 'tag (1+ pos))) + (setq func (aref table ch)) + (if (and (functionp func) + (setq newpos (funcall func pos string)) + (> newpos pos)) + (setq pos newpos) + (setq pos (1+ pos)))) + (while (< pos limit) + (setq ch (char-after pos)) + (if (= ch ?\n) + (throw 'tag (1+ pos))) + (setq func (aref table ch)) + (if (and (functionp func) + (setq newpos (funcall func pos string)) + (> newpos pos)) + (setq pos newpos) + (setq pos (1+ pos))))) + limit)) + (put-text-property start pos 'auto-composed t string)) + (error nil)))))) + +(make-variable-buffer-local 'auto-composition-function) + +;;;###autoload +(define-minor-mode auto-composition-mode + "Toggle Auto Compostion mode. +With arg, turn Auto Compostion mode off if and only if arg is a non-positive +number; if arg is nil, toggle Auto Compostion mode; anything else turns Auto +Compostion on. + +When Auto Composition is enabled, text characters are automatically composed +by functions registered in `composition-function-table' (which see). + +You can use Global Auto Composition mode to automagically turn on +Auto Composition mode in all buffers (this is the default)." + nil nil nil + (if noninteractive + (setq auto-composition-mode nil)) + (cond (auto-composition-mode + (add-hook 'after-change-functions 'auto-composition-after-change nil t) + (setq auto-composition-function 'auto-compose-chars)) + (t + (remove-hook 'after-change-functions 'auto-composition-after-change t) + (setq auto-composition-function nil))) + (save-buffer-state nil + (save-restriction + (widen) + (remove-text-properties (point-min) (point-max) '(auto-composed nil)) + (decompose-region (point-min) (point-max))))) + +(defun auto-composition-after-change (start end old-len) + (save-buffer-state nil + (if (< start (point-min)) + (setq start (point-min))) + (if (> end (point-max)) + (setq end (point-max))) + (when (and auto-composition-mode (not memory-full)) + (let (func1 func2) + (when (and (> start (point-min)) + (setq func2 (aref composition-function-table + (char-after (1- start)))) + (or (= start (point-max)) + (not (setq func1 (aref composition-function-table + (char-after start)))) + (eq func1 func2))) + (setq start (1- start) + func1 func2) + (while (eq func1 func2) + (if (> start (point-min)) + (setq start (1- start) + func2 (aref composition-function-table + (char-after start))) + (setq func2 nil)))) + (when (and (< end (point-max)) + (setq func2 (aref composition-function-table + (char-after end))) + (or (= end (point-min)) + (not (setq func1 (aref composition-function-table + (char-after (1- end))))) + (eq func1 func2))) + (setq end (1+ end) + func1 func2) + (while (eq func1 func2) + (if (< end (point-max)) + (setq func2 (aref composition-function-table + (char-after end)) + end (1+ end)) + (setq func2 nil)))) + (if (< start end) + (remove-text-properties start end '(auto-composed nil))))))) + +(defun turn-on-auto-composition-if-enabled () + (if enable-multibyte-characters + (auto-composition-mode 1))) + +;;;###autoload +(define-global-minor-mode global-auto-composition-mode + auto-composition-mode turn-on-auto-composition-if-enabled + :extra-args (dummy) + :initialize 'custom-initialize-safe-default + :init-value (not noninteractive) + :group 'auto-composition + :version "23.1") + +(defun toggle-auto-composition (&optional arg) + "Change whether automatic character composition is enabled in this buffer. +With arg, enable it iff arg is positive." + (interactive "P") + (let ((enable (if (null arg) (not auto-composition-function) + (> (prefix-numeric-value arg) 0)))) + (if enable + (kill-local-variable 'auto-composition-function) + (make-local-variable 'auto-composition-function) + (setq auto-composition-function nil) + (save-buffer-state nil + (save-restriction + (widen) + (decompose-region (point-min) (point-max))))) + + (save-buffer-state nil + (save-restriction + (widen) + (remove-text-properties (point-min) (point-max) + '(auto-composed nil)))))) + +(defun auto-compose-region (from to) + "Force automatic character composition on the region FROM and TO." + (save-excursion + (if (get-text-property from 'auto-composed) + (setq from (next-single-property-change from 'auto-composed nil to))) + (goto-char from) + (let ((modified-p (buffer-modified-p)) + (inhibit-read-only '(composition auto-composed)) + (stop (next-single-property-change (point) 'auto-composed nil to))) + (while (< (point) to) + (if (= (point) stop) + (progn + (goto-char (next-single-property-change (point) + 'auto-composed nil to)) + (setq stop (next-single-property-change (point) + 'auto-composed nil to))) + (let ((func (aref composition-function-table (following-char))) + (pos (point))) + (if (functionp func) + (goto-char (funcall func (point) nil))) + (if (<= (point) pos) + (forward-char 1))))) + (put-text-property from to 'auto-composed t) + (set-buffer-modified-p modified-p)))) ;; The following codes are only for backward compatibility with Emacs ;; 20.4 and earlier. -;;;###autoload (defun decompose-composite-char (char &optional type with-composition-rule) "Convert CHAR to string. @@ -387,7 +662,6 @@ Optional 3rd arg WITH-COMPOSITION-RULE is ignored." ((eq type 'list) (list char)) (t (vector char)))) -;;;###autoload (make-obsolete 'decompose-composite-char 'char-to-string "21.1") diff --git a/lisp/cus-start.el b/lisp/cus-start.el index b83f26fc12f..8f5c4e13489 100644 --- a/lisp/cus-start.el +++ b/lisp/cus-start.el @@ -106,6 +106,9 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of (exec-path execute (repeat (choice (const :tag "default directory" nil) (directory :format "%v")))) + ;; charset.c + (charset-map-path installation + (repeat (directory :format "%v"))) ;; coding.c (inhibit-eol-conversion mule boolean) (eol-mnemonic-undecided mule string) diff --git a/lisp/descr-text.el b/lisp/descr-text.el index d14aba7ae6f..c1bdfeb55a8 100644 --- a/lisp/descr-text.el +++ b/lisp/descr-text.el @@ -183,6 +183,27 @@ otherwise." (insert "There are text properties here:\n") (describe-property-list properties))))) +(defcustom describe-char-unidata-list nil + "List of Unicode-based character property names shown by `describe-char'." + :group 'mule + :version "23.1" + :type '(set + (const :tag "Unicode Name" name) + (const :tag "Unicode general category " general-category) + (const :tag "Unicode canonical combining class" + canonical-combining-class) + (const :tag "Unicode bidi class" bidi-class) + (const :tag "Unicode decomposition mapping" decomposition) + (const :tag "Unicode decimal digit value" decimal-digit-value) + (const :tag "Unicode digit value" digit-value) + (const :tag "Unicode numeric value" numeric-value) + (const :tag "Unicode mirrored" mirrored) + (const :tag "Unicode old name" old-name) + (const :tag "Unicode ISO 10646 comment" iso-10646-comment) + (const :tag "Unicode simple uppercase mapping" uppercase) + (const :tag "Unicode simple lowercase mapping" lowercase) + (const :tag "Unicode simple titlecase mapping" titlecase))) + (defcustom describe-char-unicodedata-file nil "Location of Unicode data file. This is the UnicodeData.txt file from the Unicode Consortium, used for @@ -208,7 +229,8 @@ At the time of writing it is at the URL (defun describe-char-unicode-data (char) "Return a list of Unicode data for unicode CHAR. Each element is a list of a property description and the property value. -The list is null if CHAR isn't found in `describe-char-unicodedata-file'." +The list is null if CHAR isn't found in `describe-char-unicodedata-file'. +This function is semi-obsolete. Use `get-char-code-property'." (when describe-char-unicodedata-file (unless (file-exists-p describe-char-unicodedata-file) (error "`unicodedata-file' %s not found" describe-char-unicodedata-file)) @@ -257,91 +279,20 @@ The list is null if CHAR isn't found in `describe-char-unicodedata-file'." (concat (match-string 1 name) ">") name))) (list "Category" - (cdr (assoc - (nth 1 fields) - '(("Lu" . "uppercase letter") - ("Ll" . "lowercase letter") - ("Lt" . "titlecase letter") - ("Mn" . "non-spacing mark") - ("Mc" . "spacing-combining mark") - ("Me" . "enclosing mark") - ("Nd" . "decimal digit") - ("Nl" . "letter number") - ("No" . "other number") - ("Zs" . "space separator") - ("Zl" . "line separator") - ("Zp" . "paragraph separator") - ("Cc" . "other control") - ("Cf" . "other format") - ("Cs" . "surrogate") - ("Co" . "private use") - ("Cn" . "not assigned") - ("Lm" . "modifier letter") - ("Lo" . "other letter") - ("Pc" . "connector punctuation") - ("Pd" . "dash punctuation") - ("Ps" . "open punctuation") - ("Pe" . "close punctuation") - ("Pi" . "initial-quotation punctuation") - ("Pf" . "final-quotation punctuation") - ("Po" . "other punctuation") - ("Sm" . "math symbol") - ("Sc" . "currency symbol") - ("Sk" . "modifier symbol") - ("So" . "other symbol"))))) + (let ((val (nth 1 fields))) + (or (char-code-property-description + 'general-category (intern val)) + val))) (list "Combining class" - (cdr (assoc - (string-to-number (nth 2 fields)) - '((0 . "Spacing") - (1 . "Overlays and interior") - (7 . "Nuktas") - (8 . "Hiragana/Katakana voicing marks") - (9 . "Viramas") - (10 . "Start of fixed position classes") - (199 . "End of fixed position classes") - (200 . "Below left attached") - (202 . "Below attached") - (204 . "Below right attached") - (208 . "Left attached (reordrant around \ -single base character)") - (210 . "Right attached") - (212 . "Above left attached") - (214 . "Above attached") - (216 . "Above right attached") - (218 . "Below left") - (220 . "Below") - (222 . "Below right") - (224 . "Left (reordrant around single base \ -character)") - (226 . "Right") - (228 . "Above left") - (230 . "Above") - (232 . "Above right") - (233 . "Double below") - (234 . "Double above") - (240 . "Below (iota subscript)"))))) + (let ((val (nth 1 fields))) + (or (char-code-property-description + 'canonical-combining-class (intern val)) + val))) (list "Bidi category" - (cdr (assoc - (nth 3 fields) - '(("L" . "Left-to-Right") - ("LRE" . "Left-to-Right Embedding") - ("LRO" . "Left-to-Right Override") - ("R" . "Right-to-Left") - ("AL" . "Right-to-Left Arabic") - ("RLE" . "Right-to-Left Embedding") - ("RLO" . "Right-to-Left Override") - ("PDF" . "Pop Directional Format") - ("EN" . "European Number") - ("ES" . "European Number Separator") - ("ET" . "European Number Terminator") - ("AN" . "Arabic Number") - ("CS" . "Common Number Separator") - ("NSM" . "Non-Spacing Mark") - ("BN" . "Boundary Neutral") - ("B" . "Paragraph Separator") - ("S" . "Segment Separator") - ("WS" . "Whitespace") - ("ON" . "Other Neutrals"))))) + (let ((val (nth 1 fields))) + (or (char-code-property-description + 'bidi-class (intern val)) + val))) (list "Decomposition" (if (nth 4 fields) @@ -351,14 +302,9 @@ character)") (setq info (match-string 1 info)) (setq info nil)) (if info (setq parts (cdr parts))) - ;; Maybe printing ? for unrepresentable unicodes - ;; here and below should be changed? (setq parts (mapconcat (lambda (arg) - (string (or (decode-char - 'ucs - (string-to-number arg 16)) - ??))) + (string (string-to-number arg 16))) parts " ")) (concat info parts)))) (list "Decimal digit value" @@ -373,23 +319,14 @@ character)") (list "Old name" (nth 9 fields)) (list "ISO 10646 comment" (nth 10 fields)) (list "Uppercase" (and (nth 11 fields) - (string (or (decode-char - 'ucs - (string-to-number - (nth 11 fields) 16)) - ??)))) + (string (string-to-number + (nth 11 fields) 16)))) (list "Lowercase" (and (nth 12 fields) - (string (or (decode-char - 'ucs - (string-to-number - (nth 12 fields) 16)) - ??)))) + (string (string-to-number + (nth 12 fields) 16)))) (list "Titlecase" (and (nth 13 fields) - (string (or (decode-char - 'ucs - (string-to-number - (nth 13 fields) 16)) - ??))))))))))) + (string (string-to-number + (nth 13 fields) 16))))))))))) ;; Return information about how CHAR is displayed at the buffer ;; position POS. If the selected frame is on a graphic display, @@ -438,45 +375,40 @@ as well as widgets, buttons, overlays, and text properties." (describe-text-properties pos tmp-buf) (with-current-buffer tmp-buf (buffer-string))) (kill-buffer tmp-buf)))) - item-list max-width unicode) + item-list max-width code) - (if (or (< char 256) - (memq 'mule-utf-8 (find-coding-systems-region pos (1+ pos))) - (get-char-property pos 'untranslated-utf-8)) - (setq unicode (or (get-char-property pos 'untranslated-utf-8) - (encode-char char 'ucs)))) + (setq code (encode-char char charset)) (setq item-list `(("character" - ,(format "%s (%d, #o%o, #x%x%s)" + ,(format "%s (%d, #o%o, #x%x)" (apply 'propertize char-description (text-properties-at pos)) - char char char - (if unicode - (format ", U+%04X" unicode) - ""))) - ("charset" + char char char)) + ("preferred charset" ,`(insert-text-button ,(symbol-name charset) 'type 'help-character-set 'help-args '(,charset)) ,(format "(%s)" (charset-description charset))) ("code point" - ,(let ((split (split-char char))) - `(insert-text-button - ,(if (= (charset-dimension charset) 1) - (format "#x%02X" (nth 1 split)) - (format "#x%02X #x%02X" (nth 1 split) - (nth 2 split))) - 'action (lambda (&rest ignore) - (list-charset-chars ',charset) - (with-selected-window - (get-buffer-window "*Character List*" 0) - (goto-char (point-min)) - (forward-line 2) ;Skip the header. - (let ((case-fold-search nil)) - (search-forward ,(char-to-string char) - nil t)))) - 'help-echo - "mouse-2, RET: show this character in its character set"))) + ,(let ((str (if (integerp code) + (format (if (< code 256) "0x%02X" "0x%04X") code) + (format "0x%04X%04X" (car code) (cdr code))))) + (if (<= (charset-dimension charset) 2) + `(insert-text-button + ,str + 'action (lambda (&rest ignore) + (list-charset-chars ',charset) + (with-selected-window + (get-buffer-window "*Character List*" 0) + (goto-char (point-min)) + (forward-line 2) ;Skip the header. + (let ((case-fold-search nil)) + (if (search-forward ,(char-to-string char) + nil t) + (goto-char (match-beginning 0)))))) + 'help-echo + "mouse-2, RET: show this character in its character set") + str))) ("syntax" ,(let ((syntax (syntax-after pos))) (with-temp-buffer @@ -489,13 +421,6 @@ as well as widgets, buttons, overlays, and text properties." (mapcar #'(lambda (x) (format "%c:%s" x (category-docstring x))) (category-set-mnemonics category-set))))) - ,@(let ((props (aref char-code-property-table char)) - ps) - (when props - (while props - (push (format "%s:" (pop props)) ps) - (push (format "%s;" (pop props)) ps)) - (list (cons "Properties" (nreverse ps))))) ("to input" ,@(let ((key-list (and (eq input-method-function 'quail-input-method) @@ -570,9 +495,9 @@ as well as widgets, buttons, overlays, and text properties." (save-excursion (goto-char pos) (looking-at "[ \t]+$"))) 'trailing-whitespace) - ((and nobreak-char-display unicode (eq unicode '#xa0)) + ((and nobreak-char-display char (eq char '#xa0)) 'nobreak-space) - ((and nobreak-char-display unicode (eq unicode '#xad)) + ((and nobreak-char-display char (eq char '#xad)) 'escape-glyph) ((and (< char 32) (not (memq char '(9 10)))) 'escape-glyph))))) @@ -580,11 +505,10 @@ as well as widgets, buttons, overlays, and text properties." `(insert-text-button ,(symbol-name face) 'type 'help-face 'help-args '(,face)))))) - ,@(let ((unicodedata (and unicode - (describe-char-unicode-data unicode)))) + ,@(let ((unicodedata (describe-char-unicode-data char))) (if unicodedata (cons (list "Unicode data" " ") unicodedata))))) - (setq max-width (apply #'max (mapcar #'(lambda (x) + (setq max-width (apply #'max (mapcar #'(lambda (x) (if (cadr x) (length (car x)) 0)) item-list))) (help-setup-xref nil (interactive-p)) @@ -661,7 +585,10 @@ as well as widgets, buttons, overlays, and text properties." (cadr composition) "\""))) (insert " by the rule:\n\t(" (mapconcat (lambda (x) - (format (if (consp x) "%S" "?%c") x)) + (if (consp x) (format "%S" x) + (if (= x ?\t) + (single-key-description x) + (string ?? x)))) (nth 2 composition) " ") ")") @@ -670,19 +597,38 @@ as well as widgets, buttons, overlays, and text properties." (progn (insert "these fonts (glyph codes):") (dolist (elt component-chars) - (insert "\n " (car elt) ?: - (propertize " " 'display '(space :align-to 5)) - (if (cdr elt) - (format "%s (#x%02X)" (cadr elt) (cddr elt)) - "-- no font --")))) + (if (/= (car elt) ?\t) + (insert "\n " (car elt) ?: + (propertize " " 'display '(space :align-to 5)) + (if (cdr elt) + (format "%s (#x%02X)" (cadr elt) (cddr elt)) + "-- no font --"))))) (insert "these terminal codes:") (dolist (elt component-chars) (insert "\n " (car elt) ":" - (propertize " " 'display '(space :align-to 5)) + (propertize " " 'display '(space :align-to 4)) (or (cdr elt) "-- not encodable --")))) (insert "\nSee the variable `reference-point-alist' for " "the meaning of the rule.\n")) + (if (not describe-char-unidata-list) + (insert "\nCharacter code properties are not shown: ") + (insert "\nCharacter code properties: ")) + (insert-text-button + "customize what to show" + 'action (lambda (&rest ignore) + (customize-variable + 'describe-char-unidata-list))) + (insert "\n") + (dolist (elt describe-char-unidata-list) + (let ((val (get-char-code-property char elt)) + description) + (when val + (setq description (char-code-property-description elt val)) + (if description + (insert (format " %s: %s (%s)\n" elt val description)) + (insert (format " %s: %s\n" elt val)))))) + (if text-props-desc (insert text-props-desc)) (setq help-xref-stack-item (list 'help-insert-string (buffer-string))) (toggle-read-only 1) diff --git a/lisp/desktop.el b/lisp/desktop.el index bddba82a965..dd0e6adac3f 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -835,6 +835,7 @@ DIRNAME must be the directory in which the desktop file will be saved." ((eq desktop-file-name-format 'local) (file-relative-name filename dirname)) (t (expand-file-name filename)))) + ;; ---------------------------------------------------------------------------- ;;;###autoload (defun desktop-save (dirname &optional release) diff --git a/lisp/disp-table.el b/lisp/disp-table.el index 4bf52896cf0..543364867eb 100644 --- a/lisp/disp-table.el +++ b/lisp/disp-table.el @@ -126,7 +126,7 @@ Valid symbols are `truncation', `wrap', `escape', `control', (or standard-display-table (setq standard-display-table (make-display-table))) (while (<= l h) - (if (and (>= l ?\s) (char-valid-p l)) + (if (and (>= l ?\s) (characterp l)) (aset standard-display-table l nil)) (setq l (1+ l)))) @@ -190,20 +190,20 @@ X frame." (defun make-glyph-code (char &optional face) "Return a glyph code representing char CHAR with face FACE." ;; Due to limitations on Emacs integer values, faces with - ;; face id greater that 4091 are silently ignored. - (if (and face (<= (face-id face) #xfff)) - (logior char (lsh (face-id face) 19)) + ;; face id greater that 512 are silently ignored. + (if (and face (<= (face-id face) #x1ff)) + (logior char (lsh (face-id face) 22)) char)) ;;;###autoload (defun glyph-char (glyph) "Return the character of glyph code GLYPH." - (logand glyph #x7ffff)) + (logand glyph #x3fffff)) ;;;###autoload (defun glyph-face (glyph) "Return the face of glyph code GLYPH, or nil if glyph has default face." - (let ((face-id (lsh glyph -19))) + (let ((face-id (lsh glyph -22))) (and (> face-id 0) (car (delq nil (mapcar (lambda (face) (and (eq (get face 'face) face-id) diff --git a/lisp/dnd.el b/lisp/dnd.el index 72ce4c6d777..dbbab8252db 100644 --- a/lisp/dnd.el +++ b/lisp/dnd.el @@ -148,7 +148,9 @@ Return nil if URI is not a local file." (setq f (replace-regexp-in-string "%[A-Fa-f0-9][A-Fa-f0-9]" (lambda (arg) - (format "%c" (string-to-number (substring arg 1) 16))) + (let ((str (make-string 1 0))) + (aset str 0 (string-to-number (substring arg 1) 16)) + str)) f t t)) (let* ((decoded-f (decode-coding-string f diff --git a/lisp/edmacro.el b/lisp/edmacro.el index 15568e8c39c..6a0b28a4b82 100644 --- a/lisp/edmacro.el +++ b/lisp/edmacro.el @@ -768,7 +768,7 @@ This function assumes that the events can be stored in a string." (setq res (edmacro-subseq res 2 -2))) (if (and (not need-vector) (loop for ch across res - always (and (char-valid-p ch) + always (and (characterp ch) (let ((ch2 (logand ch (lognot ?\M-\^@)))) (and (>= ch2 0) (<= ch2 127)))))) (concat (loop for ch across res diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el index 5eb9b8ce621..d39b0bd9e4a 100644 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@ -640,8 +640,9 @@ directory or directories specified." (defun batch-update-autoloads () "Update loaddefs.el autoloads in batch mode. Calls `update-directory-autoloads' on the command line arguments." - (apply 'update-directory-autoloads command-line-args-left) - (setq command-line-args-left nil)) + (let ((args command-line-args-left)) + (setq command-line-args-left nil) + (apply 'update-directory-autoloads args))) (provide 'autoload) diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 811dc699bd0..588501aad97 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1184,8 +1184,9 @@ char-equal char-to-string char-width compare-strings concat coordinates-in-window-p copy-alist copy-sequence copy-marker cos count-lines + decdoe-char decode-time default-boundp default-value documentation downcase - elt exp expt encode-time error-message-string + elt encode-char exp expt encode-time error-message-string fboundp fceiling featurep ffloor file-directory-p file-exists-p file-locked-p file-name-absolute-p file-newer-than-file-p file-readable-p file-symlink-p file-writable-p @@ -1196,7 +1197,7 @@ int-to-string intern-soft keymap-parent length local-variable-if-set-p local-variable-p log log10 logand - logb logior lognot logxor lsh + logb logior lognot logxor lsh langinfo make-list make-string make-symbol marker-buffer max member memq min mod multibyte-char-to-unibyte next-window nth nthcdr number-to-string @@ -1208,6 +1209,7 @@ string-to-int string-to-number substring sxhash symbol-function symbol-name symbol-plist symbol-value string-make-unibyte string-make-multibyte string-as-multibyte string-as-unibyte + string-to-multibyte tan truncate unibyte-char-to-multibyte upcase user-full-name user-login-name user-original-login-name user-variable-p @@ -1219,7 +1221,8 @@ '(arrayp atom bobp bolp bool-vector-p buffer-end buffer-list buffer-size buffer-string bufferp - car-safe case-table-p cdr-safe char-or-string-p commandp cons consp + car-safe case-table-p cdr-safe char-or-string-p characterp + charsetp commandp cons consp current-buffer current-global-map current-indentation current-local-map current-minor-mode-maps current-time current-time-string current-time-zone @@ -1231,11 +1234,13 @@ invocation-directory invocation-name keymapp line-beginning-position line-end-position list listp - make-marker mark mark-marker markerp memory-limit minibuffer-window + make-marker mark mark-marker markerp max-char + memory-limit minibuffer-window mouse-movement-p natnump nlistp not null number-or-marker-p numberp one-window-p overlayp - point point-marker point-min point-max preceding-char processp + point point-marker point-min point-max preceding-char primary-charset + processp recent-keys recursion-depth safe-length selected-frame selected-window sequencep standard-case-table standard-syntax-table stringp subrp symbolp diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 286725f99c1..24eb423e00f 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -814,7 +814,7 @@ otherwise pop it") (setcar (cdr bytes) (logand pc 255)) (setcar bytes (lsh pc -8)))) (setq patchlist (cdr patchlist)))) - (concat (nreverse bytes)))) + (string-make-unibyte (concat (nreverse bytes))))) ;;; compile-time evaluation @@ -1899,13 +1899,13 @@ With argument, insert value in current buffer after the form." (delete-region (point) (progn (re-search-forward "^(") (beginning-of-line) (point))) - (insert ";;; This file contains multibyte non-ASCII characters\n" - ";;; and therefore cannot be loaded into Emacs 19.\n") - ;; Replace "19" or "19.29" with "20", twice. + (insert ";;; This file contains utf-8 non-ASCII characters\n" + ";;; and therefore cannot be loaded into Emacs 21 or earlier.\n") + ;; Replace "19" or "19.29" with "22", twice. (re-search-forward "19\\(\\.[0-9]+\\)") - (replace-match "20") + (replace-match "23") (re-search-forward "19\\(\\.[0-9]+\\)") - (replace-match "20") + (replace-match "23") ;; Now compensate for the change in size, ;; to make sure all positions in the file remain valid. (setq delta (- (point-max) old-header-end)) @@ -1920,7 +1920,7 @@ With argument, insert value in current buffer after the form." (set-buffer outbuffer) (goto-char (point-min)) ;; The magic number of .elc files is ";ELC", or 0x3B454C43. After - ;; that is the file-format version number (18, 19 or 20) as a + ;; that is the file-format version number (18, 19, 20, or 23) as a ;; byte, followed by some nulls. The primary motivation for doing ;; this is to get some binary characters up in the first line of ;; the file so that `diff' will simply say "Binary files differ" @@ -1932,7 +1932,7 @@ With argument, insert value in current buffer after the form." (insert ";ELC" - (if (byte-compile-version-cond byte-compile-compatibility) 18 20) + (if (byte-compile-version-cond byte-compile-compatibility) 18 23) "\000\000\000\n" ) (insert ";;; Compiled by " @@ -1988,7 +1988,7 @@ With argument, insert value in current buffer after the form." ;; Insert semicolons as ballast, so that byte-compile-fix-header ;; can delete them so as to keep the buffer positions ;; constant for the actual compiled code. - ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n")) + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n")) ;; Here if we want Emacs 18 compatibility. (when dynamic-docstrings (error "Version-18 compatibility doesn't support dynamic doc strings")) @@ -3415,6 +3415,8 @@ That command is designed for interactive use only" fn)) (byte-defop-compiler-1 mapc byte-compile-funarg) (byte-defop-compiler-1 maphash byte-compile-funarg) (byte-defop-compiler-1 map-char-table byte-compile-funarg) +(byte-defop-compiler-1 map-char-table byte-compile-funarg-2) +;; map-charset-chars should be funarg but has optional third arg (byte-defop-compiler-1 sort byte-compile-funarg-2) (byte-defop-compiler-1 let) (byte-defop-compiler-1 let*) diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 1589e19cbb2..12514b43534 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el @@ -283,7 +283,7 @@ Not documented ;;;;;; do* do loop return-from return block etypecase typecase ecase ;;;;;; case load-time-value eval-when destructuring-bind function* ;;;;;; defmacro* defun* gentemp gensym cl-compile-time-init) "cl-macs" -;;;;;; "cl-macs.el" "7ccc827d272482ca276937ca18a7895a") +;;;;;; "cl-macs.el" "6990af555f962480552cf0867f3d5bab") ;;; Generated autoloads from cl-macs.el (autoload (quote cl-compile-time-init) "cl-macs" "\ diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index a1264940d41..ab87fd53361 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2452,7 +2452,7 @@ The type name can then be used in `typecase', `check-type', etc." ((eq type 'real) `(numberp ,val)) ((eq type 'fixnum) `(integerp ,val)) ;; FIXME: Should `character' accept things like ?\C-\M-a ? -stef - ((memq type '(character string-char)) `(char-valid-p ,val)) + ((memq type '(character string-char)) `(characterp ,val)) (t (let* ((name (symbol-name type)) (namep (intern (concat name "p")))) diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el index 15dce4310a2..0931ba8635c 100644 --- a/lisp/emacs-lisp/copyright.el +++ b/lisp/emacs-lisp/copyright.el @@ -43,12 +43,10 @@ A value of nil means to search whole buffer." :type '(choice (integer :tag "Limit") (const :tag "No limit"))) -;; The character classes have the Latin-1 version and the Latin-9 -;; version, which is probably enough. (defcustom copyright-regexp - "\\([]\\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\ -\\|[Cc]opyright\\s *:?\\s *[]\\)\ -\\s *\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)" + "\\(©\|@copyright{}\\|[Cc]opyright\\s *:?\\s *\\(?:(C)\\)?\ +\\|[Cc]opyright\\s *:?\\s *©\\)\ +\\s *\\([1-9]\\([-0-9, ';\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)" "What your copyright notice looks like. The second \\( \\) construct must match the years." :group 'copyright @@ -249,7 +247,7 @@ Uses heuristic: year >= 50 means 19xx, < 50 means 20xx." ;; For the copyright sign: ;; Local Variables: -;; coding: emacs-mule +;; coding: utf-8 ;; End: ;; arch-tag: b4991afb-b6b1-4590-bebe-e076d9d4aee8 diff --git a/lisp/emacs-lisp/generic.el b/lisp/emacs-lisp/generic.el index d57e7ca7657..f041de2b1dc 100644 --- a/lisp/emacs-lisp/generic.el +++ b/lisp/emacs-lisp/generic.el @@ -240,9 +240,9 @@ Some generic modes are defined in `generic-x.el'." (when (consp start) (setq end (cdr start)) (setq start (car start))) - (when (char-valid-p start) (setq start (char-to-string start))) + (when (characterp start) (setq start (char-to-string start))) (cond - ((char-valid-p end) (setq end (char-to-string end))) + ((characterp end) (setq end (char-to-string end))) ((zerop (length end)) (setq end "\n"))) ;; Setup the vars for `comment-region' diff --git a/lisp/emacs-lisp/regexp-opt.el b/lisp/emacs-lisp/regexp-opt.el index f89909e0af8..c5de234c972 100644 --- a/lisp/emacs-lisp/regexp-opt.el +++ b/lisp/emacs-lisp/regexp-opt.el @@ -263,13 +263,21 @@ This means the number of non-shy regexp grouping constructs (map-char-table (lambda (c v) (when v - (if (= (1- c) end) (setq end c) - (if (> end (+ start 2)) + (if (consp c) + (if (= (1- (car c)) end) (setq end (cdr c)) + (if (> end (+ start 2)) + (setq charset (format "%s%c-%c" charset start end)) + (while (>= end start) + (setq charset (format "%s%c" charset start)) + (incf start))) + (setq start (car c) end (cdr c))) + (if (= (1- c) end) (setq end c) + (if (> end (+ start 2)) (setq charset (format "%s%c-%c" charset start end)) (while (>= end start) (setq charset (format "%s%c" charset start)) (incf start))) - (setq start c end c)))) + (setq start c end c))))) charmap) (when (>= end start) (if (> end (+ start 2)) diff --git a/lisp/emulation/keypad.el b/lisp/emulation/keypad.el index 413f5e063df..307eadd069a 100644 --- a/lisp/emulation/keypad.el +++ b/lisp/emulation/keypad.el @@ -234,7 +234,7 @@ the decimal key on the keypad is mapped to DECIMAL instead of `.'" (bind (cond ((or (eq setup 'numeric) - (char-valid-p setup)) + (characterp setup)) (if (eq decimal 'numeric) (setq decimal nil)) (vector (or decimal ?.) ?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9)) diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index e6e47d6b980..e1a0f73a866 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -281,8 +281,11 @@ This is used by `eshell-watch-for-password-prompt'." (map-char-table (function (lambda (key val) - (and (>= key 256) - (/= (char-syntax key) ?w) + (and (if (consp key) + (and (>= (car key) 128) + (/= (char-syntax (car key)) ?w)) + (and (>= key 256) + (/= (char-syntax key) ?w))) (modify-syntax-entry key "_ " eshell-mode-syntax-table)))) (standard-syntax-table))))) diff --git a/lisp/eshell/esh-opt.el b/lisp/eshell/esh-opt.el index 41e12e70b43..94b0e34386f 100644 --- a/lisp/eshell/esh-opt.el +++ b/lisp/eshell/esh-opt.el @@ -195,7 +195,7 @@ switch is unrecognized." (setq extcmd (eshell-search-path (cadr extcmd))) (if extcmd (throw 'eshell-ext-command extcmd) - (if (char-valid-p switch) + (if (characterp switch) (error "%s: unrecognized option -%c" name switch) (error "%s: unrecognized option --%s" name switch)))))))) diff --git a/lisp/faces.el b/lisp/faces.el index 320bf5d2b5d..76bb2b6e038 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -81,11 +81,11 @@ ALTERNATIVE2 etc." (defcustom face-font-registry-alternatives (if (eq system-type 'windows-nt) '(("iso8859-1" "ms-oemlatin") - ("gb2312.1980" "gb2312") + ("gb2312.1980" "gb2312" "gbk" "gb18030") ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978") ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987") ("muletibetan-2" "muletibetan-0")) - '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk*") + '(("gb2312.1980" "gb2312.80&gb8565.88" "gbk" "gb18030") ("jisx0208.1990" "jisx0208.1983" "jisx0208.1978") ("ksc5601.1989" "ksx1001.1992" "ksc5601.1987") ("muletibetan-2" "muletibetan-0"))) @@ -103,6 +103,76 @@ REGISTRY, ALTERNATIVE1, ALTERNATIVE2, and etc." (internal-set-alternative-font-registry-alist value))) +(defcustom font-weight-table + (if (eq system-type 'windows-nt) + '((thin . 100) + (ultralight . 200) (ultra-light . 200) (extra-light . 200) + (light . 300) + (semilight . 330) (semi-light . 330) + (book . 350) + (normal . 400) (regular . 400) + (medium . 500) + (semibold . 600) (semi-bold . 600) (demibold . 600) (demi . 600) + (bold . 700) + (extrabold . 800) (extra-bold . 800) + (ultrabold . 800) (ultra-bold . 800) + (black . 900) (heavy . 900)) + '((thin . 0) + (ultralight . 40) (ultra-light . 40) (extra-light . 40) + (light . 50) + (semilight . 65) (semi-light . 65) + (book . 75) + (medium . 100) (regular . 100) (normal . 100) + (semibold . 180) (semi-bold . 180) (demibold . 180) (demi . 180) + (bold . 200) + (extrabold . 205) (extra-bold . 205) + (ultrabold . 205) (ultra-bold . 205) + (black . 210) (heavy . 210))) + "*Alist of font weight symbols vs the corresponding numeric values." + :tag "Font weight table" + :version "23.1" + :group 'font-selection + :type '(repeat (cons symbol integer)) + :set #'(lambda (symbol value) + (set-default symbol value) + (if (fboundp 'internal-set-font-style-table) + (internal-set-font-style-table :weight value)))) + +(defcustom font-slant-table + '((ro . 0) + (ri . 10) + (r . 100) (roman . 100) (normal . 100) + (i . 200) (italic . 200) (ot . 200) + (o . 210) (oblique . 210)) + "*Alist of font slant symbols vs the corresponding numeric values." + :tag "Font slant table" + :version "23.1" + :group 'font-selection + :type '(repeat (cons symbol integer)) + :set #'(lambda (symbol value) + (set-default symbol value) + (if (fboundp 'internal-set-font-style-table) + (internal-set-font-style-table :slant value)))) + +(defcustom font-swidth-table + '((ultracondensed . 50) (ultra-condensed . 50) + (extracondensed . 63) (extra-condensed . 63) + (condensed . 75) (compressed . 75) (narrow . 75) + (semicondensed . 87) (semi-condensed . 87) + (normal . 100) (medium . 100) (regular . 100) + (semiexpanded . 113) (semi-expanded . 113) (demiexpanded . 113) + (expanded . 125) + (extraexpanded . 150) (extra-expanded . 150) + (ultraexpanded . 200) (ultra-expanded . 200) (wide . 200)) + "*Alist of font swidth symbols vs the corresponding numeric values." + :tag "Font swidth table" + :version "23.1" + :group 'font-selection + :type '(repeat (cons symbol integer)) + :set #'(lambda (symbol value) + (set-default symbol value) + (if (fboundp 'internal-set-font-style-table) + (internal-set-font-style-table :width value)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Creation, copying. @@ -1098,7 +1168,7 @@ of a global face. Value is the new attribute value." If optional argument FRAME is nil or omitted, use the selected frame." (let ((completion-ignore-case t)) (completing-read (format "Set font attributes of face `%s' from font: " face) - (x-list-fonts "*" nil frame)))) + (append (fontset-list) (x-list-fonts "*" nil frame))))) (defun read-all-face-attributes (face &optional frame) @@ -1272,7 +1342,8 @@ If FRAME is omitted or nil, use the selected frame." (:box . "Box") (:inverse-video . "Inverse") (:stipple . "Stipple") - (:font . "Font or fontset") + (:font . "Font") + (:fontset . "Fontset") (:inherit . "Inherit"))) (max-width (apply #'max (mapcar #'(lambda (x) (length (cdr x))) attrs)))) diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 9ceca1b014f..32a63e598d7 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -2114,7 +2114,8 @@ This function could be MATCHER in a MATCH-ANCHORED `font-lock-keywords' item." ;; Move over any item value, etc., to the next item. (while (not (looking-at "[ \t\n]*\\(\\(,\\)\\|;\\|\\'\\)")) (goto-char (or (scan-sexps (point) 1) (point-max)))) - (goto-char (match-end 2))) + (if (match-end 2) + (goto-char (match-end 2)))) (error t))))) ;; C preprocessor(cpp) is used outside of C, C++ and Objective-C source file. diff --git a/lisp/format.el b/lisp/format.el index d029e3d4683..af708bd9a0c 100644 --- a/lisp/format.el +++ b/lisp/format.el @@ -73,15 +73,6 @@ ;; Plain only exists so that there is an obvious neutral choice in ;; the completion list. nil nil nil nil nil) - (ibm "IBM Code Page 850 (DOS)" - nil ; The original "1\\(^\\)" is obscure. - "recode -f ibm-pc:latin1" "recode -f latin1:ibm-pc" t nil) - (mac "Apple Macintosh" - nil - "recode -f mac:latin1" "recode -f latin1:mac" t nil) - (hp "HP Roman8" - nil - "recode -f roman8:latin1" "recode -f latin1:roman8" t nil) (TeX "TeX (encoding)" nil iso-tex2iso iso-iso2tex t nil) diff --git a/lisp/gnus/ChangeLog.unicode b/lisp/gnus/ChangeLog.unicode new file mode 100644 index 00000000000..bee0154febc --- /dev/null +++ b/lisp/gnus/ChangeLog.unicode @@ -0,0 +1,138 @@ +2006-11-27 Zhang Wei <id.brep@gmail.com> + + * rfc2047.el (rfc2047-charset-encoding-alist): Add gbk and GB18030. + + * mm-util.el (mm-mime-mule-charset-alist): Add gbk and GB18030. + +2006-09-25 Kenichi Handa <handa@m17n.org> + + * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Use correct + form for specifying a mode in the header line. + +2004-09-27 Miles Bader <miles@gnu.org> + + * mml.el (mml-parse-1): Remove apparently vestigial use of + `mm-hack-charsets'. + * mm-bodies.el (mm-encode-body): Likewise. + +2003-11-17 Kenichi Handa <handa@m17n.org> + + * mm-util.el (mm-enable-multibyte): Call set-buffer-multibyte + with the arg `to'. + +2003-11-13 Kenichi Handa <handa@m17n.org> + + * rfc2104.el (rfc2104-hexstring-to-byte-list): Renamed from + rfc2104-hexstring-to-bitstring and changed to return a byte list. + (rfc2104-hash): Convert the result of concat to unibyte string. + +2002-10-16 Dave Love <fx@gnu.org> + + * mm-bodies.el (mm-encode-body): Doc fix. + + * qp.el (quoted-printable-encode-region): Fix non-Emacs 22 case. + +2002-10-09 Dave Love <fx@gnu.org> + + * qp.el (quoted-printable-encode-region): Fix non-multibyte search + for Emacs 22. + +2002-10-07 Dave Love <fx@gnu.org> + + * qp.el (quoted-printable-encode-region): Go to start of range + before searching. + (quoted-printable-encode-region): Use multibyte-char-to-unibyte. + +2002-09-05 Dave Love <fx@gnu.org> + + * qp.el (quoted-printable-decode-region): Use mm-insert-byte. + + * mm-util.el (mm-hack-charsets, mm-iso-8859-15-compatible) + (mm-iso-8859-x-to-15-table, mm-iso-8859-x-to-15-region): Deleted. + (mm-find-mime-charset-region): Remove hack-charsets stuff. + (mm-insert-byte): New. + + * rfc2047.el (message-posting-charset): defvar when compiling. + (rfc2047-header-encoding-alist): Add `address-mime' part. + (rfc2047-charset-encoding-alist): Use B for iso-8859-7. Doc fix. + (rfc2047-q-encoding-alist): Augment header list. + (rfc2047-encodable-p): Use mm-find-mime-charset-region. + (rfc2047-special-chars, rfc2047-non-special-chars): New. + (rfc2047-dissect-region, rfc2047-encode-region, rfc2047-encode): + Rewritten to avoid charset stuff and to take account of rfc2822 + tokens. + (rfc2047-encode-message-header): Don't include header name field + in encoding. Add `address-mime' case and bind + rfc2047-special-chars for `mime' case. + +2002-08-21 Kenichi Handa <handa@etl.go.jp> + + * qp.el (quoted-printable-decode-region): Insert bytes by + `insert-byte'. + +2002-08-18 Dave Love <fx@gnu.org> + + * rfc2047.el (rfc2047-encode): Fix last change. + +2002-07-30 Dave Love <fx@gnu.org> + + * rfc2047.el (rfc2047-charset-encoding-alist): Use B for Hebrew. + Doc fix. + + * gnus-start.el (gnus-read-newsrc-el-file): Don't bind + coding-system-for-read. + (gnus-gnus-to-quick-newsrc-format): Insert coding cookie. + +2002-07-09 Dave Love <fx@gnu.org> + + * mm-util.el (mm-find-mime-charset-region): Fix :mime-charset + part. + +2002-06-26 Dave Love <fx@gnu.org> + + * rfc2047.el (rfc2047-encodable-p): Avoid mm-find-charset-region. + (rfc2047-dissect-region): Don't record charsets. + (rfc2047-encode): Remove arg CHARSET. + (rfc2047-encode-region): Change rfc2047-encode call. + +2002-06-24 Dave Love <fx@gnu.org> + + * mm-util.el (mm-mule4-p, mm-enable-multibyte-mule4) + (mm-disable-multibyte-mule4) + (mm-with-unibyte-current-buffer-mule4): Deleted. + + * gnus-sum.el (gnus-summary-mode, gnus-summary-display-article) + (gnus-summary-select-article, gnus-summary-edit-article): Use + mm-{en,dis}able-multibyte, not mm-{en,dis}able-multibyte-mule4. + + * message.el (message-forward-make-body): Use + mm-{en,dis}able-multibyte, not mm-{en,dis}able-multibyte-mule4. + + * qp.el (quoted-printable-encode-region): Avoid + find-charset-region. + + * mm-bodies.el (mm-body-7-or-8): Don't special-case Mule. + (mm-encode-body): Just call mm-encode-coding-region in encoding + case. + +2002-05-27 Dave Love <fx@gnu.org> + + * mm-util.el (mm-auto-save-coding-system): Prefer utf-8-emacs + coding system to emacs-mule. + +2002-05-14 Dave Love <fx@gnu.org> + + * mm-util.el (mm-mime-mule-charset-alist) + (mm-mule-charset-to-mime-charset, mm-charset-to-coding-system) + (mm-mime-charset, mm-find-mime-charset-region): Look for + `:mime-charset' property of coding systems before `mime-charset'. + +;; Local Variables: +;; coding: iso-2022-7bit +;; End: + + Copyright (C) 2002 Free Software Foundation, Inc. + Copying and distribution of this file, with or without modification, + are permitted provided the copyright notice and this notice are preserved. + +;;; arch-tag: d7f0febd-4aca-429a-9493-d71cd04ad9f0 diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 526e350f592..220df957d13 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -463,6 +463,8 @@ Can be used to turn version control on or off." ;;; Internal variables +;; Fixme: deal with old emacs-mule when mm-universal-coding-system is +;; utf-8-emacs. (defvar gnus-ding-file-coding-system mm-universal-coding-system "Coding system for ding file.") @@ -2375,8 +2377,7 @@ If FORCE is non-nil, the .newsrc file is read." ;; We always, always read the .eld file. (gnus-message 5 "Reading %s..." ding-file) (let (gnus-newsrc-assoc) - (let ((coding-system-for-read gnus-ding-file-coding-system)) - (gnus-load ding-file)) + (gnus-load ding-file) ;; Older versions of `gnus-format-specs' are no longer valid ;; in Oort Gnus 0.01. (let ((version @@ -2806,7 +2807,8 @@ If FORCE is non-nil, the .newsrc file is read." (defun gnus-gnus-to-quick-newsrc-format (&optional minimal name &rest specific-variables) "Print Gnus variables such as `gnus-newsrc-alist' in Lisp format." - (princ ";; -*- emacs-lisp -*-\n") + (princ (format ";; -*- mode:emacs-lisp; coding: %s; -*-\n" + gnus-ding-file-coding-system)) (if name (princ (format ";; %s\n" name)) (princ ";; Gnus startup file.\n")) diff --git a/lisp/gnus/mm-bodies.el b/lisp/gnus/mm-bodies.el index 0872008e48d..38a5fd4f68a 100644 --- a/lisp/gnus/mm-bodies.el +++ b/lisp/gnus/mm-bodies.el @@ -101,8 +101,7 @@ If no encoding was done, nil is returned." (mm-charset-to-coding-system charset)) charset) (goto-char (point-min)) - (let ((charsets (mm-find-mime-charset-region (point-min) (point-max) - mm-hack-charsets))) + (let ((charsets (mm-find-mime-charset-region (point-min) (point-max)))) (cond ;; No encoding. ((null charsets) diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el index 76b1f2779c9..eb67313c92a 100644 --- a/lisp/gnus/mm-util.el +++ b/lisp/gnus/mm-util.el @@ -474,6 +474,10 @@ could use `autoload-coding-system' here." (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978) (euc-kr korean-ksc5601) (gb2312 chinese-gb2312) + (gbk chinese-gbk) + (gb18030 gb18030-2-byte + gb18030-4-byte-bmp gb18030-4-byte-smp + gb18030-4-byte-ext-1 gb18030-4-byte-ext-2) (big5 chinese-big5-1 chinese-big5-2) (tibetan tibetan) (thai-tis620 thai-tis620) @@ -542,7 +546,7 @@ with Mule charsets. It is completely useless for Emacs." cs mime mule alist) (while css (setq cs (pop css) - mime (or (coding-system-get cs :mime-charset) ; Emacs 23 (unicode) + mime (or (coding-system-get cs :mime-charset); Emacs 23 (unicode) (coding-system-get cs 'mime-charset))) (when (and mime (not (eq t (setq mule @@ -551,36 +555,6 @@ with Mule charsets. It is completely useless for Emacs." (push (cons mime (delq 'ascii mule)) alist))) (setq mm-mime-mule-charset-alist (nreverse alist))))) -(defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2) - "A list of special charsets. -Valid elements include: -`iso-8859-15' convert ISO-8859-1, -9 to ISO-8859-15 if ISO-8859-15 exists. -`iso-2022-jp-2' convert ISO-2022-jp to ISO-2022-jp-2 if ISO-2022-jp-2 exists." -) - -(defvar mm-iso-8859-15-compatible - '((iso-8859-1 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE") - (iso-8859-9 "\xA4\xA6\xA8\xB4\xB8\xBC\xBD\xBE\xD0\xDD\xDE\xF0\xFD\xFE")) - "ISO-8859-15 exchangeable coding systems and inconvertible characters.") - -(defvar mm-iso-8859-x-to-15-table - (and (fboundp 'coding-system-p) - (mm-coding-system-p 'iso-8859-15) - (mapcar - (lambda (cs) - (if (mm-coding-system-p (car cs)) - (let ((c (string-to-char - (decode-coding-string "\341" (car cs))))) - (cons (char-charset c) - (cons - (- (string-to-char - (decode-coding-string "\341" 'iso-8859-15)) c) - (string-to-list (decode-coding-string (car (cdr cs)) - (car cs)))))) - '(gnus-charset 0))) - mm-iso-8859-15-compatible)) - "A table of the difference character between ISO-8859-X and ISO-8859-15.") - (defcustom mm-coding-system-priorities (if (boundp 'current-language-environment) (let ((lang (symbol-value 'current-language-environment))) @@ -837,27 +811,6 @@ This affects whether coding conversion should be attempted generally." default-enable-multibyte-characters t))) -(defun mm-iso-8859-x-to-15-region (&optional b e) - (if (fboundp 'char-charset) - (let (charset item c inconvertible) - (save-restriction - (if e (narrow-to-region b e)) - (goto-char (point-min)) - (skip-chars-forward "\0-\177") - (while (not (eobp)) - (cond - ((not (setq item (assq (char-charset (setq c (char-after))) - mm-iso-8859-x-to-15-table))) - (forward-char)) - ((memq c (cdr (cdr item))) - (setq inconvertible t) - (forward-char)) - (t - (insert-before-markers (prog1 (+ c (car (cdr item))) - (delete-char 1))))) - (skip-chars-forward "\0-\177"))) - (not inconvertible)))) - (defun mm-sort-coding-systems-predicate (a b) (let ((priorities (mapcar (lambda (cs) @@ -994,32 +947,14 @@ charset, and a longer list means no appropriate charset." ;; Otherwise, we'll get nil, and the next setq will get invoked. (setq charsets (mm-xemacs-find-mime-charset b e)) + ;; Fixme: won't work for unibyte Emacs 23: + ;; We're not multibyte, or a single coding system won't cover it. (setq charsets (mm-delete-duplicates (mapcar 'mm-mime-charset (delq 'ascii (mm-find-charset-region b e)))))) - (if (and (> (length charsets) 1) - (memq 'iso-8859-15 charsets) - (memq 'iso-8859-15 hack-charsets) - (save-excursion (mm-iso-8859-x-to-15-region b e))) - (mapcar (lambda (x) (setq charsets (delq (car x) charsets))) - mm-iso-8859-15-compatible)) - (if (and (memq 'iso-2022-jp-2 charsets) - (memq 'iso-2022-jp-2 hack-charsets)) - (setq charsets (delq 'iso-2022-jp charsets))) - ;; Attempt to reduce the number of charsets if utf-8 is available. - (if (and (featurep 'xemacs) - (> (length charsets) 1) - (mm-coding-system-p 'utf-8)) - (let ((mm-coding-system-priorities - (cons 'utf-8 mm-coding-system-priorities))) - (setq charsets - (mm-delete-duplicates - (mapcar 'mm-mime-charset - (delq 'ascii - (mm-find-charset-region b e))))))) charsets)) (defmacro mm-with-unibyte-buffer (&rest forms) diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el index dae746fa082..b546ff832f9 100644 --- a/lisp/gnus/mml.el +++ b/lisp/gnus/mml.el @@ -233,8 +233,7 @@ part. This is for the internal use, you should never modify the value.") (list (intern (downcase (cdr (assq 'charset tag)))))) (t - (mm-find-mime-charset-region point (point) - mm-hack-charsets)))) + (mm-find-mime-charset-region point (point))))) (when (and (not raw) (memq nil charsets)) (if (or (memq 'unknown-encoding mml-confirmation-set) (message-options-get 'unknown-encoding) diff --git a/lisp/gnus/rfc2047.el b/lisp/gnus/rfc2047.el index 2ad57323d47..4ae41b8e9a5 100644 --- a/lisp/gnus/rfc2047.el +++ b/lisp/gnus/rfc2047.el @@ -107,6 +107,8 @@ The values can be: (iso-2022-jp . B) (iso-2022-kr . B) (gb2312 . B) + (gbk . B) + (gb18030 . B) (big5 . B) (cn-big5 . B) (cn-gb . B) @@ -326,7 +328,7 @@ The buffer may be narrowed." ;; (make-char-table 'syntax-table '(2)) only works in Emacs. (let ((table (make-syntax-table))) ;; The following is done to work for setting all elements of the table - ;; in Emacs 21 and 22 and XEmacs; it appears to be the cleanest way. + ;; in Emacs 21-23 and XEmacs; it appears to be the cleanest way. ;; Play safe and don't assume the form of the word syntax entry -- ;; copy it from ?a. (if (fboundp 'set-char-table-range) ; Emacs diff --git a/lisp/gnus/rfc2104.el b/lisp/gnus/rfc2104.el index 1c4fc9e2de0..836d6e8a1f7 100644 --- a/lisp/gnus/rfc2104.el +++ b/lisp/gnus/rfc2104.el @@ -53,6 +53,7 @@ ;;; 1999-10-23 included in pgnus ;;; 2000-08-15 `rfc2104-hexstring-to-bitstring' ;;; 2000-05-12 added sha-1 example, added test case reference +;;; 2003-11-13 change rfc2104-hexstring-to-bitstring to ...-byte-list ;;; Code: @@ -88,12 +89,12 @@ (rfc2104-hex-to-int (reverse (append str nil)))) 0)) -(defun rfc2104-hexstring-to-bitstring (str) +(defun rfc2104-hexstring-to-byte-list (str) (let (out) (while (< 0 (length str)) (push (rfc2104-hex-to-int (substring str -2)) out) (setq str (substring str 0 -2))) - (concat out))) + out)) (defun rfc2104-hash (hash block-length hash-length key text) (let* (;; if key is longer than B, reset it to HASH(key) @@ -110,9 +111,12 @@ (setq k_ipad (mapcar (lambda (c) (logxor c rfc2104-ipad)) k_ipad)) (setq k_opad (mapcar (lambda (c) (logxor c rfc2104-opad)) k_opad)) ;; perform outer hash - (funcall hash (concat k_opad (rfc2104-hexstring-to-bitstring - ;; perform inner hash - (funcall hash (concat k_ipad text))))))) + (funcall hash + (encode-coding-string + (concat k_opad (rfc2104-hexstring-to-byte-list + ;; perform inner hash + (funcall hash (concat k_ipad text)))) + 'iso-latin-1)))) (provide 'rfc2104) diff --git a/lisp/info.el b/lisp/info.el index 3253ae0ab29..e6c2d85ba24 100644 --- a/lisp/info.el +++ b/lisp/info.el @@ -3728,7 +3728,8 @@ the variable `Info-file-list-for-emacs'." (case-fold-search t) paragraph-markers (not-fontified-p ; the node hasn't already been fontified - (not (let ((where (next-property-change (point-min)))) + (not (let ((where (next-single-property-change (point-min) + 'font-lock-face))) (and where (not (= where (point-max))))))) (fontify-visited-p ; visited nodes need to be re-fontified (and Info-fontify-visited-nodes diff --git a/lisp/international/.arch-inventory b/lisp/international/.arch-inventory new file mode 100644 index 00000000000..1b376b629d0 --- /dev/null +++ b/lisp/international/.arch-inventory @@ -0,0 +1,4 @@ +# "uni-*.el" and "charprop.el" files are generated at compile time +precious ^(charprop|uni-.*)\.el$ + +# arch-tag: 7290e69e-5886-4603-9d06-b0f251fb1679 diff --git a/lisp/international/ccl.el b/lisp/international/ccl.el index d155c199738..5efd84ad343 100644 --- a/lisp/international/ccl.el +++ b/lisp/international/ccl.el @@ -211,16 +211,21 @@ ;; Embed string STR of length LEN in `ccl-program-vector' at ;; `ccl-current-ic'. (defun ccl-embed-string (len str) - (let ((i 0)) - (while (< i len) - (ccl-embed-data (logior (ash (aref str i) 16) - (if (< (1+ i) len) - (ash (aref str (1+ i)) 8) - 0) - (if (< (+ i 2) len) - (aref str (+ i 2)) - 0))) - (setq i (+ i 3))))) + (if (> len #xFFFFF) + (error "CCL: String too long: %d" len)) + (if (> (string-bytes str) len) + (dotimes (i len) + (ccl-embed-data (logior #x1000000 (aref str i)))) + (let ((i 0)) + (while (< i len) + (ccl-embed-data (logior (ash (aref str i) 16) + (if (< (1+ i) len) + (ash (aref str (1+ i)) 8) + 0) + (if (< (+ i 2) len) + (aref str (+ i 2)) + 0))) + (setq i (+ i 3)))))) ;; Embed a relative jump address to `ccl-current-ic' in ;; `ccl-program-vector' at IC without altering the other bit field. @@ -463,7 +468,6 @@ ;; Compile WRITE statement with string argument. (defun ccl-compile-write-string (str) - (setq str (string-as-unibyte str)) (let ((len (length str))) (ccl-embed-code 'write-const-string 1 len) (ccl-embed-string len str)) @@ -675,7 +679,6 @@ (ccl-embed-code 'write-const-jump 0 ccl-loop-head) (ccl-embed-data arg)) ((stringp arg) - (setq arg (string-as-unibyte arg)) (let ((len (length arg)) (i 0)) (ccl-embed-code 'write-string-jump 0 ccl-loop-head) @@ -733,7 +736,9 @@ (error "CCL: Invalid number of arguments: %s" cmd)) (let ((rrr (nth 1 cmd))) (cond ((integerp rrr) - (ccl-embed-code 'write-const-string 0 rrr)) + (if (> rrr #xFFFFF) + (ccl-compile-write-string (string rrr)) + (ccl-embed-code 'write-const-string 0 rrr))) ((stringp rrr) (ccl-compile-write-string rrr)) ((and (symbolp rrr) (vectorp (nth 2 cmd))) @@ -1137,12 +1142,16 @@ (insert "write \"") (while (< i len) (let ((code (ccl-get-next-code))) - (insert (format "%c" (lsh code -16))) - (if (< (1+ i) len) - (insert (format "%c" (logand (lsh code -8) 255)))) - (if (< (+ i 2) len) - (insert (format "%c" (logand code 255)))) - (setq i (+ i 3)))) + (if (/= (logand code #x1000000) 0) + (progn + (insert (logand code #xFFFFFF)) + (setq i (1+ i))) + (insert (format "%c" (lsh code -16))) + (if (< (1+ i) len) + (insert (format "%c" (logand (lsh code -8) 255)))) + (if (< (+ i 2) len) + (insert (format "%c" (logand code 255)))) + (setq i (+ i 3))))) (insert "\"\n")))) (defun ccl-dump-write-array (rrr cc) @@ -1509,7 +1518,12 @@ MAP-IDs := MAP-ID ... MAP-SET := MAP-IDs | (MAP-IDs) MAP-SET MAP-ID := integer " - `(let ((prog ,(ccl-compile (eval ccl-program)))) + `(let ((prog ,(unwind-protect + (progn + ;; To make ,(charset-id CHARSET) works well. + (fset 'charset-id 'charset-id-internal) + (ccl-compile (eval ccl-program))) + (fmakunbound 'charset-id)))) (defconst ,name prog ,doc) (put ',name 'ccl-program-idx (register-ccl-program ',name prog)) nil)) diff --git a/lisp/international/characters.el b/lisp/international/characters.el index 30c8a267e25..57ed3e5bb1f 100644 --- a/lisp/international/characters.el +++ b/lisp/international/characters.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multibyte character, character set, syntax, category @@ -28,19 +31,8 @@ ;;; Commentary: -;; This file contains multibyte characters. Save this file always in -;; the coding system `iso-2022-7bit'. - -;; This file does not define the syntax for Latin-N character sets; -;; those are defined by the files latin-N.el. - ;;; Code: -;; We must set utf-translate-cjk-mode to nil while loading this file -;; to avoid translating CJK characters in decode-char. -(defvar saved-utf-translate-cjk-mode utf-translate-cjk-mode) -(setq utf-translate-cjk-mode nil) - ;;; Predefined categories. ;; For each character set. @@ -80,7 +72,7 @@ (define-category ?1 "base (independent) vowel") (define-category ?2 "upper diacritical mark (including upper vowel)") (define-category ?3 "lower diacritical mark (including lower vowel)") -(define-category ?4 "tone mark") +(define-category ?4 "combining tone mark") (define-category ?5 "symbol") (define-category ?6 "digit") (define-category ?7 "vowel-modifying diacritical mark") @@ -106,601 +98,148 @@ ;; ASCII -(let ((ch 32)) - (while (< ch 127) ; All ASCII characters have - (modify-category-entry ch ?a) ; the category `a' (ASCII) - (modify-category-entry ch ?l) ; and `l' (Latin). - (setq ch (1+ ch)))) +;; All ASCII characters have the category `a' (ASCII) and `l' (Latin). +(modify-category-entry '(32 . 127) ?a) +(modify-category-entry '(32 . 127) ?l) -;; Arabic character set +;; Deal with the CJK charsets first. Since the syntax of blocks is +;; defined per charset, and the charsets may contain e.g. Latin +;; characters, we end up with the wrong syntax definitions if we're +;; not careful. -(let ((charsets '(arabic-iso8859-6 - arabic-digit - arabic-1-column - arabic-2-column))) - (while charsets -;; (modify-syntax-entry (make-char (car charsets)) "w") - (modify-category-entry (make-char (car charsets)) ?b) - (setq charsets (cdr charsets)))) -(let ((ch #x600)) - (while (<= ch #x6ff) - (modify-category-entry (decode-char 'ucs ch) ?b) - (setq ch (1+ ch))) - (setq ch #xfb50) - (while (<= ch #xfdff) - (modify-category-entry (decode-char 'ucs ch) ?b) - (setq ch (1+ ch))) - (setq ch #xfe70) - (while (<= ch #xfefe) - (modify-category-entry (decode-char 'ucs ch) ?b) - (setq ch (1+ ch)))) - -;; Chinese character set (GB2312) - -;; (modify-syntax-entry (make-char 'chinese-gb2312) "w") -(modify-syntax-entry (make-char 'chinese-gb2312 33) "_") -(modify-syntax-entry (make-char 'chinese-gb2312 34) "_") -(modify-syntax-entry (make-char 'chinese-gb2312 41) "_") -(modify-syntax-entry ?\$A!2(B "($A!3(B") -(modify-syntax-entry ?\$A!4(B "($A!5(B") -(modify-syntax-entry ?\$A!6(B "($A!7(B") -(modify-syntax-entry ?\$A!8(B "($A!9(B") -(modify-syntax-entry ?\$A!:(B "($A!;(B") -(modify-syntax-entry ?\$A!<(B "($A!=(B") -(modify-syntax-entry ?\$A!>(B "($A!?(B") -(modify-syntax-entry ?\$A#((B "($A#)(B") -(modify-syntax-entry ?\$A#{(B "($A#}(B") -(modify-syntax-entry ?\$A#[(B "($A#](B") -(modify-syntax-entry ?\$A!3(B ")$A!2(B") -(modify-syntax-entry ?\$A!5(B ")$A!4(B") -(modify-syntax-entry ?\$A!7(B ")$A!6(B") -(modify-syntax-entry ?\$A!9(B ")$A!8(B") -(modify-syntax-entry ?\$A!;(B ")$A!:(B") -(modify-syntax-entry ?\$A!=(B ")$A!<(B") -(modify-syntax-entry ?\$A!?(B ")$A!>(B") -(modify-syntax-entry ?\$A#)(B ")$A#((B") -(modify-syntax-entry ?\$A#}(B ")$A#{(B") -(modify-syntax-entry ?\$A#](B ")$A#[(B") - -(let ((chars "$A#,!"!##.!$#;#:#?#!!C!-!'#|#_!.!/!0!1#"!e#`!d(B")) - (dotimes (i (length chars)) - (modify-syntax-entry (aref chars i) "."))) - -(modify-category-entry (make-char 'chinese-gb2312) ?c) -(modify-category-entry (make-char 'chinese-gb2312) ?\|) -(modify-category-entry (make-char 'chinese-gb2312 35) ?A) -(modify-category-entry (make-char 'chinese-gb2312 36) ?H) -(modify-category-entry (make-char 'chinese-gb2312 37) ?K) -(modify-category-entry (make-char 'chinese-gb2312 38) ?G) -(modify-category-entry (make-char 'chinese-gb2312 39) ?Y) -(let ((row 48)) - (while (< row 127) - (modify-category-entry (make-char 'chinese-gb2312 row) ?C) - (setq row (1+ row)))) - -(let ((tbl (standard-case-table))) - (dotimes (i 26) - (set-case-syntax-pair (make-char 'chinese-gb2312 #x23 (+ #x41 i)) - (make-char 'chinese-gb2312 #x23 (+ #x61 i)) tbl)) - (dotimes (i 24) - (set-case-syntax-pair (make-char 'chinese-gb2312 #x26 (+ #x21 i)) - (make-char 'chinese-gb2312 #x26 (+ #x41 i)) tbl)) - (dotimes (i 33) - (set-case-syntax-pair (make-char 'chinese-gb2312 #x27 (+ #x21 i)) - (make-char 'chinese-gb2312 #x27 (+ #x51 i)) tbl))) - -;; Chinese character set (BIG5) - -(let ((from (decode-big5-char #xA141)) - (to (decode-big5-char #xA15D))) - (while (< from to) - (modify-syntax-entry from ".") - (setq from (1+ from)))) -(let ((from (decode-big5-char #xA1A5)) - (to (decode-big5-char #xA1AD))) - (while (< from to) - (modify-syntax-entry from ".") - (setq from (1+ from)))) -(let ((from (decode-big5-char #xA1AD)) - (to (decode-big5-char #xA2AF))) - (while (< from to) - (modify-syntax-entry from "_") - (setq from (1+ from)))) - -(let ((parens "$(0!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c(B") - open close) - (dotimes (i (/ (length parens) 2)) - (setq open (aref parens (* i 2)) - close (aref parens (1+ (* i 2)))) - (modify-syntax-entry open (format "(%c" close)) - (modify-syntax-entry close (format ")%c" open)))) +;; Chinese characters (Unicode) +(modify-category-entry '(#x2E80 . #x312F) ?|) +(modify-category-entry '(#x3190 . #x33FF) ?|) +(modify-category-entry '(#x3400 . #x9FAF) ?C) +(modify-category-entry '(#x3400 . #x9FAF) ?c) +(modify-category-entry '(#x3400 . #x9FAF) ?|) +(modify-category-entry '(#xF900 . #xFAFF) ?C) +(modify-category-entry '(#xF900 . #xFAFF) ?c) +(modify-category-entry '(#xF900 . #xFAFF) ?|) +(modify-category-entry '(#x20000 . #x2AFFF) ?|) +(modify-category-entry '(#x2F800 . #x2FFFF) ?|) -(let ((generic-big5-1-char (make-char 'chinese-big5-1)) - (generic-big5-2-char (make-char 'chinese-big5-2))) -;; (modify-syntax-entry generic-big5-1-char "w") -;; (modify-syntax-entry generic-big5-2-char "w") - (modify-category-entry generic-big5-1-char ?c) - (modify-category-entry generic-big5-2-char ?c) +;; Chinese character set (GB2312) - (modify-category-entry generic-big5-1-char ?C) - (modify-category-entry generic-big5-2-char ?C) +(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2121 #x217E) +(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2221 #x227E) +(map-charset-chars #'modify-syntax-entry 'chinese-gb2312 "_" #x2921 #x297E) - (modify-category-entry generic-big5-1-char ?\|) - (modify-category-entry generic-big5-2-char ?\|)) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?c) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2330 #x2339) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2341 #x235A) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?A #x2361 #x237A) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?H #x2421 #x247E) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?K #x2521 #x257E) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?G #x2621 #x267E) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?Y #x2721 #x277E) +(map-charset-chars #'modify-category-entry 'chinese-gb2312 ?C #x3021 #x7E7E) -(let ((tbl (standard-case-table))) - (dotimes (i 22) - (set-case-syntax-pair (decode-big5-char (+ #xA2CF i)) - (decode-big5-char (+ #xA2CF i 26)) tbl)) - (dotimes (i 4) - (set-case-syntax-pair (decode-big5-char (+ #xA2E4 i)) - (decode-big5-char (+ #xA340 i)) tbl)) - (dotimes (i 24) - (set-case-syntax-pair (decode-big5-char (+ #xA344 i)) - (decode-big5-char (+ #xA344 i 24)) tbl))) +;; Chinese character set (BIG5) +(map-charset-chars #'modify-category-entry 'big5 ?c) +(map-charset-chars #'modify-category-entry 'big5 ?C #xA259 #xA25F) +(map-charset-chars #'modify-category-entry 'big5 ?C #xA440 #xC67E) +(map-charset-chars #'modify-category-entry 'big5 ?C #xC940 #xF9DF) ;; Chinese character set (CNS11643) -(let ((cns-list '(chinese-cns11643-1 - chinese-cns11643-2 - chinese-cns11643-3 - chinese-cns11643-4 - chinese-cns11643-5 - chinese-cns11643-6 - chinese-cns11643-7)) - generic-char) - (while cns-list - (setq generic-char (make-char (car cns-list))) -;; (modify-syntax-entry generic-char "w") - (modify-category-entry generic-char ?c) - (modify-category-entry generic-char ?C) - (modify-category-entry generic-char ?|) - (setq cns-list (cdr cns-list)))) - -(let ((parens "$(G!>!?!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_!`!a!b!c(B") - open close) - (dotimes (i (/ (length parens) 2)) - (setq open (aref parens (* i 2)) - close (aref parens (1+ (* i 2)))) - (modify-syntax-entry open (format "(%c" close)) - (modify-syntax-entry close (format ")%c" open)))) +(dolist (c '(chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 + chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 + chinese-cns11643-7)) + (map-charset-chars #'modify-category-entry c ?c) + (if (eq c 'chinese-cns11643-1) + (map-charset-chars #'modify-category-entry c ?C #x4421 #x7E7E) + (map-charset-chars #'modify-category-entry c ?C))) -;; Cyrillic character set (ISO-8859-5) +;; Japanese character set (JISX0201, JISX0208, JISX0212, JISX0213) -(modify-category-entry (make-char 'cyrillic-iso8859-5) ?y) - -(modify-syntax-entry (make-char 'cyrillic-iso8859-5 160) " ") -(modify-syntax-entry ?,L-(B ".") -(modify-syntax-entry ?,Lp(B ".") -(modify-syntax-entry ?,L}(B ".") -(let ((tbl (standard-case-table))) - (set-case-syntax-pair ?,L!(B ?,Lq(B tbl) - (set-case-syntax-pair ?,L"(B ?,Lr(B tbl) - (set-case-syntax-pair ?,L#(B ?,Ls(B tbl) - (set-case-syntax-pair ?,L$(B ?,Lt(B tbl) - (set-case-syntax-pair ?,L%(B ?,Lu(B tbl) - (set-case-syntax-pair ?,L&(B ?,Lv(B tbl) - (set-case-syntax-pair ?,L'(B ?,Lw(B tbl) - (set-case-syntax-pair ?,L((B ?,Lx(B tbl) - (set-case-syntax-pair ?,L)(B ?,Ly(B tbl) - (set-case-syntax-pair ?,L*(B ?,Lz(B tbl) - (set-case-syntax-pair ?,L+(B ?,L{(B tbl) - (set-case-syntax-pair ?,L,(B ?,L|(B tbl) - (set-case-syntax-pair ?,L.(B ?,L~(B tbl) - (set-case-syntax-pair ?,L/(B ?,L(B tbl) - (set-case-syntax-pair ?,L0(B ?,LP(B tbl) - (set-case-syntax-pair ?,L1(B ?,LQ(B tbl) - (set-case-syntax-pair ?,L2(B ?,LR(B tbl) - (set-case-syntax-pair ?,L3(B ?,LS(B tbl) - (set-case-syntax-pair ?,L4(B ?,LT(B tbl) - (set-case-syntax-pair ?,L5(B ?,LU(B tbl) - (set-case-syntax-pair ?,L6(B ?,LV(B tbl) - (set-case-syntax-pair ?,L7(B ?,LW(B tbl) - (set-case-syntax-pair ?,L8(B ?,LX(B tbl) - (set-case-syntax-pair ?,L9(B ?,LY(B tbl) - (set-case-syntax-pair ?,L:(B ?,LZ(B tbl) - (set-case-syntax-pair ?,L;(B ?,L[(B tbl) - (set-case-syntax-pair ?,L<(B ?,L\(B tbl) - (set-case-syntax-pair ?,L=(B ?,L](B tbl) - (set-case-syntax-pair ?,L>(B ?,L^(B tbl) - (set-case-syntax-pair ?,L?(B ?,L_(B tbl) - (set-case-syntax-pair ?,L@(B ?,L`(B tbl) - (set-case-syntax-pair ?,LA(B ?,La(B tbl) - (set-case-syntax-pair ?,LB(B ?,Lb(B tbl) - (set-case-syntax-pair ?,LC(B ?,Lc(B tbl) - (set-case-syntax-pair ?,LD(B ?,Ld(B tbl) - (set-case-syntax-pair ?,LE(B ?,Le(B tbl) - (set-case-syntax-pair ?,LF(B ?,Lf(B tbl) - (set-case-syntax-pair ?,LG(B ?,Lg(B tbl) - (set-case-syntax-pair ?,LH(B ?,Lh(B tbl) - (set-case-syntax-pair ?,LI(B ?,Li(B tbl) - (set-case-syntax-pair ?,LJ(B ?,Lj(B tbl) - (set-case-syntax-pair ?,LK(B ?,Lk(B tbl) - (set-case-syntax-pair ?,LL(B ?,Ll(B tbl) - (set-case-syntax-pair ?,LM(B ?,Lm(B tbl) - (set-case-syntax-pair ?,LN(B ?,Ln(B tbl) - (set-case-syntax-pair ?,LO(B ?,Lo(B tbl) - (set-case-syntax-pair ?$,1(!(B ?$,1(q(B tbl) - (set-case-syntax-pair ?$,1("(B ?$,1(r(B tbl) - (set-case-syntax-pair ?$,1(#(B ?$,1(s(B tbl) - (set-case-syntax-pair ?$,1($(B ?$,1(t(B tbl) - (set-case-syntax-pair ?$,1(%(B ?$,1(u(B tbl) - (set-case-syntax-pair ?$,1(&(B ?$,1(v(B tbl) - (set-case-syntax-pair ?$,1('(B ?$,1(w(B tbl) - (set-case-syntax-pair ?$,1(((B ?$,1(x(B tbl) - (set-case-syntax-pair ?$,1()(B ?$,1(y(B tbl) - (set-case-syntax-pair ?$,1(*(B ?$,1(z(B tbl) - (set-case-syntax-pair ?$,1(+(B ?$,1({(B tbl) - (set-case-syntax-pair ?$,1(,(B ?$,1(|(B tbl) - (set-case-syntax-pair ?$,1(.(B ?$,1(~(B tbl) - (set-case-syntax-pair ?$,1(/(B ?$,1((B tbl) - (set-case-syntax-pair ?$,1(0(B ?$,1(P(B tbl) - (set-case-syntax-pair ?$,1(1(B ?$,1(Q(B tbl) - (set-case-syntax-pair ?$,1(2(B ?$,1(R(B tbl) - (set-case-syntax-pair ?$,1(3(B ?$,1(S(B tbl) - (set-case-syntax-pair ?$,1(4(B ?$,1(T(B tbl) - (set-case-syntax-pair ?$,1(5(B ?$,1(U(B tbl) - (set-case-syntax-pair ?$,1(6(B ?$,1(V(B tbl) - (set-case-syntax-pair ?$,1(7(B ?$,1(W(B tbl) - (set-case-syntax-pair ?$,1(8(B ?$,1(X(B tbl) - (set-case-syntax-pair ?$,1(9(B ?$,1(Y(B tbl) - (set-case-syntax-pair ?$,1(:(B ?$,1(Z(B tbl) - (set-case-syntax-pair ?$,1(;(B ?$,1([(B tbl) - (set-case-syntax-pair ?$,1(<(B ?$,1(\(B tbl) - (set-case-syntax-pair ?$,1(=(B ?$,1(](B tbl) - (set-case-syntax-pair ?$,1(>(B ?$,1(^(B tbl) - (set-case-syntax-pair ?$,1(?(B ?$,1(_(B tbl) - (set-case-syntax-pair ?$,1(@(B ?$,1(`(B tbl) - (set-case-syntax-pair ?$,1(A(B ?$,1(a(B tbl) - (set-case-syntax-pair ?$,1(B(B ?$,1(b(B tbl) - (set-case-syntax-pair ?$,1(C(B ?$,1(c(B tbl) - (set-case-syntax-pair ?$,1(D(B ?$,1(d(B tbl) - (set-case-syntax-pair ?$,1(E(B ?$,1(e(B tbl) - (set-case-syntax-pair ?$,1(F(B ?$,1(f(B tbl) - (set-case-syntax-pair ?$,1(G(B ?$,1(g(B tbl) - (set-case-syntax-pair ?$,1(H(B ?$,1(h(B tbl) - (set-case-syntax-pair ?$,1(I(B ?$,1(i(B tbl) - (set-case-syntax-pair ?$,1(J(B ?$,1(j(B tbl) - (set-case-syntax-pair ?$,1(K(B ?$,1(k(B tbl) - (set-case-syntax-pair ?$,1(L(B ?$,1(l(B tbl) - (set-case-syntax-pair ?$,1(M(B ?$,1(m(B tbl) - (set-case-syntax-pair ?$,1(N(B ?$,1(n(B tbl) - (set-case-syntax-pair ?$,1(O(B ?$,1(o(B tbl)) - -;; Devanagari character set - -;;; Commented out since the categories appear not to be used anywhere -;;; and word syntax is the default. -;; (let ((deflist '(;; chars syntax category -;; ("$(5!!!"!#(B" "w" ?7) ; vowel-modifying diacritical mark -;; ; chandrabindu, anuswar, visarga -;; ("$(5!$(B-$(5!2(B" "w" ?1) ; independent vowel -;; ("$(5!3(B-$(5!X(B" "w" ?0) ; consonant -;; ("$(5!Z(B-$(5!g(B" "w" ?8) ; matra -;; ("$(5!q(B-$(5!z(B" "w" ?6) ; digit -;; ;; Unicode equivalents -;; ("$,15A5B5C(B" "w" ?7) ; vowel-modifying diacritical mark -;; ; chandrabindu, anuswar, visarga -;; ("$,15E(B-$,15M(B" "w" ?1) ; independent vowel -;; ("$,15U(B-$,15y(B" "w" ?0) ; consonant -;; ("$,15~(B-$,16)(B" "w" ?8) ; matra -;; ("$,16F(B-$,16O(B" "w" ?6) ; digit -;; )) -;; elm chars len syntax category to ch i) -;; (while deflist -;; (setq elm (car deflist)) -;; (setq chars (car elm) -;; len (length chars) -;; syntax (nth 1 elm) -;; category (nth 2 elm) -;; i 0) -;; (while (< i len) -;; (if (= (aref chars i) ?-) -;; (setq i (1+ i) -;; to (aref chars i)) -;; (setq ch (aref chars i) -;; to ch)) -;; (while (<= ch to) -;; (modify-syntax-entry ch syntax) -;; (modify-category-entry ch category) -;; (setq ch (1+ ch))) -;; (setq i (1+ i))) -;; (setq deflist (cdr deflist)))) +(map-charset-chars #'modify-category-entry 'katakana-jisx0201 ?k) -;; Ethiopic character set +(map-charset-chars #'modify-category-entry 'latin-jisx0201 ?r) -(modify-category-entry (make-char 'ethiopic) ?e) -;; (modify-syntax-entry (make-char 'ethiopic) "w") -(dotimes (i (1+ (- #x137c #x1200))) - (modify-category-entry (decode-char 'ucs (+ #x1200 i)) ?e)) -(let ((chars '(?$(3$h(B ?$(3$i(B ?$(3$j(B ?$(3$k(B ?$(3$l(B ?$(3$m(B ?$(3$n(B ?$(3$o(B ?$(3%i(B ?$(3%t(B ?$(3%u(B ?$(3%v(B ?$(3%w(B ?$(3%x(B - ;; Unicode equivalents of the above: - ?$,1Q!(B ?$,1Q"(B ?$,1Q#(B ?$,1Q$(B ?$,1Q%(B ?$,1Q&(B ?$,1Q'(B ?$,1Q((B ?$,3op(B ?$,3o{(B ?$,3o|(B ?$,3o}(B ?$,3o~(B ?$,3o(B))) - (while chars - (modify-syntax-entry (car chars) ".") - (setq chars (cdr chars)))) - -;; Greek character set (ISO-8859-7) - -(modify-category-entry (make-char 'greek-iso8859-7) ?g) -(let ((c #x370)) - (while (<= c #x3ff) - (modify-category-entry (decode-char 'ucs c) ?g) - (setq c (1+ c)))) - -;; (let ((c 182)) -;; (while (< c 255) -;; (modify-syntax-entry (make-char 'greek-iso8859-7 c) "w") -;; (setq c (1+ c)))) -;; (modify-syntax-entry (make-char 'greek-iso8859-7 160) "w") ; NBSP -(modify-syntax-entry ?,F7(B ".") -(modify-syntax-entry ?,F;(B ".") -(modify-syntax-entry ?,F=(B ".") -(let ((tbl (standard-case-table))) - ;; Fixme: non-letter syntax copied from latin-1, but that's dubious - ;; in several cases. - (set-case-syntax ?,F!(B "." tbl) - (set-case-syntax ?,F"(B "." tbl) - (set-case-syntax ?,F&(B "." tbl) - (set-case-syntax ?,F&(B "_" tbl) - (set-case-syntax ?,F'(B "." tbl) - (set-case-syntax ?,F)(B "_" tbl) - (set-case-syntax ?,F+(B "." tbl) - (set-case-syntax ?,F,(B "_" tbl) - (set-case-syntax ?,F-(B "_" tbl) - (set-case-syntax ?,F/(B "." tbl) - (set-case-syntax ?,F0(B "_" tbl) - (set-case-syntax ?,F1(B "_" tbl) -;; (set-case-syntax ?,F7(B "_" tbl) -;; (set-case-syntax ?,F=(B "_" tbl) - (set-case-syntax-pair ?,FA(B ?,Fa(B tbl) - (set-case-syntax-pair ?,FB(B ?,Fb(B tbl) - (set-case-syntax-pair ?,FC(B ?,Fc(B tbl) - (set-case-syntax-pair ?,FD(B ?,Fd(B tbl) - (set-case-syntax-pair ?,FE(B ?,Fe(B tbl) - (set-case-syntax-pair ?,FF(B ?,Ff(B tbl) - (set-case-syntax-pair ?,FG(B ?,Fg(B tbl) - (set-case-syntax-pair ?,FH(B ?,Fh(B tbl) - (set-case-syntax-pair ?,FI(B ?,Fi(B tbl) - (set-case-syntax-pair ?,FJ(B ?,Fj(B tbl) - (set-case-syntax-pair ?,FK(B ?,Fk(B tbl) - (set-case-syntax-pair ?,FL(B ?,Fl(B tbl) - (set-case-syntax-pair ?,FM(B ?,Fm(B tbl) - (set-case-syntax-pair ?,FN(B ?,Fn(B tbl) - (set-case-syntax-pair ?,FO(B ?,Fo(B tbl) - (set-case-syntax-pair ?,FP(B ?,Fp(B tbl) - (set-case-syntax-pair ?,FQ(B ?,Fq(B tbl) - (set-upcase-syntax ?,FS(B ?,Fr(B tbl) - (set-case-syntax-pair ?,FS(B ?,Fs(B tbl) - (set-case-syntax-pair ?,FT(B ?,Ft(B tbl) - (set-case-syntax-pair ?,FU(B ?,Fu(B tbl) - (set-case-syntax-pair ?,FV(B ?,Fv(B tbl) - (set-case-syntax-pair ?,FW(B ?,Fw(B tbl) - (set-case-syntax-pair ?,FX(B ?,Fx(B tbl) - (set-case-syntax-pair ?,FY(B ?,Fy(B tbl) - (set-case-syntax-pair ?,FZ(B ?,Fz(B tbl) - (set-case-syntax-pair ?,F[(B ?,F{(B tbl) - (set-case-syntax-pair ?,F?(B ?,F~(B tbl) - (set-case-syntax-pair ?,F>(B ?,F}(B tbl) - (set-case-syntax-pair ?,F<(B ?,F|(B tbl) - (set-case-syntax-pair ?,F6(B ?,F\(B tbl) - (set-case-syntax-pair ?,F8(B ?,F](B tbl) - (set-case-syntax-pair ?,F9(B ?,F^(B tbl) - (set-case-syntax-pair ?,F:(B ?,F_(B tbl) - ;; Unicode equivalents - (set-case-syntax-pair ?$,1&q(B ?$,1'1(B tbl) - (set-case-syntax-pair ?$,1&r(B ?$,1'2(B tbl) - (set-case-syntax-pair ?$,1&s(B ?$,1'3(B tbl) - (set-case-syntax-pair ?$,1&t(B ?$,1'4(B tbl) - (set-case-syntax-pair ?$,1&u(B ?$,1'5(B tbl) - (set-case-syntax-pair ?$,1&v(B ?$,1'6(B tbl) - (set-case-syntax-pair ?$,1&w(B ?$,1'7(B tbl) - (set-case-syntax-pair ?$,1&x(B ?$,1'8(B tbl) - (set-case-syntax-pair ?$,1&y(B ?$,1'9(B tbl) - (set-case-syntax-pair ?$,1&z(B ?$,1':(B tbl) - (set-case-syntax-pair ?$,1&{(B ?$,1';(B tbl) - (set-case-syntax-pair ?$,1&|(B ?$,1'<(B tbl) - (set-case-syntax-pair ?$,1&}(B ?$,1'=(B tbl) - (set-case-syntax-pair ?$,1&~(B ?$,1'>(B tbl) - (set-case-syntax-pair ?$,1&(B ?$,1'?(B tbl) - (set-case-syntax-pair ?$,1' (B ?$,1'@(B tbl) - (set-case-syntax-pair ?$,1'!(B ?$,1'A(B tbl) - (set-upcase-syntax ?$,1'#(B ?$,1'B(B tbl) - (set-case-syntax-pair ?$,1'#(B ?$,1'C(B tbl) - (set-case-syntax-pair ?$,1'$(B ?$,1'D(B tbl) - (set-case-syntax-pair ?$,1'%(B ?$,1'E(B tbl) - (set-case-syntax-pair ?$,1'&(B ?$,1'F(B tbl) - (set-case-syntax-pair ?$,1''(B ?$,1'G(B tbl) - (set-case-syntax-pair ?$,1'((B ?$,1'H(B tbl) - (set-case-syntax-pair ?$,1')(B ?$,1'I(B tbl) - (set-case-syntax-pair ?$,1'*(B ?$,1'J(B tbl) - (set-case-syntax-pair ?$,1'+(B ?$,1'K(B tbl) - (set-case-syntax-pair ?$,1&o(B ?$,1'N(B tbl) - (set-case-syntax-pair ?$,1&n(B ?$,1'M(B tbl) - (set-case-syntax-pair ?$,1&l(B ?$,1'L(B tbl) - (set-case-syntax-pair ?$,1&f(B ?$,1',(B tbl) - (set-case-syntax-pair ?$,1&h(B ?$,1'-(B tbl) - (set-case-syntax-pair ?$,1&i(B ?$,1'.(B tbl) - (set-case-syntax-pair ?$,1&j(B ?$,1'/(B tbl)) - -;; Hebrew character set (ISO-8859-8) - -(modify-category-entry (make-char 'hebrew-iso8859-8) ?w) -(let ((c #x591)) - (while (<= c #x5f4) - (modify-category-entry (decode-char 'ucs c) ?w) - (setq c (1+ c)))) - -(modify-syntax-entry (make-char 'hebrew-iso8859-8 208) ".") ; PASEQ -(modify-syntax-entry (make-char 'hebrew-iso8859-8 211) ".") ; SOF PASUQ -(modify-syntax-entry (decode-char 'ucs #x5be) ".") ; MAQAF -(modify-syntax-entry (decode-char 'ucs #x5c0) ".") ; PASEQ -(modify-syntax-entry (decode-char 'ucs #x5c3) ".") ; SOF PASUQ -(modify-syntax-entry (decode-char 'ucs #x5f3) ".") ; GERESH -(modify-syntax-entry (decode-char 'ucs #x5f4) ".") ; GERSHAYIM - -;; (let ((c 224)) -;; (while (< c 251) -;; (modify-syntax-entry (make-char 'hebrew-iso8859-8 c) "w") -;; (setq c (1+ c)))) -;; (modify-syntax-entry (make-char 'hebrew-iso8859-8 160) "w") ; NBSP - -;; Indian character set (IS 13194 and other Emacs original Indian charsets) - -(modify-category-entry (make-char 'indian-is13194) ?i) -(modify-category-entry (make-char 'indian-2-column) ?I) -(modify-category-entry (make-char 'indian-glyph) ?I) -;; Unicode Devanagari block -(let ((c #x901)) - (while (<= c #x970) - (modify-category-entry (decode-char 'ucs c) ?i) - (setq c (1+ c)))) - -(let ((l '(;; RANGE CATEGORY MEANINGS - (#x01 #x03 ?7) ; vowel modifier - (#x05 #x14 ?1) ; base vowel - (#x15 #x39 ?0) ; consonants - (#x3e #x4d ?8) ; vowel modifier - (#x51 #x54 ?4) ; stress/tone mark - (#x58 #x5f ?0) ; consonants - (#x60 #x61 ?1) ; base vowel - (#x62 #x63 ?8) ; vowel modifier - (#x66 #x6f ?6) ; digits - ))) - (dolist (elt1 '(#x900 #x980 #xa00 #xa80 #xb00 #xb80 #xc00 #xc80 #xd00)) - (dolist (elt2 l) - (let* ((from (car elt2)) - (counts (1+ (- (nth 1 elt2) from))) - (category (nth 2 elt2))) - (dotimes (i counts) - (modify-category-entry (decode-char 'ucs (+ elt1 from i)) - category)))))) - -;; Japanese character set (JISX0201-kana, JISX0201-roman, JISX0208, JISX0212) - -(modify-category-entry (make-char 'katakana-jisx0201) ?k) -(modify-category-entry (make-char 'katakana-jisx0201) ?j) -(modify-category-entry (make-char 'latin-jisx0201) ?r) -(modify-category-entry (make-char 'japanese-jisx0208) ?j) -(modify-category-entry (make-char 'japanese-jisx0212) ?j) -(modify-category-entry (make-char 'katakana-jisx0201) ?\|) -(modify-category-entry (make-char 'japanese-jisx0208) ?\|) -(modify-category-entry (make-char 'japanese-jisx0212) ?\|) +(dolist (l '(katakana-jisx0201 japanese-jisx0208 japanese-jisx0212 + japanese-jisx0213-1 japanese-jisx0213-2)) + (map-charset-chars #'modify-category-entry l ?j)) ;; Unicode equivalents of JISX0201-kana -(let ((c #xff61)) - (while (<= c #xff9f) - (modify-category-entry (decode-char 'ucs c) ?k) - (modify-category-entry (decode-char 'ucs c) ?j) - (modify-category-entry (decode-char 'ucs c) ?\|) - (setq c (1+ c)))) +(let ((range '(#xff61 . #xff9f))) + (modify-category-entry range ?k) + (modify-category-entry range ?j) + (modify-category-entry range ?\|)) ;; Katakana block -(let ((c #x30a0)) - (while (<= c #x30ff) - ;; ?K is double width, ?k isn't specified - (modify-category-entry (decode-char 'ucs c) ?k) - (modify-category-entry (decode-char 'ucs c) ?j) - (modify-category-entry (decode-char 'ucs c) ?\|) - (setq c (1+ c)))) +(let ((range '(#x30a0 . #x30ff))) + ;; ?K is double width, ?k isn't specified + (modify-category-entry range ?K) + (modify-category-entry range ?\|)) ;; Hiragana block -(let ((c #x3040)) - (while (<= c #x309f) - ;; ?H is actually defined to be double width - (modify-category-entry (decode-char 'ucs c) ?H) - ;;(modify-category-entry (decode-char 'ucs c) ?j) - (modify-category-entry (decode-char 'ucs c) ?\|) - (setq c (1+ c)))) +(let ((range '(#x3040 . #x309d))) + ;; ?H is actually defined to be double width + ;;(modify-category-entry range ?H) + (modify-category-entry range ?\|) + ) ;; JISX0208 -;; (modify-syntax-entry (make-char 'japanese-jisx0208) "w") -(modify-syntax-entry (make-char 'japanese-jisx0208 33) "_") -(modify-syntax-entry (make-char 'japanese-jisx0208 34) "_") -(modify-syntax-entry (make-char 'japanese-jisx0208 40) "_") -(let ((chars '(?$B!<(B ?$B!+(B ?$B!,(B ?$B!3(B ?$B!4(B ?$B!5(B ?$B!6(B ?$B!7(B ?$B!8(B ?$B!9(B ?$B!:(B ?$B!;(B))) - (while chars - (modify-syntax-entry (car chars) "w") - (setq chars (cdr chars)))) -(let ((parens "$B!J!K!L!M!N!O!P!Q!R!S!T!U!V!W!X!Y!Z![(B" ) - open close) - (dotimes (i (/ (length parens) 2)) - (setq open (aref parens (* i 2)) - close (aref parens (1+ (* i 2)))) - (modify-syntax-entry open (format "(%c" close)) - (modify-syntax-entry close (format ")%c" open)))) - -(modify-category-entry (make-char 'japanese-jisx0208 35) ?A) -(modify-category-entry (make-char 'japanese-jisx0208 36) ?H) -(modify-category-entry (make-char 'japanese-jisx0208 37) ?K) -(modify-category-entry (make-char 'japanese-jisx0208 38) ?G) -(modify-category-entry (make-char 'japanese-jisx0208 39) ?Y) -(let ((row 48)) - (while (< row 127) - (modify-category-entry (make-char 'japanese-jisx0208 row) ?C) - (setq row (1+ row)))) -(modify-category-entry ?$B!<(B ?K) -(let ((chars '(?$B!+(B ?$B!,(B))) +(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2121 #x227E) +(map-charset-chars #'modify-syntax-entry 'japanese-jisx0208 "_" #x2821 #x287E) +(let ((chars '(?ー ?゛ ?゜ ?ヽ ?ヾ ?ゝ ?ゞ ?〃 ?仝 ?々 ?〆 ?〇))) + (dolist (elt chars) + (modify-syntax-entry (car chars) "w"))) + +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?A #x2321 #x237E) +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?H #x2421 #x247E) +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?K #x2521 #x257E) +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?G #x2621 #x267E) +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?Y #x2721 #x277E) +(map-charset-chars #'modify-category-entry 'japanese-jisx0208 ?C #x3021 #x7E7E) +(modify-category-entry ?ー ?K) +(let ((chars '(?゛ ?゜))) (while chars (modify-category-entry (car chars) ?K) (modify-category-entry (car chars) ?H) (setq chars (cdr chars)))) -(let ((chars '(?$B!3(B ?$B!4(B ?$B!5(B ?$B!6(B ?$B!7(B ?$B!8(B ?$B!9(B ?$B!:(B ?$B!;(B))) +(let ((chars '(?ヽ ?ヾ ?ゝ ?ゞ ?〃 ?仝 ?々 ?〆 ?〇))) (while chars (modify-category-entry (car chars) ?C) (setq chars (cdr chars)))) -(let ((tbl (standard-case-table))) - (dotimes (i 26) - (set-case-syntax-pair (make-char 'japanese-jisx0208 #x23 (+ #x41 i)) - (make-char 'japanese-jisx0208 #x23 (+ #x61 i)) tbl)) - (dotimes (i 24) - (set-case-syntax-pair (make-char 'japanese-jisx0208 #x26 (+ #x21 i)) - (make-char 'japanese-jisx0208 #x26 (+ #x41 i)) tbl)) - (dotimes (i 33) - (set-case-syntax-pair (make-char 'japanese-jisx0208 #x27 (+ #x21 i)) - (make-char 'japanese-jisx0208 #x27 (+ #x51 i)) tbl))) - ;; JISX0212 -;; (modify-syntax-entry (make-char 'japanese-jisx0212) "w") -(modify-syntax-entry (make-char 'japanese-jisx0212 33) "_") -(modify-syntax-entry (make-char 'japanese-jisx0212 34) "_") -(modify-syntax-entry (make-char 'japanese-jisx0212 35) "_") -(modify-category-entry (make-char 'japanese-jisx0212 ) ?C) +(map-charset-chars #'modify-syntax-entry 'japanese-jisx0212 "_" #x2121 #x237E) ;; JISX0201-Kana -;; (modify-syntax-entry (make-char 'katakana-jisx0201) "w") -(let ((chars '(?(I!(B ?(I$(B ?(I%(B - ;; Unicode: - ?$,3sa(B ?$,3sd(B ?$,3se(B))) + +(let ((chars '(?。 ?、 ?・))) (while chars (modify-syntax-entry (car chars) ".") (setq chars (cdr chars)))) -(modify-syntax-entry ?\(I"(B "((I#(B") -(modify-syntax-entry ?\(I#(B "((I"(B") +(modify-syntax-entry ?\「 "(」") +(modify-syntax-entry ?\」 "(「") ;; Korean character set (KSC5601) -;; (modify-syntax-entry (make-char 'korean-ksc5601) "w") -(modify-syntax-entry (make-char 'korean-ksc5601 33) "_") -(modify-syntax-entry (make-char 'korean-ksc5601 34) "_") -(modify-syntax-entry (make-char 'korean-ksc5601 38) "_") -(modify-syntax-entry (make-char 'korean-ksc5601 39) "_") -(modify-syntax-entry (make-char 'korean-ksc5601 40) "_") -(modify-syntax-entry (make-char 'korean-ksc5601 41) "_") - -(modify-category-entry (make-char 'korean-ksc5601) ?h) -(modify-category-entry (make-char 'korean-ksc5601 35) ?A) -(modify-category-entry (make-char 'korean-ksc5601 37) ?G) -(modify-category-entry (make-char 'korean-ksc5601 42) ?H) -(modify-category-entry (make-char 'korean-ksc5601 43) ?K) -(modify-category-entry (make-char 'korean-ksc5601 44) ?Y) - -(let ((parens "$(C!2!3!4!5!6!7!8!9!:!;!<!=#(#)#[#]#{#}(B" ) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?h) + +(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2121 #x227E) +(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2621 #x277E) +(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2830 #x287E) +(map-charset-chars #'modify-syntax-entry 'korean-ksc5601 "_" #x2930 #x297E) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2330 #x2339) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2341 #x235A) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?A #x2361 #x237A) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?G #x2521 #x257E) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?H #x2A21 #x2A7E) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?K #x2B21 #x2B7E) +(map-charset-chars #'modify-category-entry 'korean-ksc5601 ?Y #x2C21 #x2C7E) + +;; These are in more than one charset. +(let ((parens (concat "〈〉《》「」『』【】〔〕〖〗〘〙〚〛" + "︵︶︷︸︹︺︻︼︽︾︿﹀﹁﹂﹃﹄" + "()[]{}")) open close) (dotimes (i (/ (length parens) 2)) (setq open (aref parens (* i 2)) @@ -708,62 +247,60 @@ (modify-syntax-entry open (format "(%c" close)) (modify-syntax-entry close (format ")%c" open)))) -(let ((tbl (standard-case-table))) - (dotimes (i 26) - (set-case-syntax-pair (make-char 'korean-ksc5601 #x23 (+ #x41 i)) - (make-char 'korean-ksc5601 #x23 (+ #x61 i)) tbl)) - (dotimes (i 10) - (set-case-syntax-pair (make-char 'korean-ksc5601 #x25 (+ #x21 i)) - (make-char 'korean-ksc5601 #x25 (+ #x30 i)) tbl)) - (dotimes (i 24) - (set-case-syntax-pair (make-char 'korean-ksc5601 #x25 (+ #x41 i)) - (make-char 'korean-ksc5601 #x25 (+ #x61 i)) tbl)) - (dotimes (i 33) - (set-case-syntax-pair (make-char 'korean-ksc5601 #x2C (+ #x21 i)) - (make-char 'korean-ksc5601 #x2C (+ #x51 i)) tbl))) - -;; Latin character set (latin-1,2,3,4,5,8,9) - -(modify-category-entry (make-char 'latin-iso8859-1) ?l) -(modify-category-entry (make-char 'latin-iso8859-2) ?l) -(modify-category-entry (make-char 'latin-iso8859-3) ?l) -(modify-category-entry (make-char 'latin-iso8859-4) ?l) -(modify-category-entry (make-char 'latin-iso8859-9) ?l) -(modify-category-entry (make-char 'latin-iso8859-14) ?l) -(modify-category-entry (make-char 'latin-iso8859-15) ?l) - -(modify-category-entry (make-char 'latin-iso8859-1 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-2 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-3 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-4 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-9 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-14 160) ?\ ) -(modify-category-entry (make-char 'latin-iso8859-15 160) ?\ ) +;; Arabic character set -;; Lao character set +(let ((charsets '(arabic-iso8859-6 + arabic-digit + arabic-1-column + arabic-2-column))) + (while charsets + (map-charset-chars #'modify-category-entry (car charsets) ?b) + (setq charsets (cdr charsets)))) +(modify-category-entry '(#x600 . #x6ff) ?b) +(modify-category-entry '(#xfb50 . #xfdff) ?b) +(modify-category-entry '(#xfe70 . #xfefe) ?b) + +;; Cyrillic character set (ISO-8859-5) -(modify-category-entry (make-char 'lao) ?o) -(dotimes (i (1+ (- #xeff #xe80))) - (modify-category-entry (decode-char 'ucs (+ i #xe80)) ?o)) +(modify-syntax-entry ?№ ".") -(let ((deflist '(;; chars syntax category - ("(1!(B-(1N(B" "w" ?0) ; consonant - ("(1PRS]`(B-(1d(B" "w" ?1) ; vowel base - ("(1QT(B-(1W[m(B" "w" ?2) ; vowel upper - ("(1XY(B" "w" ?3) ; vowel lower - ("(1h(B-(1l(B" "w" ?4) ; tone mark - ("(1\(B" "w" ?9) ; semivowel lower - ("(1p(B-(1y(B" "w" ?6) ; digit - ("(1Of(B" "_" ?5) ; symbol - ;; Unicode equivalents - ("$,1D!(B-$,1DN(B" "w" ?0) ; consonant - ("$,1DPDRDSD]D`(B-$,1Dd(B" "w" ?1) ; vowel base - ("$,1DQDT(B-$,1DWD[Dm(B" "w" ?2) ; vowel upper - ("$,1DXDY(B" "w" ?3) ; vowel lower - ("$,1Dh(B-$,1Dk(B" "w" ?4) ; tone mark - ("$,1D\D](B" "w" ?9) ; semivowel lower - ("$,1Dp(B-$,1Dy(B" "w" ?6) ; digit - ("$,1DODf(B" "_" ?5) ; symbol +;; Ethiopic character set + +(modify-category-entry '(#x1200 . #x1399) ?e) +(modify-category-entry '(#x2d80 . #x2dde) ?e) +(let ((chars '(?፡ ?። ?፣ ?፤ ?፥ ?፦ ?፧ ?፨ ? ? ? ? ? ?))) + (while chars + (modify-syntax-entry (car chars) ".") + (setq chars (cdr chars)))) +(map-charset-chars #'modify-category-entry 'ethiopic ?e) + +;; Hebrew character set (ISO-8859-8) + +(modify-syntax-entry #x5be ".") ; MAQAF +(modify-syntax-entry #x5c0 ".") ; PASEQ +(modify-syntax-entry #x5c3 ".") ; SOF PASUQ +(modify-syntax-entry #x5f3 ".") ; GERESH +(modify-syntax-entry #x5f4 ".") ; GERSHAYIM + +;; Indian character set (IS 13194 and other Emacs original Indian charsets) + +(modify-category-entry '(#x901 . #x970) ?i) +(map-charset-chars #'modify-category-entry 'indian-is13194 ?i) +(map-charset-chars #'modify-category-entry 'indian-2-column ?i) + +;; Lao character set + +(modify-category-entry '(#xe80 . #xeff) ?o) +(map-charset-chars #'modify-category-entry 'lao ?o) + +(let ((deflist '(("ກ-ຮ" "w" ?0) ; consonant + ("ະາຳຽເ-ໄ" "w" ?1) ; vowel base + ("ັິ-ືົໍ" "w" ?2) ; vowel upper + ("ຸູ" "w" ?3) ; vowel lower + ("່-໋" "w" ?4) ; tone mark + ("ຼຽ" "w" ?9) ; semivowel lower + ("໐-໙" "w" ?6) ; digit + ("ຯໆ" "_" ?5) ; symbol )) elm chars len syntax category to ch i) (while deflist @@ -789,26 +326,17 @@ ;; Thai character set (TIS620) -(modify-category-entry (make-char 'thai-tis620) ?t) -(dotimes (i (1+ (- #xe7f #xe00))) - (modify-category-entry (decode-char 'ucs (+ i #xe00)) ?t)) +(modify-category-entry '(#xe00 . #xe7f) ?t) +(map-charset-chars #'modify-category-entry 'thai-tis620 ?t) (let ((deflist '(;; chars syntax category - (",T!(B-,TCEG(B-,TN(B" "w" ?0) ; consonant - (",TDFPRS`(B-,Te(B" "w" ?1) ; vowel base - (",TQT(B-,TWgn(B" "w" ?2) ; vowel upper - (",TX(B-,TZ(B" "w" ?3) ; vowel lower - (",Th(B-,Tm(B" "w" ?4) ; tone mark - (",Tp(B-,Ty(B" "w" ?6) ; digit - (",TOf_oz{(B" "_" ?5) ; symbol - ;; Unicode equivalents - ("$,1Ba(B-$,1C#C%C'(B-$,1C.(B" "w" ?0) ; consonant - ("$,1C$C&C0C2C3C@(B-$,1CE(B" "w" ?1) ; vowel base - ("$,1C1C4(B-$,1C7CGCN(B" "w" ?2) ; vowel upper - ("$,1C8(B-$,1C:(B" "w" ?3) ; vowel lower - ("$,1CH(B-$,1CM(B" "w" ?4) ; tone mark - ("$,1CP(B-$,1CY(B" "w" ?6) ; digit - ("$,1C/CFC?COCZC[(B" "_" ?5) ; symbol + ("ก-รลว-ฮ" "w" ?0) ; consonant + ("ฤฦะาำเ-ๅ" "w" ?1) ; vowel base + ("ัิ-ื็๎" "w" ?2) ; vowel upper + ("ุ-ฺ" "w" ?3) ; vowel lower + ("่-ํ" "w" ?4) ; tone mark + ("๐-๙" "w" ?6) ; digit + ("ฯๆ฿๏๚๛" "_" ?5) ; symbol )) elm chars len syntax category to ch i) (while deflist @@ -834,38 +362,26 @@ ;; Tibetan character set -(modify-category-entry (make-char 'tibetan) ?q) -(modify-category-entry (make-char 'tibetan-1-column) ?q) -(dotimes (i (1+ (- #xfff #xf00))) - (modify-category-entry (decode-char 'ucs (+ i #xf00)) ?q)) +(modify-category-entry '(#xf00 . #xfff) ?q) +(map-charset-chars #'modify-category-entry 'tibetan ?q) +(map-charset-chars #'modify-category-entry 'tibetan-1-column ?q) (let ((deflist '(;; chars syntax category - ("4$(7"!0"!1(B-4$(7"J0"J14"K0"K1(B" "w" ?0) ; consonant - ("$(7#!(B-$(7#J#K#L#M!"!#(B" "w" ?0) ; - ("$(7$!(B-$(7$e(B" "w" ?0) ; - ("$(7%!(B-$(7%u(B" "w" ?0) ; - ("$(7"S"["\"]"^"a(B" "w" ?2) ; upper vowel - ("$(7"_"c"d"g"h"i"j"k"l(B" "w" ?2) ; upper modifier - ("$(7!I"Q"R"U"e!e!g(B" "w" ?3) ; lowel vowel/modifier - ("$(7!P(B-$(7!Y!Z(B-$(7!c(B" "w" ?6) ; digit - ("$(7!;!=(B-$(7!B!D"`(B" "." ?|) ; line-break char - ("$(8!;!=!?!@!A!D"`(B" "." ?|) ; - ("$(7!8!;!=(B-$(7!B!D"`!m!d(B" "." ?>) ; prohibition - ("$(8!;!=!?!@!A!D"`(B" "." ?>) ; - ("$(7!0(B-$(7!:!l#R#S"f(B" "." ?<) ; prohibition - ("$(7!C!E(B-$(7!H!J(B-$(7!O!f!h(B-$(7!k!n!o#O#P(B-$(7#`(B" "." ?q) ; others - - ;; Unicode version (not complete) - ("$,1F (B-$,1FIFJ(B" "w" ?0) ; consonant - ("$,1Fp(B-$,1G9G:G;G<(B" "w" ?0) ; - ("$,1FRFZF[F\F]F`(B" "w" ?2) ; upper vowel - ("$,1F^FbFcFfFgFhFiFjFk(B" "w" ?2) ; upper modifier - ("$,1EYFPFQFTFdEuEw(B" "w" ?3) ; lowel vowel/modifier - ("$,1E`(B-$,1EiEj(B-$,1Es(B" "w" ?6) ; digit - ("$,1EKEM(B-$,1ERETF_(B" "." ?|) ; line-break char - ("$,1EHEKEM(B-$,1ERETF_E}Et(B" "." ?>) ; prohibition - ("$,1E@(B-$,1EJE|GAGBFe(B" "." ?<) ; prohibition - ("$,1ESEU(B-$,1EXEZ(B-$,1E_EvEx(B-$,1E{E~EG>G?(B-$,1GO(B" "." ?q) ; others + ("ཀ-ཀྵཪ" "w" ?0) ; consonant + ("ྐ-ྐྵྺྻྼ" "w" ?0) ; + ("-" "w" ?0) ; + ("-" "w" ?0) ; + ("ིེཻོཽྀ" "w" ?2) ; upper vowel + ("ཾྂྃ྆྇ྈྉྊྋ" "w" ?2) ; upper modifier + ("྄ཱུ༙༵༷" "w" ?3) ; lowel vowel/modifier + ("" "w" ?3) ; invisible vowel a + ("༠-༩༪-༳" "w" ?6) ; digit + ("་།-༒༔ཿ" "." ?|) ; line-break char + ("་།༏༐༑༔ཿ" "." ?|) ; + ("༈་།-༒༔ཿ༽༴" "." ?>) ; prohibition + ("་།༏༐༑༔ཿ" "." ?>) ; + ("ༀ-༊༼࿁࿂྅" "." ?<) ; prohibition + ("༓༕-༘༚-༟༶༸-༻༾༿྾྿-࿏" "." ?q) ; others )) elm chars len syntax category to ch i) (while deflist @@ -891,48 +407,125 @@ ;; Vietnamese character set -(let ((lower (make-char 'vietnamese-viscii-lower)) - (upper (make-char 'vietnamese-viscii-upper))) -;; (modify-syntax-entry lower "w") -;; (modify-syntax-entry upper "w") - (modify-category-entry lower ?v) - (modify-category-entry upper ?v) - (modify-category-entry lower ?l) ; To make a word with - (modify-category-entry upper ?l) ; latin characters. - ) +;; To make a word with Latin characters +(map-charset-chars #'modify-category-entry 'vietnamese-viscii-lower ?l) +(map-charset-chars #'modify-category-entry 'vietnamese-viscii-lower ?v) + +(map-charset-chars #'modify-category-entry 'vietnamese-viscii-upper ?l) +(map-charset-chars #'modify-category-entry 'vietnamese-viscii-upper ?v) (let ((tbl (standard-case-table)) (i 32)) (while (< i 128) - (set-case-syntax-pair (make-char 'vietnamese-viscii-upper i) - (make-char 'vietnamese-viscii-lower i) - tbl) + (let* ((char (decode-char 'vietnamese-viscii-upper i)) + (charl (decode-char 'vietnamese-viscii-lower i)) + (uc (encode-char char 'ucs)) + (lc (encode-char charl 'ucs))) + (set-case-syntax-pair char (decode-char 'vietnamese-viscii-lower i) + tbl) + (if uc (modify-category-entry uc ?v)) + (if lc (modify-category-entry lc ?v))) (setq i (1+ i)))) -;; Unicode (mule-unicode-0100-24ff) +;; Tai Viet +(let ((deflist '(;; chars syntax category + ((?ꪀ. ?ꪯ) "w" ?0) ; cosonant + ("ꪱꪵꪶ" "w" ?1) ; vowel base + ((?ꪹ . ?ꪽ) "w" ?1) ; vowel base + ("ꪰꪲꪳꪷꪸꪾ" "w" ?2) ; vowel upper + ("ꪴ" "w" ?3) ; vowel lower + ("ꫀꫂ" "w" ?1) ; non-combining tone-mark + ("꪿꫁" "w" ?4) ; combining tone-mark + ((?ꫛ . ?꫟) "_" ?5) ; symbol + ))) + (dolist (elm deflist) + (let ((chars (car elm)) + (syntax (nth 1 elm)) + (category (nth 2 elm))) + (if (consp chars) + (progn + (modify-syntax-entry chars syntax) + (modify-category-entry chars category)) + (mapc #'(lambda (x) + (modify-syntax-entry x syntax) + (modify-category-entry x category)) + chars))))) + +;; Latin + +(modify-category-entry '(#x80 . #x024F) ?l) (let ((tbl (standard-case-table)) c) - ;; Latin Extended-A, Latin Extended-B, IPA + ;; Latin-1 + + ;; Fixme: Some of the non-word syntaxes here perhaps should be + ;; reviewed. (Note that the following all implicitly have word + ;; syntax: ¢£¤¥¨ª¯²³´¶¸¹º.) There should be a well-defined way of + ;; relating Unicode categories to Emacs syntax codes. + + ;; NBSP isn't semantically interchangeable with other whitespace chars, + ;; so it's more like punctation. + (set-case-syntax ? "." tbl) + (set-case-syntax ?¡ "." tbl) + (set-case-syntax ?¦ "_" tbl) + (set-case-syntax ?§ "." tbl) + (set-case-syntax ?© "_" tbl) + (set-case-syntax-delims 171 187 tbl) ; « » + (set-case-syntax ?¬ "_" tbl) + (set-case-syntax ? "_" tbl) + (set-case-syntax ?® "_" tbl) + (set-case-syntax ?° "_" tbl) + (set-case-syntax ?± "_" tbl) + (set-case-syntax ?µ "_" tbl) + (set-case-syntax ?· "_" tbl) + (set-case-syntax ?¼ "_" tbl) + (set-case-syntax ?½ "_" tbl) + (set-case-syntax ?¾ "_" tbl) + (set-case-syntax ?¿ "." tbl) + (let ((c 192)) + (while (<= c 222) + (set-case-syntax-pair c (+ c 32) tbl) + (setq c (1+ c)))) + (set-case-syntax ?× "_" tbl) + (set-case-syntax ?ß "w" tbl) + (set-case-syntax ?÷ "_" tbl) + ;; See below for ÿ. + + ;; Latin Extended-A, Latin Extended-B (setq c #x0100) - (while (<= c #x02AF) - (modify-category-entry (decode-char 'ucs c) ?l) - (setq c (1+ c))) - - (setq c #x0100) - (while (<= c #x0177) - (and (or (<= c #x012e) - (and (>= c #x014a) (<= c #x0177))) - (zerop (% c 2)) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) - (and (>= c #x013a) - (<= c #x0148) - (zerop (% c 2)) - (set-case-syntax-pair - (decode-char 'ucs (1- c)) (decode-char 'ucs c) tbl)) + (while (<= c #x02B8) + (modify-category-entry c ?l) (setq c (1+ c))) + (let ((pair-ranges '((#x0100 . #x012F) + (#x0132 . #x0137) + (#x0139 . #x0148) + (#x014a . #x0177) + (#x0179 . #x017E) + (#x0182 . #x0185) + (#x0187 . #x018C) + (#x0191 . #x0192) + (#x0198 . #x0199) + (#x01A0 . #x01A5) + (#x01A7 . #x01A8) + (#x01AC . #x01AD) + (#x01AF . #x01B0) + (#x01B3 . #x01B6) + (#x01BC . #x01BD) + (#x01CD . #x01DC) + (#x01DE . #x01EF) + (#x01F4 . #x01F5) + (#x01F8 . #x021F) + (#x0222 . #x0233) + (#x023B . #x023C) + (#x0241 . #x0242) + (#x0246 . #x024F)))) + (dolist (elt pair-ranges) + (let ((from (car elt)) (to (cdr elt))) + (while (< from to) + (set-case-syntax-pair from (1+ from) tbl) + (setq from (+ from 2)))))) ;; In some languages, such as Turkish, U+0049 LATIN CAPITAL LETTER I ;; and U+0131 LATIN SMALL LETTER DOTLESS I make a case pair, and so @@ -943,353 +536,252 @@ ;; but that makes searches slow. So now we don't set up either half ;; of these correspondences by default. - ;; (set-downcase-syntax ?$,1 P(B ?i tbl) - ;; (set-upcase-syntax ?I ?$,1 Q(B tbl) - - (set-case-syntax-pair ?$,1 R(B ?$,1 S(B tbl) - (set-case-syntax-pair ?$,1 T(B ?$,1 U(B tbl) - (set-case-syntax-pair ?$,1 V(B ?$,1 W(B tbl) - (set-case-syntax-pair ?$,1!8(B ?,A(B tbl) - (set-case-syntax-pair ?$,1!9(B ?$,1!:(B tbl) - (set-case-syntax-pair ?$,1!;(B ?$,1!<(B tbl) - (set-case-syntax-pair ?$,1!=(B ?$,1!>(B tbl) - - ;; Latin Extended-B - (set-case-syntax-pair ?$,1!A(B ?$,1#S(B tbl) - (set-case-syntax-pair ?$,1!B(B ?$,1!C(B tbl) - (set-case-syntax-pair ?$,1!D(B ?$,1!E(B tbl) - (set-case-syntax-pair ?$,1!F(B ?$,1#T(B tbl) - (set-case-syntax-pair ?$,1!G(B ?$,1!H(B tbl) - (set-case-syntax-pair ?$,1!I(B ?$,1#V(B tbl) - (set-case-syntax-pair ?$,1!J(B ?$,1#W(B tbl) - (set-case-syntax-pair ?$,1!K(B ?$,1!L(B tbl) - (set-case-syntax-pair ?$,1!N(B ?$,1"=(B tbl) - (set-case-syntax-pair ?$,1!O(B ?$,1#Y(B tbl) - (set-case-syntax-pair ?$,1!P(B ?$,1#[(B tbl) - (set-case-syntax-pair ?$,1!Q(B ?$,1!R(B tbl) - (set-case-syntax-pair ?$,1!S(B ?$,1#`(B tbl) - (set-case-syntax-pair ?$,1!T(B ?$,1#c(B tbl) - (set-case-syntax-pair ?$,1!V(B ?$,1#i(B tbl) - (set-case-syntax-pair ?$,1!W(B ?$,1#h(B tbl) - (set-case-syntax-pair ?$,1!X(B ?$,1!Y(B tbl) - (set-case-syntax-pair ?$,1!\(B ?$,1#o(B tbl) - (set-case-syntax-pair ?$,1!](B ?$,1#r(B tbl) - (set-case-syntax-pair ?$,1!_(B ?$,1#u(B tbl) - (set-case-syntax-pair ?$,1!`(B ?$,1!a(B tbl) - (set-case-syntax-pair ?$,1!b(B ?$,1!c(B tbl) - (set-case-syntax-pair ?$,1!d(B ?$,1!e(B tbl) - (set-case-syntax-pair ?$,1!f(B ?$,1$ (B tbl) - (set-case-syntax-pair ?$,1!g(B ?$,1!h(B tbl) - (set-case-syntax-pair ?$,1!i(B ?$,1$#(B tbl) - (set-case-syntax-pair ?$,1!l(B ?$,1!m(B tbl) - (set-case-syntax-pair ?$,1!n(B ?$,1$((B tbl) - (set-case-syntax-pair ?$,1!o(B ?$,1!p(B tbl) - (set-case-syntax-pair ?$,1!q(B ?$,1$*(B tbl) - (set-case-syntax-pair ?$,1!r(B ?$,1$+(B tbl) - (set-case-syntax-pair ?$,1!s(B ?$,1!t(B tbl) - (set-case-syntax-pair ?$,1!u(B ?$,1!v(B tbl) - (set-case-syntax-pair ?$,1!w(B ?$,1$2(B tbl) - (set-case-syntax-pair ?$,1!x(B ?$,1!y(B tbl) - (set-case-syntax-pair ?$,1!|(B ?$,1!}(B tbl) - (set-case-syntax-pair ?$,1"$(B ?$,1"&(B tbl) - (set-case-syntax-pair ?$,1"%(B ?$,1"&(B tbl) - (set-case-syntax-pair ?$,1"'(B ?$,1")(B tbl) - (set-case-syntax-pair ?$,1"((B ?$,1")(B tbl) - (set-case-syntax-pair ?$,1"*(B ?$,1",(B tbl) - (set-case-syntax-pair ?$,1"+(B ?$,1",(B tbl) - (set-case-syntax-pair ?$,1"-(B ?$,1".(B tbl) - (set-case-syntax-pair ?$,1"/(B ?$,1"0(B tbl) - (set-case-syntax-pair ?$,1"1(B ?$,1"2(B tbl) - (set-case-syntax-pair ?$,1"3(B ?$,1"4(B tbl) - (set-case-syntax-pair ?$,1"5(B ?$,1"6(B tbl) - (set-case-syntax-pair ?$,1"7(B ?$,1"8(B tbl) - (set-case-syntax-pair ?$,1"9(B ?$,1":(B tbl) - (set-case-syntax-pair ?$,1";(B ?$,1"<(B tbl) - (set-case-syntax-pair ?$,1">(B ?$,1"?(B tbl) - (set-case-syntax-pair ?$,1"@(B ?$,1"A(B tbl) - (set-case-syntax-pair ?$,1"B(B ?$,1"C(B tbl) - (set-case-syntax-pair ?$,1"D(B ?$,1"E(B tbl) - (set-case-syntax-pair ?$,1"F(B ?$,1"G(B tbl) - (set-case-syntax-pair ?$,1"H(B ?$,1"I(B tbl) - (set-case-syntax-pair ?$,1"J(B ?$,1"K(B tbl) - (set-case-syntax-pair ?$,1"L(B ?$,1"M(B tbl) - (set-case-syntax-pair ?$,1"N(B ?$,1"O(B tbl) + ;; (set-downcase-syntax ?İ ?i tbl) + ;; (set-upcase-syntax ?I ?ı tbl) + + (set-case-syntax-pair ?DŽ ?dž tbl) + (set-case-syntax-pair ?Dž ?dž tbl) + (set-case-syntax-pair ?LJ ?lj tbl) + (set-case-syntax-pair ?Lj ?lj tbl) + (set-case-syntax-pair ?NJ ?nj tbl) + (set-case-syntax-pair ?Nj ?nj tbl) + ;; 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON - (set-case-syntax-pair ?$,1"Q(B ?$,1"S(B tbl) - (set-case-syntax-pair ?$,1"R(B ?$,1"S(B tbl) - (set-case-syntax-pair ?$,1"T(B ?$,1"U(B tbl) - (set-case-syntax-pair ?$,1"V(B ?$,1!U(B tbl) - (set-case-syntax-pair ?$,1"W(B ?$,1!(B tbl) - (set-case-syntax-pair ?$,1"X(B ?$,1"Y(B tbl) - (set-case-syntax-pair ?$,1"Z(B ?$,1"[(B tbl) - (set-case-syntax-pair ?$,1"\(B ?$,1"](B tbl) - (set-case-syntax-pair ?$,1"^(B ?$,1"_(B tbl) - (set-case-syntax-pair ?$,1"`(B ?$,1"a(B tbl) - (set-case-syntax-pair ?$,1"b(B ?$,1"c(B tbl) - (set-case-syntax-pair ?$,1"d(B ?$,1"e(B tbl) - (set-case-syntax-pair ?$,1"f(B ?$,1"g(B tbl) - (set-case-syntax-pair ?$,1"h(B ?$,1"i(B tbl) - (set-case-syntax-pair ?$,1"j(B ?$,1"k(B tbl) - (set-case-syntax-pair ?$,1"l(B ?$,1"m(B tbl) - (set-case-syntax-pair ?$,1"n(B ?$,1"o(B tbl) - (set-case-syntax-pair ?$,1"p(B ?$,1"q(B tbl) - (set-case-syntax-pair ?$,1"r(B ?$,1"s(B tbl) - (set-case-syntax-pair ?$,1"t(B ?$,1"u(B tbl) - (set-case-syntax-pair ?$,1"v(B ?$,1"w(B tbl) - (set-case-syntax-pair ?$,1"x(B ?$,1"y(B tbl) - (set-case-syntax-pair ?$,1"z(B ?$,1"{(B tbl) - (set-case-syntax-pair ?$,1"|(B ?$,1"}(B tbl) - (set-case-syntax-pair ?$,1"~(B ?$,1"(B tbl) - (set-case-syntax-pair ?$,1#"(B ?$,1##(B tbl) - (set-case-syntax-pair ?$,1#$(B ?$,1#%(B tbl) - (set-case-syntax-pair ?$,1#&(B ?$,1#'(B tbl) - (set-case-syntax-pair ?$,1#((B ?$,1#)(B tbl) - (set-case-syntax-pair ?$,1#*(B ?$,1#+(B tbl) - (set-case-syntax-pair ?$,1#,(B ?$,1#-(B tbl) - (set-case-syntax-pair ?$,1#.(B ?$,1#/(B tbl) - (set-case-syntax-pair ?$,1#0(B ?$,1#1(B tbl) - (set-case-syntax-pair ?$,1#2(B ?$,1#3(B tbl) + (set-case-syntax-pair ?DZ ?dz tbl) + (set-case-syntax-pair ?Dz ?dz tbl) + (set-case-syntax-pair ?Ƕ ?ƕ tbl) + (set-case-syntax-pair ?Ƿ ?ƿ tbl) ;; Latin Extended Additional + (modify-category-entry '(#x1e00 . #x1ef9) ?l) (setq c #x1e00) (while (<= c #x1ef9) - (modify-category-entry (decode-char 'ucs c) ?l) (and (zerop (% c 2)) (or (<= c #x1e94) (>= c #x1ea0)) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) + (set-case-syntax-pair c (1+ c) tbl)) (setq c (1+ c))) ;; Greek + (modify-category-entry '(#x0370 . #x03ff) ?g) (setq c #x0370) (while (<= c #x03ff) - (modify-category-entry (decode-char 'ucs c) ?g) (if (or (and (>= c #x0391) (<= c #x03a1)) (and (>= c #x03a3) (<= c #x03ab))) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (+ c 32)) tbl)) + (set-case-syntax-pair c (+ c 32) tbl)) (and (>= c #x03da) (<= c #x03ee) (zerop (% c 2)) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) + (set-case-syntax-pair c (1+ c) tbl)) (setq c (1+ c))) - (set-case-syntax-pair ?$,1&f(B ?$,1',(B tbl) - (set-case-syntax-pair ?$,1&h(B ?$,1'-(B tbl) - (set-case-syntax-pair ?$,1&i(B ?$,1'.(B tbl) - (set-case-syntax-pair ?$,1&j(B ?$,1'/(B tbl) - (set-case-syntax-pair ?$,1&l(B ?$,1'L(B tbl) - (set-case-syntax-pair ?$,1&n(B ?$,1'M(B tbl) - (set-case-syntax-pair ?$,1&o(B ?$,1'N(B tbl) + (set-case-syntax-pair ?Ά ?ά tbl) + (set-case-syntax-pair ?Έ ?έ tbl) + (set-case-syntax-pair ?Ή ?ή tbl) + (set-case-syntax-pair ?Ί ?ί tbl) + (set-case-syntax-pair ?Ό ?ό tbl) + (set-case-syntax-pair ?Ύ ?ύ tbl) + (set-case-syntax-pair ?Ώ ?ώ tbl) ;; Armenian (setq c #x531) (while (<= c #x556) - (set-case-syntax-pair (decode-char 'ucs c) - (decode-char 'ucs (+ c #x30)) tbl) + (set-case-syntax-pair c (+ c #x30) tbl) (setq c (1+ c))) ;; Greek Extended + (modify-category-entry '(#x1f00 . #x1fff) ?g) (setq c #x1f00) (while (<= c #x1fff) - (modify-category-entry (decode-char 'ucs c) ?g) (and (<= (logand c #x000f) 7) (<= c #x1fa7) (not (memq c '(#x1f50 #x1f52 #x1f54 #x1f56))) (/= (logand c #x00f0) 7) - (set-case-syntax-pair - (decode-char 'ucs (+ c 8)) (decode-char 'ucs c) tbl)) + (set-case-syntax-pair (+ c 8) c tbl)) (setq c (1+ c))) - (set-case-syntax-pair ?$,1qx(B ?$,1qp(B tbl) - (set-case-syntax-pair ?$,1qy(B ?$,1qq(B tbl) - (set-case-syntax-pair ?$,1qz(B ?$,1q0(B tbl) - (set-case-syntax-pair ?$,1q{(B ?$,1q1(B tbl) - (set-case-syntax-pair ?$,1q|(B ?$,1qs(B tbl) - (set-case-syntax-pair ?$,1r((B ?$,1q2(B tbl) - (set-case-syntax-pair ?$,1r)(B ?$,1q3(B tbl) - (set-case-syntax-pair ?$,1r*(B ?$,1q4(B tbl) - (set-case-syntax-pair ?$,1r+(B ?$,1q5(B tbl) - (set-case-syntax-pair ?$,1r,(B ?$,1r#(B tbl) - (set-case-syntax-pair ?$,1r8(B ?$,1r0(B tbl) - (set-case-syntax-pair ?$,1r9(B ?$,1r1(B tbl) - (set-case-syntax-pair ?$,1r:(B ?$,1q6(B tbl) - (set-case-syntax-pair ?$,1r;(B ?$,1q7(B tbl) - (set-case-syntax-pair ?$,1rH(B ?$,1r@(B tbl) - (set-case-syntax-pair ?$,1rI(B ?$,1rA(B tbl) - (set-case-syntax-pair ?$,1rJ(B ?$,1q:(B tbl) - (set-case-syntax-pair ?$,1rK(B ?$,1q;(B tbl) - (set-case-syntax-pair ?$,1rL(B ?$,1rE(B tbl) - (set-case-syntax-pair ?$,1rX(B ?$,1q8(B tbl) - (set-case-syntax-pair ?$,1rY(B ?$,1q9(B tbl) - (set-case-syntax-pair ?$,1rZ(B ?$,1q<(B tbl) - (set-case-syntax-pair ?$,1r[(B ?$,1q=(B tbl) - (set-case-syntax-pair ?$,1r\(B ?$,1rS(B tbl) + (set-case-syntax-pair ?Ᾰ ?ᾰ tbl) + (set-case-syntax-pair ?Ᾱ ?ᾱ tbl) + (set-case-syntax-pair ?Ὰ ?ὰ tbl) + (set-case-syntax-pair ?Ά ?ά tbl) + (set-case-syntax-pair ?ᾼ ?ᾳ tbl) + (set-case-syntax-pair ?Ὲ ?ὲ tbl) + (set-case-syntax-pair ?Έ ?έ tbl) + (set-case-syntax-pair ?Ὴ ?ὴ tbl) + (set-case-syntax-pair ?Ή ?ή tbl) + (set-case-syntax-pair ?ῌ ?ῃ tbl) + (set-case-syntax-pair ?Ῐ ?ῐ tbl) + (set-case-syntax-pair ?Ῑ ?ῑ tbl) + (set-case-syntax-pair ?Ὶ ?ὶ tbl) + (set-case-syntax-pair ?Ί ?ί tbl) + (set-case-syntax-pair ?Ῠ ?ῠ tbl) + (set-case-syntax-pair ?Ῡ ?ῡ tbl) + (set-case-syntax-pair ?Ὺ ?ὺ tbl) + (set-case-syntax-pair ?Ύ ?ύ tbl) + (set-case-syntax-pair ?Ῥ ?ῥ tbl) + (set-case-syntax-pair ?Ὸ ?ὸ tbl) + (set-case-syntax-pair ?Ό ?ό tbl) + (set-case-syntax-pair ?Ὼ ?ὼ tbl) + (set-case-syntax-pair ?Ώ ?ώ tbl) + (set-case-syntax-pair ?ῼ ?ῳ tbl) ;; cyrillic + (modify-category-entry '(#x0400 . #x04FF) ?y) (setq c #x0400) (while (<= c #x04ff) - (modify-category-entry (decode-char 'ucs c) ?y) (and (>= c #x0400) (<= c #x040f) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (+ c 80)) tbl)) + (set-case-syntax-pair c (+ c 80) tbl)) (and (>= c #x0410) (<= c #x042f) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (+ c 32)) tbl)) + (set-case-syntax-pair c (+ c 32) tbl)) (and (zerop (% c 2)) (or (and (>= c #x0460) (<= c #x0480)) (and (>= c #x048c) (<= c #x04be)) (and (>= c #x04d0) (<= c #x04f4))) - (set-case-syntax-pair - (decode-char 'ucs c) (decode-char 'ucs (1+ c)) tbl)) + (set-case-syntax-pair c (1+ c) tbl)) (setq c (1+ c))) - (set-case-syntax-pair ?$,1*!(B ?$,1*"(B tbl) - (set-case-syntax-pair ?$,1*#(B ?$,1*$(B tbl) - (set-case-syntax-pair ?$,1*'(B ?$,1*((B tbl) - (set-case-syntax-pair ?$,1*+(B ?$,1*,(B tbl) - (set-case-syntax-pair ?$,1*X(B ?$,1*Y(B tbl) + (set-case-syntax-pair ?Ӂ ?ӂ tbl) + (set-case-syntax-pair ?Ӄ ?ӄ tbl) + (set-case-syntax-pair ?Ӈ ?ӈ tbl) + (set-case-syntax-pair ?Ӌ ?ӌ tbl) + (set-case-syntax-pair ?Ӹ ?ӹ tbl) ;; general punctuation (setq c #x2000) (while (<= c #x200b) - (set-case-syntax (decode-char 'ucs c) " " tbl) + (set-case-syntax c " " tbl) + (setq c (1+ c))) + (while (<= c #x200F) + (set-case-syntax c "." tbl) (setq c (1+ c))) + ;; Fixme: These aren't all right: (setq c #x2010) (while (<= c #x2016) - (set-case-syntax (decode-char 'ucs c) "_" tbl) + (set-case-syntax c "_" tbl) (setq c (1+ c))) ;; Punctuation syntax for quotation marks (like `) (while (<= c #x201f) - (set-case-syntax (decode-char 'ucs c) "." tbl) + (set-case-syntax c "." tbl) (setq c (1+ c))) + ;; Fixme: These aren't all right: (while (<= c #x2027) - (set-case-syntax (decode-char 'ucs c) "_" tbl) + (set-case-syntax c "_" tbl) + (setq c (1+ c))) + (while (<= c #x206F) + (set-case-syntax c "." tbl) (setq c (1+ c))) ;; Roman numerals (setq c #x2160) (while (<= c #x216f) - (set-case-syntax-pair (decode-char 'ucs c) - (decode-char 'ucs (+ c #x10)) tbl) + (set-case-syntax-pair c (+ c #x10) tbl) + (setq c (1+ c))) + + ;; Fixme: The following blocks might be better as symbol rather than + ;; punctuation. + ;; Arrows + (setq c #x2190) + (while (<= c #x21FF) + (set-case-syntax c "." tbl) + (setq c (1+ c))) + ;; Mathematical Operators + (while (<= c #x22FF) + (set-case-syntax c "." tbl) + (setq c (1+ c))) + ;; Miscellaneous Technical + (while (<= c #x23FF) + (set-case-syntax c "." tbl) + (setq c (1+ c))) + ;; Control Pictures + (while (<= c #x243F) + (set-case-syntax c "_" tbl) (setq c (1+ c))) ;; Circled Latin (setq c #x24b6) (while (<= c #x24cf) - (set-case-syntax-pair (decode-char 'ucs c) - (decode-char 'ucs (+ c 26)) tbl) - (modify-category-entry (decode-char 'ucs c) ?l) - (modify-category-entry (decode-char 'ucs (+ c 26)) ?l) + (set-case-syntax-pair c (+ c 26) tbl) + (modify-category-entry c ?l) + (modify-category-entry (+ c 26) ?l) (setq c (1+ c))) ;; Fullwidth Latin (setq c #xff21) (while (<= c #xff3a) - (set-case-syntax-pair (decode-char 'ucs c) - (decode-char 'ucs (+ c #x20)) tbl) - (modify-category-entry (decode-char 'ucs c) ?l) - (modify-category-entry (decode-char 'ucs (+ c #x20)) ?l) + (set-case-syntax-pair c (+ c #x20) tbl) + (modify-category-entry c ?l) + (modify-category-entry (+ c #x20) ?l) (setq c (1+ c))) ;; Combining diacritics - (setq c #x300) - (while (<= c #x362) - (modify-category-entry (decode-char 'ucs c) ?^) - (setq c (1+ c))) - + (modify-category-entry '(#x300 . #x362) ?^) ;; Combining marks - (setq c #x20d0) - (while (<= c #x20e3) - (modify-category-entry (decode-char 'ucs c) ?^) - (setq c (1+ c))) + (modify-category-entry '(#x20d0 . #x20e3) ?^) ;; Fixme: syntax for symbols &c ) (let ((pairs - '("$,1sEsF(B" ; U+2045 U+2046 - "$,1s}s~(B" ; U+207D U+207E - "$,1t-t.(B" ; U+208D U+208E - "$,1{){*(B" ; U+2329 U+232A - "$,1|T|U(B" ; U+23B4 U+23B5 - "$,2&H&I(B" ; U+2768 U+2769 - "$,2&J&K(B" ; U+276A U+276B - "$,2&L&M(B" ; U+276C U+276D - "$,2&P&Q(B" ; U+2770 U+2771 - "$,2&R&S(B" ; U+2772 U+2773 - "$,2&T&U(B" ; U+2774 U+2775 - "$,2'f'g(B" ; U+27E6 U+27E7 - "$,2'h'i(B" ; U+27E8 U+27E9 - "$,2'j'k(B" ; U+27EA U+27EB - "$,2,#,$(B" ; U+2983 U+2984 - "$,2,%,&(B" ; U+2985 U+2986 - "$,2,',((B" ; U+2987 U+2988 - "$,2,),*(B" ; U+2989 U+298A - "$,2,+,,(B" ; U+298B U+298C - "$,2,-,.(B" ; U+298D U+298E - "$,2,/,0(B" ; U+298F U+2990 - "$,2,1,2(B" ; U+2991 U+2992 - "$,2,3,4(B" ; U+2993 U+2994 - "$,2,5,6(B" ; U+2995 U+2996 - "$,2,7,8(B" ; U+2997 U+2998 - "$,2-<-=(B" ; U+29FC U+29FD - "$,2=H=I(B" ; U+3008 U+3009 - "$,2=J=K(B" ; U+300A U+300B - "$,2=L=M(B" ; U+300C U+300D - "$,2=N=O(B" ; U+300E U+300F - "$,2=P=Q(B" ; U+3010 U+3011 - "$,2=T=U(B" ; U+3014 U+3015 - "$,2=V=W(B" ; U+3016 U+3017 - "$,2=X=Y(B" ; U+3018 U+3019 - "$,2=Z=[(B" ; U+301A U+301B - "$,3m~m(B" ; U+FD3E U+FD3F - "$,3pUpV(B" ; U+FE35 U+FE36 - "$,3pWpX(B" ; U+FE37 U+FE38 - "$,3pYpZ(B" ; U+FE39 U+FE3A - "$,3p[p\(B" ; U+FE3B U+FE3C - "$,3p]p^(B" ; U+FE3D U+FE3E - "$,3p_p`(B" ; U+FE3F U+FE40 - "$,3papb(B" ; U+FE41 U+FE42 - "$,3pcpd(B" ; U+FE43 U+FE44 - "$,3pypz(B" ; U+FE59 U+FE5A - "$,3p{p|(B" ; U+FE5B U+FE5C - "$,3p}p~(B" ; U+FE5D U+FE5E - "$,3rhri(B" ; U+FF08 U+FF09 - "$,3s;s=(B" ; U+FF3B U+FF3D - "$,3s[s](B" ; U+FF5B U+FF5D - "$,3s_s`(B" ; U+FF5F U+FF60 - "$,3sbsc(B" ; U+FF62 U+FF63 + '("⁅⁆" ; U+2045 U+2046 + "⁽⁾" ; U+207D U+207E + "₍₎" ; U+208D U+208E + "〈〉" ; U+2329 U+232A + "⎴⎵" ; U+23B4 U+23B5 + "❨❩" ; U+2768 U+2769 + "❪❫" ; U+276A U+276B + "❬❭" ; U+276C U+276D + "❰❱" ; U+2770 U+2771 + "❲❳" ; U+2772 U+2773 + "❴❵" ; U+2774 U+2775 + "⟦⟧" ; U+27E6 U+27E7 + "⟨⟩" ; U+27E8 U+27E9 + "⟪⟫" ; U+27EA U+27EB + "⦃⦄" ; U+2983 U+2984 + "⦅⦆" ; U+2985 U+2986 + "⦇⦈" ; U+2987 U+2988 + "⦉⦊" ; U+2989 U+298A + "⦋⦌" ; U+298B U+298C + "⦍⦎" ; U+298D U+298E + "⦏⦐" ; U+298F U+2990 + "⦑⦒" ; U+2991 U+2992 + "⦓⦔" ; U+2993 U+2994 + "⦕⦖" ; U+2995 U+2996 + "⦗⦘" ; U+2997 U+2998 + "⧼⧽" ; U+29FC U+29FD + "〈〉" ; U+3008 U+3009 + "《》" ; U+300A U+300B + "「」" ; U+300C U+300D + "『』" ; U+300E U+300F + "【】" ; U+3010 U+3011 + "〔〕" ; U+3014 U+3015 + "〖〗" ; U+3016 U+3017 + "〘〙" ; U+3018 U+3019 + "〚〛" ; U+301A U+301B + "﴾﴿" ; U+FD3E U+FD3F + "︵︶" ; U+FE35 U+FE36 + "︷︸" ; U+FE37 U+FE38 + "︹︺" ; U+FE39 U+FE3A + "︻︼" ; U+FE3B U+FE3C + "︽︾" ; U+FE3D U+FE3E + "︿﹀" ; U+FE3F U+FE40 + "﹁﹂" ; U+FE41 U+FE42 + "﹃﹄" ; U+FE43 U+FE44 + "﹙﹚" ; U+FE59 U+FE5A + "﹛﹜" ; U+FE5B U+FE5C + "﹝﹞" ; U+FE5D U+FE5E + "()" ; U+FF08 U+FF09 + "[]" ; U+FF3B U+FF3D + "{}" ; U+FF5B U+FF5D + "⦅⦆" ; U+FF5F U+FF60 + "「」" ; U+FF62 U+FF63 ))) (dolist (elt pairs) (modify-syntax-entry (aref elt 0) (string ?\( (aref elt 1))) (modify-syntax-entry (aref elt 1) (string ?\) (aref elt 0))))) -;;; Setting word boundary. - -(setq word-combining-categories - '((?l . ?l) - (?C . ?C) - (?C . ?H) - (?C . ?K))) - -(setq word-separating-categories ; (2-byte character sets) - '((?A . ?K) ; Alpha numeric - Katakana - (?A . ?C) ; Alpha numeric - Chinese - (?H . ?A) ; Hiragana - Alpha numeric - (?H . ?K) ; Hiragana - Katakana - (?H . ?C) ; Hiragana - Chinese - (?K . ?A) ; Katakana - Alpha numeric - (?K . ?C) ; Katakana - Chinese - (?C . ?A) ; Chinese - Alpha numeric - (?C . ?K) ; Chinese - Katakana - )) - - ;; For each character set, put the information of the most proper ;; coding system to encode it by `preferred-coding-system' property. +;; Fixme: should this be junked? (let ((l '((latin-iso8859-1 . iso-latin-1) (latin-iso8859-2 . iso-latin-2) (latin-iso8859-3 . iso-latin-3) @@ -1303,12 +795,16 @@ (cyrillic-iso8859-5 . cyrillic-iso-8bit) (latin-iso8859-9 . iso-latin-5) (japanese-jisx0208-1978 . iso-2022-jp) - (chinese-gb2312 . cn-gb-2312) + (chinese-gb2312 . chinese-iso-8bit) + (chinese-gbk . chinese-gbk) + (gb18030-2-byte . chinese-gb18030) + (gb18030-4-byte-bmp . chinese-gb18030) + (gb18030-4-byte-smp . chinese-gb18030) + (gb18030-4-byte-ext-1 . chinese-gb18030) + (gb18030-4-byte-ext-2 . chinese-gb18030) (japanese-jisx0208 . iso-2022-jp) (korean-ksc5601 . iso-2022-kr) (japanese-jisx0212 . iso-2022-jp) - (chinese-cns11643-1 . iso-2022-cn) - (chinese-cns11643-2 . iso-2022-cn) (chinese-big5-1 . chinese-big5) (chinese-big5-2 . chinese-big5) (chinese-sisheng . iso-2022-7bit) @@ -1317,13 +813,14 @@ (vietnamese-viscii-upper . vietnamese-viscii) (arabic-digit . iso-2022-7bit) (arabic-1-column . iso-2022-7bit) - (ascii-right-to-left . iso-2022-7bit) (lao . lao) (arabic-2-column . iso-2022-7bit) (indian-is13194 . devanagari) (indian-glyph . devanagari) (tibetan-1-column . tibetan) (ethiopic . iso-2022-7bit) + (chinese-cns11643-1 . iso-2022-cn) + (chinese-cns11643-2 . iso-2022-cn) (chinese-cns11643-3 . iso-2022-cn) (chinese-cns11643-4 . iso-2022-cn) (chinese-cns11643-5 . iso-2022-cn) @@ -1339,22 +836,342 @@ ;; Setup auto-fill-chars for charsets that should invoke auto-filling. -;; SPACE and NEWLINE are already set. Also put `nospace-between-words' -;; property on the charsets. -(let ((l '(katakana-jisx0201 - japanese-jisx0208 japanese-jisx0212 - chinese-gb2312 chinese-big5-1 chinese-big5-2))) - (while l - (aset auto-fill-chars (make-char (car l)) t) - (put-charset-property (car l) 'nospace-between-words t) - (setq l (cdr l)))) +;; SPACE and NEWLINE are already set. + +(set-char-table-range auto-fill-chars '(#x3041 . #x30FF) t) +(set-char-table-range auto-fill-chars '(#x3400 . #x4DB5) t) +(set-char-table-range auto-fill-chars '(#x4e00 . #x9fbb) t) +(set-char-table-range auto-fill-chars '(#xF900 . #xFAFF) t) +(set-char-table-range auto-fill-chars '(#xFF00 . #xFF9F) t) +(set-char-table-range auto-fill-chars '(#x20000 . #x2FFFF) t) -(setq utf-translate-cjk-mode saved-utf-translate-cjk-mode) -(makunbound 'saved-utf-translate-cjk-mode) +;;; Setting char-width-table. The default is 1. + +;; 0: non-spacing, enclosing combining, formatting, Hangul Jamo medial +;; and final characters. +(let ((l '((#x00AD . #x00AD) + (#x0300 . #x036F) + (#x0483 . #x0489) + (#x0591 . #x05BD) + (#x05BF . #x05BF) + (#x05C1 . #x05C2) + (#x05C4 . #x05C5) + (#x05C7 . #x05C7) + (#x0600 . #x0603) + (#x0610 . #x0615) + (#x064B . #x065E) + (#x0670 . #x0670) + (#x06D6 . #x06E4) + (#x06E7 . #x06E8) + (#x06EA . #x06ED) + (#x070F . #x070F) + (#x0711 . #x0711) + (#x0730 . #x074A) + (#x07A6 . #x07B0) + (#x07EB . #x07F3) + (#x0901 . #x0902) + (#x093C . #x093C) + (#x0941 . #x0948) + (#x094D . #x094D) + (#x0951 . #x0954) + (#x0962 . #x0963) + (#x0981 . #x0981) + (#x09BC . #x09BC) + (#x09C1 . #x09C4) + (#x09CD . #x09CD) + (#x09E2 . #x09E3) + (#x0A01 . #x0A02) + (#x0A3C . #x0A3C) + (#x0A41 . #x0A4D) + (#x0A70 . #x0A71) + (#x0A81 . #x0A82) + (#x0ABC . #x0ABC) + (#x0AC1 . #x0AC8) + (#x0ACD . #x0ACD) + (#x0AE2 . #x0AE3) + (#x0B01 . #x0B01) + (#x0B3C . #x0B3C) + (#x0B3F . #x0B3F) + (#x0B41 . #x0B43) + (#x0B4D . #x0B56) + (#x0B82 . #x0B82) + (#x0BC0 . #x0BC0) + (#x0BCD . #x0BCD) + (#x0C3E . #x0C40) + (#x0C46 . #x0C56) + (#x0CBC . #x0CBC) + (#x0CBF . #x0CBF) + (#x0CC6 . #x0CC6) + (#x0CCC . #x0CCD) + (#x0CE2 . #x0CE3) + (#x0D41 . #x0D43) + (#x0D4D . #x0D4D) + (#x0DCA . #x0DCA) + (#x0DD2 . #x0DD6) + (#x0E31 . #x0E31) + (#x0E34 . #x0E3A) + (#x0E47 . #x0E4E) + (#x0EB1 . #x0EB1) + (#x0EB4 . #x0EBC) + (#x0EC8 . #x0ECD) + (#x0F18 . #x0F19) + (#x0F35 . #x0F35) + (#x0F37 . #x0F37) + (#x0F39 . #x0F39) + (#x0F71 . #x0F7E) + (#x0F80 . #x0F84) + (#x0F86 . #x0F87) + (#x0F90 . #x0FBC) + (#x0FC6 . #x0FC6) + (#x102D . #x1030) + (#x1032 . #x1037) + (#x1039 . #x1039) + (#x1058 . #x1059) + (#x1160 . #x11FF) + (#x135F . #x135F) + (#x1712 . #x1714) + (#x1732 . #x1734) + (#x1752 . #x1753) + (#x1772 . #x1773) + (#x17B4 . #x17B5) + (#x17B7 . #x17BD) + (#x17C6 . #x17C6) + (#x17C9 . #x17D3) + (#x17DD . #x17DD) + (#x180B . #x180D) + (#x18A9 . #x18A9) + (#x1920 . #x1922) + (#x1927 . #x1928) + (#x1932 . #x1932) + (#x1939 . #x193B) + (#x1A17 . #x1A18) + (#x1B00 . #x1B03) + (#x1B34 . #x1B34) + (#x1B36 . #x1B3A) + (#x1B3C . #x1B3C) + (#x1B42 . #x1B42) + (#x1B6B . #x1B73) + (#x1DC0 . #x1DFF) + (#x200B . #x200F) + (#x202A . #x202E) + (#x2060 . #x206F) + (#x20D0 . #x20EF) + (#x302A . #x302F) + (#x3099 . #x309A) + (#xA806 . #xA806) + (#xA80B . #xA80B) + (#xA825 . #xA826) + (#xFB1E . #xFB1E) + (#xFE00 . #xFE0F) + (#xFE20 . #xFE23) + (#xFEFF . #xFEFF) + (#xFFF9 . #xFFFB) + (#x10A01 . #x10A0F) + (#x10A38 . #x10A3F) + (#x1D167 . #x1D169) + (#x1D173 . #x1D182) + (#x1D185 . #x1D18B) + (#x1D1AA . #x1D1AD) + (#x1D242 . #x1D244) + (#xE0001 . #xE01EF)))) + (dolist (elt l) + (set-char-table-range char-width-table elt 0))) + +;; 2: East Asian Wide and Full-width characters. +(let ((l '((#x1100 . #x115F) + (#x2329 . #x232A) + (#x2E80 . #x303E) + (#x3040 . #xA4CF) + (#xAC00 . #xD7A3) + (#xF900 . #xFAFF) + (#xFE30 . #xFE6F) + (#xFF01 . #xFF60) + (#xFFE0 . #xFFE6) + (#x20000 . #x2FFFF) + (#x30000 . #x3FFFF)))) + (dolist (elt l) + (set-char-table-range char-width-table elt 2))) + +;; Other double width +;;(map-charset-chars +;; (lambda (range ignore) (set-char-table-range char-width-table range 2)) +;; 'ethiopic) +;; (map-charset-chars +;; (lambda (range ignore) (set-char-table-range char-width-table range 2)) +;; 'tibetan) +(map-charset-chars + (lambda (range ignore) (set-char-table-range char-width-table range 2)) + 'indian-2-column) +(map-charset-chars + (lambda (range ignore) (set-char-table-range char-width-table range 2)) + 'arabic-2-column) + +(optimize-char-table (standard-case-table)) +(optimize-char-table (standard-category-table)) +(optimize-char-table (standard-syntax-table)) + +;; The Unicode blocks actually extend past some of these ranges with +;; undefined codepoints. +(let ((script-list nil)) + (dolist + (elt + '((#x0000 #x007F latin) + (#x00A0 #x036F latin) + (#x0370 #x03E1 greek) + (#x03E2 #x03EF coptic) + (#x03F0 #x03F3 greek) + (#x0400 #x04FF cyrillic) + (#x0530 #x058F armenian) + (#x0590 #x05FF hebrew) + (#x0600 #x06FF arabic) + (#x0700 #x074F syriac) + (#x07C0 #x07FA nko) + (#x0780 #x07BF thaana) + (#x0900 #x097F devanagari) + (#x0980 #x09FF bengali) + (#x0A00 #x0A7F gurmukhi) + (#x0A80 #x0AFF gujarati) + (#x0B00 #x0B7F oriya) + (#x0B80 #x0BFF tamil) + (#x0C00 #x0C7F telugu) + (#x0C80 #x0CFF kannada) + (#x0D00 #x0D7F malayalam) + (#x0D80 #x0DFF sinhala) + (#x0E00 #x0E5F thai) + (#x0E80 #x0EDF lao) + (#x0F00 #x0FFF tibetan) + (#x1000 #x105F myanmar) + (#x10A0 #x10FF georgian) + (#x1100 #x11FF hangul) + (#x1200 #x139F ethiopic) + (#x13A0 #x13FF cherokee) + (#x1400 #x167F canadian-aboriginal) + (#x1680 #x169F ogham) + (#x16A0 #x16FF runic) + (#x1780 #x17FF khmer) + (#x1800 #x18AF mongolian) + (#x1E00 #x1EFF latin) + (#x1F00 #x1FFF greek) + (#x2000 #x27FF symbol) + (#x2800 #x28FF braille) + (#x2D80 #x2DDF ethiopic) + (#x2E80 #x2FDF han) + (#x2FF0 #x2FFF ideographic-description) + (#x3000 #x303F cjk-misc) + (#x3040 #x30FF kana) + (#x3100 #x312F bopomofo) + (#x3130 #x318F hangul) + (#x3190 #x319F kanbun) + (#x31A0 #x31BF bopomofo) + (#x3400 #x9FAF han) + (#xA000 #xA4CF yi) + (#xAA80 #xAADF tai-viet) + (#xAC00 #xD7AF hangul) + (#xF900 #xFAFF han) + (#xFB1D #xFB4F hebrew) + (#xFB50 #xFDFF arabic) + (#xFE70 #xFEFC arabic) + (#xFF00 #xFF5F cjk-misc) + (#xFF61 #xFF9F kana) + (#xFFE0 #xFFE6 cjk-misc) + (#x1D000 #x1D0FF byzantine-musical-symbol) + (#x1D100 #x1D1FF musical-symbol) + (#x1D400 #x1D7FF mathematical) + (#x20000 #x2AFFF han) + (#x2F800 #x2FFFF han))) + (set-char-table-range char-script-table + (cons (car elt) (nth 1 elt)) (nth 2 elt)) + (or (memq (nth 2 elt) script-list) + (setq script-list (cons (nth 2 elt) script-list)))) + (set-char-table-extra-slot char-script-table 0 (nreverse script-list))) + +(map-charset-chars + #'(lambda (range ignore) + (set-char-table-range char-script-table range 'tibetan)) + 'tibetan) + + +;;; Setting word boundary. + +(defun next-word-boundary-han (pos limit) + (if (<= pos limit) + (save-excursion + (goto-char pos) + (looking-at "\\cC+") + (goto-char (match-end 0)) + (if (looking-at "\\cH+") + (goto-char (match-end 0))) + (point)) + (while (and (> pos limit) + (eq (aref char-script-table (char-after (1- pos))) 'han)) + (setq pos (1- pos))) + pos)) + +(defun next-word-boundary-kana (pos limit) + (if (<= pos limit) + (save-excursion + (goto-char pos) + (if (looking-at "\\cK+") + (goto-char (match-end 0))) + (if (looking-at "\\cH+") + (goto-char (match-end 0))) + (if (looking-at "\\ck+") + (goto-char (match-end 0))) + (point)) + (let ((category-set (char-category-set (char-after pos))) + category) + (if (or (aref category-set ?K) (aref category-set ?k)) + (while (and (> pos limit) + (setq category-set + (char-category-set (char-after (1- pos)))) + (or (aref category-set ?K) (aref category-set ?k))) + (setq pos (1- pos))) + (while (and (> pos limit) + (aref (setq category-set + (char-category-set (char-after (1- pos)))) ?H)) + (setq pos (1- pos))) + (setq category (cond ((aref category-set ?C) ?C) + ((aref category-set ?K) ?K) + ((aref category-set ?A) ?A))) + (when category + (setq pos (1- pos)) + (while (and (> pos limit) + (aref (char-category-set (char-after (1- pos))) + category)) + (setq pos (1- pos))))) + pos))) + +(map-char-table + #'(lambda (char script) + (cond ((eq script 'han) + (set-char-table-range find-word-boundary-function-table + char #'next-word-boundary-han)) + ((eq script 'kana) + (set-char-table-range find-word-boundary-function-table + char #'next-word-boundary-kana)))) + char-script-table) + +(setq word-combining-categories + '((?l . ?l) + (?C . ?C) + (?C . ?H) + (?C . ?K))) + +(setq word-separating-categories ; (2-byte character sets) + '((?A . ?K) ; Alpha numeric - Katakana + (?A . ?C) ; Alpha numeric - Chinese + (?H . ?A) ; Hiragana - Alpha numeric + (?H . ?K) ; Hiragana - Katakana + (?H . ?C) ; Hiragana - Chinese + (?K . ?A) ; Katakana - Alpha numeric + (?K . ?C) ; Katakana - Chinese + (?C . ?A) ; Chinese - Alpha numeric + (?C . ?K) ; Chinese - Katakana + )) ;;; Local Variables: -;;; coding: iso-2022-7bit +;;; coding: utf-8-emacs ;;; End: ;;; arch-tag: 85889c35-9f4d-4912-9bf5-82de31b0d42d diff --git a/lisp/international/charprop.el b/lisp/international/charprop.el new file mode 100644 index 00000000000..312fc99df41 --- /dev/null +++ b/lisp/international/charprop.el @@ -0,0 +1,71 @@ +;; Automatically generated by unidata-gen.el. +;; FILE: uni-name.el +(define-char-code-property 'name "uni-name.el" + "Unicode character name. +Property value is a string.") +;; FILE: uni-category.el +(define-char-code-property 'general-category "uni-category.el" + "Unicode general category. +Property value is one of the following symbols: + Lu, Ll, Lt, Lm, Lo, Mn, Mc, Me, Nd, Nl, No, Pc, Pd, Ps, Pe, Pi, Pf, Po, + Sm, Sc, Sk, So, Zs, Zl, Zp, Cc, Cf, Cs, Co, Cn") +;; FILE: uni-combining.el +(define-char-code-property 'canonical-combining-class "uni-combining.el" + "Unicode canonical combining class. +Property value is an integer.") +;; FILE: uni-bidi.el +(define-char-code-property 'bidi-class "uni-bidi.el" + "Unicode bidi class. +Property value is one of the following symbols: + L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET, + AN, CS, NSM, BN, B, S, WS, ON") +;; FILE: uni-decomposition.el +(define-char-code-property 'decomposition "uni-decomposition.el" + "Unicode decomposition mapping. +Property value is a list of characters. The first element may be +one of these symbols representing compatibility formatting tag: + <font>, <noBreak>, <initial>, <medial>, <final>, <isolated>, <circle>, + <super>, <sub>, <vertical>, <wide>, <narrow>, <small>, <square>, <fraction>, + <compat>") +;; FILE: uni-decimal.el +(define-char-code-property 'decimal-digit-value "uni-decimal.el" + "Unicode numeric value (decimal digit). +Property value is an integer.") +;; FILE: uni-digit.el +(define-char-code-property 'digit-value "uni-digit.el" + "Unicode numeric value (digit). +Property value is an integer.") +;; FILE: uni-numeric.el +(define-char-code-property 'numeric-value "uni-numeric.el" + "Unicode numeric value (numeric). +Property value is an symbol.") +;; FILE: uni-mirrored.el +(define-char-code-property 'mirrored "uni-mirrored.el" + "Unicode bidi mirrored flag. +Property value is a symbol `Y' or `N'.") +;; FILE: uni-old-name.el +(define-char-code-property 'old-name "uni-old-name.el" + "Unicode old names as published in Unicode 1.0. +Property value is a string.") +;; FILE: uni-comment.el +(define-char-code-property 'iso-10646-comment "uni-comment.el" + "Unicode ISO 10646 comment. +Property value is a string.") +;; FILE: uni-uppercase.el +(define-char-code-property 'uppercase "uni-uppercase.el" + "Unicode simple uppercase mapping. +Property value is a character.") +;; FILE: uni-lowercase.el +(define-char-code-property 'lowercase "uni-lowercase.el" + "Unicode simple lowercase mapping. +Property value is a character.") +;; FILE: uni-titlecase.el +(define-char-code-property 'titlecase "uni-titlecase.el" + "Unicode simple titlecase mapping. +Property value is a character.") +;; Local Variables: +;; coding: utf-8 +;; no-byte-compile: t +;; End: + +;; charprop.el ends here diff --git a/lisp/international/code-pages.el b/lisp/international/code-pages.el deleted file mode 100644 index d7810721c03..00000000000 --- a/lisp/international/code-pages.el +++ /dev/null @@ -1,4713 +0,0 @@ -;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*- - -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; Free Software Foundation, Inc. -;; Copyright (C) 2004, 2005, 2006, 2007 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Definitions of miscellaneous 8-bit coding systems based on ASCII -;; (we can't cope properly with EBCDIC, for instance), mainly for PC -;; `code pages'. They are decoded into Latin-1 and mule-unicode -;; charsets rather than (lossily) into single iso8859 charsets à la -;; codepage.el. The utility `cp-make-coding-system' derives them from -;; simple tables. - -;; Those covered are: cp437, cp737, cp720, cp775, cp850, cp851, cp852, -;; cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866, -;; cp869, cp874, cp1125, windows-1250, windows-1253, windows-1254, -;; windows-1255, windows-1256, windows-1257, windows-1258, next, -;; iso-8859-6, iso-8859-10, iso-8859-11, iso-8859-16, koi8-t, -;; georgian-ps. This is meant to include all the single-byte ones -;; relevant to GNU (used in glibc-defined locales); we don't yet get -;; all the multibyte ones in base Emacs. - -;; Note that various of these can clash with definitions in -;; codepage.el; we try to avoid damage from that. A few CPs from -;; codepage.el (770, 773, 774) aren't covered (in the absence of -;; translation tables to Unicode). - -;; Compile this, to avoid loading `ccl' at runtime. - -;; Although the tables used here aren't very big, it might be worth -;; splitting the file and autoloading the coding systems if/when my -;; (or similar) autoloading code is installed. - -;;; Code: - -;; The defsubsts here are just so that language files can use -;; `cp-make-coding-system' and not require functions from this file -;; at runtime. - -(defsubst cp-make-translation-table (v) - "Return a translation table made from 128-long vector V. -V comprises characters encodable by mule-utf-8." - (let ((encoding-vector (make-vector 256 0))) - (dotimes (i 128) - (aset encoding-vector i i)) - (dotimes (i 128) - (aset encoding-vector (+ i 128) (aref v i))) - ;; Add equivalent characters to the encoder so that we can unify - ;; on encoding. - (let* ((tab (make-translation-table-from-vector encoding-vector)) - ;; Translation table used for encoding: - (encode-table (char-table-extra-slot tab 0))) - (map-char-table (lambda (c v) - (if v - (let ((c1 (aref encode-table v))) - (if c1 ; we encode that unicode - (aset encode-table c c1))))) - ucs-mule-to-mule-unicode) - tab))) - -(defsubst cp-valid-codes (v) - "Derive a valid-codes list for translation vector V. -See `make-coding-system'." - (let (pairs - (i 128) ; index into v - (start 0) ; start of a valid range - (end 127)) ; end of a valid range - (while (< i 256) - (if (aref v (- i 128)) ; start or extend range - (progn - (setq end i) - (unless start (setq start i))) - (if start - (push (cons start end) pairs)) - (setq start nil)) - (setq i (1+ i))) - (if start (push (cons start end) pairs)) - (nreverse pairs))) - -;; Fix things that have been, or might be, done by codepage.el. -(eval-after-load "codepage" - '(progn - -;; Semi-dummy version for the stuff in codepage.el which we don't -;; define here. (Used by mule-diag.) -(defun cp-supported-codepages () - "Return an alist of supported codepages. - -Each association in the alist has the form (NNN . CHARSET), where NNN is the -codepage number, and CHARSET is the MULE charset which is the closest match -for the character set supported by that codepage. - -A codepage NNN is supported if a variable called `cpNNN-decode-table' exists, -is a vector, and has a charset property." - '(("774" . latin-iso8859-4) ("770" . latin-iso8859-4) - ("773" . latin-iso8859-4))) - -;; A version which doesn't override the coding systems set up by this -;; file. It could still be used for the few missing ones from -;; codepage.el. -(defun codepage-setup (codepage) - "Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE. - -These coding systems are meant for encoding and decoding 8-bit non-ASCII -characters used by the IBM codepages, typically in conjunction with files -read/written by MS-DOS software, or for display on the MS-DOS terminal." - (interactive - (let ((completion-ignore-case t) - (candidates (cp-supported-codepages))) - (list (completing-read "Setup DOS Codepage (default 437): " candidates - nil t nil nil "437")))) - (let ((cp (format "cp%s" codepage))) - (unless (coding-system-p (intern cp)) - (cp-make-coding-systems-for-codepage - cp (cp-charset-for-codepage cp) (cp-offset-for-codepage cp)))))) -) ; eval-after-load - -;; Macro to allow ccl compilation at byte-compile time, avoiding -;; loading ccl. -;;;###autoload -(defmacro cp-make-coding-system (name v &optional doc-string mnemonic) - "Make coding system NAME for and 8-bit, extended-ASCII character set. -V is a 128-long vector of characters to translate the upper half of -the character set. DOC-STRING and MNEMONIC are used as the -corresponding args of `make-coding-system'. If MNEMONIC isn't given, -?* is used. -Return an updated `non-iso-charset-alist'." - (let* ((encoder (intern (format "encode-%s" name))) - (decoder (intern (format "decode-%s" name))) - (ccl-decoder - (ccl-compile - `(4 - ((loop - (read r1) - (if (r1 < 128) ;; ASCII - (r0 = ,(charset-id 'ascii)) - (if (r1 < 160) - (r0 = ,(charset-id 'eight-bit-control)) - (r0 = ,(charset-id 'eight-bit-graphic)))) - (translate-character ,decoder r0 r1) - ;; Allow fragmentation on decoding -- relevant for - ;; Cyrillic, Greek and, possibly Arabic and Hebrew. - (translate-character utf-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1) - (repeat)))))) - (ccl-encoder - (ccl-compile - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character ,encoder r0 r1) - (if (r0 != ,(charset-id 'ascii)) - (if (r0 != ,(charset-id 'eight-bit-graphic)) - (if (r0 != ,(charset-id 'eight-bit-control)) - (r1 = ??)))) - (write-repeat r1))))))) - `(let ((translation-table (cp-make-translation-table ,v)) - (codes (cp-valid-codes ,v))) - (define-translation-table ',decoder translation-table) - (define-translation-table ',encoder - (char-table-extra-slot translation-table 0)) - (make-coding-system - ',name 4 ,(or mnemonic ?*) - (or ,doc-string (format "%s encoding" ',name)) - (cons ,ccl-decoder ,ccl-encoder) - (list (cons 'safe-chars (get ',encoder 'translation-table)) - (cons 'valid-codes codes) - (cons 'mime-charset ',name) - ;; For Quail translation. Fixme: this should really be - ;; a separate table that only translates the coding - ;; system's safe-chars. - (cons 'translation-table-for-input 'ucs-mule-to-mule-unicode))) - (let ((slot (assq ',name non-iso-charset-alist)) - (elt (list nil ; charset list - ',decoder - (let (l) ; code range - (dolist (elt (reverse codes)) - (push (cdr elt) l) - (push (car elt) l)) - (list l))))) - (if (not slot) - (push (cons ',name elt) non-iso-charset-alist) - (setcdr slot elt) - non-iso-charset-alist))))) - -(eval-when-compile (defvar non-iso-charset-alist)) - -;; These tables were mostly derived by running somthing like -;; `recode -f cpxxx/..utf-8' on a binary file filled by -;; `(dotimes (i 128) (insert ?? ?\\ (+ 128 i) ?\n))' and then -;; exchanging the ?\� entries for nil. iconv was used instead in some -;; cases. - -;; Fixme: Do better for mode-line mnemonics? - -;;;###autoload(autoload-coding-system 'cp437 '(require 'code-pages)) -(cp-make-coding-system - cp437 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ì - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\ò - ?\û - ?\ù - ?\ÿ - ?\Ö - ?\Ü - ?\¢ - ?\£ - ?\¥ - ?\₧ - ?\ƒ - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - ?\⌐ - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\φ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\° - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp737 '(require 'code-pages)) -(cp-make-coding-system - cp737 - [?\Α - ?\Β - ?\Γ - ?\Δ - ?\Ε - ?\Ζ - ?\Η - ?\Θ - ?\Ι - ?\Κ - ?\Λ - ?\Μ - ?\Ν - ?\Ξ - ?\Ο - ?\Π - ?\Ρ - ?\Σ - ?\Τ - ?\Υ - ?\Φ - ?\Χ - ?\Ψ - ?\Ω - ?\α - ?\β - ?\γ - ?\δ - ?\ε - ?\ζ - ?\η - ?\θ - ?\ι - ?\κ - ?\λ - ?\μ - ?\ν - ?\ξ - ?\ο - ?\π - ?\ρ - ?\σ - ?\ς - ?\τ - ?\υ - ?\φ - ?\χ - ?\ψ - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\ω - ?\ά - ?\έ - ?\ή - ?\ϊ - ?\ί - ?\ό - ?\ύ - ?\ϋ - ?\ώ - ?\Ά - ?\Έ - ?\Ή - ?\Ί - ?\Ό - ?\Ύ - ?\Ώ - ?\± - ?\≥ - ?\≤ - ?\Ϊ - ?\Ϋ - ?\÷ - ?\≈ - ?\° - ?\∙ - ?\· - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) -(coding-system-put 'cp737 'mime-charset nil) ; not in IANA list - -;;;###autoload(autoload-coding-system 'cp775 '(require 'code-pages)) -(cp-make-coding-system - cp775 - [?\Ć - ?\ü - ?\é - ?\ā - ?\ä - ?\ģ - ?\å - ?\ć - ?\ł - ?\ē - ?\Ŗ - ?\ŗ - ?\ī - ?\Ź - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ō - ?\ö - ?\Ģ - ?\¢ - ?\Ś - ?\ś - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\× - ?\¤ - ?\Ā - ?\Ī - ?\ó - ?\Ż - ?\ż - ?\ź - ?\” - ?\¦ - ?\© - ?\® - ?\¬ - ?\½ - ?\¼ - ?\Ł - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Ą - ?\Č - ?\Ę - ?\Ė - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\Į - ?\Š - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\Ų - ?\Ū - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\Ž - ?\ą - ?\č - ?\ę - ?\ė - ?\į - ?\š - ?\ų - ?\ū - ?\ž - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\Ó - ?\ß - ?\Ō - ?\Ń - ?\õ - ?\Õ - ?\µ - ?\ń - ?\Ķ - ?\ķ - ?\Ļ - ?\ļ - ?\ņ - ?\Ē - ?\Ņ - ?\’ - ?\ - ?\± - ?\“ - ?\¾ - ?\¶ - ?\§ - ?\÷ - ?\„ - ?\° - ?\∙ - ?\· - ?\¹ - ?\³ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp850 '(require 'code-pages)) -(cp-make-coding-system - cp850 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ì - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\ò - ?\û - ?\ù - ?\ÿ - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\× - ?\ƒ - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - ?\® - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Á - ?\ - ?\À - ?\© - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\¢ - ?\¥ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\ã - ?\à - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\¤ - ?\ð - ?\Ð - ?\Ê - ?\Ë - ?\È - ?\ı - ?\Í - ?\Î - ?\Ï - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\¦ - ?\Ì - ?\▀ - ?\Ó - ?\ß - ?\Ô - ?\Ò - ?\õ - ?\Õ - ?\µ - ?\þ - ?\Þ - ?\Ú - ?\Û - ?\Ù - ?\ý - ?\Ý - ?\¯ - ?\´ - ?\ - ?\± - ?\‗ - ?\¾ - ?\¶ - ?\§ - ?\÷ - ?\¸ - ?\° - ?\¨ - ?\· - ?\¹ - ?\³ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp851 '(require 'code-pages)) -(cp-make-coding-system - cp851 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\Ά - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\Έ - ?\Ä - ?\Ή - ?\Ί - nil - ?\Ό - ?\ô - ?\ö - ?\Ύ - ?\û - ?\ù - ?\Ώ - ?\Ö - ?\Ü - ?\ά - ?\£ - ?\έ - ?\ή - ?\ί - ?\ϊ - ?\ΐ - ?\ό - ?\ύ - ?\Α - ?\Β - ?\Γ - ?\Δ - ?\Ε - ?\Ζ - ?\Η - ?\½ - ?\Θ - ?\Ι - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Κ - ?\Λ - ?\Ν - ?\Μ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\Ξ - ?\Ο - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\Π - ?\Ρ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\Σ - ?\Τ - ?\Υ - ?\Φ - ?\Χ - ?\Ψ - ?\Ω - ?\α - ?\β - ?\γ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\δ - ?\ε - ?\▀ - ?\ζ - ?\η - ?\θ - ?\ι - ?\κ - ?\λ - ?\μ - ?\ν - ?\ξ - ?\ο - ?\π - ?\ρ - ?\σ - ?\ς - ?\τ - ?\´ - ?\ - ?\± - ?\υ - ?\φ - ?\χ - ?\§ - ?\ψ - ?\˛ - ?\° - ?\¨ - ?\ω - ?\ϋ - ?\ΰ - ?\ώ - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp852 '(require 'code-pages)) -(cp-make-coding-system - cp852 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\ů - ?\ć - ?\ç - ?\ł - ?\ë - ?\Ő - ?\ő - ?\î - ?\Ź - ?\Ä - ?\Ć - ?\É - ?\Ĺ - ?\ĺ - ?\ô - ?\ö - ?\Ľ - ?\ľ - ?\Ś - ?\ś - ?\Ö - ?\Ü - ?\Ť - ?\ť - ?\Ł - ?\× - ?\č - ?\á - ?\í - ?\ó - ?\ú - ?\Ą - ?\ą - ?\Ž - ?\ž - ?\Ę - ?\ę - ?\¬ - ?\ź - ?\Č - ?\ş - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Á - ?\ - ?\Ě - ?\Ş - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\Ż - ?\ż - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\Ă - ?\ă - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\¤ - ?\đ - ?\Đ - ?\Ď - ?\Ë - ?\ď - ?\Ň - ?\Í - ?\Î - ?\ě - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\Ţ - ?\Ů - ?\▀ - ?\Ó - ?\ß - ?\Ô - ?\Ń - ?\ń - ?\ň - ?\Š - ?\š - ?\Ŕ - ?\Ú - ?\ŕ - ?\Ű - ?\ý - ?\Ý - ?\ţ - ?\´ - ?\ - ?\˝ - ?\˛ - ?\ˇ - ?\˘ - ?\§ - ?\÷ - ?\¸ - ?\° - ?\¨ - ?\˙ - ?\ű - ?\Ř - ?\ř - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp855 '(require 'code-pages)) -(cp-make-coding-system - cp855 - [?\ђ - ?\Ђ - ?\ѓ - ?\Ѓ - ?\ё - ?\Ё - ?\є - ?\Є - ?\ѕ - ?\Ѕ - ?\і - ?\І - ?\ї - ?\Ї - ?\ј - ?\Ј - ?\љ - ?\Љ - ?\њ - ?\Њ - ?\ћ - ?\Ћ - ?\ќ - ?\Ќ - ?\ў - ?\Ў - ?\џ - ?\Џ - ?\ю - ?\Ю - ?\ъ - ?\Ъ - ?\а - ?\А - ?\б - ?\Б - ?\ц - ?\Ц - ?\д - ?\Д - ?\е - ?\Е - ?\ф - ?\Ф - ?\г - ?\Г - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\х - ?\Х - ?\и - ?\И - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\й - ?\Й - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\к - ?\К - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\¤ - ?\л - ?\Л - ?\м - ?\М - ?\н - ?\Н - ?\о - ?\О - ?\п - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\П - ?\я - ?\▀ - ?\Я - ?\р - ?\Р - ?\с - ?\С - ?\т - ?\Т - ?\у - ?\У - ?\ж - ?\Ж - ?\в - ?\В - ?\ь - ?\Ь - ?\´ - ?\ - ?\ы - ?\Ы - ?\з - ?\З - ?\ш - ?\Ш - ?\э - ?\Э - ?\щ - ?\Щ - ?\ч - ?\Ч - nil - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp857 '(require 'code-pages)) -(cp-make-coding-system - cp857 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ı - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\ò - ?\û - ?\ù - ?\İ - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\Ş - ?\ş - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\Ğ - ?\ğ - ?\¿ - ?\® - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Á - ?\ - ?\À - ?\© - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\¢ - ?\¥ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\ã - ?\à - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\¤ - ?\º - ?\ª - ?\Ê - ?\Ë - ?\È - nil - ?\Í - ?\Î - ?\Ï - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\¦ - ?\Ì - ?\▀ - ?\Ó - ?\ß - ?\Ô - ?\Ò - ?\õ - ?\Õ - ?\µ - nil - ?\× - ?\Ú - ?\Û - ?\Ù - ?\ì - ?\ÿ - ?\— - ?\´ - ?\ - ?\± - nil - ?\¾ - ?\¶ - ?\§ - ?\÷ - ?\˛ - ?\° - ?\¨ - ?\˙ - ?\¹ - ?\³ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp858 '(require 'code-pages)) -(cp-make-coding-system - cp858 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ì - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\ò - ?\û - ?\ù - ?\ÿ - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\× - ?\ƒ - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - ?\® - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Á - ?\ - ?\À - ?\© - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\¢ - ?\¥ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\ã - ?\à - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\¤ - ?\ð - ?\Ð - ?\Ê - ?\Ë - ?\È - ?\€ - ?\Í - ?\Î - ?\Ï - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\¦ - ?\Ì - ?\▀ - ?\Ó - ?\ß - ?\Ô - ?\Ò - ?\õ - ?\Õ - ?\µ - ?\þ - ?\Þ - ?\Ú - ?\Û - ?\Ù - ?\ý - ?\Ý - ?\¯ - ?\´ - ?\ - ?\± - ?\‗ - ?\¾ - ?\¶ - ?\§ - ?\÷ - ?\¸ - ?\° - ?\¨ - ?\· - ?\¹ - ?\³ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp860 '(require 'code-pages)) -(cp-make-coding-system - cp860 - [?\Ç - ?\ü - ?\é - ?\â - ?\ã - ?\à - ?\Á - ?\ç - ?\ê - ?\Ê - ?\è - ?\Î - ?\Ô - ?\ì - ?\à - ?\ - ?\É - ?\À - ?\È - ?\ô - ?\õ - ?\ò - ?\Ú - ?\ù - ?\Ì - ?\Õ - ?\Ü - ?\¢ - ?\£ - ?\Ù - ?\₧ - ?\Ò - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - ?\Ó - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\φ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\° - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp861 '(require 'code-pages)) -(cp-make-coding-system - cp861 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\Ð - ?\ð - ?\Þ - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\þ - ?\û - ?\Ý - ?\ý - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\₧ - ?\Ò - ?\á - ?\í - ?\ó - ?\ú - ?\Á - ?\Í - ?\Ó - ?\Ú - ?\¿ - nil - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\φ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\° - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp862 '(require 'code-pages)) -(cp-make-coding-system - cp862 - [?\א - ?\ב - ?\ג - ?\ד - ?\ה - ?\ו - ?\ז - ?\ח - ?\ט - ?\י - ?\ך - ?\כ - ?\ל - ?\ם - ?\מ - ?\ן - ?\נ - ?\ס - ?\ע - ?\ף - ?\פ - ?\ץ - ?\צ - ?\ק - ?\ר - ?\ש - ?\ת - ?\¢ - ?\£ - ?\Ù - ?\₧ - ?\Ò - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - nil - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\φ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\° - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp863 '(require 'code-pages)) -(cp-make-coding-system - cp863 - [?\Ç - ?\ü - ?\é - ?\â - ?\ - ?\à - ?\¶ - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ì - ?\À - ?\§ - ?\É - ?\È - ?\Ê - ?\ô - ?\Ë - ?\Ï - ?\û - ?\ù - ?\¤ - ?\Ô - ?\Ü - ?\¢ - ?\£ - ?\Ù - ?\Û - ?\ƒ - ?\¦ - ?\´ - ?\ó - ?\ú - ?\¨ - ?\¸ - ?\³ - ?\¯ - ?\Î - ?\⌐ - ?\¬ - ?\½ - ?\¼ - ?\¾ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\∅ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\∘ - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp864 '(require 'code-pages)) -(cp-make-coding-system - cp864 - [?\° - ?\· - ?\∘ - ?\√ - ?\▒ - ?\─ - ?\│ - ?\┼ - ?\┤ - ?\┬ - ?\├ - ?\┴ - ?\┐ - ?\┌ - ?\└ - ?\┘ - ?\ß - ?\∞ - ?\ø - ?\± - ?\½ - ?\¼ - ?\≈ - ?\« - ?\» - ?\ﻷ - ?\ﻸ - nil - nil - ?\ﻻ - ?\ﻼ - ?\ - nil - ?\ - ?\ﺂ - ?\£ - ?\¤ - ?\ﺄ - nil - nil - ?\ﺎ - ?\ب - ?\ت - ?\ث - ?\، - ?\ج - ?\ح - ?\خ - ?\٠ - ?\١ - ?\٢ - ?\٣ - ?\٤ - ?\٥ - ?\٦ - ?\٧ - ?\٨ - ?\٩ - ?\ڤ - ?\؛ - ?\س - ?\ش - ?\ص - ?\؟ - ?\¢ - ?\ء - ?\آ - ?\أ - ?\ؤ - ?\ﻊ - ?\ئ - ?\ا - ?\ﺑ - ?\ة - ?\ﺗ - ?\ﺛ - ?\ﺟ - ?\ﺣ - ?\ﺧ - ?\د - ?\ذ - ?\ر - ?\ز - ?\ﺳ - ?\ﺷ - ?\ﺻ - ?\ﺿ - ?\ط - ?\ظ - ?\ﻋ - ?\ﻏ - ?\¦ - ?\¬ - ?\÷ - ?\× - ?\ع - ?\ـ - ?\ﻒ - ?\ﻖ - ?\ﻛ - ?\ﻞ - ?\ﻣ - ?\ﻦ - ?\ﻫ - ?\و - ?\ى - ?\ﻳ - ?\ض - ?\ﻢ - ?\ﻎ - ?\غ - ?\م - ?\ﹽ - ?\ّ - ?\ن - ?\ه - ?\ﻬ - ?\ﻰ - ?\ﻲ - ?\ف - ?\ق - ?\ﻵ - ?\ﻶ - ?\ل - ?\ك - ?\ي - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp865 '(require 'code-pages)) -(cp-make-coding-system - cp865 - [?\Ç - ?\ü - ?\é - ?\â - ?\ä - ?\à - ?\å - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - ?\ì - ?\Ä - ?\Å - ?\É - ?\æ - ?\Æ - ?\ô - ?\ö - ?\ò - ?\û - ?\ù - ?\ÿ - ?\Ö - ?\Ü - ?\ø - ?\£ - ?\Ø - ?\₧ - ?\ƒ - ?\á - ?\í - ?\ó - ?\ú - ?\ñ - ?\Ñ - ?\ª - ?\º - ?\¿ - ?\⌐ - ?\¬ - ?\½ - ?\¼ - ?\¡ - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\α - ?\ß - ?\Γ - ?\π - ?\Σ - ?\σ - ?\µ - ?\τ - ?\Φ - ?\Θ - ?\Ω - ?\δ - ?\∞ - ?\∅ - ?\ε - ?\∩ - ?\≡ - ?\± - ?\≥ - ?\≤ - ?\⌠ - ?\⌡ - ?\÷ - ?\≈ - ?\∘ - ?\· - ?\• - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp866 '(require 'code-pages)) -(cp-make-coding-system - cp866 - [?\А - ?\Б - ?\В - ?\Г - ?\Д - ?\Е - ?\Ж - ?\З - ?\И - ?\Й - ?\К - ?\Л - ?\М - ?\Н - ?\О - ?\П - ?\Р - ?\С - ?\Т - ?\У - ?\Ф - ?\Х - ?\Ц - ?\Ч - ?\Ш - ?\Щ - ?\Ъ - ?\Ы - ?\Ь - ?\Э - ?\Ю - ?\Я - ?\а - ?\б - ?\в - ?\г - ?\д - ?\е - ?\ж - ?\з - ?\и - ?\й - ?\к - ?\л - ?\м - ?\н - ?\о - ?\п - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\р - ?\с - ?\т - ?\у - ?\ф - ?\х - ?\ц - ?\ч - ?\ш - ?\щ - ?\ъ - ?\ы - ?\ь - ?\э - ?\ю - ?\я - ?\Ё - ?\ё - ?\Є - ?\є - ?\Ї - ?\ї - ?\Ў - ?\ў - ?\° - ?\∙ - ?\· - ?\√ - ?\№ - ?\¤ - ?\■ - ?\ ] - "CP866 (Cyrillic)." - ?A) - -;;;###autoload(autoload-coding-system 'cp869 '(require 'code-pages)) -(cp-make-coding-system - cp869 - [nil - nil - nil - nil - nil - nil - ?\Ά - nil - ?\· - ?\¬ - ?\¦ - ?\‛ - ?\’ - ?\Έ - ?\— - ?\Ή - ?\Ί - ?\Ϊ - ?\Ό - nil - nil - ?\Ύ - ?\Ϋ - ?\© - ?\Ώ - ?\² - ?\³ - ?\ά - ?\£ - ?\έ - ?\ή - ?\ί - ?\ϊ - ?\ΐ - ?\ό - ?\ύ - ?\Α - ?\Β - ?\Γ - ?\Δ - ?\Ε - ?\Ζ - ?\Η - ?\½ - ?\Θ - ?\Ι - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\Κ - ?\Λ - ?\Μ - ?\Ν - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\Ξ - ?\Ο - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\Π - ?\Ρ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\Σ - ?\Τ - ?\Υ - ?\Φ - ?\Χ - ?\Ψ - ?\Ω - ?\α - ?\β - ?\γ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\δ - ?\ε - ?\▀ - ?\ζ - ?\η - ?\θ - ?\ι - ?\κ - ?\λ - ?\μ - ?\ν - ?\ξ - ?\ο - ?\π - ?\ρ - ?\σ - ?\ς - ?\τ - ?\´ - ?\ - ?\± - ?\υ - ?\φ - ?\χ - ?\§ - ?\ψ - ?\΅ - ?\° - ?\¨ - ?\ω - ?\ϋ - ?\ΰ - ?\ώ - ?\■ - ?\ ]) - -;;;###autoload(autoload-coding-system 'cp874 '(require 'code-pages)) -(cp-make-coding-system - cp874 - [?\€ - nil - nil - nil - nil - ?\… - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - nil - nil - nil - nil - nil - nil - nil - nil - ?\ - ?\ก - ?\ข - ?\ฃ - ?\ค - ?\ฅ - ?\ฆ - ?\ง - ?\จ - ?\ฉ - ?\ช - ?\ซ - ?\ฌ - ?\ญ - ?\ฎ - ?\ฏ - ?\ฐ - ?\ฑ - ?\ฒ - ?\ณ - ?\ด - ?\ต - ?\ถ - ?\ท - ?\ธ - ?\น - ?\บ - ?\ป - ?\ผ - ?\ฝ - ?\พ - ?\ฟ - ?\ภ - ?\ม - ?\ย - ?\ร - ?\ฤ - ?\ล - ?\ฦ - ?\ว - ?\ศ - ?\ษ - ?\ส - ?\ห - ?\ฬ - ?\อ - ?\ฮ - ?\ฯ - ?\ะ - ?\ั - ?\า - ?\ำ - ?\ิ - ?\ี - ?\ึ - ?\ื - ?\ุ - ?\ู - ?\ฺ - nil - nil - nil - nil - ?\฿ - ?\เ - ?\แ - ?\โ - ?\ใ - ?\ไ - ?\ๅ - ?\ๆ - ?\็ - ?\่ - ?\้ - ?\๊ - ?\๋ - ?\์ - ?\ํ - ?\๎ - ?\๏ - ?\๐ - ?\๑ - ?\๒ - ?\๓ - ?\๔ - ?\๕ - ?\๖ - ?\๗ - ?\๘ - ?\๙ - ?\๚ - ?\๛ - nil - nil - nil - nil]) - -;;;###autoload(autoload-coding-system 'windows-1250 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1250 '(require 'code-pages)) -(cp-make-coding-system - windows-1250 - [?\€ - nil - ?\‚ - nil - ?\„ - ?\… - ?\† - ?\‡ - nil - ?\‰ - ?\Š - ?\‹ - ?\Ś - ?\Ť - ?\Ž - ?\Ź - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - nil - ?\™ - ?\š - ?\› - ?\ś - ?\ť - ?\ž - ?\ź - ?\ - ?\ˇ - ?\˘ - ?\Ł - ?\¤ - ?\Ą - ?\¦ - ?\§ - ?\¨ - ?\© - ?\Ş - ?\« - ?\¬ - ?\ - ?\® - ?\Ż - ?\° - ?\± - ?\˛ - ?\ł - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\ą - ?\ş - ?\» - ?\Ľ - ?\˝ - ?\ľ - ?\ż - ?\Ŕ - ?\Á - ?\ - ?\Ă - ?\Ä - ?\Ĺ - ?\Ć - ?\Ç - ?\Č - ?\É - ?\Ę - ?\Ë - ?\Ě - ?\Í - ?\Î - ?\Ď - ?\Đ - ?\Ń - ?\Ň - ?\Ó - ?\Ô - ?\Ő - ?\Ö - ?\× - ?\Ř - ?\Ů - ?\Ú - ?\Ű - ?\Ü - ?\Ý - ?\Ţ - ?\ß - ?\ŕ - ?\á - ?\â - ?\ă - ?\ä - ?\ĺ - ?\ć - ?\ç - ?\č - ?\é - ?\ę - ?\ë - ?\ě - ?\í - ?\î - ?\ď - ?\đ - ?\ń - ?\ň - ?\ó - ?\ô - ?\ő - ?\ö - ?\÷ - ?\ř - ?\ů - ?\ú - ?\ű - ?\ü - ?\ý - ?\ţ - ?\˙]) - -;;;###autoload(autoload-coding-system 'windows-1253 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1253 '(require 'code-pages)) -(cp-make-coding-system - windows-1253 - [?\€ - nil - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - nil - ?\‰ - nil - ?\‹ - nil - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - nil - ?\™ - nil - ?\› - nil - nil - nil - nil - ?\ - ?\΅ - ?\Ά - ?\£ - ?\¤ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - nil - ?\« - ?\¬ - ?\ - ?\® - ?\― - ?\° - ?\± - ?\² - ?\³ - ?\΄ - ?\µ - ?\¶ - ?\· - ?\Έ - ?\Ή - ?\Ί - ?\» - ?\Ό - ?\½ - ?\Ύ - ?\Ώ - ?\ΐ - ?\Α - ?\Β - ?\Γ - ?\Δ - ?\Ε - ?\Ζ - ?\Η - ?\Θ - ?\Ι - ?\Κ - ?\Λ - ?\Μ - ?\Ν - ?\Ξ - ?\Ο - ?\Π - ?\Ρ - nil - ?\Σ - ?\Τ - ?\Υ - ?\Φ - ?\Χ - ?\Ψ - ?\Ω - ?\Ϊ - ?\Ϋ - ?\ά - ?\έ - ?\ή - ?\ί - ?\ΰ - ?\α - ?\β - ?\γ - ?\δ - ?\ε - ?\ζ - ?\η - ?\θ - ?\ι - ?\κ - ?\λ - ?\μ - ?\ν - ?\ξ - ?\ο - ?\π - ?\ρ - ?\ς - ?\σ - ?\τ - ?\υ - ?\φ - ?\χ - ?\ψ - ?\ω - ?\ϊ - ?\ϋ - ?\ό - ?\ύ - ?\ώ - nil] - nil ?g) ;; Greek - -;;;###autoload(autoload-coding-system 'windows-1254 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1254 '(require 'code-pages)) -(cp-make-coding-system - windows-1254 - [?\€ - nil - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - ?\ˆ - ?\‰ - ?\Š - ?\‹ - ?\Œ - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - ?\˜ - ?\™ - ?\š - ?\› - ?\œ - nil - nil - ?\Ÿ - ?\ - ?\¡ - ?\¢ - ?\£ - ?\¤ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - ?\ª - ?\« - ?\¬ - ?\ - ?\® - ?\¯ - ?\° - ?\± - ?\² - ?\³ - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\¹ - ?\º - ?\» - ?\¼ - ?\½ - ?\¾ - ?\¿ - ?\À - ?\Á - ?\ - ?\à - ?\Ä - ?\Å - ?\Æ - ?\Ç - ?\È - ?\É - ?\Ê - ?\Ë - ?\Ì - ?\Í - ?\Î - ?\Ï - ?\Ğ - ?\Ñ - ?\Ò - ?\Ó - ?\Ô - ?\Õ - ?\Ö - ?\× - ?\Ø - ?\Ù - ?\Ú - ?\Û - ?\Ü - ?\İ - ?\Ş - ?\ß - ?\à - ?\á - ?\â - ?\ã - ?\ä - ?\å - ?\æ - ?\ç - ?\è - ?\é - ?\ę - ?\ë - ?\ė - ?\í - ?\î - ?\ī - ?\ğ - ?\ñ - ?\ò - ?\ó - ?\ô - ?\õ - ?\ö - ?\÷ - ?\ø - ?\ù - ?\ú - ?\û - ?\ü - ?\ı - ?\ş - ?\ÿ]) - -;; yi_US -;;;###autoload(autoload-coding-system 'windows-1255 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1255 '(require 'code-pages)) -(cp-make-coding-system - windows-1255 - [?\€ - nil - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - ?\ˆ - ?\‰ - nil - ?\‹ - nil - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - ?\˜ - ?\™ - nil - ?\› - nil - nil - nil - nil - ?\ - ?\¡ - ?\¢ - ?\£ - ?\₪ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - ?\× - ?\« - ?\¬ - ?\ - ?\® - ?\¯ - ?\° - ?\± - ?\² - ?\³ - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\¹ - ?\÷ - ?\» - ?\¼ - ?\½ - ?\¾ - ?\¿ - ?\ְ - ?\ֱ - ?\ֲ - ?\ֳ - ?\ִ - ?\ֵ - ?\ֶ - ?\ַ - ?\ָ - ?\ֹ - nil - ?\ֻ - ?\ּ - ?\ֽ - ?\־ - ?\ֿ - ?\׀ - ?\ׁ - ?\ׂ - ?\׃ - ?\װ - ?\ױ - ?\ײ - ?\׳ - ?\״ - nil - nil - nil - nil - nil - nil - nil - ?\א - ?\ב - ?\ג - ?\ד - ?\ה - ?\ו - ?\ז - ?\ח - ?\ט - ?\י - ?\ך - ?\כ - ?\ל - ?\ם - ?\מ - ?\ן - ?\נ - ?\ס - ?\ע - ?\ף - ?\פ - ?\ץ - ?\צ - ?\ק - ?\ר - ?\ש - ?\ת - nil - nil - ?\ - ?\ - nil] - nil ?h) ;; Hebrew - -;;;###autoload(autoload-coding-system 'windows-1256 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1256 '(require 'code-pages)) -(cp-make-coding-system - windows-1256 - [?\€ - ?\پ - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - ?\ˆ - ?\‰ - ?\ٹ - ?\‹ - ?\Œ - ?\چ - ?\ژ - ?\ڈ - ?\گ - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - ?\ک - ?\™ - ?\ڑ - ?\› - ?\œ - ?\ - ?\ - ?\ں - ?\ - ?\، - ?\¢ - ?\£ - ?\¤ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - ?\ھ - ?\« - ?\¬ - ?\ - ?\® - ?\¯ - ?\° - ?\± - ?\² - ?\³ - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\¹ - ?\؛ - ?\» - ?\¼ - ?\½ - ?\¾ - ?\؟ - ?\ہ - ?\ء - ?\آ - ?\أ - ?\ؤ - ?\إ - ?\ئ - ?\ا - ?\ب - ?\ة - ?\ت - ?\ث - ?\ج - ?\ح - ?\خ - ?\د - ?\ذ - ?\ر - ?\ز - ?\س - ?\ش - ?\ص - ?\ض - ?\× - ?\ط - ?\ظ - ?\ع - ?\غ - ?\ـ - ?\ف - ?\ق - ?\ك - ?\à - ?\ل - ?\â - ?\م - ?\ن - ?\ه - ?\و - ?\ç - ?\è - ?\é - ?\ê - ?\ë - ?\ى - ?\ي - ?\î - ?\ï - ?\ً - ?\ٌ - ?\ٍ - ?\َ - ?\ô - ?\ُ - ?\ِ - ?\÷ - ?\ّ - ?\ù - ?\ْ - ?\û - ?\ü - ?\ - ?\ - ?\ے] - nil ?a) ;; Arabic - -;;;###autoload(autoload-coding-system 'windows-1257 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1257 '(require 'code-pages)) -(cp-make-coding-system - windows-1257 - [?\€ - nil - ?\‚ - nil - ?\„ - ?\… - ?\† - ?\‡ - nil - ?\‰ - nil - ?\‹ - nil - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - nil - ?\™ - nil - ?\› - nil - nil - nil - nil - ?\ - nil - ?\¢ - ?\£ - ?\¤ - nil - ?\¦ - ?\§ - ?\Ø - ?\© - ?\Ŗ - ?\« - ?\¬ - ?\ - ?\® - ?\Æ - ?\° - ?\± - ?\² - ?\³ - nil - ?\µ - ?\¶ - ?\· - ?\ø - ?\¹ - ?\ŗ - ?\» - ?\¼ - ?\½ - ?\¾ - ?\æ - ?\Ą - ?\Į - ?\Ā - ?\Ć - ?\Ä - ?\Å - ?\Ę - ?\Ē - ?\Č - ?\É - ?\Ź - ?\Ė - ?\Ģ - ?\Ķ - ?\Ī - ?\Ļ - ?\Š - ?\Ń - ?\Ņ - ?\Ó - ?\Ō - ?\Õ - ?\Ö - ?\× - ?\Ų - ?\Ł - ?\Ś - ?\Ū - ?\Ü - ?\Ż - ?\Ž - ?\ß - ?\ą - ?\į - ?\ā - ?\ć - ?\ä - ?\å - ?\ę - ?\ē - ?\č - ?\é - ?\ź - ?\ė - ?\ģ - ?\ķ - ?\ī - ?\ļ - ?\š - ?\ń - ?\ņ - ?\ó - ?\ō - ?\õ - ?\ö - ?\÷ - ?\ų - ?\ł - ?\ś - ?\ū - ?\ü - ?\ż - ?\ž - nil]) - -;;;###autoload(autoload-coding-system 'windows-1258 '(require 'code-pages)) -;;;###autoload(autoload-coding-system 'cp1258 '(require 'code-pages)) -(cp-make-coding-system - windows-1258 - [?\€ - nil - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - ?\ˆ - ?\‰ - nil - ?\‹ - ?\Œ - nil - nil - nil - nil - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - ?\˜ - ?\™ - nil - ?\› - ?\œ - nil - nil - ?\Ÿ - ?\ - ?\¡ - ?\¢ - ?\£ - ?\¤ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - ?\ª - ?\« - ?\¬ - ?\ - ?\® - ?\¯ - ?\° - ?\± - ?\² - ?\³ - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\¹ - ?\º - ?\» - ?\¼ - ?\½ - ?\¾ - ?\¿ - ?\À - ?\Á - ?\ - ?\Ă - ?\Ä - ?\Å - ?\Æ - ?\Ç - ?\È - ?\É - ?\Ê - ?\Ë - ?\̀ - ?\Í - ?\Î - ?\Ï - ?\Đ - ?\Ñ - ?\̉ - ?\Ó - ?\Ô - ?\Ơ - ?\Ö - ?\× - ?\Ø - ?\Ù - ?\Ú - ?\Û - ?\Ü - ?\Ư - ?\̃ - ?\ß - ?\à - ?\á - ?\â - ?\ă - ?\ä - ?\å - ?\æ - ?\ç - ?\è - ?\é - ?\ê - ?\ë - ?\́ - ?\í - ?\î - ?\ï - ?\đ - ?\ñ - ?\̣ - ?\ó - ?\ô - ?\ơ - ?\ö - ?\÷ - ?\ø - ?\ù - ?\ú - ?\û - ?\ü - ?\ư - ?\₫ - ?\ÿ]) - -;;;###autoload(autoload-coding-system 'next '(require 'code-pages)) -(cp-make-coding-system - next - [?\ - ?\À - ?\Á - ?\ - ?\à - ?\Ä - ?\Å - ?\Ç - ?\È - ?\É - ?\Ê - ?\Ë - ?\Ì - ?\Í - ?\Î - ?\Ï - ?\Ð - ?\Ñ - ?\Ò - ?\Ó - ?\Ô - ?\Õ - ?\Ö - ?\Ù - ?\Ú - ?\Û - ?\Ü - ?\Ý - ?\Þ - ?\µ - ?\× - ?\÷ - ?\© - ?\¡ - ?\¢ - ?\£ - ?\⁄ - ?\¥ - ?\ƒ - ?\§ - ?\¤ - ?\’ - ?\“ - ?\« - ?\‹ - ?\› - ?\fi - ?\fl - ?\® - ?\– - ?\† - ?\‡ - ?\· - ?\¦ - ?\¶ - ?\• - ?\‚ - ?\„ - ?\” - ?\» - ?\… - ?\‰ - ?\¬ - ?\¿ - ?\¹ - ?\ˋ - ?\´ - ?\ˆ - ?\˜ - ?\¯ - ?\˘ - ?\˙ - ?\¨ - ?\² - ?\˚ - ?\¸ - ?\³ - ?\˝ - ?\˛ - ?\ˇ - ?\— - ?\± - ?\¼ - ?\½ - ?\¾ - ?\à - ?\á - ?\â - ?\ã - ?\ä - ?\å - ?\ç - ?\è - ?\é - ?\ê - ?\ë - ?\ì - ?\Æ - ?\í - ?\ª - ?\î - ?\ï - ?\ð - ?\ñ - ?\Ł - ?\Ø - ?\Œ - ?\º - ?\ò - ?\ó - ?\ô - ?\õ - ?\ö - ?\æ - ?\ù - ?\ú - ?\û - ?\ı - ?\ü - ?\ý - ?\ł - ?\ø - ?\œ - ?\ß - ?\þ - ?\ÿ - nil - nil] - "NeXTstep encoding." ?N) - -;;;###autoload(autoload-coding-system 'koi8-t '(require 'code-pages)) -(cp-make-coding-system - koi8-t ; used by glibc for tg_TJ - [?\қ - ?\ғ - ?\‚ - ?\Ғ - ?\„ - ?\… - ?\† - ?\‡ - nil - ?\‰ - ?\ҳ - ?\‹ - ?\Ҳ - ?\ҷ - ?\Ҷ - nil - ?\Қ - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - nil - ?\™ - nil - ?\› - nil - nil - nil - nil - nil - ?\ӯ - ?\Ӯ - ?\ё - ?\¤ - ?\ӣ - ?\¦ - ?\§ - nil - nil - nil - ?\« - ?\¬ - ?\ - ?\® - nil - ?\° - ?\± - ?\² - ?\Ё - nil - ?\Ӣ - ?\¶ - ?\· - nil - ?\№ - nil - ?\» - nil - nil - nil - ?\© - ?\ю - ?\а - ?\б - ?\ц - ?\д - ?\е - ?\ф - ?\г - ?\х - ?\и - ?\й - ?\к - ?\л - ?\м - ?\н - ?\о - ?\п - ?\я - ?\р - ?\с - ?\т - ?\у - ?\ж - ?\в - ?\ь - ?\ы - ?\з - ?\ш - ?\э - ?\щ - ?\ч - ?\ъ - ?\Ю - ?\А - ?\Б - ?\Ц - ?\Д - ?\Е - ?\Ф - ?\Г - ?\Х - ?\И - ?\Й - ?\К - ?\Л - ?\М - ?\Н - ?\О - ?\П - ?\Я - ?\Р - ?\С - ?\Т - ?\У - ?\Ж - ?\В - ?\Ь - ?\Ы - ?\З - ?\Ш - ?\Э - ?\Щ - ?\Ч - ?\Ъ] - "Unicode-based KOI8-T encoding for Cyrillic") -(coding-system-put 'koi8-t 'mime-charset nil) ; not in the IANA list -(define-coding-system-alias 'cyrillic-koi8-t 'koi8-t) - -;; Online final ISO draft: - -;; http://www.evertype.com/standards/iso8859/fdis8859-16-en.pdf - -;; Equivalent National Standard: -;; Romanian Standard SR 14111:1998, Romanian Standards Institution -;; (ASRO). - -;; Intended usage: - -;; "This set of coded graphic characters is intended for use in data and -;; text processing applications and also for information interchange. The -;; set contains graphic characters used for general purpose applications in -;; typical office environments in at least the following languages: -;; Albanian, Croatian, English, Finnish, French, German, Hungarian, Irish -;; Gaelic (new orthography), Italian, Latin, Polish, Romanian, and -;; Slovenian. This set of coded graphic characters may be regarded as a -;; version of an 8-bit code according to ISO/IEC 2022 or ISO/IEC 4873 at -;; level 1." [ISO 8859-16:2001(E), p. 1] - -;; This charset is suitable for use in MIME text body parts. - -;; ISO 8859-16 was primarily designed for single-byte encoding the Romanian -;; language. The UTF-8 charset is the preferred and in today's MIME software -;; more widely implemented encoding suitable for Romanian. -;;;###autoload(autoload-coding-system 'iso-8859-16 '(require 'code-pages)) -(cp-make-coding-system - iso-latin-10 ; consistent with, e.g. Latin-1 - [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - ?\ - ?\Ą - ?\ą - ?\Ł - ?\€ - ?\„ - ?\Š - ?\§ - ?\š - ?\© - ?\Ș - ?\« - ?\Ź - ?\ - ?\ź - ?\Ż - ?\° - ?\± - ?\Č - ?\ł - ?\Ž - ?\” - ?\¶ - ?\· - ?\ž - ?\č - ?\ș - ?\» - ?\Œ - ?\œ - ?\Ÿ - ?\ż - ?\À - ?\Á - ?\ - ?\Ă - ?\Ä - ?\Ć - ?\Æ - ?\Ç - ?\È - ?\É - ?\Ê - ?\Ë - ?\Ì - ?\Í - ?\Î - ?\Ï - ?\Đ - ?\Ń - ?\Ò - ?\Ó - ?\Ô - ?\Ő - ?\Ö - ?\Ś - ?\Ű - ?\Ù - ?\Ú - ?\Û - ?\Ü - ?\Ę - ?\Ț - ?\ß - ?\à - ?\á - ?\â - ?\ă - ?\ä - ?\ć - ?\æ - ?\ç - ?\è - ?\é - ?\ê - ?\ë - ?\ì - ?\í - ?\î - ?\ï - ?\đ - ?\ń - ?\ò - ?\ó - ?\ô - ?\ő - ?\ö - ?\ś - ?\ű - ?\ù - ?\ú - ?\û - ?\ü - ?\ę - ?\ț - ?\ÿ] - "Unicode-based encoding for Latin-10 (MIME: ISO-8859-16)" - ?r) ;; Romanian -(coding-system-put 'iso-latin-10 'mime-charset 'iso-8859-16) -(define-coding-system-alias 'iso-8859-16 'iso-latin-10) -(define-coding-system-alias 'latin-10 'iso-latin-10) - -;; Unicode-based alternative which has the possible advantage of -;; having its relative sparseness specified. -;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages)) -(cp-make-coding-system - ;; The base system uses arabic-iso-8bit, but that's not a MIME charset. - iso-8859-6 - [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - ?\ - nil - nil - nil - ?¤ - nil - nil - nil - nil - nil - nil - nil - ?، - ? - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - nil - ?؛ - nil - nil - nil - ?؟ - nil - ?ء - ?آ - ?أ - ?ؤ - ?إ - ?ئ - ?ا - ?ب - ?ة - ?ت - ?ث - ?ج - ?ح - ?خ - ?د - ?ذ - ?ر - ?ز - ?س - ?ش - ?ص - ?ض - ?ط - ?ظ - ?ع - ?غ - nil - nil - nil - nil - nil - ?ـ - ?ف - ?ق - ?ك - ?ل - ?م - ?ن - ?ه - ?و - ?ى - ?ي - ?ً - ?ٌ - ?ٍ - ?َ - ?ُ - ?ِ - ?ّ - ?ْ - nil nil nil nil nil nil nil nil nil nil nil nil nil] - "Unicode-based Arabic ISO/IEC 8859-6 (MIME: ISO-8859-6)" - ?6) -(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6) - -;;;###autoload(autoload-coding-system 'iso-8859-10 '(require 'code-pages)) -(cp-make-coding-system - iso-latin-6 - [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - ?\ - ?\Ą - ?\Ē - ?\Ģ - ?\Ī - ?\Ĩ - ?\Ķ - ?\§ - ?\Ļ - ?\Đ - ?\Š - ?\Ŧ - ?\Ž - ?\ - ?\Ū - ?\Ŋ - ?\° - ?\ą - ?\ē - ?\ģ - ?\ī - ?\ĩ - ?\ķ - ?\· - ?\ļ - ?\đ - ?\š - ?\ŧ - ?\ž - ?\― - ?\ū - ?\ŋ - ?\Ā - ?\Á - ?\ - ?\à - ?\Ä - ?\Å - ?\Æ - ?\Į - ?\Č - ?\É - ?\Ę - ?\Ë - ?\Ė - ?\Í - ?\Î - ?\Ï - ?\Ð - ?\Ņ - ?\Ō - ?\Ó - ?\Ô - ?\Õ - ?\Ö - ?\Ũ - ?\Ø - ?\Ų - ?\Ú - ?\Û - ?\Ü - ?\Ý - ?\Þ - ?\ß - ?\ā - ?\á - ?\â - ?\ã - ?\ä - ?\å - ?\æ - ?\į - ?\č - ?\é - ?\ę - ?\ë - ?\ė - ?\í - ?\î - ?\ï - ?\ð - ?\ņ - ?\ō - ?\ó - ?\ô - ?\õ - ?\ö - ?\ũ - ?\ø - ?\ų - ?\ú - ?\û - ?\ü - ?\ý - ?\þ - ?\ĸ] - "Unicode-based encoding for Latin-6 (MIME: ISO-8859-10)") -(coding-system-put 'iso-latin-6 'mime-charset 'iso-8859-10) -(define-coding-system-alias 'iso-8859-10 'iso-latin-6) -(define-coding-system-alias 'latin-6 'iso-latin-6) - -;; used by lt_LT, lv_LV, mi_NZ -;;;###autoload(autoload-coding-system 'iso-8859-13 '(require 'code-pages)) -(cp-make-coding-system - iso-latin-7 - [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - ?\ - ?\” - ?\¢ - ?\£ - ?\¤ - ?\„ - ?\¦ - ?\§ - ?\Ø - ?\© - ?\Ŗ - ?\« - ?\¬ - ?\ - ?\® - ?\Æ - ?\° - ?\± - ?\² - ?\³ - ?\“ - ?\µ - ?\¶ - ?\· - ?\ø - ?\¹ - ?\ŗ - ?\» - ?\¼ - ?\½ - ?\¾ - ?\æ - ?\Ą - ?\Į - ?\Ā - ?\Ć - ?\Ä - ?\Å - ?\Ę - ?\Ē - ?\Č - ?\É - ?\Ź - ?\Ė - ?\Ģ - ?\Ķ - ?\Ī - ?\Ļ - ?\Š - ?\Ń - ?\Ņ - ?\Ó - ?\Ō - ?\Õ - ?\Ö - ?\× - ?\Ų - ?\Ł - ?\Ś - ?\Ū - ?\Ü - ?\Ż - ?\Ž - ?\ß - ?\ą - ?\į - ?\ā - ?\ć - ?\ä - ?\å - ?\ę - ?\ē - ?\č - ?\é - ?\ź - ?\ė - ?\ģ - ?\ķ - ?\ī - ?\ļ - ?\š - ?\ń - ?\ņ - ?\ó - ?\ō - ?\õ - ?\ö - ?\÷ - ?\ų - ?\ł - ?\ś - ?\ū - ?\ü - ?\ż - ?\ž - ?\’ - ] - "Unicode-based encoding for Latin-7 (MIME: ISO-8859-13)" - ?l) ;; Lithuanian/Latvian -(coding-system-put 'iso-latin-7 'mime-charset 'iso-8859-13) -(define-coding-system-alias 'iso-8859-13 'iso-latin-7) -(define-coding-system-alias 'latin-7 'iso-latin-7) - -;; Fixme: check on the C1 characters which libiconv includes. They -;; are reproduced below, but are probably wrong. I can't find an -;; official definition of georgian-ps. -;;;###autoload(autoload-coding-system 'georgian-ps '(require 'code-pages)) -(cp-make-coding-system - georgian-ps ; used by glibc for ka_GE - [?\ - ?\ - ?\‚ - ?\ƒ - ?\„ - ?\… - ?\† - ?\‡ - ?\ˆ - ?\‰ - ?\Š - ?\‹ - ?\Œ - ?\ - ?\ - ?\ - ?\ - ?\‘ - ?\’ - ?\“ - ?\” - ?\• - ?\– - ?\— - ?\˜ - ?\™ - ?\š - ?\› - ?\œ - ?\ - ?\ - ?\Ÿ - ?\ - ?\¡ - ?\¢ - ?\£ - ?\¤ - ?\¥ - ?\¦ - ?\§ - ?\¨ - ?\© - ?\ª - ?\« - ?\¬ - ?\ - ?\® - ?\¯ - ?\° - ?\± - ?\² - ?\³ - ?\´ - ?\µ - ?\¶ - ?\· - ?\¸ - ?\¹ - ?\º - ?\» - ?\¼ - ?\½ - ?\¾ - ?\¿ - ?\ა - ?\ბ - ?\გ - ?\დ - ?\ე - ?\ვ - ?\ზ - ?\ჱ - ?\თ - ?\ი - ?\კ - ?\ლ - ?\მ - ?\ნ - ?\ჲ - ?\ო - ?\პ - ?\ჟ - ?\რ - ?\ს - ?\ტ - ?\ჳ - ?\უ - ?\ფ - ?\ქ - ?\ღ - ?\ყ - ?\შ - ?\ჩ - ?\ც - ?\ძ - ?\წ - ?\ჭ - ?\ხ - ?\ჴ - ?\ჯ - ?\ჰ - ?\ჵ - ?\æ - ?\ç - ?\è - ?\é - ?\ê - ?\ë - ?\ì - ?\í - ?\î - ?\ï - ?\ð - ?\ñ - ?\ò - ?\ó - ?\ô - ?\õ - ?\ö - ?\÷ - ?\ø - ?\ù - ?\ú - ?\û - ?\ü - ?\ý - ?\þ - ?\ÿ] - nil ?G) -(coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list - -;;;###autoload(autoload-coding-system 'cp720 '(require 'code-pages)) -;; From http://www.microsoft.com/globaldev/reference/oem/720.htm -(cp-make-coding-system - cp720 - [nil - nil - ?\é - ?\â - nil - ?\à - nil - ?\ç - ?\ê - ?\ë - ?\è - ?\ï - ?\î - nil - nil - nil - nil - ?\ّ - ?\ْ - ?\ô - ?\¤ - ?\ـ - ?\û - ?\ù - ?\ء - ?\آ - ?\أ - ?\ؤ - ?\£ - ?\إ - ?\ئ - ?\ا - ?\ب - ?\ة - ?\ت - ?\ث - ?\ج - ?\ح - ?\خ - ?\د - ?\ذ - ?\ر - ?\ز - ?\س - ?\ش - ?\ص - ?\« - ?\» - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\ض - ?\ط - ?\ظ - ?\ع - ?\غ - ?\ف - ?\µ - ?\ق - ?\ك - ?\ل - ?\م - ?\ن - ?\ه - ?\و - ?\ى - ?\ي - ?\≡ - ?\ً - ?\ٌ - ?\ٍ - ?\َ - ?\ُ - ?\ِ - ?\≈ - ?\° - ?\∙ - ?\· - ?\√ - ?\ⁿ - ?\² - ?\■ - ?\ ]) -(coding-system-put 'cp720 'mime-charset nil) ; not in IANA list - -;;;###autoload(autoload-coding-system 'cp1125 '(require 'code-pages)) -;; http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ibm-1125_P100-2000.ucm -(cp-make-coding-system - cp1125 - [?\А - ?\Б - ?\В - ?\Г - ?\Д - ?\Е - ?\Ж - ?\З - ?\И - ?\Й - ?\К - ?\Л - ?\М - ?\Н - ?\О - ?\П - ?\Р - ?\С - ?\Т - ?\У - ?\Ф - ?\Х - ?\Ц - ?\Ч - ?\Ш - ?\Щ - ?\Ъ - ?\Ы - ?\Ь - ?\Э - ?\Ю - ?\Я - ?\а - ?\б - ?\в - ?\г - ?\д - ?\е - ?\ж - ?\з - ?\и - ?\й - ?\к - ?\л - ?\м - ?\н - ?\о - ?\п - ?\░ - ?\▒ - ?\▓ - ?\│ - ?\┤ - ?\╡ - ?\╢ - ?\╖ - ?\╕ - ?\╣ - ?\║ - ?\╗ - ?\╝ - ?\╜ - ?\╛ - ?\┐ - ?\└ - ?\┴ - ?\┬ - ?\├ - ?\─ - ?\┼ - ?\╞ - ?\╟ - ?\╚ - ?\╔ - ?\╩ - ?\╦ - ?\╠ - ?\═ - ?\╬ - ?\╧ - ?\╨ - ?\╤ - ?\╥ - ?\╙ - ?\╘ - ?\╒ - ?\╓ - ?\╫ - ?\╪ - ?\┘ - ?\┌ - ?\█ - ?\▄ - ?\▌ - ?\▐ - ?\▀ - ?\р - ?\с - ?\т - ?\у - ?\ф - ?\х - ?\ц - ?\ч - ?\ш - ?\щ - ?\ъ - ?\ы - ?\ь - ?\э - ?\ю - ?\я - ?\Ё - ?\ё - ?\Ґ - ?\ґ - ?\Є - ?\є - ?\І - ?\і - ?\Ї - ?\ї - ?\· - ?\√ - ?\№ - ?\¤ - ?\■ - ?\ ]) -(define-coding-system-alias 'ruscii 'cp1125) -;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua> -(define-coding-system-alias 'cp866u 'cp1125) -(coding-system-put 'cp1125 'mime-charset nil) - -;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS -;; codepage. Table at -;; <http://en.wikipedia.org/wiki/MIK_Code_page>. -;;;###autoload(autoload-coding-system 'mik '(require 'code-pages)) -(cp-make-coding-system - mik - [?А ?Б ?В ?Г ?Д ?Е ?Ж ?З ?И ?Й ?К ?Л ?М ?Н ?О ?П ?Р ?С ?Т ?У ?Ф ?Х ?Ц - ?Ч ?Ш ?Щ ?Ъ ?Ы ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н - ?о ?п ?р ?с ?т ?у ?ф ?х ?ц ?ч ?ш ?щ ?ъ ?ы ?ь ?э ?ю ?я ?└ ?┴ ?┬ ?├ ?─ - ?┼ ?╣ ?║ ?╚ ?╔ ?╩ ?╦ ?╠ ?═ ?╬ ?┐ ?░ ?▒ ?▓ ?│ ?┤ ?№ ?§ ?╗ ?╝ ?┘ ?┌ ?█ - ?▄ ?▌ ?▐ ?▀ ?α ?ß ?Γ ?π ?Σ ?σ ?µ ?τ ?Φ ?Θ ?Ω ?δ ?∞ ?φ ?ε ?∩ ?≡ ?± ?≥ - ?≤ ?⌠ ?⌡ ?÷ ?≈ ?° ?∙ ?· ?√ ?ⁿ ?² ?■ ? ]) -(coding-system-put 'mik 'mime-charset nil) - -;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: similar to CP1251 -;; and used for some non-Slavic Cyrillic languages. Table found at -;; <URL:ftp://ftp.logic.ru/pub/logic/linux/cyr-asian/PT154>. See also -;; <URL:http://lists.w3.org/Archives/Public/ietf-charsets/2002AprJun/0092.html, -;; which suggests it's used in an Asian Cyrillic context. -;;;###autoload(autoload-coding-system 'pt154 '(require 'code-pages)) -(cp-make-coding-system - pt154 - [?Җ ?Ғ ?Ӯ ?ғ ?„ ?… ?Ҷ ?Ү ?Ҳ ?ү ?Ҡ ?Ӣ ?Ң ?Қ ?Һ ?Ҹ ?җ ?‘ ?’ ?“ ?” ?• ?– - ?— ?ҳ ?ҷ ?ҡ ?ӣ ?ң ?қ ?һ ?ҹ ? ?Ў ?ў ?Ј ?Ө ?Ҙ ?Ұ ?§ ?Ё ?© ?Ә ?\« ?¬ ?ӯ - ?® ?Ҝ ?° ?ұ ?І ?і ?ҙ ?ө ?¶ ?· ?ё ?№ ?ә ?\» ?ј ?Ҫ ?ҫ ?ҝ ?А ?Б ?В ?Г ?Д - ?Е ?Ж ?З ?И ?Й ?К ?Л ?М ?Н ?О ?П ?Р ?С ?Т ?У ?Ф ?Х ?Ц ?Ч ?Ш ?Щ ?Ъ ?Ы - ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н ?о ?п ?р ?с ?т - ?у ?ф ?х ?ц ?ч ?ш ?щ ?ъ ?ы ?ь ?э ?ю ?я]) - -;;;###autoload(autoload-coding-system 'iso-8859-11 '(require 'code-pages)) -(cp-make-coding-system - iso-8859-11 - [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - ? ?ก ?ข ?ฃ ?ค ?ฅ ?ฆ ?ง ?จ ?ฉ ?ช ?ซ ?ฌ ?ญ ?ฎ ?ฏ - ?ฐ ?ฑ ?ฒ ?ณ ?ด ?ต ?ถ ?ท ?ธ ?น ?บ ?ป ?ผ ?ฝ ?พ ?ฟ - ?ภ ?ม ?ย ?ร ?ฤ ?ล ?ฦ ?ว ?ศ ?ษ ?ส ?ห ?ฬ ?อ ?ฮ ?ฯ - ?ะ ?ั ?า ?ำ ?ิ ?ี ?ึ ?ื ?ุ ?ู ?ฺ nil nil nil nil ?฿ - ?เ ?แ ?โ ?ใ ?ไ ?ๅ ?ๆ ?็ ?่ ?้ ?๊ ?๋ ?์ ?ํ ?๎ ?๏ - ?๐ ?๑ ?๒ ?๓ ?๔ ?๕ ?๖ ?๗ ?๘ ?๙ ?๚ ?๛ nil nil nil nil] - "ISO-8859-11. This is `thai-tis620' with the addition of no-break-space.") - -(dotimes (i 9) - (let ((w (intern (format "windows-125%d" i))) - (c (intern (format "cp125%d" i)))) - ;; Define cp125* as aliases for all windows-125*, so on Windows - ;; we can just concat "cp" to the ANSI codepage we get from the system - ;; and not have to worry about whether it should be "cp" or "windows-". - (when (coding-system-p w) - (define-coding-system-alias c w) - ;; Compatibility with codepage.el, though cp... are not the - ;; canonical names. - (if (not (assq c non-iso-charset-alist)) - (let ((slot (assq w non-iso-charset-alist))) - (if slot - (push (cons c (cdr slot)) non-iso-charset-alist))))))) - -(provide 'code-pages) - -;;; arch-tag: 8b6e3c73-b271-4198-866d-ea6d0ceff1b2 -;;; code-pages.el ends here diff --git a/lisp/international/codepage.el b/lisp/international/codepage.el index d9db7835391..bb678428409 100644 --- a/lisp/international/codepage.el +++ b/lisp/international/codepage.el @@ -1,13 +1,13 @@ ;;; codepage.el --- MS-DOS/MS-Windows specific coding systems -;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc. ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 ;; Author: Eli Zaretskii ;; Maintainer: FSF -;; Keywords: i18n ms-dos ms-windows codepage +;; Keywords: i18n ms-dos ms-windows codepage obsolete ;; This file is part of GNU Emacs. @@ -29,682 +29,120 @@ ;;; Commentary: ;; Special coding systems for DOS/Windows codepage support. -;; -;; These coding systems perform conversion from the DOS/Windows -;; codepage encoding to one of the ISO-8859 character sets. Each -;; codepage has its corresponding ISO-8859 charset, chosen so as to be -;; able to convert all (or most) of the characters. The idea is that -;; Emacs internally works with the usual MULE charsets, and the -;; conversion to and from the DOS codepage is performed on I/O only. -;; See term/internal.el for the complementary setup of the DOS -;; terminal display and input methods. -;; -;; Thanks to Ken'ichi Handa <handa@etl.go.jp> for writing the CCL -;; encoders/decoders, and for help in debugging this code. +;; Obsolete. ;;; Code: (defvar dos-unsupported-char-glyph) -(defun cp-coding-system-for-codepage-1 (coding mnemonic iso-name - decoder encoder) - "Make coding system CODING for a DOS codepage using translation tables. -MNEMONIC is a character to be displayed on mode line for the coding system. -ISO-NAME is the name of the ISO-8859 charset which corresponds to this -codepage. -DECODER is a translation table for converting characters in the DOS codepage -encoding to Emacs multibyte characters. -ENCODER is a translation table for encoding Emacs multibyte characters into -external DOS codepage codes." - (save-match-data - (let* ((coding-name (symbol-name coding)) - (undef (if (eq system-type 'ms-dos) - (if dos-unsupported-char-glyph - (logand dos-unsupported-char-glyph 255) - 127) - ??)) - (safe-chars (make-char-table 'safe-chars)) - (ccl-decoder - (ccl-compile - ;; The 4 here supplies the buf_magnification parameter - ;; for the CCL program. A multibyte character may take - ;; at most 4-bytes. - `(4 (loop (read r1) - (if (r1 >= 128) - ((r0 = ,(charset-id 'ascii)) - (translate-character ,decoder r0 r1) - (write-multibyte-character r0 r1)) - (write r1)) - (repeat))))) - (ccl-encoder - (ccl-compile - ;; The 2 here supplies the buf_magnification parameter for - ;; the CCL program. Since the -dos coding system generates - ;; \r\n for each \n, a factor of 2 covers even the worst case - ;; of empty lines with a single \n. - `(2 (loop (read-multibyte-character r0 r1) - (if (r0 != ,(charset-id 'ascii)) - ((translate-character ,encoder r0 r1) - (if (r0 == ,(charset-id 'japanese-jisx0208)) - ((r1 = ,undef) - (write r1))))) - (write-repeat r1)))))) - - ;; Set elements of safe multibyte characters for this codepage - ;; to t in the char-table safe-chars. - (let ((tbl (get decoder 'translation-table)) - (i 128) - ch) - (while (< i 256) - (setq ch (aref tbl i)) - (if ch (aset safe-chars ch t)) - (setq i (1+ i)))) - - ;; Make coding system CODING. - (make-coding-system - coding 4 mnemonic - (concat "8-bit encoding of " (symbol-name iso-name) - " characters using IBM codepage " coding-name) - (cons ccl-decoder ccl-encoder) - `((safe-charsets ascii eight-bit-control eight-bit-graphic ,iso-name) - (safe-chars . ,safe-chars) - (valid-codes (0 . 255))))))) - -(defun cp-decoding-vector-for-codepage (table charset offset) - "Create a vector for decoding IBM PC characters using conversion table -TABLE into an ISO-8859 character set CHARSET whose first non-ASCII -character is generated by (make-char CHARSET OFFSET)." - (let* ((len (length table)) - (undefined-char - (if (eq system-type 'ms-dos) - (if dos-unsupported-char-glyph - (logand dos-unsupported-char-glyph 255) - 127) - 32)) - (vec1 (make-vector 256 undefined-char)) - (i 0)) - (while (< i 256) - (aset vec1 i i) - (setq i (1+ i))) - (setq i 0) - (while (< i len) - (if (aref table i) - (aset vec1 (aref table i) (make-char charset (+ i offset)))) - (setq i (1+ i))) - vec1)) - -;;; You don't think I created all these tables below by hand, do you? -;;; The following Awk script will create the table for cp850-to-Latin-1 -;;; conversion from the RFC 1345 file (the other tables are left as an -;;; excercise): -;;; BEGIN { n_pages = 11; -;;; pn["IBM437"] = 0; pn["IBM850"] = 1; pn["IBM851"] = 2; -;;; pn["IBM852"] = 3; pn["IBM855"] = 4; pn["IBM860"] = 5; -;;; pn["IBM861"] = 6; pn["IBM862"] = 7; pn["IBM863"] = 8; -;;; pn["IBM864"] = 9; pn["IBM865"] = 10; -;;; } -;;; $1 == "&charset" { charset = $2; } -;;; $1 == "&code" { code = $2; } -;;; /^ [^&]/ { -;;; if ((charset ~ /^IBM(437|8(5[0125]|6[0-5]))$/) || (charset ~ /^ISO_8859-1/)) -;;; { -;;; for (i = 1; i <= NF; i++) -;;; chars[charset,code++] = $i; -;;; } -;;; } -;;; -;;; END { -;;; for (i = 160; i < 256; i++) -;;; { -;;; c = chars["ISO_8859-1:1987",i]; -;;; if (c == "??") # skip unused positions -;;; { -;;; printf " nil"; -;;; if ((i - 159)%16 == 0) -;;; printf "\n"; -;;; continue; -;;; } -;;; found = 0; -;;; for (j in pn) -;;; map[j] = "nil"; -;;; for (combined in chars) -;;; { -;;; candidate = chars[combined]; -;;; split (combined, separate, SUBSEP); -;;; if (separate[1] == "IBM850" && candidate == c) -;;; { -;;; found = 1; -;;; map[separate[1]] = separate[2]; -;;; } -;;; } -;;; printf " %s", map["IBM850"]; -;;; if ((i - 159)%16 == 0) -;;; printf "\n"; -;;; } -;;; } - -;;; WARNING WARNING WARNING!!! -;;; -;;; If you want to get fancy with these tables, remember that the inverse -;;; tables, created by `cp-decoding-vector-for-codepage' above, are installed -;;; on MS-DOS as nonascii-translation-table (see `dos-codepage-setup' on -;;; internal.el). Therefore, you should NOT put any codes below 128 in -;;; these tables! Otherwise, various Emacs commands and functions will -;;; mysteriously fail! For example, a typical screwup is to map the Latin-N -;;; acute accent character to the apostrophe, and have all regexps which -;;; end with "\\'" begin to fail (e.g., the automatic setting of the major -;;; mode by file name extension will stop working). -;;; -;;; You HAVE BEEN warned! - -;; US/English/PC-8/IBM-2. This doesn't support Latin-1 characters very -;; well, but why not use what we can salvage? -(defvar cp437-decode-table - ;; Nth element is the code of a cp437 glyph for the multibyte - ;; character created by (make-char 'latin-iso8859-1 (+ N 160)). - ;; The element nil means there's no corresponding cp437 glyph. - [ - 255 173 155 156 nil 157 179 nil nil nil 166 174 170 196 nil nil - 248 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168 - nil nil nil nil 142 143 146 128 nil 144 nil nil nil nil nil nil - nil 165 nil nil nil nil 153 nil nil nil nil nil 154 nil nil 225 - 133 160 131 nil 132 134 145 135 138 130 136 137 141 161 140 139 - nil 164 149 162 147 nil 148 246 nil 151 163 150 129 nil nil 152] - "Table for converting ISO-8859-1 characters into codepage 437 glyphs.") -(setplist 'cp437-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Multilingual (Latin-1) -(defvar cp850-decode-table - ;; Nth element is the code of a cp850 glyph for the multibyte - ;; character created by (make-char 'latin-iso8859-1 (+ N 160)). - ;; The element nil means there's no corresponding cp850 glyph. - [ - 255 173 189 156 207 190 221 245 249 184 166 174 170 240 169 238 - 248 241 253 252 239 230 244 250 247 251 167 175 172 171 243 168 - 183 181 182 199 142 143 146 128 212 144 210 211 222 214 215 216 - 209 165 227 224 226 229 153 158 157 235 233 234 154 237 232 225 - 133 160 131 198 132 134 145 135 138 130 136 137 141 161 140 139 - 208 164 149 162 147 228 148 246 155 151 163 150 129 236 231 152] - "Table for converting ISO-8859-1 characters into codepage 850 glyphs.") -(setplist 'cp850-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Multilingual (Latin-9) -(defvar cp858-decode-table - ;; Nth element is the code of a cp858 glyph for the multibyte - ;; character created by (make-char 'latin-iso8859-15 (+ N 160)). - ;; The element nil means there's no corresponding cp858 glyph. - [ - 255 173 189 156 213 190 221 245 249 184 166 174 170 240 169 238 - 248 241 253 252 239 230 244 250 247 251 167 175 172 171 243 168 - 183 181 182 199 142 143 146 128 212 144 210 211 222 214 215 216 - 209 165 227 224 226 229 153 158 157 235 233 234 154 237 232 225 - 133 160 131 198 132 134 145 135 138 130 136 137 141 161 140 139 - 208 164 149 162 147 228 148 246 155 151 163 150 129 236 231 152] - "Table for converting ISO-8859-15 characters into codepage 858 glyphs.") -(setplist 'cp858-decode-table - '(charset latin-iso8859-15 language "Latin-9" offset 160)) - -;; Greek -(defvar cp851-decode-table - [ - 255 nil nil 156 nil nil nil 245 249 nil nil 174 nil 240 nil nil - 248 241 nil nil 239 nil 134 nil 141 143 144 175 146 171 149 152 - 161 164 165 166 167 168 169 170 172 173 181 182 184 183 189 190 - 198 199 nil 207 208 209 210 211 212 213 nil nil 155 157 158 159 - 252 214 215 216 221 222 224 225 226 227 228 229 230 231 232 233 - 234 235 237 236 238 242 243 244 246 250 160 251 162 163 253 nil] - "Table for converting ISO-8859-7 characters into codepage 851 glyphs.") -(setplist 'cp851-decode-table - '(charset greek-iso8859-7 language "Greek" offset 160)) - -;; Slavic/Eastern Europe (Latin-2) -(defvar cp852-decode-table - [ - 255 164 244 157 207 149 151 245 249 230 184 155 141 240 166 189 - 248 165 247 136 239 150 152 243 242 231 173 156 171 241 167 190 - 232 181 182 198 142 145 143 128 172 144 168 211 183 214 215 210 - 209 227 213 224 226 138 153 158 252 222 233 235 154 237 221 225 - 234 160 131 199 132 146 134 135 159 130 169 137 216 161 140 212 - 208 228 229 162 147 139 148 246 253 133 163 251 129 236 238 250] - "Table for converting ISO-8859-2 characters into codepage 852 glyphs.") -(setplist 'cp852-decode-table - '(charset latin-iso8859-2 language "Latin-2" offset 160)) - -;; Russian -(defvar cp855-decode-table - [ - 255 133 129 131 135 137 139 141 143 145 147 149 151 240 153 155 - 161 163 236 173 167 169 234 244 184 190 199 209 211 213 215 221 - 226 228 230 232 171 182 165 252 246 250 159 242 238 248 157 224 - 160 162 235 172 166 168 233 243 183 189 198 208 210 212 214 216 - 225 227 229 231 170 181 164 251 245 249 158 241 237 247 156 222 - 239 132 128 130 134 136 138 140 142 144 146 148 150 253 152 154] - "Table for converting ISO-8859-5 characters into codepage 855 glyphs.") -(setplist 'cp855-decode-table - '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160)) - -;; Turkish -(defvar cp857-decode-table - [ - 255 nil nil 156 207 nil 245 249 152 158 166 nil 240 nil - 248 nil 253 252 239 nil nil nil nil 141 159 167 nil 171 nil - 183 181 182 142 nil nil 128 212 144 210 211 222 214 215 216 - 165 227 224 226 nil 153 232 nil 235 233 234 154 nil nil 225 - 133 160 131 132 nil nil 135 138 130 136 137 236 161 140 139 - 164 149 162 147 nil 148 246 nil 151 163 150 129 nil nil 250] - "Table for converting ISO-8859-3 characters into codepage 857 glyphs.") -(setplist 'cp857-decode-table - '(charset latin-iso8859-3 language "Latin-3" offset 160)) - -;; Portuguese -(defvar cp860-decode-table - [ - 255 173 155 156 nil nil 179 nil nil nil 166 174 170 nil nil nil - nil 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168 - 145 134 143 142 nil nil nil 128 146 144 137 nil 152 nil 139 nil - nil 165 159 169 140 153 nil nil nil 157 150 nil 154 nil nil nil - 133 160 131 132 nil nil nil 135 138 130 136 nil 141 161 nil nil - nil 164 149 162 147 148 nil 246 nil 151 163 nil 129 nil nil nil] - "Table for converting ISO-8859-1 characters into codepage 860 glyphs.") -(setplist 'cp860-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Icelandic -(defvar cp861-decode-table - [ - 255 173 nil 156 nil nil nil nil nil nil nil 174 170 nil nil nil - nil 241 253 nil nil nil nil 249 nil nil nil 175 172 171 nil 168 - nil 164 nil nil 142 143 146 128 nil 144 nil nil nil 165 nil nil - 139 nil 159 166 nil nil 153 nil 157 nil 167 nil 154 151 141 nil - 133 160 131 nil 132 134 145 135 138 130 136 137 nil 161 nil nil - 140 nil nil 162 147 nil 148 246 155 nil 163 150 129 152 149 nil] - "Table for converting ISO-8859-1 characters into codepage 861 glyphs.") -(setplist 'cp861-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Hebrew -(defvar cp862-decode-table - ;; Nth element is the code of a cp862 glyph for the multibyte - ;; character created by (make-char 'hebrew-iso8859-8 (+ N 160)). - ;; The element nil means there's no corresponding cp862 glyph. - [ - 255 173 155 156 nil 157 179 nil nil nil nil 174 170 196 nil nil - 248 241 253 nil nil 230 nil 249 nil nil 246 175 172 171 nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil 205 - 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144 145 146 147 148 149 150 151 152 153 154 nil nil nil nil nil] - "Table for converting ISO-8859-8 characters into codepage 862 glyphs.") -(setplist 'cp862-decode-table - '(charset hebrew-iso8859-8 language "Hebrew" offset 160)) - -;; French Canadian -(defvar cp863-decode-table - [ - 255 nil 155 156 152 nil 160 143 164 nil nil 174 170 nil nil 167 - nil 241 253 166 161 nil 134 249 165 nil nil 175 172 171 173 nil - 142 nil 132 nil nil nil nil 128 145 144 146 148 nil nil 168 149 - nil nil nil nil 153 nil nil nil nil 157 nil 158 154 nil nil nil - 133 nil 131 nil nil nil nil 135 138 130 136 137 141 nil 140 139 - nil nil nil 162 147 nil nil 246 nil 151 163 150 129 nil nil nil] - "Table for converting ISO-8859-1 characters into codepage 863 glyphs.") -(setplist 'cp863-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Arabic -;; FIXME: Emacs doesn't seem to support the "Arabic" language -;; environment yet. So this is only partially usable, for now -(defvar cp864-decode-table - [ - 255 nil nil nil 164 nil nil nil nil nil nil nil 172 161 nil nil - nil nil nil nil nil nil nil nil nil nil nil 187 nil nil nil 191 - nil 193 194 195 196 nil 198 199 169 201 170 171 173 174 175 207 - 208 209 210 188 189 190 235 215 216 223 238 nil nil nil nil nil - 224 247 248 252 251 239 242 243 232 233 253 nil nil nil nil nil - nil 241 nil nil nil nil nil nil nil nil nil nil nil nil nil nil] - "Table for converting ISO-8859-6 characters into codepage 864 glyphs.") -(setplist 'cp864-decode-table - '(charset arabic-iso8859-6 language nil offset 160)) - -;; Arabic OEM codepage used by Windows -;; FIXME: Emacs doesn't seem to support the "Arabic" language -;; environment yet. So this is only partially usable, for now -(defvar cp720-decode-table - [ - 255 nil nil nil 148 nil nil nil nil nil nil nil nil 196 nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil 152 153 154 155 157 158 159 160 161 162 163 164 165 166 167 - 168 169 170 171 172 173 224 225 226 227 228 nil nil nil nil nil - 149 229 231 232 233 234 235 236 237 238 239 241 242 243 244 245 - 246 145 146 nil nil nil nil nil nil nil nil nil nil nil nil nil] - "Table for converting ISO-8859-6 characters into codepage 720 glyphs.") -(setplist 'cp720-decode-table - '(charset arabic-iso8859-6 language nil offset 160)) - - -;; Nordic (Norwegian/Danish) -(defvar cp865-decode-table - [ - 255 173 nil 156 nil nil nil nil nil nil 166 174 170 nil nil nil - nil 241 253 nil nil nil nil 249 nil nil 167 175 172 171 nil 168 - nil nil nil nil 142 143 146 128 nil 144 nil nil nil nil nil nil - nil 165 nil nil nil nil 153 nil 157 nil nil nil 154 nil nil nil - 133 160 131 nil 132 134 145 135 138 130 136 137 141 161 140 139 - nil 164 149 162 147 nil 148 246 155 151 163 150 129 nil nil 152] - "Table for converting ISO-8859-1 characters into codepage 865 glyphs.") -(setplist 'cp865-decode-table - '(charset latin-iso8859-1 language "Latin-1" offset 160)) - -;; Russian (Yes, another one! This one's supposed to be used -;; on Windows as the Russian OEM code page.) -(defvar cp866-decode-table - [ - 255 240 nil nil 242 nil nil 244 nil nil nil nil nil nil 246 nil - 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 - 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 - 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 - 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 252 241 nil nil 243 nil nil 245 nil nil nil nil nil nil 247 nil] - "Table for converting ISO-8859-5 characters into codepage 866 glyphs.") -(setplist 'cp866-decode-table - '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160)) - -;; Greek (yes, another one!) -(defvar cp869-decode-table - [ - 255 139 140 156 nil nil 138 245 249 151 nil 174 137 240 nil 142 - 248 241 153 154 239 247 134 136 141 143 144 175 146 171 149 152 - 161 164 165 166 167 168 169 170 172 173 181 182 183 184 189 190 - 198 199 nil 207 208 209 210 211 212 213 145 150 155 157 158 159 - 252 214 215 216 221 222 224 225 226 227 228 229 230 231 232 233 - 234 235 237 236 238 242 243 244 246 250 160 251 162 163 253 nil] - "Table for converting ISO-8859-7 characters into codepage 869 glyphs.") -(setplist 'cp869-decode-table - '(charset greek-iso8859-7 language "Greek" offset 160)) - -;; Greek OEM codepage used by Windows -(defvar cp737-decode-table - [ - 255 nil nil nil nil nil 179 nil nil nil nil nil nil 196 nil nil - 248 241 253 nil nil nil 234 250 235 236 237 nil 238 nil 239 240 - nil 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 - 143 144 nil 145 146 147 148 149 150 151 244 245 225 226 227 229 - nil 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 - 167 168 170 169 171 172 173 174 175 224 228 232 230 231 233 nil] - "Table for converting ISO-8859-7 characters into codepage 737 glyphs.") -(setplist 'cp737-decode-table - '(charset greek-iso8859-7 language "Greek" offset 160)) - -;; Conversion from codepages 770-775 to Latin-4 for Baltic countries. -;; FIXME: Once we support Latin-7, these should be remapped into it. -(defvar cp770-decode-table - [ - 255 143 nil nil 155 nil 156 nil 157 159 137 168 nil 196 146 nil - 248 133 nil nil nil nil 134 nil nil 158 136 152 nil nil 145 nil - 160 nil nil nil 142 nil nil 173 128 nil 139 nil 144 nil nil 161 - nil nil nil 163 nil 149 153 nil nil 167 nil nil 154 nil 166 225 - 131 nil nil nil 132 nil nil 141 135 nil 138 nil 130 nil nil 140 - nil nil nil 162 nil 147 148 247 nil 151 nil nil 129 nil 150 nil] - "Table for converting ISO-8859-4 characters into codepage 770 glyphs.") -(setplist 'cp770-decode-table - '(charset latin-iso8859-4 language "Latin-4" offset 160)) - -(defvar cp773-decode-table - [ - 255 220 nil 138 150 nil 234 190 166 246 237 149 173 196 252 nil - 208 nil nil 139 239 nil 235 nil nil 247 137 133 136 nil 253 nil - 160 nil nil nil 142 143 146 244 222 144 240 nil 242 nil nil 161 - nil 238 226 232 nil 229 153 158 157 248 nil nil 154 nil 250 225 - 131 nil nil nil 132 134 145 245 223 130 241 nil 243 nil nil 140 - nil 236 147 233 nil 228 148 198 155 249 nil nil 129 nil 251 nil] - "Table for converting ISO-8859-4 characters into codepage 773 glyphs.") -(setplist 'cp773-decode-table - '(charset latin-iso8859-4 language "Latin-4" offset 160)) - -(defvar cp774-decode-table - [ - 255 181 nil nil 155 nil nil nil 245 190 nil nil nil 196 207 nil - 248 208 nil nil nil nil nil nil nil 213 nil nil nil nil 216 nil - nil nil nil nil 142 143 146 189 182 144 183 nil 184 nil nil nil - nil nil nil nil nil nil 153 nil nil 198 nil nil 154 nil 199 225 - nil 160 nil nil 132 134 145 212 209 130 210 137 211 161 140 nil - nil nil nil nil 147 nil 148 246 237 214 163 150 129 nil 215 248] - "Table for converting ISO-8859-4 characters into codepage 774 glyphs.") -(setplist 'cp774-decode-table - '(charset latin-iso8859-4 language "Latin-4" offset 160)) - -(defvar cp775-decode-table - [ - 255 181 nil 138 150 nil 234 245 166 190 237 149 173 240 207 nil - 248 208 nil 139 239 nil 235 nil nil 213 137 133 136 nil 216 nil - 160 nil nil nil 142 143 146 189 182 144 183 nil 184 nil nil 161 - nil 238 226 232 nil 229 153 158 157 198 nil nil 154 nil 199 225 - 131 nil nil nil 132 134 145 212 209 130 210 nil 211 nil nil 140 - nil 236 147 233 nil 228 148 247 155 214 nil nil 129 nil 215 nil] - "Table for converting ISO-8859-4 characters into codepage 775 glyphs.") -(setplist 'cp775-decode-table - '(charset latin-iso8859-4 language "Latin-4" offset 160)) - -;; Support for the Windows 12xx series of codepages that MS has -;; butchered from the ISO-8859 specs. This does not add support for -;; the extended characters that MS has added in the 128 - 159 coding -;; range, only translates those characters that can be expressed in -;; the corresponding iso-8859 charset. - -;; Codepage Mapping: -;; -;; Windows-1250: ISO-8859-2 (Central Europe) - differs in some positions -;; Windows-1251: ISO-8859-5 (Cyrillic) - differs wildly -;; Windows-1252: ISO-8859-1 (West Europe) - exact match -;; Windows-1253: ISO-8859-7 (Greek) - differs in some positions -;; Windows-1254: ISO-8859-9 (Turkish) - exact match -;; Windows-1255: ISO-8859-8 (Hebrew) - exact match -;; Windows-1256: ISO-8859-6 (Arabic) - half match -;; Windows-1257: ISO-8859-4 (Baltic) - differs, future Latin-7 -;; Windows-1258: VISCII (Vietnamese) - Completely different - -(defvar cp1250-decode-table - [ - 160 165 162 163 164 188 140 167 168 138 170 141 143 173 142 175 - 176 185 178 179 180 190 156 161 184 154 186 157 159 189 158 191 - 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 ] - "ISO-8859-2 to Windows-1250 (Central Europe) codepage decoding table.") -(setplist 'cp1250-decode-table - '(charset latin-iso8859-2 language "Latin-2" offset 160)) - -(defvar cp1251-decode-table - [ - 160 168 128 129 170 189 178 175 163 138 140 142 141 173 161 143 - 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 - 185 184 144 131 186 190 179 191 188 154 156 158 157 167 162 159 ] - "ISO-8859-5 to Windows-1251 (Cyrillic) codepage decoding table.") -(setplist 'cp1251-decode-table - '(charset cyrillic-iso8859-5 language "Cyrillic-ISO" offset 160)) - -;; cp1253 is missing nbsp so we cannot quite translate perfectly. It -;; also has two micro/mu characters which would require more complex -;; processing to accomodate. -(defvar cp1253-decode-table - [ - nil 145 146 163 nil nil 166 167 168 169 nil 171 172 173 nil 151 - 176 177 178 179 180 161 162 183 184 185 186 187 188 189 190 191 - 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 - 208 209 nil 211 212 213 214 215 216 217 218 219 220 221 222 223 - 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 - 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 nil ] - "ISO-8859-7 to Windows-1253 (Greek) codepage decoding table.") -(setplist 'cp1253-decode-table - '(charset greek-iso8859-7 language "Greek" offset 160)) - -;; Since Latin-7 is not yet official, and Emacs does not support it, -;; provide translation between Windows-1257 and Latin-4 the best we -;; can. -(defvar cp1257-decode-table - [ - 160 192 nil 170 164 nil 207 167 nil 208 199 204 nil 173 222 nil - 176 224 nil 186 nil nil 239 nil nil 240 231 236 nil nil 254 nil - 194 nil nil nil 196 197 175 193 200 201 198 nil 203 nil nil 206 - nil 210 212 205 nil 213 214 215 168 216 nil nil 220 nil 219 223 - 226 nil nil nil 228 229 191 225 232 233 230 nil 235 nil nil 238 - nil 242 244 237 nil 245 246 247 184 248 nil nil 252 nil 251 nil ] - "ISO-8859-4 to Windows-1257 (Baltic) codepage decoding table.") -(setplist 'cp1257-decode-table - '(charset latin-iso8859-4 language "Latin-4" offset 160)) - -;;;###autoload -(defun cp-make-coding-systems-for-codepage (codepage iso-name offset) - "Create a coding system to convert IBM CODEPAGE into charset ISO-NAME -whose first character is at offset OFFSET from the beginning of 8-bit -ASCII table. - -The created coding system has the usual 3 subsidiary systems: for Unix-, -DOS- and Mac-style EOL conversion. However, unlike built-in coding -systems, the Mac-style EOL conversion is currently not supported by the -decoder and encoder created by this function." - (let* ((decode-table (intern (format "%s-decode-table" codepage))) - (nonascii-table - (intern (format "%s-nonascii-translation-table" codepage))) - (decode-translation - (intern (format "%s-decode-translation-table" codepage))) - (encode-translation - (intern (format "%s-encode-translation-table" codepage)))) - (set nonascii-table - (make-translation-table-from-vector - (cp-decoding-vector-for-codepage - (symbol-value decode-table) iso-name offset))) - (define-translation-table encode-translation - (char-table-extra-slot (symbol-value nonascii-table) 0)) - ;; For charsets other than ascii, eight-bit-* and ISO-NAME, set - ;; `?' for one-column charsets, and some Japanese character for - ;; wide-column charsets. CCL encoder convert that Japanese - ;; character to either dos-unsupported-char-glyph or "??". - (let ((tbl (char-table-extra-slot (symbol-value nonascii-table) 0)) - (undef (if (eq system-type 'ms-dos) - (if dos-unsupported-char-glyph - (logand dos-unsupported-char-glyph 255) - 127) - ??)) - (charsets (delq 'ascii - (delq 'eight-bit-control - (delq 'eight-bit-graphic - (delq iso-name - (copy-sequence charset-list)))))) - (wide-column-char (make-char 'japanese-jisx0208 32 32))) - (while charsets - (aset tbl (make-char (car charsets)) - (if (= (charset-width (car charsets)) 1) undef wide-column-char)) - (setq charsets (cdr charsets)))) - (define-translation-table decode-translation - (symbol-value nonascii-table)) - (cp-coding-system-for-codepage-1 - (intern codepage) ?D iso-name decode-translation encode-translation) - )) - -(defun cp-codepage-decoder (codepage) - "If CODEPAGE is the name of a supported codepage, return its decode table. -Otherwise return nil." - (let ((cp (if (symbolp codepage) (symbol-name codepage) codepage))) - (cond - ((stringp cp) - (intern-soft (format "%s-decode-table" cp))) - (t nil)))) +;; I doubt we need compatibility versions of any of these autoloaded +;; functions apart from codepage-setup, which users may call. + +;; ;;;###autoload +;; (defun cp-make-coding-systems-for-codepage (codepage iso-name offset) +;; "Create a coding system to convert IBM CODEPAGE into charset ISO-NAME +;; whose first character is at offset OFFSET from the beginning of 8-bit +;; ASCII table. + +;; The created coding system has the usual 3 subsidiary systems: for Unix-, +;; DOS- and Mac-style EOL conversion. However, unlike built-in coding +;; systems, the Mac-style EOL conversion is currently not supported by the +;; decoder and encoder created by this function." +;; (let* ((decode-table (intern (format "%s-decode-table" codepage))) +;; (nonascii-table +;; (intern (format "%s-nonascii-translation-table" codepage))) +;; (decode-translation +;; (intern (format "%s-decode-translation-table" codepage))) +;; (encode-translation +;; (intern (format "%s-encode-translation-table" codepage)))) +;; (set nonascii-table +;; (make-translation-table-from-vector +;; (cp-decoding-vector-for-codepage +;; (symbol-value decode-table) iso-name offset))) +;; (define-translation-table encode-translation +;; (char-table-extra-slot (symbol-value nonascii-table) 0)) +;; ;; For charsets other than ascii, eight-bit-* and ISO-NAME, set +;; ;; `?' for one-column charsets, and some Japanese character for +;; ;; wide-column charsets. CCL encoder convert that Japanese +;; ;; character to either dos-unsupported-char-glyph or "??". +;; (let ((tbl (char-table-extra-slot (symbol-value nonascii-table) 0)) +;; (undef (if (eq system-type 'ms-dos) +;; (if dos-unsupported-char-glyph +;; (logand dos-unsupported-char-glyph 255) +;; 127) +;; ??)) +;; (charsets (delq 'ascii +;; (delq 'eight-bit-control +;; (delq 'eight-bit-graphic +;; (delq iso-name +;; (copy-sequence charset-list)))))) +;; (wide-column-char (make-char 'japanese-jisx0208 32 32))) +;; (while charsets +;; (aset tbl (make-char (car charsets)) +;; (if (= (charset-width (car charsets)) 1) undef wide-column-char)) +;; (setq charsets (cdr charsets)))) +;; (define-translation-table decode-translation +;; (symbol-value nonascii-table)) +;; (cp-coding-system-for-codepage-1 +;; (intern codepage) ?D iso-name decode-translation encode-translation) +;; )) + +;; ;;;###autoload +;; (defun cp-charset-for-codepage (codepage) +;; "Return the charset for which there is a translation table to DOS CODEPAGE. +;; CODEPAGE must be the name of a DOS codepage, a string." +;; (let ((cp-decoder (cp-codepage-decoder codepage))) +;; (if (null cp-decoder) +;; (error "Unsupported codepage %s" codepage) +;; (get cp-decoder 'charset)))) + +;; ;;;###autoload +;; (defun cp-language-for-codepage (codepage) +;; "Return the name of the MULE language environment for CODEPAGE. +;; CODEPAGE must be the name of a DOS codepage, a string." +;; (let ((cp-decoder (cp-codepage-decoder codepage))) +;; (if (null cp-decoder) +;; (error "Unsupported codepage %s" codepage) +;; (get cp-decoder 'language)))) + +;; ;;;###autoload +;; (defun cp-offset-for-codepage (codepage) +;; "Return the offset to be used in setting up coding systems for CODEPAGE. +;; CODEPAGE must be the name of a DOS codepage, a string." +;; (let ((cp-decoder (cp-codepage-decoder codepage))) +;; (if (null cp-decoder) +;; (error "Unsupported codepage %s" codepage) +;; (get cp-decoder 'offset)))) + +;; ;;;###autoload +;; (defun cp-supported-codepages () +;; "Return an alist of supported codepages. + +;; Each association in the alist has the form (NNN . CHARSET), where NNN is the +;; codepage number, and CHARSET is the MULE charset which is the closest match +;; for the character set supported by that codepage. + +;; A codepage NNN is supported if a variable called `cpNNN-decode-table' exists, +;; is a vector, and has a charset property." +;; (save-match-data +;; (let (alist chset sname) +;; (mapatoms +;; (function +;; (lambda (sym) +;; (if (and (boundp sym) +;; (string-match "\\`cp\\([1-9][0-9][0-9][0-9]?\\)-decode-table\\'" +;; (setq sname (symbol-name sym))) +;; (vectorp (symbol-value sym)) +;; (setq chset (get sym 'charset))) +;; (setq alist +;; (cons (cons (match-string 1 sname) chset) alist)))))) +;; alist))) ;;;###autoload -(defun cp-charset-for-codepage (codepage) - "Return the charset for which there is a translation table to DOS CODEPAGE. -CODEPAGE must be the name of a DOS codepage, a string." - (let ((cp-decoder (cp-codepage-decoder codepage))) - (if (null cp-decoder) - (error "Unsupported codepage %s" codepage) - (get cp-decoder 'charset)))) - -;;;###autoload -(defun cp-language-for-codepage (codepage) - "Return the name of the MULE language environment for CODEPAGE. -CODEPAGE must be the name of a DOS codepage, a string." - (let ((cp-decoder (cp-codepage-decoder codepage))) - (if (null cp-decoder) - (error "Unsupported codepage %s" codepage) - (get cp-decoder 'language)))) - -;;;###autoload -(defun cp-offset-for-codepage (codepage) - "Return the offset to be used in setting up coding systems for CODEPAGE. -CODEPAGE must be the name of a DOS codepage, a string." - (let ((cp-decoder (cp-codepage-decoder codepage))) - (if (null cp-decoder) - (error "Unsupported codepage %s" codepage) - (get cp-decoder 'offset)))) - -;;;###autoload -(defun cp-supported-codepages () - "Return an alist of supported codepages. - -Each association in the alist has the form (NNN . CHARSET), where NNN is the -codepage number, and CHARSET is the MULE charset which is the closest match -for the character set supported by that codepage. - -A codepage NNN is supported if a variable called `cpNNN-decode-table' exists, -is a vector, and has a charset property." - (save-match-data - (let (alist chset sname) - (mapatoms - (function - (lambda (sym) - (if (and (boundp sym) - (string-match "\\`cp\\([1-9][0-9][0-9][0-9]?\\)-decode-table\\'" - (setq sname (symbol-name sym))) - (vectorp (symbol-value sym)) - (setq chset (get sym 'charset))) - (setq alist - (cons (cons (match-string 1 sname) chset) alist)))))) - alist))) - -;;;###autoload -(defun codepage-setup (codepage) - "Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE. - -These coding systems are meant for encoding and decoding 8-bit non-ASCII -characters used by the IBM codepages, typically in conjunction with files -read/written by MS-DOS software, or for display on the MS-DOS terminal." - (interactive - (let ((completion-ignore-case t) - (candidates (cp-supported-codepages))) - (list (completing-read "Setup DOS Codepage (default 437): " candidates - nil t nil nil "437")))) - (let* ((cp (format "cp%s" codepage)) - (cp-defined (intern-soft cp))) - (or (and cp-defined ;; avoid defining if already defined - (coding-system-p cp-defined)) - (cp-make-coding-systems-for-codepage - cp (cp-charset-for-codepage cp) (cp-offset-for-codepage cp))))) - -;; Add DOS codepages to `non-iso-charset-alist'. -(eval-after-load "mule-diag" - '(let ((tail (cp-supported-codepages)) - elt) - (while tail - (setq elt (car tail) tail (cdr tail)) - ;; Now ELT is (CODEPAGE . CHARSET), where CODEPAGE is a string - ;; (e.g. "850"), CHARSET is a charset that characters in CODEPAGE - ;; are mapped to. - (unless (assq (intern (concat "cp" (car elt))) non-iso-charset-alist) - (setq non-iso-charset-alist - (cons (list (intern (concat "cp" (car elt))) - (list 'ascii (cdr elt)) - `(lambda (code) - (decode-codepage-char ,(string-to-int (car elt)) - code)) - (list (list 0 255))) - non-iso-charset-alist)))))) +(defun codepage-setup (&optional codepage) + "Obsolete. All coding systems are set up initially." + (interactive)) +(make-obsolete 'codepage-setup "no longer relevant" "23.1") (provide 'codepage) diff --git a/lisp/international/cp51932.el b/lisp/international/cp51932.el new file mode 100644 index 00000000000..b8d01f20ef8 --- /dev/null +++ b/lisp/international/cp51932.el @@ -0,0 +1,472 @@ +;;; cp51932.el -- translation table for CP51932. -*- no-byte-compile: t -*- +;;; Automatically genrated from CP932-2BYTE.map +(let ((map + '(;JISEXT<->UNICODE + (#x2D21 . #x2460) + (#x2D22 . #x2461) + (#x2D23 . #x2462) + (#x2D24 . #x2463) + (#x2D25 . #x2464) + (#x2D26 . #x2465) + (#x2D27 . #x2466) + (#x2D28 . #x2467) + (#x2D29 . #x2468) + (#x2D2A . #x2469) + (#x2D2B . #x246A) + (#x2D2C . #x246B) + (#x2D2D . #x246C) + (#x2D2E . #x246D) + (#x2D2F . #x246E) + (#x2D30 . #x246F) + (#x2D31 . #x2470) + (#x2D32 . #x2471) + (#x2D33 . #x2472) + (#x2D34 . #x2473) + (#x2D35 . #x2160) + (#x2D36 . #x2161) + (#x2D37 . #x2162) + (#x2D38 . #x2163) + (#x2D39 . #x2164) + (#x2D3A . #x2165) + (#x2D3B . #x2166) + (#x2D3C . #x2167) + (#x2D3D . #x2168) + (#x2D3E . #x2169) + (#x2D40 . #x3349) + (#x2D41 . #x3314) + (#x2D42 . #x3322) + (#x2D43 . #x334D) + (#x2D44 . #x3318) + (#x2D45 . #x3327) + (#x2D46 . #x3303) + (#x2D47 . #x3336) + (#x2D48 . #x3351) + (#x2D49 . #x3357) + (#x2D4A . #x330D) + (#x2D4B . #x3326) + (#x2D4C . #x3323) + (#x2D4D . #x332B) + (#x2D4E . #x334A) + (#x2D4F . #x333B) + (#x2D50 . #x339C) + (#x2D51 . #x339D) + (#x2D52 . #x339E) + (#x2D53 . #x338E) + (#x2D54 . #x338F) + (#x2D55 . #x33C4) + (#x2D56 . #x33A1) + (#x2D5F . #x337B) + (#x2D60 . #x301D) + (#x2D61 . #x301F) + (#x2D62 . #x2116) + (#x2D63 . #x33CD) + (#x2D64 . #x2121) + (#x2D65 . #x32A4) + (#x2D66 . #x32A5) + (#x2D67 . #x32A6) + (#x2D68 . #x32A7) + (#x2D69 . #x32A8) + (#x2D6A . #x3231) + (#x2D6B . #x3232) + (#x2D6C . #x3239) + (#x2D6D . #x337E) + (#x2D6E . #x337D) + (#x2D6F . #x337C) + (#x2D70 . #x2252) + (#x2D71 . #x2261) + (#x2D72 . #x222B) + (#x2D73 . #x222E) + (#x2D74 . #x2211) + (#x2D75 . #x221A) + (#x2D76 . #x22A5) + (#x2D77 . #x2220) + (#x2D78 . #x221F) + (#x2D79 . #x22BF) + (#x2D7A . #x2235) + (#x2D7B . #x2229) + (#x2D7C . #x222A) + (#x7921 . #x7E8A) + (#x7922 . #x891C) + (#x7923 . #x9348) + (#x7924 . #x9288) + (#x7925 . #x84DC) + (#x7926 . #x4FC9) + (#x7927 . #x70BB) + (#x7928 . #x6631) + (#x7929 . #x68C8) + (#x792A . #x92F9) + (#x792B . #x66FB) + (#x792C . #x5F45) + (#x792D . #x4E28) + (#x792E . #x4EE1) + (#x792F . #x4EFC) + (#x7930 . #x4F00) + (#x7931 . #x4F03) + (#x7932 . #x4F39) + (#x7933 . #x4F56) + (#x7934 . #x4F92) + (#x7935 . #x4F8A) + (#x7936 . #x4F9A) + (#x7937 . #x4F94) + (#x7938 . #x4FCD) + (#x7939 . #x5040) + (#x793A . #x5022) + (#x793B . #x4FFF) + (#x793C . #x501E) + (#x793D . #x5046) + (#x793E . #x5070) + (#x793F . #x5042) + (#x7940 . #x5094) + (#x7941 . #x50F4) + (#x7942 . #x50D8) + (#x7943 . #x514A) + (#x7944 . #x5164) + (#x7945 . #x519D) + (#x7946 . #x51BE) + (#x7947 . #x51EC) + (#x7948 . #x5215) + (#x7949 . #x529C) + (#x794A . #x52A6) + (#x794B . #x52C0) + (#x794C . #x52DB) + (#x794D . #x5300) + (#x794E . #x5307) + (#x794F . #x5324) + (#x7950 . #x5372) + (#x7951 . #x5393) + (#x7952 . #x53B2) + (#x7953 . #x53DD) + (#x7954 . #xFA0E) + (#x7955 . #x549C) + (#x7956 . #x548A) + (#x7957 . #x54A9) + (#x7958 . #x54FF) + (#x7959 . #x5586) + (#x795A . #x5759) + (#x795B . #x5765) + (#x795C . #x57AC) + (#x795D . #x57C8) + (#x795E . #x57C7) + (#x795F . #xFA0F) + (#x7960 . #xFA10) + (#x7961 . #x589E) + (#x7962 . #x58B2) + (#x7963 . #x590B) + (#x7964 . #x5953) + (#x7965 . #x595B) + (#x7966 . #x595D) + (#x7967 . #x5963) + (#x7968 . #x59A4) + (#x7969 . #x59BA) + (#x796A . #x5B56) + (#x796B . #x5BC0) + (#x796C . #x752F) + (#x796D . #x5BD8) + (#x796E . #x5BEC) + (#x796F . #x5C1E) + (#x7970 . #x5CA6) + (#x7971 . #x5CBA) + (#x7972 . #x5CF5) + (#x7973 . #x5D27) + (#x7974 . #x5D53) + (#x7975 . #xFA11) + (#x7976 . #x5D42) + (#x7977 . #x5D6D) + (#x7978 . #x5DB8) + (#x7979 . #x5DB9) + (#x797A . #x5DD0) + (#x797B . #x5F21) + (#x797C . #x5F34) + (#x797D . #x5F67) + (#x797E . #x5FB7) + (#x7A21 . #x5FDE) + (#x7A22 . #x605D) + (#x7A23 . #x6085) + (#x7A24 . #x608A) + (#x7A25 . #x60DE) + (#x7A26 . #x60D5) + (#x7A27 . #x6120) + (#x7A28 . #x60F2) + (#x7A29 . #x6111) + (#x7A2A . #x6137) + (#x7A2B . #x6130) + (#x7A2C . #x6198) + (#x7A2D . #x6213) + (#x7A2E . #x62A6) + (#x7A2F . #x63F5) + (#x7A30 . #x6460) + (#x7A31 . #x649D) + (#x7A32 . #x64CE) + (#x7A33 . #x654E) + (#x7A34 . #x6600) + (#x7A35 . #x6615) + (#x7A36 . #x663B) + (#x7A37 . #x6609) + (#x7A38 . #x662E) + (#x7A39 . #x661E) + (#x7A3A . #x6624) + (#x7A3B . #x6665) + (#x7A3C . #x6657) + (#x7A3D . #x6659) + (#x7A3E . #xFA12) + (#x7A3F . #x6673) + (#x7A40 . #x6699) + (#x7A41 . #x66A0) + (#x7A42 . #x66B2) + (#x7A43 . #x66BF) + (#x7A44 . #x66FA) + (#x7A45 . #x670E) + (#x7A46 . #xF929) + (#x7A47 . #x6766) + (#x7A48 . #x67BB) + (#x7A49 . #x6852) + (#x7A4A . #x67C0) + (#x7A4B . #x6801) + (#x7A4C . #x6844) + (#x7A4D . #x68CF) + (#x7A4E . #xFA13) + (#x7A4F . #x6968) + (#x7A50 . #xFA14) + (#x7A51 . #x6998) + (#x7A52 . #x69E2) + (#x7A53 . #x6A30) + (#x7A54 . #x6A6B) + (#x7A55 . #x6A46) + (#x7A56 . #x6A73) + (#x7A57 . #x6A7E) + (#x7A58 . #x6AE2) + (#x7A59 . #x6AE4) + (#x7A5A . #x6BD6) + (#x7A5B . #x6C3F) + (#x7A5C . #x6C5C) + (#x7A5D . #x6C86) + (#x7A5E . #x6C6F) + (#x7A5F . #x6CDA) + (#x7A60 . #x6D04) + (#x7A61 . #x6D87) + (#x7A62 . #x6D6F) + (#x7A63 . #x6D96) + (#x7A64 . #x6DAC) + (#x7A65 . #x6DCF) + (#x7A66 . #x6DF8) + (#x7A67 . #x6DF2) + (#x7A68 . #x6DFC) + (#x7A69 . #x6E39) + (#x7A6A . #x6E5C) + (#x7A6B . #x6E27) + (#x7A6C . #x6E3C) + (#x7A6D . #x6EBF) + (#x7A6E . #x6F88) + (#x7A6F . #x6FB5) + (#x7A70 . #x6FF5) + (#x7A71 . #x7005) + (#x7A72 . #x7007) + (#x7A73 . #x7028) + (#x7A74 . #x7085) + (#x7A75 . #x70AB) + (#x7A76 . #x710F) + (#x7A77 . #x7104) + (#x7A78 . #x715C) + (#x7A79 . #x7146) + (#x7A7A . #x7147) + (#x7A7B . #xFA15) + (#x7A7C . #x71C1) + (#x7A7D . #x71FE) + (#x7A7E . #x72B1) + (#x7B21 . #x72BE) + (#x7B22 . #x7324) + (#x7B23 . #xFA16) + (#x7B24 . #x7377) + (#x7B25 . #x73BD) + (#x7B26 . #x73C9) + (#x7B27 . #x73D6) + (#x7B28 . #x73E3) + (#x7B29 . #x73D2) + (#x7B2A . #x7407) + (#x7B2B . #x73F5) + (#x7B2C . #x7426) + (#x7B2D . #x742A) + (#x7B2E . #x7429) + (#x7B2F . #x742E) + (#x7B30 . #x7462) + (#x7B31 . #x7489) + (#x7B32 . #x749F) + (#x7B33 . #x7501) + (#x7B34 . #x756F) + (#x7B35 . #x7682) + (#x7B36 . #x769C) + (#x7B37 . #x769E) + (#x7B38 . #x769B) + (#x7B39 . #x76A6) + (#x7B3A . #xFA17) + (#x7B3B . #x7746) + (#x7B3C . #x52AF) + (#x7B3D . #x7821) + (#x7B3E . #x784E) + (#x7B3F . #x7864) + (#x7B40 . #x787A) + (#x7B41 . #x7930) + (#x7B42 . #xFA18) + (#x7B43 . #xFA19) + (#x7B44 . #xFA1A) + (#x7B45 . #x7994) + (#x7B46 . #xFA1B) + (#x7B47 . #x799B) + (#x7B48 . #x7AD1) + (#x7B49 . #x7AE7) + (#x7B4A . #xFA1C) + (#x7B4B . #x7AEB) + (#x7B4C . #x7B9E) + (#x7B4D . #xFA1D) + (#x7B4E . #x7D48) + (#x7B4F . #x7D5C) + (#x7B50 . #x7DB7) + (#x7B51 . #x7DA0) + (#x7B52 . #x7DD6) + (#x7B53 . #x7E52) + (#x7B54 . #x7F47) + (#x7B55 . #x7FA1) + (#x7B56 . #xFA1E) + (#x7B57 . #x8301) + (#x7B58 . #x8362) + (#x7B59 . #x837F) + (#x7B5A . #x83C7) + (#x7B5B . #x83F6) + (#x7B5C . #x8448) + (#x7B5D . #x84B4) + (#x7B5E . #x8553) + (#x7B5F . #x8559) + (#x7B60 . #x856B) + (#x7B61 . #xFA1F) + (#x7B62 . #x85B0) + (#x7B63 . #xFA20) + (#x7B64 . #xFA21) + (#x7B65 . #x8807) + (#x7B66 . #x88F5) + (#x7B67 . #x8A12) + (#x7B68 . #x8A37) + (#x7B69 . #x8A79) + (#x7B6A . #x8AA7) + (#x7B6B . #x8ABE) + (#x7B6C . #x8ADF) + (#x7B6D . #xFA22) + (#x7B6E . #x8AF6) + (#x7B6F . #x8B53) + (#x7B70 . #x8B7F) + (#x7B71 . #x8CF0) + (#x7B72 . #x8CF4) + (#x7B73 . #x8D12) + (#x7B74 . #x8D76) + (#x7B75 . #xFA23) + (#x7B76 . #x8ECF) + (#x7B77 . #xFA24) + (#x7B78 . #xFA25) + (#x7B79 . #x9067) + (#x7B7A . #x90DE) + (#x7B7B . #xFA26) + (#x7B7C . #x9115) + (#x7B7D . #x9127) + (#x7B7E . #x91DA) + (#x7C21 . #x91D7) + (#x7C22 . #x91DE) + (#x7C23 . #x91ED) + (#x7C24 . #x91EE) + (#x7C25 . #x91E4) + (#x7C26 . #x91E5) + (#x7C27 . #x9206) + (#x7C28 . #x9210) + (#x7C29 . #x920A) + (#x7C2A . #x923A) + (#x7C2B . #x9240) + (#x7C2C . #x923C) + (#x7C2D . #x924E) + (#x7C2E . #x9259) + (#x7C2F . #x9251) + (#x7C30 . #x9239) + (#x7C31 . #x9267) + (#x7C32 . #x92A7) + (#x7C33 . #x9277) + (#x7C34 . #x9278) + (#x7C35 . #x92E7) + (#x7C36 . #x92D7) + (#x7C37 . #x92D9) + (#x7C38 . #x92D0) + (#x7C39 . #xFA27) + (#x7C3A . #x92D5) + (#x7C3B . #x92E0) + (#x7C3C . #x92D3) + (#x7C3D . #x9325) + (#x7C3E . #x9321) + (#x7C3F . #x92FB) + (#x7C40 . #xFA28) + (#x7C41 . #x931E) + (#x7C42 . #x92FF) + (#x7C43 . #x931D) + (#x7C44 . #x9302) + (#x7C45 . #x9370) + (#x7C46 . #x9357) + (#x7C47 . #x93A4) + (#x7C48 . #x93C6) + (#x7C49 . #x93DE) + (#x7C4A . #x93F8) + (#x7C4B . #x9431) + (#x7C4C . #x9445) + (#x7C4D . #x9448) + (#x7C4E . #x9592) + (#x7C4F . #xF9DC) + (#x7C50 . #xFA29) + (#x7C51 . #x969D) + (#x7C52 . #x96AF) + (#x7C53 . #x9733) + (#x7C54 . #x973B) + (#x7C55 . #x9743) + (#x7C56 . #x974D) + (#x7C57 . #x974F) + (#x7C58 . #x9751) + (#x7C59 . #x9755) + (#x7C5A . #x9857) + (#x7C5B . #x9865) + (#x7C5C . #xFA2A) + (#x7C5D . #xFA2B) + (#x7C5E . #x9927) + (#x7C5F . #xFA2C) + (#x7C60 . #x999E) + (#x7C61 . #x9A4E) + (#x7C62 . #x9AD9) + (#x7C63 . #x9ADC) + (#x7C64 . #x9B75) + (#x7C65 . #x9B72) + (#x7C66 . #x9B8F) + (#x7C67 . #x9BB1) + (#x7C68 . #x9BBB) + (#x7C69 . #x9C00) + (#x7C6A . #x9D70) + (#x7C6B . #x9D6B) + (#x7C6C . #xFA2D) + (#x7C6D . #x9E19) + (#x7C6E . #x9ED1) + (#x7C71 . #x2170) + (#x7C72 . #x2171) + (#x7C73 . #x2172) + (#x7C74 . #x2173) + (#x7C75 . #x2174) + (#x7C76 . #x2175) + (#x7C77 . #x2176) + (#x7C78 . #x2177) + (#x7C79 . #x2178) + (#x7C7A . #x2179) + (#x7C7B . #xFFE2) + (#x7C7C . #xFFE4) + (#x7C7D . #xFF07) + (#x7C7E . #xFF02)))) + (mapc #'(lambda (x) + (setcar x (decode-char 'japanese-jisx0208 (car x)))) + map) + (define-translation-table 'cp51932-decode map) + (mapc #'(lambda (x) + (let ((tmp (car x))) + (setcar x (cdr x)) (setcdr x tmp))) + map) + (define-translation-table 'cp51932-encode map)) + +;;; arch-tag: d21c06e5-a548-4dda-8802-c2922ff19da3 diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el index 7b3e6746b4a..3956fd51bd3 100644 --- a/lisp/international/encoded-kb.el +++ b/lisp/international/encoded-kb.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; This file is part of GNU Emacs. @@ -167,7 +170,7 @@ The following key sequence may cause multilingual text insertion." (defun encoded-kbd-self-insert-ccl (ignore) (let ((str (char-to-string (encoded-kbd-last-key))) - (ccl (car (aref (coding-system-spec (keyboard-coding-system)) 4))) + (ccl (coding-system-get (keyboard-coding-system) :ccl-decoder)) (vec [nil nil nil nil nil nil nil nil nil]) result) (while (= (length (setq result (ccl-execute-on-string ccl vec str t))) 0) @@ -175,12 +178,70 @@ The following key sequence may cause multilingual text insertion." (setq str (format "%s%c" str (read-char-exclusive)))) (vector (aref result 0)))) + +;; Decode list of codes in CODE-LIST by CHARSET and return the decoded +;; characters. If CODE-LIST is too short for the dimension of +;; CHARSET, read new codes and append them to the tail of CODE-LIST. +;; Return nil if CODE-LIST can't be decoded. + +(defun encoded-kbd-decode-code-list (charset code-list) + (let ((dimension (charset-dimension charset)) + code) + (while (> dimension (length code-list)) + (nconc code-list (list (read-char-exclusive)))) + (setq code (car code-list)) + (if (= dimension 1) + (decode-char charset code) + (setq code-list (cdr code-list) + code (logior (lsh code 8) (car code-list))) + (if (= dimension 2) + (decode-char charset code) + (setq code-list (cdr code-list) + code (logior (lsh code 8) (car code-list))) + (if (= dimension 3) + (decode-char charset code) + ;; As Emacs can't handle full 32-bit integer, we must give a + ;; cons of higher and lower 16-bit codes to decode-char. + (setq code (cons (lsh code -8) + (logior (lsh (car code-list) 8) (cadr code-list)))) + (decode-char charset code)))))) + +(defun encoded-kbd-self-insert-charset (ignore) + (let ((charset-list + (coding-system-get (keyboard-coding-system) :charset-list)) + (code-list (list (encoded-kbd-last-key))) + tail char) + (while (and charset-list (not char)) + (setq char (encoded-kbd-decode-code-list (car charset-list) code-list) + charset-list (cdr charset-list))) + (if char + (vector char) + (setq unread-command-events (cdr code-list)) + (vector (car code-list))))) + +(defun encoded-kbd-self-insert-utf-8 (arg) + (interactive "p") + (let ((char (encoded-kbd-last-key)) + len) + (cond ((< char #xE0) + (setq len 1 char (logand char #x1F))) + ((< char #xF0) + (setq len 2 char (logand char #x0F))) + ((< char #xF8) + (setq len 3 char (logand char #x07))) + (t + (setq len 4 char 0))) + (while (> len 0) + (setq char (logior (lsh char 6) (logand (read-char-exclusive) #x3F)) + len (1- len))) + (vector char))) + (defun encoded-kbd-setup-keymap (coding) ;; At first, reset the keymap. (define-key encoded-kbd-mode-map "\e" nil) ;; Then setup the keymap according to the keyboard coding system. (cond - ((eq (coding-system-type coding) 1) ; SJIS + ((eq (coding-system-type coding) 'shift-jis) (let ((i 128)) (while (< i 256) (define-key key-translation-map @@ -188,46 +249,53 @@ The following key sequence may cause multilingual text insertion." (setq i (1+ i)))) 8) - ((eq (coding-system-type coding) 3) ; Big5 - (let ((i 161)) - (while (< i 255) - (define-key key-translation-map - (vector i) 'encoded-kbd-self-insert-big5) - (setq i (1+ i)))) + ((eq (coding-system-type coding) 'charset) + (dolist (elt (mapcar + #'(lambda (x) + (let ((dim (charset-dimension x)) + (code-space (get-charset-property x :code-space))) + (cons (aref code-space (* (1- dim) 2)) + (aref code-space (1+ (* (1- dim) 2)))))) + (coding-system-get coding :charset-list))) + (let ((from (max (car elt) 128)) + (to (cdr elt))) + (while (<= from to) + (define-key key-translation-map + (vector from) 'encoded-kbd-self-insert-charset) + (setq from (1+ from))))) 8) - ((eq (coding-system-type coding) 2) ; ISO-2022 - (let ((flags (coding-system-flags coding)) - use-designation) - (if (aref flags 8) + ((eq (coding-system-type coding) 'iso-2022) + (let ((flags (coding-system-get coding :flags)) + (designation (coding-system-get coding :designation))) + (if (memq 'locking-shift flags) nil ; Don't support locking-shift. (setq encoded-kbd-iso2022-designations (make-vector 4 nil) encoded-kbd-iso2022-invocations (make-vector 3 nil)) (dotimes (i 4) - (if (aref flags i) - (if (charsetp (aref flags i)) + (if (aref designation i) + (if (charsetp (aref designation i)) (aset encoded-kbd-iso2022-designations - i (aref flags i)) - (setq use-designation t) - (if (charsetp (car-safe (aref flags i))) + i (aref designation i)) + (if (charsetp (car-safe (aref designation i))) (aset encoded-kbd-iso2022-designations - i (car (aref flags i))))))) + i (car (aref designation i))))))) (aset encoded-kbd-iso2022-invocations 0 0) (if (aref encoded-kbd-iso2022-designations 1) (aset encoded-kbd-iso2022-invocations 1 1)) - (when use-designation + (when (memq 'designation flags) (define-key encoded-kbd-mode-map "\e" 'encoded-kbd-iso2022-esc-prefix) (define-key key-translation-map "\e" 'encoded-kbd-iso2022-esc-prefix)) - (when (or (aref flags 2) (aref flags 3)) + (when (or (aref designation 2) (aref designation 3)) (define-key key-translation-map [?\216] 'encoded-kbd-iso2022-single-shift) (define-key key-translation-map [?\217] 'encoded-kbd-iso2022-single-shift)) - (or (eq (aref flags 0) 'ascii) + (or (eq (aref designation 0) 'ascii) (dotimes (i 96) (define-key key-translation-map (vector (+ 32 i)) 'encoded-kbd-self-insert-iso2022-7bit))) - (if (aref flags 7) + (if (memq '7-bit flags) t (dotimes (i 96) (define-key key-translation-map @@ -235,7 +303,7 @@ The following key sequence may cause multilingual text insertion." 8)))) ((eq (coding-system-type coding) 4) ; CCL-base - (let ((valid-codes (or (coding-system-get coding 'valid-codes) + (let ((valid-codes (or (coding-system-get coding :valid) '((128 . 255)))) elt from to valid) (while valid-codes @@ -250,6 +318,14 @@ The following key sequence may cause multilingual text insertion." (setq from (1+ from)))) 8)) + ((eq (coding-system-type coding) 'utf-8) + (let ((i #xC0)) + (while (< i 256) + (define-key key-translation-map + (vector i) 'encoded-kbd-self-insert-utf-8) + (setq i (1+ i)))) + 8) + (t nil))) @@ -302,10 +378,11 @@ as a multilingual text encoded in a coding system set by coding))) ;; We are turning off Encoded-kbd mode. - (setq key-translation-map saved-key-translation-map - saved-key-translation-map nil) - (apply 'set-input-mode saved-input-mode) - (setq saved-input-mode nil))) + (when saved-input-mode + (setq key-translation-map saved-key-translation-map + saved-key-translation-map nil) + (apply 'set-input-mode saved-input-mode) + (setq saved-input-mode nil)))) (provide 'encoded-kb) diff --git a/lisp/international/eucjp-ms.el b/lisp/international/eucjp-ms.el new file mode 100644 index 00000000000..f8fee5bc453 --- /dev/null +++ b/lisp/international/eucjp-ms.el @@ -0,0 +1,2087 @@ +;;; eucjp-ms.el -- translation table for eucJP-ms. -*- no-byte-compile: t -*- +;;; Automatically genrated from eucJP-13th.txt, eucJP-udc.txt, eucJP-ibmext.txt +(let ((map + '(;JISEXT<->UNICODE + (#x2d21 . #x2460) + (#x2d22 . #x2461) + (#x2d23 . #x2462) + (#x2d24 . #x2463) + (#x2d25 . #x2464) + (#x2d26 . #x2465) + (#x2d27 . #x2466) + (#x2d28 . #x2467) + (#x2d29 . #x2468) + (#x2d2a . #x2469) + (#x2d2b . #x246A) + (#x2d2c . #x246B) + (#x2d2d . #x246C) + (#x2d2e . #x246D) + (#x2d2f . #x246E) + (#x2d30 . #x246F) + (#x2d31 . #x2470) + (#x2d32 . #x2471) + (#x2d33 . #x2472) + (#x2d34 . #x2473) + (#x2d35 . #x2160) + (#x2d36 . #x2161) + (#x2d37 . #x2162) + (#x2d38 . #x2163) + (#x2d39 . #x2164) + (#x2d3a . #x2165) + (#x2d3b . #x2166) + (#x2d3c . #x2167) + (#x2d3d . #x2168) + (#x2d3e . #x2169) + (#x2d40 . #x3349) + (#x2d41 . #x3314) + (#x2d42 . #x3322) + (#x2d43 . #x334D) + (#x2d44 . #x3318) + (#x2d45 . #x3327) + (#x2d46 . #x3303) + (#x2d47 . #x3336) + (#x2d48 . #x3351) + (#x2d49 . #x3357) + (#x2d4a . #x330D) + (#x2d4b . #x3326) + (#x2d4c . #x3323) + (#x2d4d . #x332B) + (#x2d4e . #x334A) + (#x2d4f . #x333B) + (#x2d50 . #x339C) + (#x2d51 . #x339D) + (#x2d52 . #x339E) + (#x2d53 . #x338E) + (#x2d54 . #x338F) + (#x2d55 . #x33C4) + (#x2d56 . #x33A1) + (#x2d5f . #x337B) + (#x2d60 . #x301D) + (#x2d61 . #x301F) + (#x2d62 . #x2116) + (#x2d63 . #x33CD) + (#x2d64 . #x2121) + (#x2d65 . #x32A4) + (#x2d66 . #x32A5) + (#x2d67 . #x32A6) + (#x2d68 . #x32A7) + (#x2d69 . #x32A8) + (#x2d6a . #x3231) + (#x2d6b . #x3232) + (#x2d6c . #x3239) + (#x2d6d . #x337E) + (#x2d6e . #x337D) + (#x2d6f . #x337C) + (#x2d70 . #x2252) + (#x2d71 . #x2261) + (#x2d72 . #x222B) + (#x2d73 . #x222E) + (#x2d74 . #x2211) + (#x2d75 . #x221A) + (#x2d76 . #x22A5) + (#x2d77 . #x2220) + (#x2d78 . #x221F) + (#x2d79 . #x22BF) + (#x2d7a . #x2235) + (#x2d7b . #x2229) + (#x2d7c . #x222A) + (#x7521 . #xE000) + (#x7522 . #xE001) + (#x7523 . #xE002) + (#x7524 . #xE003) + (#x7525 . #xE004) + (#x7526 . #xE005) + (#x7527 . #xE006) + (#x7528 . #xE007) + (#x7529 . #xE008) + (#x752a . #xE009) + (#x752b . #xE00A) + (#x752c . #xE00B) + (#x752d . #xE00C) + (#x752e . #xE00D) + (#x752f . #xE00E) + (#x7530 . #xE00F) + (#x7531 . #xE010) + (#x7532 . #xE011) + (#x7533 . #xE012) + (#x7534 . #xE013) + (#x7535 . #xE014) + (#x7536 . #xE015) + (#x7537 . #xE016) + (#x7538 . #xE017) + (#x7539 . #xE018) + (#x753a . #xE019) + (#x753b . #xE01A) + (#x753c . #xE01B) + (#x753d . #xE01C) + (#x753e . #xE01D) + (#x753f . #xE01E) + (#x7540 . #xE01F) + (#x7541 . #xE020) + (#x7542 . #xE021) + (#x7543 . #xE022) + (#x7544 . #xE023) + (#x7545 . #xE024) + (#x7546 . #xE025) + (#x7547 . #xE026) + (#x7548 . #xE027) + (#x7549 . #xE028) + (#x754a . #xE029) + (#x754b . #xE02A) + (#x754c . #xE02B) + (#x754d . #xE02C) + (#x754e . #xE02D) + (#x754f . #xE02E) + (#x7550 . #xE02F) + (#x7551 . #xE030) + (#x7552 . #xE031) + (#x7553 . #xE032) + (#x7554 . #xE033) + (#x7555 . #xE034) + (#x7556 . #xE035) + (#x7557 . #xE036) + (#x7558 . #xE037) + (#x7559 . #xE038) + (#x755a . #xE039) + (#x755b . #xE03A) + (#x755c . #xE03B) + (#x755d . #xE03C) + (#x755e . #xE03D) + (#x755f . #xE03E) + (#x7560 . #xE03F) + (#x7561 . #xE040) + (#x7562 . #xE041) + (#x7563 . #xE042) + (#x7564 . #xE043) + (#x7565 . #xE044) + (#x7566 . #xE045) + (#x7567 . #xE046) + (#x7568 . #xE047) + (#x7569 . #xE048) + (#x756a . #xE049) + (#x756b . #xE04A) + (#x756c . #xE04B) + (#x756d . #xE04C) + (#x756e . #xE04D) + (#x756f . #xE04E) + (#x7570 . #xE04F) + (#x7571 . #xE050) + (#x7572 . #xE051) + (#x7573 . #xE052) + (#x7574 . #xE053) + (#x7575 . #xE054) + (#x7576 . #xE055) + (#x7577 . #xE056) + (#x7578 . #xE057) + (#x7579 . #xE058) + (#x757a . #xE059) + (#x757b . #xE05A) + (#x757c . #xE05B) + (#x757d . #xE05C) + (#x757e . #xE05D) + (#x7621 . #xE05E) + (#x7622 . #xE05F) + (#x7623 . #xE060) + (#x7624 . #xE061) + (#x7625 . #xE062) + (#x7626 . #xE063) + (#x7627 . #xE064) + (#x7628 . #xE065) + (#x7629 . #xE066) + (#x762a . #xE067) + (#x762b . #xE068) + (#x762c . #xE069) + (#x762d . #xE06A) + (#x762e . #xE06B) + (#x762f . #xE06C) + (#x7630 . #xE06D) + (#x7631 . #xE06E) + (#x7632 . #xE06F) + (#x7633 . #xE070) + (#x7634 . #xE071) + (#x7635 . #xE072) + (#x7636 . #xE073) + (#x7637 . #xE074) + (#x7638 . #xE075) + (#x7639 . #xE076) + (#x763a . #xE077) + (#x763b . #xE078) + (#x763c . #xE079) + (#x763d . #xE07A) + (#x763e . #xE07B) + (#x763f . #xE07C) + (#x7640 . #xE07D) + (#x7641 . #xE07E) + (#x7642 . #xE07F) + (#x7643 . #xE080) + (#x7644 . #xE081) + (#x7645 . #xE082) + (#x7646 . #xE083) + (#x7647 . #xE084) + (#x7648 . #xE085) + (#x7649 . #xE086) + (#x764a . #xE087) + (#x764b . #xE088) + (#x764c . #xE089) + (#x764d . #xE08A) + (#x764e . #xE08B) + (#x764f . #xE08C) + (#x7650 . #xE08D) + (#x7651 . #xE08E) + (#x7652 . #xE08F) + (#x7653 . #xE090) + (#x7654 . #xE091) + (#x7655 . #xE092) + (#x7656 . #xE093) + (#x7657 . #xE094) + (#x7658 . #xE095) + (#x7659 . #xE096) + (#x765a . #xE097) + (#x765b . #xE098) + (#x765c . #xE099) + (#x765d . #xE09A) + (#x765e . #xE09B) + (#x765f . #xE09C) + (#x7660 . #xE09D) + (#x7661 . #xE09E) + (#x7662 . #xE09F) + (#x7663 . #xE0A0) + (#x7664 . #xE0A1) + (#x7665 . #xE0A2) + (#x7666 . #xE0A3) + (#x7667 . #xE0A4) + (#x7668 . #xE0A5) + (#x7669 . #xE0A6) + (#x766a . #xE0A7) + (#x766b . #xE0A8) + (#x766c . #xE0A9) + (#x766d . #xE0AA) + (#x766e . #xE0AB) + (#x766f . #xE0AC) + (#x7670 . #xE0AD) + (#x7671 . #xE0AE) + (#x7672 . #xE0AF) + (#x7673 . #xE0B0) + (#x7674 . #xE0B1) + (#x7675 . #xE0B2) + (#x7676 . #xE0B3) + (#x7677 . #xE0B4) + (#x7678 . #xE0B5) + (#x7679 . #xE0B6) + (#x767a . #xE0B7) + (#x767b . #xE0B8) + (#x767c . #xE0B9) + (#x767d . #xE0BA) + (#x767e . #xE0BB) + (#x7721 . #xE0BC) + (#x7722 . #xE0BD) + (#x7723 . #xE0BE) + (#x7724 . #xE0BF) + (#x7725 . #xE0C0) + (#x7726 . #xE0C1) + (#x7727 . #xE0C2) + (#x7728 . #xE0C3) + (#x7729 . #xE0C4) + (#x772a . #xE0C5) + (#x772b . #xE0C6) + (#x772c . #xE0C7) + (#x772d . #xE0C8) + (#x772e . #xE0C9) + (#x772f . #xE0CA) + (#x7730 . #xE0CB) + (#x7731 . #xE0CC) + (#x7732 . #xE0CD) + (#x7733 . #xE0CE) + (#x7734 . #xE0CF) + (#x7735 . #xE0D0) + (#x7736 . #xE0D1) + (#x7737 . #xE0D2) + (#x7738 . #xE0D3) + (#x7739 . #xE0D4) + (#x773a . #xE0D5) + (#x773b . #xE0D6) + (#x773c . #xE0D7) + (#x773d . #xE0D8) + (#x773e . #xE0D9) + (#x773f . #xE0DA) + (#x7740 . #xE0DB) + (#x7741 . #xE0DC) + (#x7742 . #xE0DD) + (#x7743 . #xE0DE) + (#x7744 . #xE0DF) + (#x7745 . #xE0E0) + (#x7746 . #xE0E1) + (#x7747 . #xE0E2) + (#x7748 . #xE0E3) + (#x7749 . #xE0E4) + (#x774a . #xE0E5) + (#x774b . #xE0E6) + (#x774c . #xE0E7) + (#x774d . #xE0E8) + (#x774e . #xE0E9) + (#x774f . #xE0EA) + (#x7750 . #xE0EB) + (#x7751 . #xE0EC) + (#x7752 . #xE0ED) + (#x7753 . #xE0EE) + (#x7754 . #xE0EF) + (#x7755 . #xE0F0) + (#x7756 . #xE0F1) + (#x7757 . #xE0F2) + (#x7758 . #xE0F3) + (#x7759 . #xE0F4) + (#x775a . #xE0F5) + (#x775b . #xE0F6) + (#x775c . #xE0F7) + (#x775d . #xE0F8) + (#x775e . #xE0F9) + (#x775f . #xE0FA) + (#x7760 . #xE0FB) + (#x7761 . #xE0FC) + (#x7762 . #xE0FD) + (#x7763 . #xE0FE) + (#x7764 . #xE0FF) + (#x7765 . #xE100) + (#x7766 . #xE101) + (#x7767 . #xE102) + (#x7768 . #xE103) + (#x7769 . #xE104) + (#x776a . #xE105) + (#x776b . #xE106) + (#x776c . #xE107) + (#x776d . #xE108) + (#x776e . #xE109) + (#x776f . #xE10A) + (#x7770 . #xE10B) + (#x7771 . #xE10C) + (#x7772 . #xE10D) + (#x7773 . #xE10E) + (#x7774 . #xE10F) + (#x7775 . #xE110) + (#x7776 . #xE111) + (#x7777 . #xE112) + (#x7778 . #xE113) + (#x7779 . #xE114) + (#x777a . #xE115) + (#x777b . #xE116) + (#x777c . #xE117) + (#x777d . #xE118) + (#x777e . #xE119) + (#x7821 . #xE11A) + (#x7822 . #xE11B) + (#x7823 . #xE11C) + (#x7824 . #xE11D) + (#x7825 . #xE11E) + (#x7826 . #xE11F) + (#x7827 . #xE120) + (#x7828 . #xE121) + (#x7829 . #xE122) + (#x782a . #xE123) + (#x782b . #xE124) + (#x782c . #xE125) + (#x782d . #xE126) + (#x782e . #xE127) + (#x782f . #xE128) + (#x7830 . #xE129) + (#x7831 . #xE12A) + (#x7832 . #xE12B) + (#x7833 . #xE12C) + (#x7834 . #xE12D) + (#x7835 . #xE12E) + (#x7836 . #xE12F) + (#x7837 . #xE130) + (#x7838 . #xE131) + (#x7839 . #xE132) + (#x783a . #xE133) + (#x783b . #xE134) + (#x783c . #xE135) + (#x783d . #xE136) + (#x783e . #xE137) + (#x783f . #xE138) + (#x7840 . #xE139) + (#x7841 . #xE13A) + (#x7842 . #xE13B) + (#x7843 . #xE13C) + (#x7844 . #xE13D) + (#x7845 . #xE13E) + (#x7846 . #xE13F) + (#x7847 . #xE140) + (#x7848 . #xE141) + (#x7849 . #xE142) + (#x784a . #xE143) + (#x784b . #xE144) + (#x784c . #xE145) + (#x784d . #xE146) + (#x784e . #xE147) + (#x784f . #xE148) + (#x7850 . #xE149) + (#x7851 . #xE14A) + (#x7852 . #xE14B) + (#x7853 . #xE14C) + (#x7854 . #xE14D) + (#x7855 . #xE14E) + (#x7856 . #xE14F) + (#x7857 . #xE150) + (#x7858 . #xE151) + (#x7859 . #xE152) + (#x785a . #xE153) + (#x785b . #xE154) + (#x785c . #xE155) + (#x785d . #xE156) + (#x785e . #xE157) + (#x785f . #xE158) + (#x7860 . #xE159) + (#x7861 . #xE15A) + (#x7862 . #xE15B) + (#x7863 . #xE15C) + (#x7864 . #xE15D) + (#x7865 . #xE15E) + (#x7866 . #xE15F) + (#x7867 . #xE160) + (#x7868 . #xE161) + (#x7869 . #xE162) + (#x786a . #xE163) + (#x786b . #xE164) + (#x786c . #xE165) + (#x786d . #xE166) + (#x786e . #xE167) + (#x786f . #xE168) + (#x7870 . #xE169) + (#x7871 . #xE16A) + (#x7872 . #xE16B) + (#x7873 . #xE16C) + (#x7874 . #xE16D) + (#x7875 . #xE16E) + (#x7876 . #xE16F) + (#x7877 . #xE170) + (#x7878 . #xE171) + (#x7879 . #xE172) + (#x787a . #xE173) + (#x787b . #xE174) + (#x787c . #xE175) + (#x787d . #xE176) + (#x787e . #xE177) + (#x7921 . #xE178) + (#x7922 . #xE179) + (#x7923 . #xE17A) + (#x7924 . #xE17B) + (#x7925 . #xE17C) + (#x7926 . #xE17D) + (#x7927 . #xE17E) + (#x7928 . #xE17F) + (#x7929 . #xE180) + (#x792a . #xE181) + (#x792b . #xE182) + (#x792c . #xE183) + (#x792d . #xE184) + (#x792e . #xE185) + (#x792f . #xE186) + (#x7930 . #xE187) + (#x7931 . #xE188) + (#x7932 . #xE189) + (#x7933 . #xE18A) + (#x7934 . #xE18B) + (#x7935 . #xE18C) + (#x7936 . #xE18D) + (#x7937 . #xE18E) + (#x7938 . #xE18F) + (#x7939 . #xE190) + (#x793a . #xE191) + (#x793b . #xE192) + (#x793c . #xE193) + (#x793d . #xE194) + (#x793e . #xE195) + (#x793f . #xE196) + (#x7940 . #xE197) + (#x7941 . #xE198) + (#x7942 . #xE199) + (#x7943 . #xE19A) + (#x7944 . #xE19B) + (#x7945 . #xE19C) + (#x7946 . #xE19D) + (#x7947 . #xE19E) + (#x7948 . #xE19F) + (#x7949 . #xE1A0) + (#x794a . #xE1A1) + (#x794b . #xE1A2) + (#x794c . #xE1A3) + (#x794d . #xE1A4) + (#x794e . #xE1A5) + (#x794f . #xE1A6) + (#x7950 . #xE1A7) + (#x7951 . #xE1A8) + (#x7952 . #xE1A9) + (#x7953 . #xE1AA) + (#x7954 . #xE1AB) + (#x7955 . #xE1AC) + (#x7956 . #xE1AD) + (#x7957 . #xE1AE) + (#x7958 . #xE1AF) + (#x7959 . #xE1B0) + (#x795a . #xE1B1) + (#x795b . #xE1B2) + (#x795c . #xE1B3) + (#x795d . #xE1B4) + (#x795e . #xE1B5) + (#x795f . #xE1B6) + (#x7960 . #xE1B7) + (#x7961 . #xE1B8) + (#x7962 . #xE1B9) + (#x7963 . #xE1BA) + (#x7964 . #xE1BB) + (#x7965 . #xE1BC) + (#x7966 . #xE1BD) + (#x7967 . #xE1BE) + (#x7968 . #xE1BF) + (#x7969 . #xE1C0) + (#x796a . #xE1C1) + (#x796b . #xE1C2) + (#x796c . #xE1C3) + (#x796d . #xE1C4) + (#x796e . #xE1C5) + (#x796f . #xE1C6) + (#x7970 . #xE1C7) + (#x7971 . #xE1C8) + (#x7972 . #xE1C9) + (#x7973 . #xE1CA) + (#x7974 . #xE1CB) + (#x7975 . #xE1CC) + (#x7976 . #xE1CD) + (#x7977 . #xE1CE) + (#x7978 . #xE1CF) + (#x7979 . #xE1D0) + (#x797a . #xE1D1) + (#x797b . #xE1D2) + (#x797c . #xE1D3) + (#x797d . #xE1D4) + (#x797e . #xE1D5) + (#x7a21 . #xE1D6) + (#x7a22 . #xE1D7) + (#x7a23 . #xE1D8) + (#x7a24 . #xE1D9) + (#x7a25 . #xE1DA) + (#x7a26 . #xE1DB) + (#x7a27 . #xE1DC) + (#x7a28 . #xE1DD) + (#x7a29 . #xE1DE) + (#x7a2a . #xE1DF) + (#x7a2b . #xE1E0) + (#x7a2c . #xE1E1) + (#x7a2d . #xE1E2) + (#x7a2e . #xE1E3) + (#x7a2f . #xE1E4) + (#x7a30 . #xE1E5) + (#x7a31 . #xE1E6) + (#x7a32 . #xE1E7) + (#x7a33 . #xE1E8) + (#x7a34 . #xE1E9) + (#x7a35 . #xE1EA) + (#x7a36 . #xE1EB) + (#x7a37 . #xE1EC) + (#x7a38 . #xE1ED) + (#x7a39 . #xE1EE) + (#x7a3a . #xE1EF) + (#x7a3b . #xE1F0) + (#x7a3c . #xE1F1) + (#x7a3d . #xE1F2) + (#x7a3e . #xE1F3) + (#x7a3f . #xE1F4) + (#x7a40 . #xE1F5) + (#x7a41 . #xE1F6) + (#x7a42 . #xE1F7) + (#x7a43 . #xE1F8) + (#x7a44 . #xE1F9) + (#x7a45 . #xE1FA) + (#x7a46 . #xE1FB) + (#x7a47 . #xE1FC) + (#x7a48 . #xE1FD) + (#x7a49 . #xE1FE) + (#x7a4a . #xE1FF) + (#x7a4b . #xE200) + (#x7a4c . #xE201) + (#x7a4d . #xE202) + (#x7a4e . #xE203) + (#x7a4f . #xE204) + (#x7a50 . #xE205) + (#x7a51 . #xE206) + (#x7a52 . #xE207) + (#x7a53 . #xE208) + (#x7a54 . #xE209) + (#x7a55 . #xE20A) + (#x7a56 . #xE20B) + (#x7a57 . #xE20C) + (#x7a58 . #xE20D) + (#x7a59 . #xE20E) + (#x7a5a . #xE20F) + (#x7a5b . #xE210) + (#x7a5c . #xE211) + (#x7a5d . #xE212) + (#x7a5e . #xE213) + (#x7a5f . #xE214) + (#x7a60 . #xE215) + (#x7a61 . #xE216) + (#x7a62 . #xE217) + (#x7a63 . #xE218) + (#x7a64 . #xE219) + (#x7a65 . #xE21A) + (#x7a66 . #xE21B) + (#x7a67 . #xE21C) + (#x7a68 . #xE21D) + (#x7a69 . #xE21E) + (#x7a6a . #xE21F) + (#x7a6b . #xE220) + (#x7a6c . #xE221) + (#x7a6d . #xE222) + (#x7a6e . #xE223) + (#x7a6f . #xE224) + (#x7a70 . #xE225) + (#x7a71 . #xE226) + (#x7a72 . #xE227) + (#x7a73 . #xE228) + (#x7a74 . #xE229) + (#x7a75 . #xE22A) + (#x7a76 . #xE22B) + (#x7a77 . #xE22C) + (#x7a78 . #xE22D) + (#x7a79 . #xE22E) + (#x7a7a . #xE22F) + (#x7a7b . #xE230) + (#x7a7c . #xE231) + (#x7a7d . #xE232) + (#x7a7e . #xE233) + (#x7b21 . #xE234) + (#x7b22 . #xE235) + (#x7b23 . #xE236) + (#x7b24 . #xE237) + (#x7b25 . #xE238) + (#x7b26 . #xE239) + (#x7b27 . #xE23A) + (#x7b28 . #xE23B) + (#x7b29 . #xE23C) + (#x7b2a . #xE23D) + (#x7b2b . #xE23E) + (#x7b2c . #xE23F) + (#x7b2d . #xE240) + (#x7b2e . #xE241) + (#x7b2f . #xE242) + (#x7b30 . #xE243) + (#x7b31 . #xE244) + (#x7b32 . #xE245) + (#x7b33 . #xE246) + (#x7b34 . #xE247) + (#x7b35 . #xE248) + (#x7b36 . #xE249) + (#x7b37 . #xE24A) + (#x7b38 . #xE24B) + (#x7b39 . #xE24C) + (#x7b3a . #xE24D) + (#x7b3b . #xE24E) + (#x7b3c . #xE24F) + (#x7b3d . #xE250) + (#x7b3e . #xE251) + (#x7b3f . #xE252) + (#x7b40 . #xE253) + (#x7b41 . #xE254) + (#x7b42 . #xE255) + (#x7b43 . #xE256) + (#x7b44 . #xE257) + (#x7b45 . #xE258) + (#x7b46 . #xE259) + (#x7b47 . #xE25A) + (#x7b48 . #xE25B) + (#x7b49 . #xE25C) + (#x7b4a . #xE25D) + (#x7b4b . #xE25E) + (#x7b4c . #xE25F) + (#x7b4d . #xE260) + (#x7b4e . #xE261) + (#x7b4f . #xE262) + (#x7b50 . #xE263) + (#x7b51 . #xE264) + (#x7b52 . #xE265) + (#x7b53 . #xE266) + (#x7b54 . #xE267) + (#x7b55 . #xE268) + (#x7b56 . #xE269) + (#x7b57 . #xE26A) + (#x7b58 . #xE26B) + (#x7b59 . #xE26C) + (#x7b5a . #xE26D) + (#x7b5b . #xE26E) + (#x7b5c . #xE26F) + (#x7b5d . #xE270) + (#x7b5e . #xE271) + (#x7b5f . #xE272) + (#x7b60 . #xE273) + (#x7b61 . #xE274) + (#x7b62 . #xE275) + (#x7b63 . #xE276) + (#x7b64 . #xE277) + (#x7b65 . #xE278) + (#x7b66 . #xE279) + (#x7b67 . #xE27A) + (#x7b68 . #xE27B) + (#x7b69 . #xE27C) + (#x7b6a . #xE27D) + (#x7b6b . #xE27E) + (#x7b6c . #xE27F) + (#x7b6d . #xE280) + (#x7b6e . #xE281) + (#x7b6f . #xE282) + (#x7b70 . #xE283) + (#x7b71 . #xE284) + (#x7b72 . #xE285) + (#x7b73 . #xE286) + (#x7b74 . #xE287) + (#x7b75 . #xE288) + (#x7b76 . #xE289) + (#x7b77 . #xE28A) + (#x7b78 . #xE28B) + (#x7b79 . #xE28C) + (#x7b7a . #xE28D) + (#x7b7b . #xE28E) + (#x7b7c . #xE28F) + (#x7b7d . #xE290) + (#x7b7e . #xE291) + (#x7c21 . #xE292) + (#x7c22 . #xE293) + (#x7c23 . #xE294) + (#x7c24 . #xE295) + (#x7c25 . #xE296) + (#x7c26 . #xE297) + (#x7c27 . #xE298) + (#x7c28 . #xE299) + (#x7c29 . #xE29A) + (#x7c2a . #xE29B) + (#x7c2b . #xE29C) + (#x7c2c . #xE29D) + (#x7c2d . #xE29E) + (#x7c2e . #xE29F) + (#x7c2f . #xE2A0) + (#x7c30 . #xE2A1) + (#x7c31 . #xE2A2) + (#x7c32 . #xE2A3) + (#x7c33 . #xE2A4) + (#x7c34 . #xE2A5) + (#x7c35 . #xE2A6) + (#x7c36 . #xE2A7) + (#x7c37 . #xE2A8) + (#x7c38 . #xE2A9) + (#x7c39 . #xE2AA) + (#x7c3a . #xE2AB) + (#x7c3b . #xE2AC) + (#x7c3c . #xE2AD) + (#x7c3d . #xE2AE) + (#x7c3e . #xE2AF) + (#x7c3f . #xE2B0) + (#x7c40 . #xE2B1) + (#x7c41 . #xE2B2) + (#x7c42 . #xE2B3) + (#x7c43 . #xE2B4) + (#x7c44 . #xE2B5) + (#x7c45 . #xE2B6) + (#x7c46 . #xE2B7) + (#x7c47 . #xE2B8) + (#x7c48 . #xE2B9) + (#x7c49 . #xE2BA) + (#x7c4a . #xE2BB) + (#x7c4b . #xE2BC) + (#x7c4c . #xE2BD) + (#x7c4d . #xE2BE) + (#x7c4e . #xE2BF) + (#x7c4f . #xE2C0) + (#x7c50 . #xE2C1) + (#x7c51 . #xE2C2) + (#x7c52 . #xE2C3) + (#x7c53 . #xE2C4) + (#x7c54 . #xE2C5) + (#x7c55 . #xE2C6) + (#x7c56 . #xE2C7) + (#x7c57 . #xE2C8) + (#x7c58 . #xE2C9) + (#x7c59 . #xE2CA) + (#x7c5a . #xE2CB) + (#x7c5b . #xE2CC) + (#x7c5c . #xE2CD) + (#x7c5d . #xE2CE) + (#x7c5e . #xE2CF) + (#x7c5f . #xE2D0) + (#x7c60 . #xE2D1) + (#x7c61 . #xE2D2) + (#x7c62 . #xE2D3) + (#x7c63 . #xE2D4) + (#x7c64 . #xE2D5) + (#x7c65 . #xE2D6) + (#x7c66 . #xE2D7) + (#x7c67 . #xE2D8) + (#x7c68 . #xE2D9) + (#x7c69 . #xE2DA) + (#x7c6a . #xE2DB) + (#x7c6b . #xE2DC) + (#x7c6c . #xE2DD) + (#x7c6d . #xE2DE) + (#x7c6e . #xE2DF) + (#x7c6f . #xE2E0) + (#x7c70 . #xE2E1) + (#x7c71 . #xE2E2) + (#x7c72 . #xE2E3) + (#x7c73 . #xE2E4) + (#x7c74 . #xE2E5) + (#x7c75 . #xE2E6) + (#x7c76 . #xE2E7) + (#x7c77 . #xE2E8) + (#x7c78 . #xE2E9) + (#x7c79 . #xE2EA) + (#x7c7a . #xE2EB) + (#x7c7b . #xE2EC) + (#x7c7c . #xE2ED) + (#x7c7d . #xE2EE) + (#x7c7e . #xE2EF) + (#x7d21 . #xE2F0) + (#x7d22 . #xE2F1) + (#x7d23 . #xE2F2) + (#x7d24 . #xE2F3) + (#x7d25 . #xE2F4) + (#x7d26 . #xE2F5) + (#x7d27 . #xE2F6) + (#x7d28 . #xE2F7) + (#x7d29 . #xE2F8) + (#x7d2a . #xE2F9) + (#x7d2b . #xE2FA) + (#x7d2c . #xE2FB) + (#x7d2d . #xE2FC) + (#x7d2e . #xE2FD) + (#x7d2f . #xE2FE) + (#x7d30 . #xE2FF) + (#x7d31 . #xE300) + (#x7d32 . #xE301) + (#x7d33 . #xE302) + (#x7d34 . #xE303) + (#x7d35 . #xE304) + (#x7d36 . #xE305) + (#x7d37 . #xE306) + (#x7d38 . #xE307) + (#x7d39 . #xE308) + (#x7d3a . #xE309) + (#x7d3b . #xE30A) + (#x7d3c . #xE30B) + (#x7d3d . #xE30C) + (#x7d3e . #xE30D) + (#x7d3f . #xE30E) + (#x7d40 . #xE30F) + (#x7d41 . #xE310) + (#x7d42 . #xE311) + (#x7d43 . #xE312) + (#x7d44 . #xE313) + (#x7d45 . #xE314) + (#x7d46 . #xE315) + (#x7d47 . #xE316) + (#x7d48 . #xE317) + (#x7d49 . #xE318) + (#x7d4a . #xE319) + (#x7d4b . #xE31A) + (#x7d4c . #xE31B) + (#x7d4d . #xE31C) + (#x7d4e . #xE31D) + (#x7d4f . #xE31E) + (#x7d50 . #xE31F) + (#x7d51 . #xE320) + (#x7d52 . #xE321) + (#x7d53 . #xE322) + (#x7d54 . #xE323) + (#x7d55 . #xE324) + (#x7d56 . #xE325) + (#x7d57 . #xE326) + (#x7d58 . #xE327) + (#x7d59 . #xE328) + (#x7d5a . #xE329) + (#x7d5b . #xE32A) + (#x7d5c . #xE32B) + (#x7d5d . #xE32C) + (#x7d5e . #xE32D) + (#x7d5f . #xE32E) + (#x7d60 . #xE32F) + (#x7d61 . #xE330) + (#x7d62 . #xE331) + (#x7d63 . #xE332) + (#x7d64 . #xE333) + (#x7d65 . #xE334) + (#x7d66 . #xE335) + (#x7d67 . #xE336) + (#x7d68 . #xE337) + (#x7d69 . #xE338) + (#x7d6a . #xE339) + (#x7d6b . #xE33A) + (#x7d6c . #xE33B) + (#x7d6d . #xE33C) + (#x7d6e . #xE33D) + (#x7d6f . #xE33E) + (#x7d70 . #xE33F) + (#x7d71 . #xE340) + (#x7d72 . #xE341) + (#x7d73 . #xE342) + (#x7d74 . #xE343) + (#x7d75 . #xE344) + (#x7d76 . #xE345) + (#x7d77 . #xE346) + (#x7d78 . #xE347) + (#x7d79 . #xE348) + (#x7d7a . #xE349) + (#x7d7b . #xE34A) + (#x7d7c . #xE34B) + (#x7d7d . #xE34C) + (#x7d7e . #xE34D) + (#x7e21 . #xE34E) + (#x7e22 . #xE34F) + (#x7e23 . #xE350) + (#x7e24 . #xE351) + (#x7e25 . #xE352) + (#x7e26 . #xE353) + (#x7e27 . #xE354) + (#x7e28 . #xE355) + (#x7e29 . #xE356) + (#x7e2a . #xE357) + (#x7e2b . #xE358) + (#x7e2c . #xE359) + (#x7e2d . #xE35A) + (#x7e2e . #xE35B) + (#x7e2f . #xE35C) + (#x7e30 . #xE35D) + (#x7e31 . #xE35E) + (#x7e32 . #xE35F) + (#x7e33 . #xE360) + (#x7e34 . #xE361) + (#x7e35 . #xE362) + (#x7e36 . #xE363) + (#x7e37 . #xE364) + (#x7e38 . #xE365) + (#x7e39 . #xE366) + (#x7e3a . #xE367) + (#x7e3b . #xE368) + (#x7e3c . #xE369) + (#x7e3d . #xE36A) + (#x7e3e . #xE36B) + (#x7e3f . #xE36C) + (#x7e40 . #xE36D) + (#x7e41 . #xE36E) + (#x7e42 . #xE36F) + (#x7e43 . #xE370) + (#x7e44 . #xE371) + (#x7e45 . #xE372) + (#x7e46 . #xE373) + (#x7e47 . #xE374) + (#x7e48 . #xE375) + (#x7e49 . #xE376) + (#x7e4a . #xE377) + (#x7e4b . #xE378) + (#x7e4c . #xE379) + (#x7e4d . #xE37A) + (#x7e4e . #xE37B) + (#x7e4f . #xE37C) + (#x7e50 . #xE37D) + (#x7e51 . #xE37E) + (#x7e52 . #xE37F) + (#x7e53 . #xE380) + (#x7e54 . #xE381) + (#x7e55 . #xE382) + (#x7e56 . #xE383) + (#x7e57 . #xE384) + (#x7e58 . #xE385) + (#x7e59 . #xE386) + (#x7e5a . #xE387) + (#x7e5b . #xE388) + (#x7e5c . #xE389) + (#x7e5d . #xE38A) + (#x7e5e . #xE38B) + (#x7e5f . #xE38C) + (#x7e60 . #xE38D) + (#x7e61 . #xE38E) + (#x7e62 . #xE38F) + (#x7e63 . #xE390) + (#x7e64 . #xE391) + (#x7e65 . #xE392) + (#x7e66 . #xE393) + (#x7e67 . #xE394) + (#x7e68 . #xE395) + (#x7e69 . #xE396) + (#x7e6a . #xE397) + (#x7e6b . #xE398) + (#x7e6c . #xE399) + (#x7e6d . #xE39A) + (#x7e6e . #xE39B) + (#x7e6f . #xE39C) + (#x7e70 . #xE39D) + (#x7e71 . #xE39E) + (#x7e72 . #xE39F) + (#x7e73 . #xE3A0) + (#x7e74 . #xE3A1) + (#x7e75 . #xE3A2) + (#x7e76 . #xE3A3) + (#x7e77 . #xE3A4) + (#x7e78 . #xE3A5) + (#x7e79 . #xE3A6) + (#x7e7a . #xE3A7) + (#x7e7b . #xE3A8) + (#x7e7c . #xE3A9) + (#x7e7d . #xE3AA) + (#x7e7e . #xE3AB) + (#x7521 #xE3AC) + (#x7522 #xE3AD) + (#x7523 #xE3AE) + (#x7524 #xE3AF) + (#x7525 #xE3B0) + (#x7526 #xE3B1) + (#x7527 #xE3B2) + (#x7528 #xE3B3) + (#x7529 #xE3B4) + (#x752a #xE3B5) + (#x752b #xE3B6) + (#x752c #xE3B7) + (#x752d #xE3B8) + (#x752e #xE3B9) + (#x752f #xE3BA) + (#x7530 #xE3BB) + (#x7531 #xE3BC) + (#x7532 #xE3BD) + (#x7533 #xE3BE) + (#x7534 #xE3BF) + (#x7535 #xE3C0) + (#x7536 #xE3C1) + (#x7537 #xE3C2) + (#x7538 #xE3C3) + (#x7539 #xE3C4) + (#x753a #xE3C5) + (#x753b #xE3C6) + (#x753c #xE3C7) + (#x753d #xE3C8) + (#x753e #xE3C9) + (#x753f #xE3CA) + (#x7540 #xE3CB) + (#x7541 #xE3CC) + (#x7542 #xE3CD) + (#x7543 #xE3CE) + (#x7544 #xE3CF) + (#x7545 #xE3D0) + (#x7546 #xE3D1) + (#x7547 #xE3D2) + (#x7548 #xE3D3) + (#x7549 #xE3D4) + (#x754a #xE3D5) + (#x754b #xE3D6) + (#x754c #xE3D7) + (#x754d #xE3D8) + (#x754e #xE3D9) + (#x754f #xE3DA) + (#x7550 #xE3DB) + (#x7551 #xE3DC) + (#x7552 #xE3DD) + (#x7553 #xE3DE) + (#x7554 #xE3DF) + (#x7555 #xE3E0) + (#x7556 #xE3E1) + (#x7557 #xE3E2) + (#x7558 #xE3E3) + (#x7559 #xE3E4) + (#x755a #xE3E5) + (#x755b #xE3E6) + (#x755c #xE3E7) + (#x755d #xE3E8) + (#x755e #xE3E9) + (#x755f #xE3EA) + (#x7560 #xE3EB) + (#x7561 #xE3EC) + (#x7562 #xE3ED) + (#x7563 #xE3EE) + (#x7564 #xE3EF) + (#x7565 #xE3F0) + (#x7566 #xE3F1) + (#x7567 #xE3F2) + (#x7568 #xE3F3) + (#x7569 #xE3F4) + (#x756a #xE3F5) + (#x756b #xE3F6) + (#x756c #xE3F7) + (#x756d #xE3F8) + (#x756e #xE3F9) + (#x756f #xE3FA) + (#x7570 #xE3FB) + (#x7571 #xE3FC) + (#x7572 #xE3FD) + (#x7573 #xE3FE) + (#x7574 #xE3FF) + (#x7575 #xE400) + (#x7576 #xE401) + (#x7577 #xE402) + (#x7578 #xE403) + (#x7579 #xE404) + (#x757a #xE405) + (#x757b #xE406) + (#x757c #xE407) + (#x757d #xE408) + (#x757e #xE409) + (#x7621 #xE40A) + (#x7622 #xE40B) + (#x7623 #xE40C) + (#x7624 #xE40D) + (#x7625 #xE40E) + (#x7626 #xE40F) + (#x7627 #xE410) + (#x7628 #xE411) + (#x7629 #xE412) + (#x762a #xE413) + (#x762b #xE414) + (#x762c #xE415) + (#x762d #xE416) + (#x762e #xE417) + (#x762f #xE418) + (#x7630 #xE419) + (#x7631 #xE41A) + (#x7632 #xE41B) + (#x7633 #xE41C) + (#x7634 #xE41D) + (#x7635 #xE41E) + (#x7636 #xE41F) + (#x7637 #xE420) + (#x7638 #xE421) + (#x7639 #xE422) + (#x763a #xE423) + (#x763b #xE424) + (#x763c #xE425) + (#x763d #xE426) + (#x763e #xE427) + (#x763f #xE428) + (#x7640 #xE429) + (#x7641 #xE42A) + (#x7642 #xE42B) + (#x7643 #xE42C) + (#x7644 #xE42D) + (#x7645 #xE42E) + (#x7646 #xE42F) + (#x7647 #xE430) + (#x7648 #xE431) + (#x7649 #xE432) + (#x764a #xE433) + (#x764b #xE434) + (#x764c #xE435) + (#x764d #xE436) + (#x764e #xE437) + (#x764f #xE438) + (#x7650 #xE439) + (#x7651 #xE43A) + (#x7652 #xE43B) + (#x7653 #xE43C) + (#x7654 #xE43D) + (#x7655 #xE43E) + (#x7656 #xE43F) + (#x7657 #xE440) + (#x7658 #xE441) + (#x7659 #xE442) + (#x765a #xE443) + (#x765b #xE444) + (#x765c #xE445) + (#x765d #xE446) + (#x765e #xE447) + (#x765f #xE448) + (#x7660 #xE449) + (#x7661 #xE44A) + (#x7662 #xE44B) + (#x7663 #xE44C) + (#x7664 #xE44D) + (#x7665 #xE44E) + (#x7666 #xE44F) + (#x7667 #xE450) + (#x7668 #xE451) + (#x7669 #xE452) + (#x766a #xE453) + (#x766b #xE454) + (#x766c #xE455) + (#x766d #xE456) + (#x766e #xE457) + (#x766f #xE458) + (#x7670 #xE459) + (#x7671 #xE45A) + (#x7672 #xE45B) + (#x7673 #xE45C) + (#x7674 #xE45D) + (#x7675 #xE45E) + (#x7676 #xE45F) + (#x7677 #xE460) + (#x7678 #xE461) + (#x7679 #xE462) + (#x767a #xE463) + (#x767b #xE464) + (#x767c #xE465) + (#x767d #xE466) + (#x767e #xE467) + (#x7721 #xE468) + (#x7722 #xE469) + (#x7723 #xE46A) + (#x7724 #xE46B) + (#x7725 #xE46C) + (#x7726 #xE46D) + (#x7727 #xE46E) + (#x7728 #xE46F) + (#x7729 #xE470) + (#x772a #xE471) + (#x772b #xE472) + (#x772c #xE473) + (#x772d #xE474) + (#x772e #xE475) + (#x772f #xE476) + (#x7730 #xE477) + (#x7731 #xE478) + (#x7732 #xE479) + (#x7733 #xE47A) + (#x7734 #xE47B) + (#x7735 #xE47C) + (#x7736 #xE47D) + (#x7737 #xE47E) + (#x7738 #xE47F) + (#x7739 #xE480) + (#x773a #xE481) + (#x773b #xE482) + (#x773c #xE483) + (#x773d #xE484) + (#x773e #xE485) + (#x773f #xE486) + (#x7740 #xE487) + (#x7741 #xE488) + (#x7742 #xE489) + (#x7743 #xE48A) + (#x7744 #xE48B) + (#x7745 #xE48C) + (#x7746 #xE48D) + (#x7747 #xE48E) + (#x7748 #xE48F) + (#x7749 #xE490) + (#x774a #xE491) + (#x774b #xE492) + (#x774c #xE493) + (#x774d #xE494) + (#x774e #xE495) + (#x774f #xE496) + (#x7750 #xE497) + (#x7751 #xE498) + (#x7752 #xE499) + (#x7753 #xE49A) + (#x7754 #xE49B) + (#x7755 #xE49C) + (#x7756 #xE49D) + (#x7757 #xE49E) + (#x7758 #xE49F) + (#x7759 #xE4A0) + (#x775a #xE4A1) + (#x775b #xE4A2) + (#x775c #xE4A3) + (#x775d #xE4A4) + (#x775e #xE4A5) + (#x775f #xE4A6) + (#x7760 #xE4A7) + (#x7761 #xE4A8) + (#x7762 #xE4A9) + (#x7763 #xE4AA) + (#x7764 #xE4AB) + (#x7765 #xE4AC) + (#x7766 #xE4AD) + (#x7767 #xE4AE) + (#x7768 #xE4AF) + (#x7769 #xE4B0) + (#x776a #xE4B1) + (#x776b #xE4B2) + (#x776c #xE4B3) + (#x776d #xE4B4) + (#x776e #xE4B5) + (#x776f #xE4B6) + (#x7770 #xE4B7) + (#x7771 #xE4B8) + (#x7772 #xE4B9) + (#x7773 #xE4BA) + (#x7774 #xE4BB) + (#x7775 #xE4BC) + (#x7776 #xE4BD) + (#x7777 #xE4BE) + (#x7778 #xE4BF) + (#x7779 #xE4C0) + (#x777a #xE4C1) + (#x777b #xE4C2) + (#x777c #xE4C3) + (#x777d #xE4C4) + (#x777e #xE4C5) + (#x7821 #xE4C6) + (#x7822 #xE4C7) + (#x7823 #xE4C8) + (#x7824 #xE4C9) + (#x7825 #xE4CA) + (#x7826 #xE4CB) + (#x7827 #xE4CC) + (#x7828 #xE4CD) + (#x7829 #xE4CE) + (#x782a #xE4CF) + (#x782b #xE4D0) + (#x782c #xE4D1) + (#x782d #xE4D2) + (#x782e #xE4D3) + (#x782f #xE4D4) + (#x7830 #xE4D5) + (#x7831 #xE4D6) + (#x7832 #xE4D7) + (#x7833 #xE4D8) + (#x7834 #xE4D9) + (#x7835 #xE4DA) + (#x7836 #xE4DB) + (#x7837 #xE4DC) + (#x7838 #xE4DD) + (#x7839 #xE4DE) + (#x783a #xE4DF) + (#x783b #xE4E0) + (#x783c #xE4E1) + (#x783d #xE4E2) + (#x783e #xE4E3) + (#x783f #xE4E4) + (#x7840 #xE4E5) + (#x7841 #xE4E6) + (#x7842 #xE4E7) + (#x7843 #xE4E8) + (#x7844 #xE4E9) + (#x7845 #xE4EA) + (#x7846 #xE4EB) + (#x7847 #xE4EC) + (#x7848 #xE4ED) + (#x7849 #xE4EE) + (#x784a #xE4EF) + (#x784b #xE4F0) + (#x784c #xE4F1) + (#x784d #xE4F2) + (#x784e #xE4F3) + (#x784f #xE4F4) + (#x7850 #xE4F5) + (#x7851 #xE4F6) + (#x7852 #xE4F7) + (#x7853 #xE4F8) + (#x7854 #xE4F9) + (#x7855 #xE4FA) + (#x7856 #xE4FB) + (#x7857 #xE4FC) + (#x7858 #xE4FD) + (#x7859 #xE4FE) + (#x785a #xE4FF) + (#x785b #xE500) + (#x785c #xE501) + (#x785d #xE502) + (#x785e #xE503) + (#x785f #xE504) + (#x7860 #xE505) + (#x7861 #xE506) + (#x7862 #xE507) + (#x7863 #xE508) + (#x7864 #xE509) + (#x7865 #xE50A) + (#x7866 #xE50B) + (#x7867 #xE50C) + (#x7868 #xE50D) + (#x7869 #xE50E) + (#x786a #xE50F) + (#x786b #xE510) + (#x786c #xE511) + (#x786d #xE512) + (#x786e #xE513) + (#x786f #xE514) + (#x7870 #xE515) + (#x7871 #xE516) + (#x7872 #xE517) + (#x7873 #xE518) + (#x7874 #xE519) + (#x7875 #xE51A) + (#x7876 #xE51B) + (#x7877 #xE51C) + (#x7878 #xE51D) + (#x7879 #xE51E) + (#x787a #xE51F) + (#x787b #xE520) + (#x787c #xE521) + (#x787d #xE522) + (#x787e #xE523) + (#x7921 #xE524) + (#x7922 #xE525) + (#x7923 #xE526) + (#x7924 #xE527) + (#x7925 #xE528) + (#x7926 #xE529) + (#x7927 #xE52A) + (#x7928 #xE52B) + (#x7929 #xE52C) + (#x792a #xE52D) + (#x792b #xE52E) + (#x792c #xE52F) + (#x792d #xE530) + (#x792e #xE531) + (#x792f #xE532) + (#x7930 #xE533) + (#x7931 #xE534) + (#x7932 #xE535) + (#x7933 #xE536) + (#x7934 #xE537) + (#x7935 #xE538) + (#x7936 #xE539) + (#x7937 #xE53A) + (#x7938 #xE53B) + (#x7939 #xE53C) + (#x793a #xE53D) + (#x793b #xE53E) + (#x793c #xE53F) + (#x793d #xE540) + (#x793e #xE541) + (#x793f #xE542) + (#x7940 #xE543) + (#x7941 #xE544) + (#x7942 #xE545) + (#x7943 #xE546) + (#x7944 #xE547) + (#x7945 #xE548) + (#x7946 #xE549) + (#x7947 #xE54A) + (#x7948 #xE54B) + (#x7949 #xE54C) + (#x794a #xE54D) + (#x794b #xE54E) + (#x794c #xE54F) + (#x794d #xE550) + (#x794e #xE551) + (#x794f #xE552) + (#x7950 #xE553) + (#x7951 #xE554) + (#x7952 #xE555) + (#x7953 #xE556) + (#x7954 #xE557) + (#x7955 #xE558) + (#x7956 #xE559) + (#x7957 #xE55A) + (#x7958 #xE55B) + (#x7959 #xE55C) + (#x795a #xE55D) + (#x795b #xE55E) + (#x795c #xE55F) + (#x795d #xE560) + (#x795e #xE561) + (#x795f #xE562) + (#x7960 #xE563) + (#x7961 #xE564) + (#x7962 #xE565) + (#x7963 #xE566) + (#x7964 #xE567) + (#x7965 #xE568) + (#x7966 #xE569) + (#x7967 #xE56A) + (#x7968 #xE56B) + (#x7969 #xE56C) + (#x796a #xE56D) + (#x796b #xE56E) + (#x796c #xE56F) + (#x796d #xE570) + (#x796e #xE571) + (#x796f #xE572) + (#x7970 #xE573) + (#x7971 #xE574) + (#x7972 #xE575) + (#x7973 #xE576) + (#x7974 #xE577) + (#x7975 #xE578) + (#x7976 #xE579) + (#x7977 #xE57A) + (#x7978 #xE57B) + (#x7979 #xE57C) + (#x797a #xE57D) + (#x797b #xE57E) + (#x797c #xE57F) + (#x797d #xE580) + (#x797e #xE581) + (#x7a21 #xE582) + (#x7a22 #xE583) + (#x7a23 #xE584) + (#x7a24 #xE585) + (#x7a25 #xE586) + (#x7a26 #xE587) + (#x7a27 #xE588) + (#x7a28 #xE589) + (#x7a29 #xE58A) + (#x7a2a #xE58B) + (#x7a2b #xE58C) + (#x7a2c #xE58D) + (#x7a2d #xE58E) + (#x7a2e #xE58F) + (#x7a2f #xE590) + (#x7a30 #xE591) + (#x7a31 #xE592) + (#x7a32 #xE593) + (#x7a33 #xE594) + (#x7a34 #xE595) + (#x7a35 #xE596) + (#x7a36 #xE597) + (#x7a37 #xE598) + (#x7a38 #xE599) + (#x7a39 #xE59A) + (#x7a3a #xE59B) + (#x7a3b #xE59C) + (#x7a3c #xE59D) + (#x7a3d #xE59E) + (#x7a3e #xE59F) + (#x7a3f #xE5A0) + (#x7a40 #xE5A1) + (#x7a41 #xE5A2) + (#x7a42 #xE5A3) + (#x7a43 #xE5A4) + (#x7a44 #xE5A5) + (#x7a45 #xE5A6) + (#x7a46 #xE5A7) + (#x7a47 #xE5A8) + (#x7a48 #xE5A9) + (#x7a49 #xE5AA) + (#x7a4a #xE5AB) + (#x7a4b #xE5AC) + (#x7a4c #xE5AD) + (#x7a4d #xE5AE) + (#x7a4e #xE5AF) + (#x7a4f #xE5B0) + (#x7a50 #xE5B1) + (#x7a51 #xE5B2) + (#x7a52 #xE5B3) + (#x7a53 #xE5B4) + (#x7a54 #xE5B5) + (#x7a55 #xE5B6) + (#x7a56 #xE5B7) + (#x7a57 #xE5B8) + (#x7a58 #xE5B9) + (#x7a59 #xE5BA) + (#x7a5a #xE5BB) + (#x7a5b #xE5BC) + (#x7a5c #xE5BD) + (#x7a5d #xE5BE) + (#x7a5e #xE5BF) + (#x7a5f #xE5C0) + (#x7a60 #xE5C1) + (#x7a61 #xE5C2) + (#x7a62 #xE5C3) + (#x7a63 #xE5C4) + (#x7a64 #xE5C5) + (#x7a65 #xE5C6) + (#x7a66 #xE5C7) + (#x7a67 #xE5C8) + (#x7a68 #xE5C9) + (#x7a69 #xE5CA) + (#x7a6a #xE5CB) + (#x7a6b #xE5CC) + (#x7a6c #xE5CD) + (#x7a6d #xE5CE) + (#x7a6e #xE5CF) + (#x7a6f #xE5D0) + (#x7a70 #xE5D1) + (#x7a71 #xE5D2) + (#x7a72 #xE5D3) + (#x7a73 #xE5D4) + (#x7a74 #xE5D5) + (#x7a75 #xE5D6) + (#x7a76 #xE5D7) + (#x7a77 #xE5D8) + (#x7a78 #xE5D9) + (#x7a79 #xE5DA) + (#x7a7a #xE5DB) + (#x7a7b #xE5DC) + (#x7a7c #xE5DD) + (#x7a7d #xE5DE) + (#x7a7e #xE5DF) + (#x7b21 #xE5E0) + (#x7b22 #xE5E1) + (#x7b23 #xE5E2) + (#x7b24 #xE5E3) + (#x7b25 #xE5E4) + (#x7b26 #xE5E5) + (#x7b27 #xE5E6) + (#x7b28 #xE5E7) + (#x7b29 #xE5E8) + (#x7b2a #xE5E9) + (#x7b2b #xE5EA) + (#x7b2c #xE5EB) + (#x7b2d #xE5EC) + (#x7b2e #xE5ED) + (#x7b2f #xE5EE) + (#x7b30 #xE5EF) + (#x7b31 #xE5F0) + (#x7b32 #xE5F1) + (#x7b33 #xE5F2) + (#x7b34 #xE5F3) + (#x7b35 #xE5F4) + (#x7b36 #xE5F5) + (#x7b37 #xE5F6) + (#x7b38 #xE5F7) + (#x7b39 #xE5F8) + (#x7b3a #xE5F9) + (#x7b3b #xE5FA) + (#x7b3c #xE5FB) + (#x7b3d #xE5FC) + (#x7b3e #xE5FD) + (#x7b3f #xE5FE) + (#x7b40 #xE5FF) + (#x7b41 #xE600) + (#x7b42 #xE601) + (#x7b43 #xE602) + (#x7b44 #xE603) + (#x7b45 #xE604) + (#x7b46 #xE605) + (#x7b47 #xE606) + (#x7b48 #xE607) + (#x7b49 #xE608) + (#x7b4a #xE609) + (#x7b4b #xE60A) + (#x7b4c #xE60B) + (#x7b4d #xE60C) + (#x7b4e #xE60D) + (#x7b4f #xE60E) + (#x7b50 #xE60F) + (#x7b51 #xE610) + (#x7b52 #xE611) + (#x7b53 #xE612) + (#x7b54 #xE613) + (#x7b55 #xE614) + (#x7b56 #xE615) + (#x7b57 #xE616) + (#x7b58 #xE617) + (#x7b59 #xE618) + (#x7b5a #xE619) + (#x7b5b #xE61A) + (#x7b5c #xE61B) + (#x7b5d #xE61C) + (#x7b5e #xE61D) + (#x7b5f #xE61E) + (#x7b60 #xE61F) + (#x7b61 #xE620) + (#x7b62 #xE621) + (#x7b63 #xE622) + (#x7b64 #xE623) + (#x7b65 #xE624) + (#x7b66 #xE625) + (#x7b67 #xE626) + (#x7b68 #xE627) + (#x7b69 #xE628) + (#x7b6a #xE629) + (#x7b6b #xE62A) + (#x7b6c #xE62B) + (#x7b6d #xE62C) + (#x7b6e #xE62D) + (#x7b6f #xE62E) + (#x7b70 #xE62F) + (#x7b71 #xE630) + (#x7b72 #xE631) + (#x7b73 #xE632) + (#x7b74 #xE633) + (#x7b75 #xE634) + (#x7b76 #xE635) + (#x7b77 #xE636) + (#x7b78 #xE637) + (#x7b79 #xE638) + (#x7b7a #xE639) + (#x7b7b #xE63A) + (#x7b7c #xE63B) + (#x7b7d #xE63C) + (#x7b7e #xE63D) + (#x7c21 #xE63E) + (#x7c22 #xE63F) + (#x7c23 #xE640) + (#x7c24 #xE641) + (#x7c25 #xE642) + (#x7c26 #xE643) + (#x7c27 #xE644) + (#x7c28 #xE645) + (#x7c29 #xE646) + (#x7c2a #xE647) + (#x7c2b #xE648) + (#x7c2c #xE649) + (#x7c2d #xE64A) + (#x7c2e #xE64B) + (#x7c2f #xE64C) + (#x7c30 #xE64D) + (#x7c31 #xE64E) + (#x7c32 #xE64F) + (#x7c33 #xE650) + (#x7c34 #xE651) + (#x7c35 #xE652) + (#x7c36 #xE653) + (#x7c37 #xE654) + (#x7c38 #xE655) + (#x7c39 #xE656) + (#x7c3a #xE657) + (#x7c3b #xE658) + (#x7c3c #xE659) + (#x7c3d #xE65A) + (#x7c3e #xE65B) + (#x7c3f #xE65C) + (#x7c40 #xE65D) + (#x7c41 #xE65E) + (#x7c42 #xE65F) + (#x7c43 #xE660) + (#x7c44 #xE661) + (#x7c45 #xE662) + (#x7c46 #xE663) + (#x7c47 #xE664) + (#x7c48 #xE665) + (#x7c49 #xE666) + (#x7c4a #xE667) + (#x7c4b #xE668) + (#x7c4c #xE669) + (#x7c4d #xE66A) + (#x7c4e #xE66B) + (#x7c4f #xE66C) + (#x7c50 #xE66D) + (#x7c51 #xE66E) + (#x7c52 #xE66F) + (#x7c53 #xE670) + (#x7c54 #xE671) + (#x7c55 #xE672) + (#x7c56 #xE673) + (#x7c57 #xE674) + (#x7c58 #xE675) + (#x7c59 #xE676) + (#x7c5a #xE677) + (#x7c5b #xE678) + (#x7c5c #xE679) + (#x7c5d #xE67A) + (#x7c5e #xE67B) + (#x7c5f #xE67C) + (#x7c60 #xE67D) + (#x7c61 #xE67E) + (#x7c62 #xE67F) + (#x7c63 #xE680) + (#x7c64 #xE681) + (#x7c65 #xE682) + (#x7c66 #xE683) + (#x7c67 #xE684) + (#x7c68 #xE685) + (#x7c69 #xE686) + (#x7c6a #xE687) + (#x7c6b #xE688) + (#x7c6c #xE689) + (#x7c6d #xE68A) + (#x7c6e #xE68B) + (#x7c6f #xE68C) + (#x7c70 #xE68D) + (#x7c71 #xE68E) + (#x7c72 #xE68F) + (#x7c73 #xE690) + (#x7c74 #xE691) + (#x7c75 #xE692) + (#x7c76 #xE693) + (#x7c77 #xE694) + (#x7c78 #xE695) + (#x7c79 #xE696) + (#x7c7a #xE697) + (#x7c7b #xE698) + (#x7c7c #xE699) + (#x7c7d #xE69A) + (#x7c7e #xE69B) + (#x7d21 #xE69C) + (#x7d22 #xE69D) + (#x7d23 #xE69E) + (#x7d24 #xE69F) + (#x7d25 #xE6A0) + (#x7d26 #xE6A1) + (#x7d27 #xE6A2) + (#x7d28 #xE6A3) + (#x7d29 #xE6A4) + (#x7d2a #xE6A5) + (#x7d2b #xE6A6) + (#x7d2c #xE6A7) + (#x7d2d #xE6A8) + (#x7d2e #xE6A9) + (#x7d2f #xE6AA) + (#x7d30 #xE6AB) + (#x7d31 #xE6AC) + (#x7d32 #xE6AD) + (#x7d33 #xE6AE) + (#x7d34 #xE6AF) + (#x7d35 #xE6B0) + (#x7d36 #xE6B1) + (#x7d37 #xE6B2) + (#x7d38 #xE6B3) + (#x7d39 #xE6B4) + (#x7d3a #xE6B5) + (#x7d3b #xE6B6) + (#x7d3c #xE6B7) + (#x7d3d #xE6B8) + (#x7d3e #xE6B9) + (#x7d3f #xE6BA) + (#x7d40 #xE6BB) + (#x7d41 #xE6BC) + (#x7d42 #xE6BD) + (#x7d43 #xE6BE) + (#x7d44 #xE6BF) + (#x7d45 #xE6C0) + (#x7d46 #xE6C1) + (#x7d47 #xE6C2) + (#x7d48 #xE6C3) + (#x7d49 #xE6C4) + (#x7d4a #xE6C5) + (#x7d4b #xE6C6) + (#x7d4c #xE6C7) + (#x7d4d #xE6C8) + (#x7d4e #xE6C9) + (#x7d4f #xE6CA) + (#x7d50 #xE6CB) + (#x7d51 #xE6CC) + (#x7d52 #xE6CD) + (#x7d53 #xE6CE) + (#x7d54 #xE6CF) + (#x7d55 #xE6D0) + (#x7d56 #xE6D1) + (#x7d57 #xE6D2) + (#x7d58 #xE6D3) + (#x7d59 #xE6D4) + (#x7d5a #xE6D5) + (#x7d5b #xE6D6) + (#x7d5c #xE6D7) + (#x7d5d #xE6D8) + (#x7d5e #xE6D9) + (#x7d5f #xE6DA) + (#x7d60 #xE6DB) + (#x7d61 #xE6DC) + (#x7d62 #xE6DD) + (#x7d63 #xE6DE) + (#x7d64 #xE6DF) + (#x7d65 #xE6E0) + (#x7d66 #xE6E1) + (#x7d67 #xE6E2) + (#x7d68 #xE6E3) + (#x7d69 #xE6E4) + (#x7d6a #xE6E5) + (#x7d6b #xE6E6) + (#x7d6c #xE6E7) + (#x7d6d #xE6E8) + (#x7d6e #xE6E9) + (#x7d6f #xE6EA) + (#x7d70 #xE6EB) + (#x7d71 #xE6EC) + (#x7d72 #xE6ED) + (#x7d73 #xE6EE) + (#x7d74 #xE6EF) + (#x7d75 #xE6F0) + (#x7d76 #xE6F1) + (#x7d77 #xE6F2) + (#x7d78 #xE6F3) + (#x7d79 #xE6F4) + (#x7d7a #xE6F5) + (#x7d7b #xE6F6) + (#x7d7c #xE6F7) + (#x7d7d #xE6F8) + (#x7d7e #xE6F9) + (#x7e21 #xE6FA) + (#x7e22 #xE6FB) + (#x7e23 #xE6FC) + (#x7e24 #xE6FD) + (#x7e25 #xE6FE) + (#x7e26 #xE6FF) + (#x7e27 #xE700) + (#x7e28 #xE701) + (#x7e29 #xE702) + (#x7e2a #xE703) + (#x7e2b #xE704) + (#x7e2c #xE705) + (#x7e2d #xE706) + (#x7e2e #xE707) + (#x7e2f #xE708) + (#x7e30 #xE709) + (#x7e31 #xE70A) + (#x7e32 #xE70B) + (#x7e33 #xE70C) + (#x7e34 #xE70D) + (#x7e35 #xE70E) + (#x7e36 #xE70F) + (#x7e37 #xE710) + (#x7e38 #xE711) + (#x7e39 #xE712) + (#x7e3a #xE713) + (#x7e3b #xE714) + (#x7e3c #xE715) + (#x7e3d #xE716) + (#x7e3e #xE717) + (#x7e3f #xE718) + (#x7e40 #xE719) + (#x7e41 #xE71A) + (#x7e42 #xE71B) + (#x7e43 #xE71C) + (#x7e44 #xE71D) + (#x7e45 #xE71E) + (#x7e46 #xE71F) + (#x7e47 #xE720) + (#x7e48 #xE721) + (#x7e49 #xE722) + (#x7e4a #xE723) + (#x7e4b #xE724) + (#x7e4c #xE725) + (#x7e4d #xE726) + (#x7e4e #xE727) + (#x7e4f #xE728) + (#x7e50 #xE729) + (#x7e51 #xE72A) + (#x7e52 #xE72B) + (#x7e53 #xE72C) + (#x7e54 #xE72D) + (#x7e55 #xE72E) + (#x7e56 #xE72F) + (#x7e57 #xE730) + (#x7e58 #xE731) + (#x7e59 #xE732) + (#x7e5a #xE733) + (#x7e5b #xE734) + (#x7e5c #xE735) + (#x7e5d #xE736) + (#x7e5e #xE737) + (#x7e5f #xE738) + (#x7e60 #xE739) + (#x7e61 #xE73A) + (#x7e62 #xE73B) + (#x7e63 #xE73C) + (#x7e64 #xE73D) + (#x7e65 #xE73E) + (#x7e66 #xE73F) + (#x7e67 #xE740) + (#x7e68 #xE741) + (#x7e69 #xE742) + (#x7e6a #xE743) + (#x7e6b #xE744) + (#x7e6c #xE745) + (#x7e6d #xE746) + (#x7e6e #xE747) + (#x7e6f #xE748) + (#x7e70 #xE749) + (#x7e71 #xE74A) + (#x7e72 #xE74B) + (#x7e73 #xE74C) + (#x7e74 #xE74D) + (#x7e75 #xE74E) + (#x7e76 #xE74F) + (#x7e77 #xE750) + (#x7e78 #xE751) + (#x7e79 #xE752) + (#x7e7a #xE753) + (#x7e7b #xE754) + (#x7e7c #xE755) + (#x7e7d #xE756) + (#x7e7e #xE757) + (#x7373 #x2170) + (#x7374 #x2171) + (#x7375 #x2172) + (#x7376 #x2173) + (#x7377 #x2174) + (#x7378 #x2175) + (#x7379 #x2176) + (#x737a #x2177) + (#x737b #x2178) + (#x737c #x2179) + (#x737d #x2160) + (#x737e #x2161) + (#x7421 #x2162) + (#x7422 #x2163) + (#x7423 #x2164) + (#x7424 #x2165) + (#x7425 #x2166) + (#x7426 #x2167) + (#x7427 #x2168) + (#x7428 #x2169) + (#x7429 #xFF07) + (#x742a #xFF02) + (#x742b #x3231) + (#x742c #x2116) + (#x742d #x2121) + (#x742e #x70BB) + (#x742f #x4EFC) + (#x7430 #x50F4) + (#x7431 #x51EC) + (#x7432 #x5307) + (#x7433 #x5324) + (#x7434 #xFA0E) + (#x7435 #x548A) + (#x7436 #x5759) + (#x7437 #xFA0F) + (#x7438 #xFA10) + (#x7439 #x589E) + (#x743a #x5BEC) + (#x743b #x5CF5) + (#x743c #x5D53) + (#x743d #xFA11) + (#x743e #x5FB7) + (#x743f #x6085) + (#x7440 #x6120) + (#x7441 #x654E) + (#x7442 #x663B) + (#x7443 #x6665) + (#x7444 #xFA12) + (#x7445 #xF929) + (#x7446 #x6801) + (#x7447 #xFA13) + (#x7448 #xFA14) + (#x7449 #x6A6B) + (#x744a #x6AE2) + (#x744b #x6DF8) + (#x744c #x6DF2) + (#x744d #x7028) + (#x744e #xFA15) + (#x744f #xFA16) + (#x7450 #x7501) + (#x7451 #x7682) + (#x7452 #x769E) + (#x7453 #xFA17) + (#x7454 #x7930) + (#x7455 #xFA18) + (#x7456 #xFA19) + (#x7457 #xFA1A) + (#x7458 #xFA1B) + (#x7459 #x7AE7) + (#x745a #xFA1C) + (#x745b #xFA1D) + (#x745c #x7DA0) + (#x745d #x7DD6) + (#x745e #xFA1E) + (#x745f #x8362) + (#x7460 #xFA1F) + (#x7461 #x85B0) + (#x7462 #xFA20) + (#x7463 #xFA21) + (#x7464 #x8807) + (#x7465 #xFA22) + (#x7466 #x8B7F) + (#x7467 #x8CF4) + (#x7468 #x8D76) + (#x7469 #xFA23) + (#x746a #xFA24) + (#x746b #xFA25) + (#x746c #x90DE) + (#x746d #xFA26) + (#x746e #x9115) + (#x746f #xFA27) + (#x7470 #xFA28) + (#x7471 #x9592) + (#x7472 #xF9DC) + (#x7473 #xFA29) + (#x7474 #x973B) + (#x7475 #x974D) + (#x7476 #x9751) + (#x7477 #xFA2A) + (#x7478 #xFA2B) + (#x7479 #xFA2C) + (#x747a #x999E) + (#x747b #x9AD9) + (#x747c #x9B72) + (#x747d #xFA2D) + (#x747e #x9ED1)))) + (mapc #'(lambda (x) + (if (integerp (cdr x)) + (setcar x (decode-char 'japanese-jisx0208 (car x))) + (setcar x (decode-char 'japanese-jisx0212 (car x))) + (setcdr x (cadr x)))) + map) + (define-translation-table 'eucjp-ms-decode map) + (mapc #'(lambda (x) + (let ((tmp (car x))) + (setcar x (cdr x)) (setcdr x tmp))) + map) + (define-translation-table 'eucjp-ms-encode map)) + +;;; arch-tag: c4191096-288a-4f13-9b2a-ee7a1f11eb4a diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el index 6a8ab89bb6e..c0e9a5582a4 100644 --- a/lisp/international/fontset.el +++ b/lisp/international/fontset.el @@ -6,8 +6,11 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003, 2006 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: mule, multilingual, fontset +;; Keywords: mule, i18n, fontset ;; This file is part of GNU Emacs. @@ -30,361 +33,574 @@ ;;; Code: +;; Setup font-encoding-alist for all known encodings. + +(setq font-encoding-alist + '(("iso8859-1$" . iso-8859-1) + ("iso8859-2$" . iso-8859-2) + ("iso8859-3$" . iso-8859-3) + ("iso8859-4$" . iso-8859-4) + ("iso8859-5$" . iso-8859-5) + ("iso8859-6$" . iso-8859-6) + ("iso8859-7$" . iso-8859-7) + ("iso8859-8$" . iso-8859-8) + ("iso8859-9$" . iso-8859-9) + ("iso8859-10$" . iso-8859-10) + ("iso8859-11$" . iso-8859-11) + ("iso8859-13$" . iso-8859-13) + ("iso8859-14$" . iso-8859-14) + ("iso8859-15$" . iso-8859-15) + ("gb2312.1980" . chinese-gb2312) + ("gbk" . chinese-gbk) + ("gb18030" . gb18030) + ("jisx0208.1978" . japanese-jisx0208-1978) + ("jisx0208" . japanese-jisx0208) + ("jisx0201" . jisx0201) + ("jisx0212" . japanese-jisx0212) + ("ksc5601.1987" . korean-ksc5601) + ("cns11643.1992.*1" . chinese-cns11643-1) + ("cns11643.1992.*2" . chinese-cns11643-2) + ("cns11643.1992.*3" . chinese-cns11643-3) + ("cns11643.1992.*4" . chinese-cns11643-4) + ("cns11643.1992.*5" . chinese-cns11643-5) + ("cns11643.1992.*6" . chinese-cns11643-6) + ("cns11643.1992.*7" . chinese-cns11643-7) + ("cns11643.92p1-0" . chinese-cns11643-1) + ("cns11643.92p2-0" . chinese-cns11643-2) + ("cns11643.92p3-0" . chinese-cns11643-3) + ("cns11643.92p4-0" . chinese-cns11643-4) + ("cns11643.92p5-0" . chinese-cns11643-5) + ("cns11643.92p6-0" . chinese-cns11643-6) + ("cns11643.92p7-0" . chinese-cns11643-7) + ("big5" . big5) + ("sisheng_cwnn" . chinese-sisheng) + ("viscii" . viscii) + ("tis620" . tis620-2533) + ("microsoft-cp1251" . windows-1251) + ("koi8-r" . koi8-r) + ("mulearabic-0" . arabic-digit) + ("mulearabic-1" . arabic-1-column) + ("mulearabic-2" . arabic-2-column) + ("muleipa" . ipa) + ("ethiopic-unicode" . (unicode-bmp . ethiopic)) + ("is13194-devanagari" . indian-is13194) + ("Devanagari-CDAC" . devanagari-cdac) + ("Sanskrit-CDAC" . sanskrit-cdac) + ("Bengali-CDAC" . bengali-cdac) + ("Assamese-CDAC" . assamese-cdac) + ("Punjabi-CDAC" . punjabi-cdac) + ("Gujarati-CDAC" . gujarati-cdac) + ("Oriya-CDAC" . oriya-cdac) + ("Tamil-CDAC" . tamil-cdac) + ("Telugu-CDAC" . telugu-cdac) + ("Kannada-CDAC" . kannada-cdac) + ("Malayalam-CDAC" . malayalam-cdac) + ("Devanagari-Akruti" . devanagari-akruti) + ("Bengali-Akruti" . bengali-akruti) + ("Punjabi-Akruti" . punjabi-akruti) + ("Gujarati-Akruti" . gujarati-akruti) + ("Oriya-Akruti" . oriya-akruti) + ("Tamil-Akruti" . tamil-akruti) + ("Telugu-Akruti" . telugu-akruti) + ("Kannada-Akruti" . kannada-akruti) + ("Malayalam-Akruti" . malayalam-akruti) + ("muleindian-2" . indian-2-column) + ("muleindian-1" . indian-1-column) + ("mulelao-1" . mule-lao) + ("muletibetan-2" . tibetan) + ("muletibetan-1" . tibetan-1-column) + ("jisx0213.2000-1" . japanese-jisx0213-1) + ("jisx0213.2000-2" . japanese-jisx0213-2) + ("jisx0213.2004-1" . japanese-jisx0213.2004-1) + ("abobe-symbol" . symbol) + ("iso10646-1$" . (unicode-bmp . nil)) + ("iso10646.indian-1" . (unicode-bmp . nil)))) + +(setq script-representative-chars + '((latin ?A ?Z ?a ?z) + (greek #x3A9) + (coptic #x3E2) + (cyrillic #x42F) + (armenian #x531) + (hebrew #x5D0) + (arabic #x628) + (syriac #x710) + (thaana #x78C) + (devanagari #x915) + (bengali #x995) + (gurmukhi #xA15) + (gujarati #xA95) + (oriya #xB15) + (tamil #xB95) + (telugu #xC15) + (kannada #xC95) + (malayalam #xD15) + (sinhala #xD95) + (thai #xE17) + (lao #xEA5) + (tibetan #xF40) + (myanmar #x1000) + (georgian #x10D3) + (ethiopic #x1208) + (cherokee #x13B6) + (canadian-aboriginal #x14C0) + (ogham #x168F) + (runic #x16A0) + (khmer #x1780) + (mongolian #x1826) + (braille #x2800) + (ideographic-description #x2FF0) + (cjk-misc #x300E) + (kana #x304B) + (bopomofo #x3105) + (kanbun #x319D) + (han #x5B57) + (yi #xA288) + (hangul #xAC00))) + +(setq otf-script-alist + '((arab . arabic) + (armn . armenian) + (bali . balinese) + (beng . bengali) + (bopo . bopomofo) + (brai . braille) + (bugi . buginese) + (buhd . buhid) + (byzm . byzantine-musical-symbol) + (cans . canadian_aboliginal) + (cher . cherokee) + (copt . coptic) + (xsux . cuneiform) + (cyrl . cyrillic) + (cprt . cypriot) + (dsrt . deseret) + (deva . devanagari) + (ethi . ethiopic) + (geor . georgian) + (glag . glagolitic) + (goth . gothic) + (grek . greek) + (gujr . gujarati) + (guru . gurmukhi) + (hani . han) + (hang . hangul) + (hano . hanunoo) + (hebr . hebrew) + (kana . kana) + (knda . kannada) + (khar . kharoshthi) + (khmr . khmer) + (lao . lao) + (latn . latin) + (limb . limbu) + (linb . linear_b) + (mlym . malayalam) + (math . mathematical) + (mong . mongolian) + (musc . musical-symbol) + (mymr . myanmar) + (nko . nko) + (ogam . ogham) + (ital . old_italic) + (xpeo . old_persian) + (orya . oriya) + (osma . osmanya) + (phag . phags-pa) + (phnx . phoenician) + (runr . runic) + (shaw . shavian) + (sinh . sinhala) + (sylo . syloti_nagri) + (syrc . syriac) + (tglg . tagalog) + (tagb . tagbanwa) + (taml . tamil) + (tale . tai_le) + (telu . telugu) + (thaa . thaana) + (thai . thai) + (tibt . tibetan) + (tfng . tifinagh) + (ugar . ugaritic) + (yi . yi))) + ;; Set standard fontname specification of characters in the default -;; fontset to find an appropriate font for each charset. This is used -;; to generate a font name for a fontset if the fontset doesn't -;; specify a font name for a specific character. The specification -;; has the form (FAMILY . REGISTRY). FAMILY may be nil, in which -;; case, the family name of default face is used. If REGISTRY +;; fontset to find an appropriate font for each script/charset. The +;; specification has the form ((SCRIPT FONT-SPEC ...) ...), where +;; FONT-SPEC is: +;; a vector [ FAMILY WEIGHT SLANT ADSTYLE REGISTRY ], +;; or a cons (FAMILY . REGISTRY), +;; or a string FONT-NAME. +;; +;; FAMILY, WEIGHT, SLANT, and ADSTYLE may be nil, in which case, the +;; the corresponding name of default face is used. If REGISTRY ;; contains a character `-', the string before that is embedded in ;; `CHARSET_REGISTRY' field, and the string after that is embedded in ;; `CHARSET_ENCODING' field. If it does not contain `-', the whole ;; string is embedded in `CHARSET_REGISTRY' field, and a wild card -;; character `*' is embedded in `CHARSET_ENCODING' field. The -;; REGISTRY for ASCII characters are predefined as "ISO8859-1". +;; character `*' is embedded in `CHARSET_ENCODING' field. +;; +;; SCRIPT is a symbol that appears as an element of the char table +;; `char-script-table'. SCRIPT may be a charset specifying the range +;; of characters. (defun setup-default-fontset () "Setup the default fontset." - (dolist (elt - `((latin-iso8859-1 . (nil . "ISO8859-1")) - (latin-iso8859-2 . (nil . "ISO8859-2")) - (latin-iso8859-3 . (nil . "ISO8859-3")) - (latin-iso8859-4 . (nil . "ISO8859-4")) - ;; Setting "*" family is for a workaround of the problem - ;; that a font of wrong size is preferred if the font - ;; family matches with a requested one. - (thai-tis620 . ("*" . "TIS620")) - (greek-iso8859-7 . (nil . "ISO8859-7")) - (arabic-iso8859-6 . (nil . "ISO8859-6")) - (hebrew-iso8859-8 . (nil . "ISO8859-8")) - (katakana-jisx0201 . (nil . "JISX0201")) - (latin-jisx0201 . (nil . "JISX0201")) - (cyrillic-iso8859-5 . (nil . "ISO8859-5")) - (latin-iso8859-9 . (nil . "ISO8859-9")) - (japanese-jisx0208-1978 . (nil . "JISX0208.1978")) - (chinese-gb2312 . (nil . "GB2312.1980")) - (japanese-jisx0208 . (nil . "JISX0208.1990")) - (korean-ksc5601 . (nil . "KSC5601.1989")) - (japanese-jisx0212 . (nil . "JISX0212")) - (chinese-cns11643-1 . (nil . "CNS11643.1992-1")) - (chinese-cns11643-2 . (nil . "CNS11643.1992-2")) - (chinese-cns11643-3 . (nil . "CNS11643.1992-3")) - (chinese-cns11643-4 . (nil . "CNS11643.1992-4")) - (chinese-cns11643-5 . (nil . "CNS11643.1992-5")) - (chinese-cns11643-6 . (nil . "CNS11643.1992-6")) - (chinese-cns11643-7 . (nil . "CNS11643.1992-7")) - (chinese-big5-1 . (nil . "Big5")) - (chinese-big5-2 . (nil . "Big5")) - (chinese-sisheng . (nil . "sisheng_cwnn")) - (vietnamese-viscii-lower . (nil . "VISCII1.1")) - (vietnamese-viscii-upper . (nil . "VISCII1.1")) - (arabic-digit . (nil . "MuleArabic-0")) - (arabic-1-column . (nil . "MuleArabic-1")) - (arabic-2-column . (nil . "MuleArabic-2")) - (ipa . (nil . "MuleIPA")) - (ethiopic . (nil . "Ethiopic-Unicode")) - (ascii-right-to-left . (nil . "ISO8859-1")) - (indian-is13194 . (nil . "IS13194-Devanagari")) - (indian-2-column . (nil . "MuleIndian-2")) - (lao . (nil . "MuleLao-1")) - (tibetan . ("proportional" . "MuleTibetan-2")) - (tibetan-1-column . (nil . "MuleTibetan-1")) - (latin-iso8859-14 . (nil . "ISO8859-14")) - (latin-iso8859-15 . (nil . "ISO8859-15")) - (mule-unicode-0100-24ff . (nil . "ISO10646-1")) - (mule-unicode-2500-33ff . (nil . "ISO10646-1")) - (mule-unicode-e000-ffff . (nil . "ISO10646-1")) - (japanese-jisx0213-1 . (nil . "JISX0213.2000-1")) - (japanese-jisx0213-2 . (nil . "JISX0213.2000-2")) - ;; unicode - ((,(decode-char 'ucs #x0900) . ,(decode-char 'ucs #x097F)) - . (nil . "ISO10646.indian-1")) - ;; Indian CDAC - (,(indian-font-char-range 'cdac:dv-ttsurekh) - . (nil . "Devanagari-CDAC")) - (,(indian-font-char-range 'cdac:sd-ttsurekh) - . (nil . "Sanskrit-CDAC")) - (,(indian-font-char-range 'cdac:bn-ttdurga) - . (nil . "Bengali-CDAC")) - (,(indian-font-char-range 'cdac:as-ttdurga) - . (nil . "Assamese-CDAC")) - (,(indian-font-char-range 'cdac:pn-ttamar) - . (nil . "Punjabi-CDAC")) - (,(indian-font-char-range 'cdac:gj-ttavantika) - . (nil . "Gujarati-CDAC")) - (,(indian-font-char-range 'cdac:or-ttsarala) - . (nil . "Oriya-CDAC")) - (,(indian-font-char-range 'cdac:tm-ttvalluvar) - . (nil . "Tamil-CDAC")) - (,(indian-font-char-range 'cdac:tl-tthemalatha) - . (nil . "Telugu-CDAC")) - (,(indian-font-char-range 'cdac:kn-ttuma) - . (nil . "Kannada-CDAC")) - (,(indian-font-char-range 'cdac:ml-ttkarthika) - . (nil . "Malayalam-CDAC")) - ;; Indian AKRUTI - (,(indian-font-char-range 'akruti:dev) - . (nil . "Devanagari-Akruti")) - (,(indian-font-char-range 'akruti:bng) - . (nil . "Bengali-Akruti")) - (,(indian-font-char-range 'akruti:pnj) - . (nil . "Punjabi-Akruti")) - (,(indian-font-char-range 'akruti:guj) - . (nil . "Gujarati-Akruti")) - (,(indian-font-char-range 'akruti:ori) - . (nil . "Oriya-Akruti")) - (,(indian-font-char-range 'akruti:tml) - . (nil . "Tamil-Akruti")) - (,(indian-font-char-range 'akruti:tlg) - . (nil . "Telugu-Akruti")) - (,(indian-font-char-range 'akruti:knd) - . (nil . "Kannada-Akruti")) - (,(indian-font-char-range 'akruti:mal) - . (nil . "Malayalam-Akruti")) - )) - (set-fontset-font "fontset-default" (car elt) (cdr elt)))) - -;; Set arguments in `font-encoding-alist' (which see). -(defun set-font-encoding (pattern charset encoding) + (new-fontset + "fontset-default" + '(;; for each script + (latin (nil . "ISO8859-1") + (nil . "ISO8859-2") + (nil . "ISO8859-3") + (nil . "ISO8859-4") + (nil . "ISO8859-9") + (nil . "ISO8859-10") + (nil . "ISO8859-13") + (nil . "ISO8859-14") + (nil . "ISO8859-15") + (nil . "VISCII1.1-1")) + + (thai (nil . "TIS620*") + (nil . "ISO8859-11")) + + (devanagari (nil . "iso10646.indian-1")) + + (lao (nil . "MuleLao-1")) + + (tai-viet ("TaiViet" . "iso10646-1")) + + ;; both for script and charset. + (tibetan (nil . "muletibetan-2")) + + ;; both for script and charset. + (ethiopic (nil . "ethiopic-unicode")) + + (greek (nil . "ISO8859-7")) + + (cyrillic (nil . "ISO8859-5") + (nil . "microsoft-cp1251") + (nil . "koi8-r")) + + (arabic (nil . "MuleArabic-0") + (nil . "MuleArabic-1") + (nil . "MuleArabic-2") + (nil . "ISO8859-6")) + + (hebrew (nil . "ISO8859-8")) + + (kana (nil . "JISX0208*") + (nil . "GB2312.1980-0") + (nil . "KSC5601.1987*") + (nil . "JISX0201*") + (nil . "JISX0213.2000-1") + (nil . "JISX0213.2004-1")) + + (bopomofo (nil . "sisheng_cwnn-0")) + + (han (nil . "GB2312.1980-0") + (nil . "JISX0208*") + (nil . "JISX0212*") + (nil . "big5*") + (nil . "KSC5601.1987*") + (nil . "CNS11643.1992-1") + (nil . "CNS11643.1992-2") + (nil . "CNS11643.1992-3") + (nil . "CNS11643.1992-4") + (nil . "CNS11643.1992-5") + (nil . "CNS11643.1992-6") + (nil . "CNS11643.1992-7") + (nil . "gbk-0") + (nil . "gb18030") + (nil . "JISX0213.2000-1") + (nil . "JISX0213.2000-2") + (nil . "JISX0213.2004-1")) + + (cjk-misc (nil . "GB2312.1980-0") + (nil . "JISX0208*") + (nil . "JISX0212*") + (nil . "big5*") + (nil . "KSC5601.1987*") + (nil . "CNS11643.1992-1") + (nil . "CNS11643.1992-2") + (nil . "CNS11643.1992-3") + (nil . "CNS11643.1992-4") + (nil . "CNS11643.1992-5") + (nil . "CNS11643.1992-6") + (nil . "CNS11643.1992-7") + (nil . "gbk-0") + (nil . "gb18030") + (nil . "JISX0213.2000-1") + (nil . "JISX0213.2000-2")) + + (hangul (nil . "KSC5601.1987-0")) + + ;; for each charset + (ascii (nil . "ISO8859-1")) + (arabic-digit ("*" . "MuleArabic-0")) + (arabic-1-column ("*" . "MuleArabic-1")) + (arabic-2-column ("*" . "MuleArabic-2")) + (indian-is13194 (nil . "is13194-devanagari")) + (indian-1-column ("*" . "muleindian-2")) + ;; Indian CDAC + (devanagari-cdac (nil . "Devanagari-CDAC")) + (sanskrit-cdac (nil . "Sanskrit-CDAC")) + (bengali-cdac (nil . "Bengali-CDAC")) + (assamese-cdac (nil . "Assamese-CDAC")) + (punjabi-cdac (nil . "Punjabi-CDAC")) + (gujarati-cdac (nil . "Gujarati-CDAC")) + (oriya-cdac (nil . "Oriya-CDAC")) + (tamil-cdac (nil . "Tamil-CDAC")) + (telugu-cdac (nil . "Telugu-CDAC")) + (kannada-cdac (nil . "Kannada-CDAC")) + (malayalam-cdac (nil . "Malayalam-CDAC")) + ;; Indian AKRUTI + (devanagari-akruti (nil . "Devanagari-Akruti")) + (bengali-akruti (nil . "Bengali-Akruti")) + (punjabi-akruti (nil . "Punjabi-Akruti")) + (gujarati-akruti (nil . "Gujarati-Akruti")) + (oriya-akruti (nil . "Oriya-Akruti")) + (tamil-akruti (nil . "Tamil-Akruti")) + (telugu-akruti (nil . "Telugu-Akruti")) + (kannada-akruti (nil . "Kannada-Akruti")) + (malayalam-akruti (nil . "Malayalam-Akruti")) + ;;(devanagari-glyph ("altsys-dv_ttsurekh" . "devanagari-cdac")) + ;;(malayalam-glyph ("altsys-ml_ttkarthika" . "malayalam-cdac")) + (ipa (nil . "MuleIPA-1")) + + ;; Fallback fonts + (nil (nil . "gb2312.1980") + (nil . "gbk-0") + (nil . "gb18030") + (nil . "jisx0208") + (nil . "ksc5601.1987") + (nil . "CNS11643.1992-1") + (nil . "CNS11643.1992-2") + (nil . "CNS11643.1992-3") + (nil . "CNS11643.1992-4") + (nil . "CNS11643.1992-5") + (nil . "CNS11643.1992-6") + (nil . "CNS11643.1992-7") + (nil . "big5") + (nil . "jisx0213.2000-1") + (nil . "jisx0213.2004-1") + (nil . "jisx0212")) + )) + + ;; Append Unicode fonts. + ;; This may find fonts with more variants (bold, italic) but which + ;; don't cover many characters. + (set-fontset-font "fontset-default" nil + '(nil . "iso10646-1") nil 'append) + ;; These may find fonts that cover many characters but with fewer + ;; variants. + (set-fontset-font "fontset-default" nil + '("gnu-unifont" . "iso10646-1") nil 'append) + (set-fontset-font "fontset-default" nil + '("mutt-clearlyu" . "iso10646-1") nil 'append)) + +;; These are the registered registries/encodings from +;; ftp://ftp.x.org/pub/DOCS/registry 2001/06/01 + +;; Name Reference +;; ---- --------- +;; "DEC" [27] +;; registry prefix +;; "DEC.CNS11643.1986-2" [53] +;; CNS11643 2-plane using the encoding +;; suggested in that standard +;; "DEC.DTSCS.1990-2" [54] +;; DEC Taiwan Supplemental Character Set +;; "fujitsu.u90x01.1991-0" [87] +;; "fujitsu.u90x03.1991-0" [87] +;; "GB2312.1980-0" [39],[12] +;; China (PRC) Hanzi, GL encoding +;; "GB2312.1980-1" [39] +;; (deprecated) +;; China (PRC) Hanzi, GR encoding +;; "HP-Arabic8" [36] +;; HPARABIC8 8-bit character set +;; "HP-East8" [36] +;; HPEAST8 8-bit character set +;; "HP-Greek8" [36] +;; HPGREEK8 8-bit character set +;; "HP-Hebrew8" [36] +;; HPHEBREW8 8-bit character set +;; "HP-Japanese15" [36] +;; HPJAPAN15 15-bit characer set, +;; modified from industry defacto +;; standard Shift-JIS +;; "HP-Kana8" [36] +;; HPKANA8 8-bit character set +;; "HP-Korean15" [36] +;; HPKOREAN15 15-bit character set +;; "HP-Roman8" [36] +;; HPROMAN8 8-bit character set +;; "HP-SChinese15" [36] +;; HPSCHINA15 15-bit character set for +;; support of Simplified Chinese +;; "HP-TChinese15" [36] +;; HPTCHINA15 15-bit character set for +;; support of Traditional Chinese +;; "HP-Turkish8" [36] +;; HPTURKISH8 8-bit character set +;; "IPSYS" [59] +;; registry prefix +;; "IPSYS.IE-1" [59] +;; "ISO2022"<REG>"-"<ENC> [44] +;; "ISO646.1991-IRV" [107] +;; ISO 646 International Reference Version +;; "ISO8859-1" [15],[12] +;; ISO Latin alphabet No. 1 +;; "ISO8859-2" [15],[12] +;; ISO Latin alphabet No. 2 +;; "ISO8859-3" [15],[12] +;; ISO Latin alphabet No. 3 +;; "ISO8859-4" [15],[12] +;; ISO Latin alphabet No. 4 +;; "ISO8859-5" [15],[12] +;; ISO Latin/Cyrillic alphabet +;; "ISO8859-6" [15],[12] +;; ISO Latin/Arabic alphabet +;; "ISO8859-7" [15],[12] +;; ISO Latin/Greek alphabet +;; "ISO8859-8" [15],[12] +;; ISO Latin/Hebrew alphabet +;; "ISO8859-9" [15],[12] +;; ISO Latin alphabet No. 5 +;; "ISO8859-10" [15],[12] +;; ISO Latin alphabet No. 6 +;; "ISO8859-13" [15],[12] +;; ISO Latin alphabet No. 7 +;; "ISO8859-14" [15],[12] +;; ISO Latin alphabet No. 8 +;; "ISO8859-15" [15],[12] +;; ISO Latin alphabet No. 9 +;; "FCD8859-15" [7] +;; (deprecated) +;; ISO Latin alphabet No. 9, Final Committee Draft +;; "ISO10646-1" [133] +;; Unicode Universal Multiple-Octet Coded Character Set +;; "ISO10646-MES" [133] +;; (deprecated) +;; Unicode Minimum European Subset +;; "JISX0201.1976-0" [38],[12] +;; 8-Bit Alphanumeric-Katakana Code +;; "JISX0208.1983-0" [40],[12] +;; Japanese Graphic Character Set, +;; GL encoding +;; "JISX0208.1990-0" [71] +;; Japanese Graphic Character Set, +;; GL encoding +;; "JISX0208.1983-1" [40] +;; (deprecated) +;; Japanese Graphic Character Set, +;; GR encoding +;; "JISX0212.1990-0" [72] +;; Supplementary Japanese Graphic Character Set, +;; GL encoding +;; "KOI8-R" [119] +;; Cyrillic alphabet +;; "KSC5601.1987-0" [41],[12] +;; Korean Graphic Character Set, +;; GL encoding +;; "KSC5601.1987-1" [41] +;; (deprecated) +;; Korean Graphic Character Set, +;; GR encoding +;; "omron_CNS11643-0" [45] +;; "omron_CNS11643-1" [45] +;; "omron_BIG5-0" [45] +;; "omron_BIG5-1" [45] +;; "wn.tamil.1993" [103] + +(defun set-font-encoding (pattern charset) + "Set arguments in `font-encoding-alist' (which see)." (let ((slot (assoc pattern font-encoding-alist))) (if slot - (let ((place (assq charset (cdr slot)))) - (if place - (setcdr place encoding) - (setcdr slot (cons (cons charset encoding) (cdr slot))))) + (setcdr slot charset) (setq font-encoding-alist - (cons (list pattern (cons charset encoding)) font-encoding-alist))) - )) - -;; Allow display of arbitrary characters with an iso-10646-encoded -;; (`Unicode') font. -(define-translation-table 'ucs-mule-to-mule-unicode - ucs-mule-to-mule-unicode) -(define-translation-hash-table 'ucs-mule-cjk-to-unicode - ucs-mule-cjk-to-unicode) - -(define-ccl-program ccl-encode-unicode-font - `(0 - ;; r0: charset-id - ;; r1: 1st position code - ;; r2: 2nd position code (if r0 is 2D charset) - ((if (r0 == ,(charset-id 'ascii)) - ((r2 = r1) - (r1 = 0)) - ;; At first, try to get a Unicode code point directly. - ((if (r2 >= 0) - ;; This is a 2D charset. - (r1 = ((r1 << 7) | r2))) - (lookup-character utf-subst-table-for-encode r0 r1) - (if r7 - ;; We got it! - ((r1 = (r0 >> 8)) - (r2 = (r0 & #xFF))) - ;; Look for a translation for non-ASCII chars. - ((translate-character ucs-mule-to-mule-unicode r0 r1) - (if (r0 == ,(charset-id 'ascii)) - ((r2 = r1) - (r1 = 0)) - ((if (r0 == ,(charset-id 'latin-iso8859-1)) - ((r2 = (r1 + 128)) - (r1 = 0)) - ((r2 = (r1 & #x7F)) - (r1 >>= 7) - (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) - ((r1 *= 96) - (r1 += r2) - (r1 += ,(- #x100 (* 32 96) 32)) - (r1 >8= 0) - (r2 = r7)) - (if (r0 == ,(charset-id 'mule-unicode-2500-33ff)) - ((r1 *= 96) - (r1 += r2) - (r1 += ,(- #x2500 (* 32 96) 32)) - (r1 >8= 0) - (r2 = r7)) - (if (r0 == ,(charset-id 'mule-unicode-e000-ffff)) - ((r1 *= 96) - (r1 += r2) - (r1 += ,(- #xe000 (* 32 96) 32)) - (r1 >8= 0) - (r2 = r7)) - ;; No way, use the glyph for U+FFFD. - ((r1 = #xFF) - (r2 = #xFD))))))))))))))) - "Encode characters for display with iso10646 font. -Translate through the translation-hash-table named -`ucs-mule-cjk-to-unicode' and the translation-table named -`ucs-mule-to-mule-unicode' initially.") - -;; Use the above CCL encoder for Unicode fonts. Please note that the -;; regexp is not simply "ISO10646-1" because there exists, for -;; instance, the following Devanagari Unicode fonts: -;; -misc-fixed-medium-r-normal--24-240-72-72-c-120-iso10646.indian-1 -;; -sibal-devanagari-medium-r-normal--24-240-75-75-P--iso10646-dev -(setq font-ccl-encoder-alist - (cons '("ISO10646.*-*" . ccl-encode-unicode-font) - font-ccl-encoder-alist)) + (cons (cons pattern charset) font-encoding-alist))))) ;; Setting for suppressing XLoadQueryFont on big fonts. (setq x-pixel-size-width-font-regexp - "gb2312\\|jisx0208\\|ksc5601\\|cns11643\\|big5") + "gb2312\\|gbk\\|gb18030\\|jisx0208\\|ksc5601\\|cns11643\\|big5") ;; These fonts require vertical centering. (setq vertical-centering-font-regexp - "gb2312\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5") + "gb2312\\|gbk\\|gb18030\\|jisx0208\\|jisx0212\\|ksc5601\\|cns11643\\|big5") ;; CDAC fonts are actually smaller than their design sizes. (setq face-font-rescale-alist '(("-cdac$" . 1.3))) -(defvar x-font-name-charset-alist - '(("iso8859-1" ascii latin-iso8859-1) - ("iso8859-2" ascii latin-iso8859-2) - ("iso8859-3" ascii latin-iso8859-3) - ("iso8859-4" ascii latin-iso8859-4) - ("iso8859-5" ascii cyrillic-iso8859-5) - ("iso8859-6" ascii arabic-iso8859-6) - ("iso8859-7" ascii greek-iso8859-7) - ("iso8859-8" ascii hebrew-iso8859-8) - ("iso8859-14" ascii latin-iso8859-14) - ("iso8859-15" ascii latin-iso8859-15) - ("tis620" ascii thai-tis620) - ("koi8" ascii cyrillic-iso8859-5) - ("viscii" ascii vietnamese-viscii-upper vietnamese-viscii-lower) - ("vscii" ascii vietnamese-viscii-upper vietnamese-viscii-lower) - ("mulelao-1" ascii lao) - ("iso10646-1" ascii latin-iso8859-1 mule-unicode-0100-24ff - mule-unicode-2500-33ff mule-unicode-e000-ffff)) - "Alist of font names vs list of charsets the font can display. - -When a font name which matches some element of this alist is given as -`-fn' command line argument or is specified by X resource, a fontset -which uses the specified font for the corresponding charsets are -created and used for the initial frame.") +(defvar x-font-name-charset-alist nil + "This variable has no meaning now. Just kept for backward compatibility.") ;;; XLFD (X Logical Font Description) format handler. ;; Define XLFD's field index numbers. ; field name -(defconst xlfd-regexp-foundry-subnum 0) ; FOUNDRY -(defconst xlfd-regexp-family-subnum 1) ; FAMILY_NAME -(defconst xlfd-regexp-weight-subnum 2) ; WEIGHT_NAME -(defconst xlfd-regexp-slant-subnum 3) ; SLANT -(defconst xlfd-regexp-swidth-subnum 4) ; SETWIDTH_NAME -(defconst xlfd-regexp-adstyle-subnum 5) ; ADD_STYLE_NAME -(defconst xlfd-regexp-pixelsize-subnum 6) ; PIXEL_SIZE -(defconst xlfd-regexp-pointsize-subnum 7) ; POINT_SIZE -(defconst xlfd-regexp-resx-subnum 8) ; RESOLUTION_X -(defconst xlfd-regexp-resy-subnum 9) ; RESOLUTION_Y -(defconst xlfd-regexp-spacing-subnum 10) ; SPACING -(defconst xlfd-regexp-avgwidth-subnum 11) ; AVERAGE_WIDTH -(defconst xlfd-regexp-registry-subnum 12) ; CHARSET_REGISTRY -(defconst xlfd-regexp-encoding-subnum 13) ; CHARSET_ENCODING +(defconst xlfd-regexp-family-subnum 0) ; FOUNDRY and FAMILY +(defconst xlfd-regexp-weight-subnum 1) ; WEIGHT_NAME +(defconst xlfd-regexp-slant-subnum 2) ; SLANT +(defconst xlfd-regexp-swidth-subnum 3) ; SETWIDTH_NAME +(defconst xlfd-regexp-adstyle-subnum 4) ; ADD_STYLE_NAME +(defconst xlfd-regexp-pixelsize-subnum 5) ; PIXEL_SIZE +(defconst xlfd-regexp-pointsize-subnum 6) ; POINT_SIZE +(defconst xlfd-regexp-resx-subnum 7) ; RESOLUTION_X +(defconst xlfd-regexp-resy-subnum 8) ; RESOLUTION_Y +(defconst xlfd-regexp-spacing-subnum 8) ; SPACING +(defconst xlfd-regexp-avgwidth-subnum 10) ; AVERAGE_WIDTH +(defconst xlfd-regexp-registry-subnum 11) ; REGISTRY and ENCODING ;; Regular expression matching against a fontname which conforms to ;; XLFD (X Logical Font Description). All fields in XLFD should be ;; not be omitted (but can be a wild card) to be matched. (defconst xlfd-tight-regexp "^\ +-\\([^-]*-[^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\ -\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\ --\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)\ --\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)$") +-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*-[^-]*\\)$") + +;; Regular expression matching against a fontname which conforms to +;; XLFD (X Logical Font Description). All fields in XLFD from FOUNDRY +;; to ADSTYLE, REGISTRY, and ENCODING should be not be omitted (but +;; can be a wild card) to be matched. +(defconst xlfd-style-regexp + "^\ +-\\([^-]*-[^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-\\([^-]*\\)-.*\ +-\\([^-]*-[^-]*\\)$") ;; List of field numbers of XLFD whose values are numeric. (defconst xlfd-regexp-numeric-subnums - (list xlfd-regexp-pixelsize-subnum ;6 - xlfd-regexp-pointsize-subnum ;7 - xlfd-regexp-resx-subnum ;8 - xlfd-regexp-resy-subnum ;9 - xlfd-regexp-avgwidth-subnum ;11 + (list xlfd-regexp-pixelsize-subnum ;5 + xlfd-regexp-pointsize-subnum ;6 + xlfd-regexp-resx-subnum ;7 + xlfd-regexp-resy-subnum ;8 + xlfd-regexp-avgwidth-subnum ;10 )) (defun x-decompose-font-name (pattern) - "Decompose PATTERN into XLFD's fields and return vector of the fields. -The length of the vector is 14. - -If PATTERN doesn't conform to XLFD, try to get a full XLFD name from -X server and use the information of the full name to decompose -PATTERN. If no full XLFD name is gotten, return nil." - (let (xlfd-fields fontname) - (if (string-match xlfd-tight-regexp pattern) - (let ((i 0)) - (setq xlfd-fields (make-vector 14 nil)) - (while (< i 14) - (aset xlfd-fields i (match-string (1+ i) pattern)) - (setq i (1+ i))) - xlfd-fields) - (setq fontname (condition-case nil - (x-resolve-font-name pattern) - (error))) - (if (and fontname - (string-match xlfd-tight-regexp fontname)) - ;; We get a full XLFD name. - (let ((len (length pattern)) - (i 0) - l) - ;; Setup xlfd-fields by the full XLFD name. Each element - ;; should be a cons of matched index and matched string. - (setq xlfd-fields (make-vector 14 nil)) - (while (< i 14) - (aset xlfd-fields i - (cons (match-beginning (1+ i)) - (match-string (1+ i) fontname))) - (setq i (1+ i))) - - ;; Replace wild cards in PATTERN by regexp codes. - (setq i 0) - (while (< i len) - (let ((ch (aref pattern i))) - (if (= ch ??) - (setq pattern (concat (substring pattern 0 i) - "\\(.\\)" - (substring pattern (1+ i))) - len (+ len 4) - i (+ i 4)) - (if (= ch ?*) - (setq pattern (concat (substring pattern 0 i) - "\\(.*\\)" - (substring pattern (1+ i))) - len (+ len 5) - i (+ i 5)) - (setq i (1+ i)))))) - - ;; Set each element of xlfd-fields to proper strings. - (if (string-match pattern fontname) - ;; The regular expression PATTERN matchs the full XLFD - ;; name. Set elements that correspond to a wild card - ;; in PATTERN to "*", set the other elements to the - ;; exact strings in PATTERN. - (let ((l (cdr (cdr (match-data))))) - (setq i 0) - (while (< i 14) - (if (or (null l) (< (car (aref xlfd-fields i)) (car l))) - (progn - (aset xlfd-fields i (cdr (aref xlfd-fields i))) - (setq i (1+ i))) - (if (< (car (aref xlfd-fields i)) (car (cdr l))) - (progn - (aset xlfd-fields i "*") - (setq i (1+ i))) - (setq l (cdr (cdr l))))))) - ;; Set each element of xlfd-fields to the exact string - ;; in the corresonding fields in full XLFD name. - (setq i 0) - (while (< i 14) - (aset xlfd-fields i (cdr (aref xlfd-fields i))) - (setq i (1+ i)))) - xlfd-fields))))) - -;; Replace consecutive wild-cards (`*') in NAME to one. -;; Ex. (x-reduce-font-name "-*-*-*-iso8859-1") => "-*-iso8859-1" -(defsubst x-reduce-font-name (name) - (while (string-match "-\\*-\\(\\*-\\)+" name) - (setq name (replace-match "-*-" t t name))) - name) + "Decompose PATTERN into XLFD fields and return a vector of the fields. +The length of the vector is 12. +The FOUNDRY and FAMILY fields are concatinated and stored in the first +element of the vector. +The REGISTRY and ENCODING fields are concatinated and stored in the last +element of the vector. + +Return nil if PATTERN doesn't conform to XLFD." + (if (string-match xlfd-tight-regexp pattern) + (let ((xlfd-fields (make-vector 12 nil))) + (dotimes (i 12) + (aset xlfd-fields i (match-string (1+ i) pattern))) + (dotimes (i 12) + (if (string-match "^[*-]+$" (aref xlfd-fields i)) + (aset xlfd-fields i nil))) + xlfd-fields))) (defun x-compose-font-name (fields &optional reduce) - "Compose X's fontname from FIELDS. -FIELDS is a vector of XLFD fields, of length 14. + "Compose X fontname from FIELDS. +FIELDS is a vector of XLFD fields, of length 12. If a field is nil, wild-card letter `*' is embedded. Optional argument REDUCE exists just for backward compatibility, and is always ignored." @@ -398,7 +614,7 @@ If no font matching XLFD-FIELDS is available, successively replace parts of the font name pattern with \"*\" until some font is found. Value is name of that font." (let ((ascii-font nil) (index 0)) - (while (and (null ascii-font) (<= index xlfd-regexp-encoding-subnum)) + (while (and (null ascii-font) (<= index xlfd-regexp-registry-subnum)) (let ((pattern (x-compose-font-name xlfd-fields))) (condition-case nil (setq ascii-font (x-resolve-font-name pattern)) @@ -412,53 +628,33 @@ Value is name of that font." (defun x-complement-fontset-spec (xlfd-fields fontlist) - "Complement FONTLIST for charsets based on XLFD-FIELDS and return it. + "Complement elements of FONTLIST based on XLFD-FIELDS. XLFD-FIELDS is a vector of XLFD (X Logical Font Description) fields. -FONTLIST is an alist of charsets vs the corresponding font names. - -The fonts are complemented as below. - -If FONTLIST doesn't specify a font for ASCII charset, generate a font -name for the charset from XLFD-FIELDS, and add that information to -FONTLIST. - -If a font specifid for ASCII supports the other charsets (see the -variable `x-font-name-charset-alist'), add that information to FONTLIST." - (let* ((slot (assq 'ascii fontlist)) - (ascii-font (cdr slot)) - ascii-font-spec) - (if ascii-font - (setcdr slot (setq ascii-font (x-resolve-font-name ascii-font))) - ;; If font for ASCII is not specified, add it. - (aset xlfd-fields xlfd-regexp-registry-subnum "iso8859") - (aset xlfd-fields xlfd-regexp-encoding-subnum "1") - (setq ascii-font (x-must-resolve-font-name xlfd-fields)) - (setq fontlist (cons (cons 'ascii ascii-font) fontlist))) - - ;; If the font for ASCII also supports the other charsets, and - ;; they are not specified in FONTLIST, add them. - (setq xlfd-fields (x-decompose-font-name ascii-font)) - (if (not xlfd-fields) - (setq ascii-font-spec ascii-font) - (setq ascii-font-spec - (cons (format "%s-%s" - (aref xlfd-fields xlfd-regexp-foundry-subnum) - (aref xlfd-fields xlfd-regexp-family-subnum)) - (format "%s-%s" - (aref xlfd-fields xlfd-regexp-registry-subnum) - (aref xlfd-fields xlfd-regexp-encoding-subnum))))) - (let ((tail x-font-name-charset-alist) - elt) - (while tail - (setq elt (car tail) tail (cdr tail)) - (if (string-match (car elt) ascii-font) - (let ((charsets (cdr elt)) - charset) - (while charsets - (setq charset (car charsets) charsets (cdr charsets)) - (or (assq charset fontlist) - (setq fontlist - (cons (cons charset ascii-font-spec) fontlist)))))))) +FONTLIST is an alist of script names vs the corresponding font names. + +The font names are complemented as below. + +If a font name matches `xlfd-style-regexp', each field of wild card is +replaced by the corresponding fields in XLFD-FIELDS." + (let ((default-spec (vector (aref xlfd-fields xlfd-regexp-family-subnum) + (aref xlfd-fields xlfd-regexp-weight-subnum) + (aref xlfd-fields xlfd-regexp-slant-subnum) + (aref xlfd-fields xlfd-regexp-swidth-subnum) + (aref xlfd-fields xlfd-regexp-adstyle-subnum) + (aref xlfd-fields xlfd-regexp-registry-subnum)))) + (dolist (elt fontlist) + (let ((name (cadr elt)) + font-spec) + (when (or (string-match xlfd-style-regexp name) + (and (setq name (car (x-list-fonts name nil nil 1))) + (string-match xlfd-style-regexp name))) + (setq font-spec (make-vector 6 nil)) + (dotimes (i 6) + (aset font-spec i (match-string (1+ i) name))) + (dotimes (i 5) + (if (string-match "^[*-]+$" (aref font-spec i)) + (aset font-spec i (aref default-spec i)))) + (setcar (cdr elt) font-spec)))) fontlist)) @@ -470,17 +666,15 @@ with \"fontset\" in `<CHARSET_REGISTRY>' field." (string= (match-string (1+ xlfd-regexp-registry-subnum) fontset) "fontset"))) -;; Return a list to be appended to `x-fixed-font-alist' when -;; `mouse-set-font' is called. (defun generate-fontset-menu () - (let ((fontsets (fontset-list)) - fontset-name - l) - (while fontsets - (setq fontset-name (car fontsets) fontsets (cdr fontsets)) - (setq l (cons (list (fontset-plain-name fontset-name) fontset-name) l))) + "Return list to be appended to `x-fixed-font-alist'. +Done when `mouse-set-font' is called." + (let (l) + (dolist (fontset (fontset-list)) + (or (string-match "fontset-default$" fontset) + (push (list (fontset-plain-name fontset) fontset) l))) (cons "Fontset" - (sort l (function (lambda (x y) (string< (car x) (car y)))))))) + (sort l #'(lambda (x y) (string< (car x) (car y))))))) (defun fontset-plain-name (fontset) "Return a plain and descriptive name of FONTSET." @@ -488,92 +682,141 @@ with \"fontset\" in `<CHARSET_REGISTRY>' field." (error "Invalid fontset: %s" fontset)) (let ((xlfd-fields (x-decompose-font-name fontset))) (if xlfd-fields - (let ((weight (aref xlfd-fields xlfd-regexp-weight-subnum)) + (let ((family (aref xlfd-fields xlfd-regexp-family-subnum)) + (weight (aref xlfd-fields xlfd-regexp-weight-subnum)) (slant (aref xlfd-fields xlfd-regexp-slant-subnum)) (swidth (aref xlfd-fields xlfd-regexp-swidth-subnum)) (size (aref xlfd-fields xlfd-regexp-pixelsize-subnum)) - (charset (aref xlfd-fields xlfd-regexp-registry-subnum)) - (nickname (aref xlfd-fields xlfd-regexp-encoding-subnum)) + (nickname (aref xlfd-fields xlfd-regexp-registry-subnum)) name) - (if (not (string= "fontset" charset)) - fontset - (if (> (string-to-number size) 0) - (setq name (format "%s: %s-dot" nickname size)) - (setq name nickname)) - (cond ((string-match "^medium$" weight) - (setq name (concat name " " "medium"))) - ((string-match "^bold$\\|^demibold$" weight) - (setq name (concat name " " weight)))) - (cond ((string-match "^i$" slant) - (setq name (concat name " " "italic"))) - ((string-match "^o$" slant) - (setq name (concat name " " "slant"))) - ((string-match "^ri$" slant) - (setq name (concat name " " "reverse italic"))) - ((string-match "^ro$" slant) - (setq name (concat name " " "reverse slant")))) - name)) + (if (not (string-match "^fontset-\\(.*\\)$" nickname)) + (setq nickname family) + (setq nickname (match-string 1 nickname))) + (if (and size (> (string-to-number size) 0)) + (setq name (format "%s: %s-dot" nickname size)) + (setq name nickname)) + (and weight + (cond ((string-match "^medium$" weight) + (setq name (concat name " " "medium"))) + ((string-match "^bold$\\|^demibold$" weight) + (setq name (concat name " " weight))))) + (and slant + (cond ((string-match "^i$" slant) + (setq name (concat name " " "italic"))) + ((string-match "^o$" slant) + (setq name (concat name " " "slant"))) + ((string-match "^ri$" slant) + (setq name (concat name " " "reverse italic"))) + ((string-match "^ro$" slant) + (setq name (concat name " " "reverse slant"))))) + name) fontset))) +(defvar charset-script-alist + '((ascii . latin) + (latin-iso8859-1 . latin) + (latin-iso8859-2 . latin) + (latin-iso8859-3 . latin) + (latin-iso8859-4 . latin) + (latin-iso8859-9 . latin) + (latin-iso8859-10 . latin) + (latin-iso8859-13 . latin) + (latin-iso8859-14 . latin) + (latin-iso8859-15 . latin) + (latin-iso8859-16 . latin) + (latin-jisx0201 . latin) + (thai-tis620 . thai) + (cyrillic-iso8859-5 . cyrillic) + (arabic-iso8859-6 . arabic) + (greek-iso8859-7 . latin) + (hebrew-iso8859-8 . latin) + (katakana-jisx0201 . kana) + (chinese-gb2312 . han) + (chinese-gbk . han) + (gb18030-2-byte . han) + (gb18030-4-byte-bmp . han) + (gb18030-4-byte-ext-1 . han) + (gb18030-4-byte-ext-2 . han) + (gb18030-4-byte-smp . han) + (chinese-big5-1 . han) + (chinese-big5-2 . han) + (chinese-cns11643-1 . han) + (chinese-cns11643-2 . han) + (chinese-cns11643-3 . han) + (chinese-cns11643-4 . han) + (chinese-cns11643-5 . han) + (chinese-cns11643-6 . han) + (chinese-cns11643-7 . han) + (japanese-jisx0208 . han) + (japanese-jisx0208-1978 . han) + (japanese-jisx0212 . han) + (japanese-jisx0213-1 . han) + (japanese-jisx0213-2 . han) + (korean-ksc5601 . hangul) + (chinese-sisheng . bopomofo) + (vietnamese-viscii-lower . latin) + (vietnamese-viscii-upper . latin) + (arabic-digit . arabic) + (arabic-1-column . arabic) + (arabic-2-column . arabic) + (indian-is13194 . devanagari) + (indian-glyph . devanagari) + (indian-1-column . devanagari) + (indian-2-column . devanagari) + (tibetan-1-column . tibetan)) + "Alist of charsets vs the corresponding most appropriate scripts. + +This alist is used by the function `create-fontset-from-fontset-spec' +to map charsets to scripts.") (defun create-fontset-from-fontset-spec (fontset-spec &optional style-variant noerror) "Create a fontset from fontset specification string FONTSET-SPEC. FONTSET-SPEC is a string of the format: - FONTSET-NAME,CHARSET0:FONT0,CHARSET1:FONT1, ... + FONTSET-NAME,SCRIPT0:FONT0,SCRIPT1:FONT1, ... Any number of SPACE, TAB, and NEWLINE can be put before and after commas. -Optional 2nd arg exists just for backward compatibility, and is ignored. +When a frame uses the fontset as the `font' parameter, the frame's +default font name is derived from FONTSET-NAME by substituting +\"iso8859-1\" for the tail part \"fontset-XXX\". But, if SCRIPT-NAMEn +is \"ascii\", use the corresponding FONT-NAMEn as the default font +name. -If this function attempts to create already existing fontset, an error is -signaled unless the optional 3rd argument NOERROR is non-nil. +Optional 2nd and 3rd arguments exist just for backward compatibility, +and are ignored. -It returns a name of the created fontset." - (if (not (string-match "^[^,]+" fontset-spec)) +It returns a name of the created fontset. + +For backward compatibility, SCRIPT-NAME may be a charset name, in +which case, the corresponding script is decided by the variable +`charset-script-alist' (which see)." + (or (string-match "^[^,]+" fontset-spec) (error "Invalid fontset spec: %s" fontset-spec)) - (setq fontset-spec (downcase fontset-spec)) (let ((idx (match-end 0)) (name (match-string 0 fontset-spec)) - xlfd-fields charset fontlist ascii-font) - (if (query-fontset name) - (or noerror - (error "Fontset \"%s\" already exists" name)) - (setq xlfd-fields (x-decompose-font-name name)) - (or xlfd-fields - (error "Fontset \"%s\" not conforming to XLFD" name)) - - ;; At first, extract pairs of charset and fontname from FONTSET-SPEC. - (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)" - fontset-spec idx) - (setq idx (match-end 0)) - (setq charset (intern (match-string 1 fontset-spec))) - (if (charsetp charset) - (setq fontlist (cons (cons charset (match-string 2 fontset-spec)) - fontlist)))) - (setq ascii-font (cdr (assq 'ascii fontlist))) - - ;; Complement FONTLIST. - (setq fontlist (x-complement-fontset-spec xlfd-fields fontlist)) - - (new-fontset name fontlist) - - ;; Define the short name alias. - (if (and (string-match "fontset-.*$" name) - (not (assoc name fontset-alias-alist))) - (let ((alias (match-string 0 name))) - (or (rassoc alias fontset-alias-alist) - (setq fontset-alias-alist - (cons (cons name alias) fontset-alias-alist))))) - - ;; Define the ASCII font name alias. - (or ascii-font - (setq ascii-font (cdr (assq 'ascii fontlist)))) - (or (rassoc ascii-font fontset-alias-alist) - (setq fontset-alias-alist - (cons (cons name ascii-font) - fontset-alias-alist)))) - - name)) + xlfd-fields target script fontlist) + (setq xlfd-fields (x-decompose-font-name name)) + (or xlfd-fields + (error "Fontset name \"%s\" not conforming to XLFD" name)) + + ;; At first, extract pairs of charset and fontname from FONTSET-SPEC. + (while (string-match "[, \t\n]*\\([^:]+\\):[ \t]*\\([^,]+\\)" + fontset-spec idx) + (setq idx (match-end 0)) + (setq target (intern (match-string 1 fontset-spec))) + (cond ((or (eq target 'ascii) + (memq target (char-table-extra-slot char-script-table 0))) + (push (list target (match-string 2 fontset-spec)) fontlist)) + ((setq script (cdr (assq target charset-script-alist))) + (push (list script (match-string 2 fontset-spec)) fontlist)) + ((charsetp target) + (push (list target (match-string 2 fontset-spec)) fontlist)))) + + ;; Complement FONTLIST. + (setq fontlist (x-complement-fontset-spec xlfd-fields fontlist)) + + ;; Create a fontset. + (new-fontset name (nreverse fontlist)))) (defun create-fontset-from-ascii-font (font &optional resolved-font fontset-name) @@ -589,23 +832,19 @@ an appropriate name is generated automatically. It returns a name of the created fontset." (setq font (downcase font)) - (if resolved-font - (setq resolved-font (downcase resolved-font)) - (setq resolved-font (downcase (x-resolve-font-name font)))) - (let ((xlfd (x-decompose-font-name font)) - (resolved-xlfd (x-decompose-font-name resolved-font)) - fontset fontset-spec) - (aset xlfd xlfd-regexp-foundry-subnum nil) - (aset xlfd xlfd-regexp-family-subnum nil) - (aset xlfd xlfd-regexp-registry-subnum "fontset") + (setq resolved-font + (downcase (or resolved-font (x-resolve-font-name font)))) + (let ((xlfd (x-decompose-font-name resolved-font)) + fontset) (if fontset-name (setq fontset-name (downcase fontset-name)) - (setq fontset-name - (format "%s_%s_%s" - (aref resolved-xlfd xlfd-regexp-registry-subnum) - (aref resolved-xlfd xlfd-regexp-encoding-subnum) - (aref resolved-xlfd xlfd-regexp-pixelsize-subnum)))) - (aset xlfd xlfd-regexp-encoding-subnum fontset-name) + (if (query-fontset "fontset-startup") + (setq fontset-name + (subst-char-in-string + ?- ?_ (aref xlfd xlfd-regexp-registry-subnum) t)) + (setq fontset-name "startup"))) + (aset xlfd xlfd-regexp-registry-subnum + (format "fontset-%s" fontset-name)) (setq fontset (x-compose-font-name xlfd)) (or (query-fontset fontset) (create-fontset-from-fontset-spec (concat fontset ", ascii:" font))))) @@ -616,21 +855,13 @@ It returns a name of the created fontset." ;; specified here because FAMILY of those fonts are not "fixed" in ;; many cases. (defvar standard-fontset-spec - (purecopy "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard, - chinese-gb2312:-*-medium-r-normal-*-16-*-gb2312*-*, - korean-ksc5601:-*-medium-r-normal-*-16-*-ksc5601*-*, - chinese-cns11643-1:-*-medium-r-normal-*-16-*-cns11643*-1, - chinese-cns11643-2:-*-medium-r-normal-*-16-*-cns11643*-2, - chinese-cns11643-3:-*-medium-r-normal-*-16-*-cns11643*-3, - chinese-cns11643-4:-*-medium-r-normal-*-16-*-cns11643*-4, - chinese-cns11643-5:-*-medium-r-normal-*-16-*-cns11643*-5, - chinese-cns11643-6:-*-medium-r-normal-*-16-*-cns11643*-6, - chinese-cns11643-7:-*-medium-r-normal-*-16-*-cns11643*-7") + (purecopy "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard") "String of fontset spec of the standard fontset. You have the biggest chance to display international characters with correct glyphs by using the standard fontset. See the documentation of `create-fontset-from-fontset-spec' for the format.") + ;; Create fontsets from X resources of the name `fontset-N (class ;; Fontset-N)' where N is integer 0, 1, ... ;; The values of the resources the string of the same format as diff --git a/lisp/international/ja-dic-cnv.el b/lisp/international/ja-dic-cnv.el index 5fa18221327..357cf8f7d1e 100644 --- a/lisp/international/ja-dic-cnv.el +++ b/lisp/international/ja-dic-cnv.el @@ -48,12 +48,13 @@ (defvar ja-dic-filename "ja-dic.el") ;; To make a generated ja-dic.el smaller. -(make-coding-system - 'iso-2022-7bit-short - 2 ?J +(define-coding-system 'iso-2022-7bit-short "Like `iso-2022-7bit' but no ASCII designation before SPC." - '(ascii nil nil nil t t nil t) - '((safe-charsets . t))) + :coding-type 'iso-2022 + :mnemonic ?J + :charset-list 'iso-2022 + :designation [(ascii t) nil nil nil] + :flags '(short 7-bit designation)) (defun skkdic-convert-okuri-ari (skkbuf buf) (message "Processing OKURI-ARI entries ...") @@ -478,7 +479,7 @@ To get complete usage, invoke: (- ch) ; represented by a negative code. (if (= ch ?$B!<(B) ; `$B!<(B' is represented by 0. 0 - (- (nth 2 (split-char ch)) 32)))) + (- (logand (encode-char ch 'japanese-jisx0208) #xFF) 32)))) (setq i (1+ i))) vec)) diff --git a/lisp/international/ja-dic-utl.el b/lisp/international/ja-dic-utl.el index ea3e4c31a3c..a1945c05854 100644 --- a/lisp/international/ja-dic-utl.el +++ b/lisp/international/ja-dic-utl.el @@ -90,7 +90,9 @@ (setq heads (cdr heads))) l)) -(defconst skkdic-jisx0208-hiragana-block (nth 1 (split-char ?$B$"(B))) +(defconst skkdic-jisx0208-hiragana-block + (cons (decode-char 'japanese-jisx0208 #x2421) + (decode-char 'japanese-jisx0208 #x247E))) (defun skkdic-lookup-key (seq len &optional postfix prefer-noun) "Return a list of conversion string for sequence SEQ of length LEN. @@ -130,14 +132,17 @@ LEIM is available from the same ftp directory as Emacs.")) ;; else VEC[N] is 128. (while (< i len) (let ((ch (aref seq i)) - elts) - (if (= ch ?$B!<(B) - (aset vec i 0) - (setq elts (split-char ch)) - (if (and (eq (car elts) 'japanese-jisx0208) - (= (nth 1 elts) skkdic-jisx0208-hiragana-block)) - (aset vec i (- (nth 2 elts) 32)) - (aset vec i 128)))) + code) + (cond ((= ch ?$B!<(B) + (aset vec i 0)) + ((and (>= ch (car skkdic-jisx0208-hiragana-block)) + (<= ch (cdr skkdic-jisx0208-hiragana-block))) + (setq code (encode-char ch 'japanese-jisx0208)) + (if code + (aset vec i (- (logand code #xFF) 32)) + (aset vec i 128))) + (t + (aset vec i 128)))) (setq i (1+ i))) ;; Search OKURI-NASI entries. diff --git a/lisp/international/latin-1.el b/lisp/international/latin-1.el deleted file mode 100644 index 33acf132a0d..00000000000 --- a/lisp/international/latin-1.el +++ /dev/null @@ -1,127 +0,0 @@ -;;; latin-1.el --- set up case-conversion and syntax tables for ISO Latin-1 - -;; Copyright (C) 1988, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; Free Software Foundation, Inc. - -;; Author: Howard Gayle -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Written by Howard Gayle. See case-table.el for details. -;; Updated by Erik Naggum. - -;; The current standard is ISO/IEC 8859-1:1998. As of 1999-05, see -;; <URL:http://czyborra.com/charsets/iso8859.html> and the `final text' -;; <URL:http://anubis.dkuug.dk/jtc1/sc2/wg3/docs/n411.pdf>. -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-1) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax 161 "." tbl) ;inverted exclamation mark - (set-case-syntax 162 "w" tbl) ;cent sign - (set-case-syntax 163 "w" tbl) ;pound sign - (set-case-syntax 164 "w" tbl) ;currency sign - (set-case-syntax 165 "w" tbl) ;yen sign - (set-case-syntax 166 "_" tbl) ;broken bar - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 168 "w" tbl) ;diaeresis - (set-case-syntax 169 "_" tbl) ;copyright sign - (set-case-syntax 170 "w" tbl) ;feminine ordinal indicator - (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark - (set-case-syntax 172 "_" tbl) ;not sign - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax 174 "_" tbl) ;registered sign - (set-case-syntax 175 "w" tbl) ;macron - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 177 "_" tbl) ;plus-minus sign - (set-case-syntax 178 "w" tbl) ;superscript two - (set-case-syntax 179 "w" tbl) ;superscript three - (set-case-syntax 180 "w" tbl) ;acute accent - (set-case-syntax 181 "_" tbl) ;micro sign - (set-case-syntax 182 "w" tbl) ;pilcrow sign - (set-case-syntax 183 "_" tbl) ;middle dot - (set-case-syntax 184 "w" tbl) ;cedilla - (set-case-syntax 185 "w" tbl) ;superscript one - (set-case-syntax 186 "w" tbl) ;masculine ordinal indicator - (set-case-syntax 188 "_" tbl) ;vulgar fraction one quarter - (set-case-syntax 189 "_" tbl) ;vulgar fraction one half - (set-case-syntax 190 "_" tbl) ;vulgar fraction three quarters - (set-case-syntax 191 "." tbl) ;inverted question mark - (set-case-syntax-pair 192 224 tbl) ;latin letter a with grave - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with tilde - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter a with ring above - (set-case-syntax-pair 198 230 tbl) ;latin letter ae - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter e with grave - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with circumflex - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter i with grave - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter i with diaeresis - (set-case-syntax-pair 208 240 tbl) ;latin letter eth (Icelandic) - (set-case-syntax-pair 209 241 tbl) ;latin letter n with tilde - (set-case-syntax-pair 210 242 tbl) ;latin letter o with grave - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with tilde - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter o with stroke - (set-case-syntax-pair 217 249 tbl) ;latin letter u with grave - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter y with acute - (set-case-syntax-pair 222 254 tbl) ;latin letter thorn (Icelandic) - (set-case-syntax 223 "w" tbl) ;latin small letter sharp s (German) - (set-case-syntax 247 "_" tbl) ;division sign - ;; The following setting should be suppressed when we are loading - ;; this file for setting syntax of multibyte characters. - (or set-case-syntax-set-multibyte - (set-case-syntax 255 "w" tbl))) ;latin small letter y with diaeresis - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-1)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: c2ee6895-edc3-40b2-9518-8c09f1d56c54 -;;; latin-1.el ends here diff --git a/lisp/international/latin-2.el b/lisp/international/latin-2.el deleted file mode 100644 index efb63200039..00000000000 --- a/lisp/international/latin-2.el +++ /dev/null @@ -1,113 +0,0 @@ -;;; latin-2.el --- set up case-conversion and syntax tables for ISO Latin-2 - -;; Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. - -;; Author: Michael Gschwind (mike@vlsivie.tuwien.ac.at) -;; Maintainer: FSF -;; Keywords: i18n -;; Was formerly named iso02-syn.el. - -;; 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 3, 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. - -;;; Commentary: - -;; Written by Michael Gschwind. See case-table.el for details. -;; Updated by Erik Naggum. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-2) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek - (set-case-syntax 162 "w" tbl) ;breve - (set-case-syntax-pair 163 179 tbl) ;latin letter l with stroke - (set-case-syntax 164 "w" tbl) ;currency sign - (set-case-syntax-pair 165 181 tbl) ;latin letter l with caron - (set-case-syntax-pair 166 182 tbl) ;latin letter s with acute - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 168 "w" tbl) ;diaeresis - (set-case-syntax-pair 169 185 tbl) ;latin letter s with caron - (set-case-syntax-pair 170 186 tbl) ;latin letter s with cedilla - (set-case-syntax-pair 171 187 tbl) ;latin letter t with caron - (set-case-syntax-pair 172 188 tbl) ;latin letter z with acute - (set-case-syntax 173 "w" tbl) ;soft hyphen - (set-case-syntax-pair 174 190 tbl) ;latin letter z with caron - (set-case-syntax-pair 175 191 tbl) ;latin letter z with dot above - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 178 "w" tbl) ;ogonek - (set-case-syntax 180 "w" tbl) ;acute accent - (set-case-syntax 183 "_" tbl) ;caron - (set-case-syntax 184 "w" tbl) ;cedilla - (set-case-syntax 189 "w" tbl) ;double acute accent - (set-case-syntax-pair 192 224 tbl) ;latin letter r with acute - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with breve - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter l with acute - (set-case-syntax-pair 198 230 tbl) ;latin letter c with acute - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter c with caron - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with ogonek - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter e with caron - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter d with caron - (set-case-syntax-pair 208 240 tbl) ;latin letter d with stroke - (set-case-syntax-pair 209 241 tbl) ;latin letter n with acute - (set-case-syntax-pair 210 242 tbl) ;latin letter n with caron - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with double acute - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter r with caron - (set-case-syntax-pair 217 249 tbl) ;latin letter u with ring above - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with double acute - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter y with acute - (set-case-syntax-pair 222 254 tbl) ;latin letter t with cedilla - (set-case-syntax 223 "w" tbl) ;latin small letter sharp s - (set-case-syntax 247 "_" tbl) ;division sign - (set-case-syntax 255 "w" tbl)) ;dot above - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-2)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: 2b9f9c30-1a63-4877-8a80-e95a5e4c57c9 -;;; latin-2.el ends here diff --git a/lisp/international/latin-3.el b/lisp/international/latin-3.el deleted file mode 100644 index 1539206771c..00000000000 --- a/lisp/international/latin-3.el +++ /dev/null @@ -1,111 +0,0 @@ -;;; latin-3.el --- set up case-conversion and syntax tables for ISO Latin-3 - -;; Copyright (C) 1988, 1997, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. - -;; Author: Marko Rahamaa -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Written by Marko Rauhamaa. See case-table.el for details. -;; Updated by Erik Naggum. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-3) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax-pair 161 177 tbl) ;latin letter h with stroke - (set-case-syntax 162 "w" tbl) ;breve - (set-case-syntax 163 "w" tbl) ;pound sign - (set-case-syntax 164 "w" tbl) ;currency sign - (set-case-syntax-pair 166 182 tbl) ;latin letter h with circumflex - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 168 "w" tbl) ;diaeresis - (set-case-syntax 169 "w" tbl) ;latin capital letter i with dot above - (set-case-syntax-pair 170 186 tbl) ;latin letter s with cedilla - (set-case-syntax-pair 171 187 tbl) ;latin letter g with breve - (set-case-syntax-pair 172 188 tbl) ;latin letter j with circumflex - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax-pair 175 191 tbl) ;latin letter z with dot above - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 178 "w" tbl) ;superscript digit two - (set-case-syntax 179 "w" tbl) ;superscript digit three - (set-case-syntax 180 "w" tbl) ;acute accent - (set-case-syntax 181 "_" tbl) ;micro sign - (set-case-syntax 183 "_" tbl) ;middle dot - (set-case-syntax 184 "w" tbl) ;cedilla - (set-case-syntax 185 "w" tbl) ;latin small letter i dotless - (set-case-syntax 189 "_" tbl) ;vulgar fraction one half - (set-case-syntax-pair 192 224 tbl) ;latin letter a with grave - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter c with dot above - (set-case-syntax-pair 198 230 tbl) ;latin letter c with circumflex - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter e with grave - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with circumflex - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter i with grave - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter i with diaeresis - (set-case-syntax-pair 209 241 tbl) ;latin letter n with tilde - (set-case-syntax-pair 210 242 tbl) ;latin letter o with grave - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter g with dot above - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter g with circumflex - (set-case-syntax-pair 217 249 tbl) ;latin letter u with grave - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter u with breve - (set-case-syntax-pair 222 254 tbl) ;latin letter s with circumflex - (set-case-syntax 223 "w" tbl) ;latin small letter sharp s - (set-case-syntax 247 "_" tbl) ;division sign - (set-case-syntax 255 "w" tbl)) ;dot above - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-3)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: 64d9d46d-fe0b-4a8e-9c28-ba7e20bbc552 -;;; latin-3.el ends here diff --git a/lisp/international/latin-4.el b/lisp/international/latin-4.el deleted file mode 100644 index e3b9b04e6fb..00000000000 --- a/lisp/international/latin-4.el +++ /dev/null @@ -1,111 +0,0 @@ -;;; latin-4.el --- set up case-conversion and syntax tables for ISO Latin-4 - -;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. - -;; Author: Erik Naggum -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Written by Erik Naggum. See case-table.el for details. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-4) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax-pair 161 177 tbl) ;latin letter a with ogonek - (set-case-syntax 162 "w" tbl) ;latin letter kra - (set-case-syntax-pair 163 179 tbl) ;latin letter r with cedilla - (set-case-syntax 164 "w" tbl) ;currency sign - (set-case-syntax-pair 165 181 tbl) ;latin letter i with tilde - (set-case-syntax-pair 166 182 tbl) ;latin letter l with cedilla - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 168 "w" tbl) ;diaeresis - (set-case-syntax-pair 169 185 tbl) ;latin letter s with caron - (set-case-syntax-pair 170 186 tbl) ;latin letter e with macron - (set-case-syntax-pair 171 187 tbl) ;latin letter g with cedilla - (set-case-syntax-pair 172 188 tbl) ;latin letter t with stroke - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax-pair 174 190 tbl) ;latin letter z with caron - (set-case-syntax 175 "_" tbl) ;overline - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 178 "w" tbl) ;ogonek - (set-case-syntax 180 "w" tbl) ;acute accent - (set-case-syntax 183 "w" tbl) ;caron - (set-case-syntax 184 "w" tbl) ;cedilla - (set-case-syntax-pair 189 191 tbl) ;eng - (set-case-syntax-pair 192 224 tbl) ;latin letter a with macron - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with tilde - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter a with ring above - (set-case-syntax-pair 198 230 tbl) ;latin letter ae - (set-case-syntax-pair 199 231 tbl) ;latin letter i with ogonek - (set-case-syntax-pair 200 232 tbl) ;latin letter c with caron - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with ogonek - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter e with dot above - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter i with macron - (set-case-syntax-pair 208 240 tbl) ;latin letter d with stroke - (set-case-syntax-pair 209 241 tbl) ;latin letter n with cedilla - (set-case-syntax-pair 210 242 tbl) ;latin letter o with macron - (set-case-syntax-pair 211 243 tbl) ;latin letter k with cedilla - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with tilde - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter o with stroke - (set-case-syntax-pair 217 249 tbl) ;latin letter u with ogonek - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter u with tilde - (set-case-syntax-pair 222 254 tbl) ;latin letter u with macron - (set-case-syntax 223 "w" tbl) ;latin letter sharp s - (set-case-syntax 247 "_" tbl) ;division sign - (set-case-syntax 255 "w" tbl)) ;dot above - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-4)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: c6b2558b-1943-4626-beb5-139630c8e352 -;;; latin-4.el ends here diff --git a/lisp/international/latin-5.el b/lisp/international/latin-5.el deleted file mode 100644 index 97b3e0076e4..00000000000 --- a/lisp/international/latin-5.el +++ /dev/null @@ -1,124 +0,0 @@ -;;; latin-5.el --- set up case-conversion and syntax tables for ISO latin-5 - -;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. - -;; Author: Erik Naggum -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Written by Erik Naggum. See case-table.el for details. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-9) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax 161 "." tbl) ;inverted exclamation mark - (set-case-syntax 162 "w" tbl) ;cent sign - (set-case-syntax 163 "w" tbl) ;pound sign - (set-case-syntax 164 "w" tbl) ;currency sign - (set-case-syntax 165 "w" tbl) ;yen sign - (set-case-syntax 166 "_" tbl) ;broken bar - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 168 "w" tbl) ;diaeresis - (set-case-syntax 169 "_" tbl) ;copyright sign - (set-case-syntax 170 "w" tbl) ;feminine ordinal indicator - (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark - (set-case-syntax 172 "_" tbl) ;not sign - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax 174 "_" tbl) ;registered sign - (set-case-syntax 175 "w" tbl) ;overline - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 177 "_" tbl) ;plus-minus sign - (set-case-syntax 178 "w" tbl) ;superscript digit two - (set-case-syntax 179 "w" tbl) ;superscript digit three - (set-case-syntax 180 "w" tbl) ;acute accent - (set-case-syntax 181 "_" tbl) ;micro sign - (set-case-syntax 182 "." tbl) ;pilcrow sign - (set-case-syntax 183 "_" tbl) ;middle dot - (set-case-syntax 184 "w" tbl) ;cedilla - (set-case-syntax 185 "w" tbl) ;superscript digit one - (set-case-syntax 186 "w" tbl) ;masculine ordinal indicator - (set-case-syntax 188 "_" tbl) ;vulgar fraction one quarter - (set-case-syntax 189 "_" tbl) ;vulgar fraction one half - (set-case-syntax 190 "_" tbl) ;vulgar fraction three quarters - (set-case-syntax 191 "." tbl) ;inverted question mark - (set-case-syntax-pair 192 224 tbl) ;latin letter a with grave - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with tilde - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter a with ring above - (set-case-syntax-pair 198 230 tbl) ;latin letter ae - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter e with grave - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax 202 "w" tbl) ;latin capital letter e with circumflex - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax 204 "w" tbl) ;latin capital letter i with grave - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax 207 "w" tbl) ;latin capital letter i with diaeresis - (set-case-syntax-pair 208 240 tbl) ;latin letter g with breve - (set-case-syntax-pair 209 241 tbl) ;latin letter n with tilde - (set-case-syntax-pair 210 242 tbl) ;latin letter o with grave - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with tilde - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter o with stroke - (set-case-syntax-pair 217 249 tbl) ;latin letter u with grave - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax 221 "w" tbl) ;latin capital letter i with dot above - (set-case-syntax-pair 222 254 tbl) ;latin letter s with cedilla - (set-case-syntax 223 "w" tbl) ;latin small letter sharp s - (set-case-syntax 234 "w" tbl) ;latin small letter e with ogonek - (set-case-syntax 236 "w" tbl) ;latin small letter e with dot above - (set-case-syntax 239 "w" tbl) ;latin small letter i with macron - (set-case-syntax 247 "_" tbl) ;division sign - (set-case-syntax 253 "w" tbl) ;latin small letter i dotless - (set-case-syntax 255 "w" tbl)) ;latin small letter y with diaeresis - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-5)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: 7f91a36a-39fb-4b5d-806f-f171abee71ad -;;; latin-5.el ends here diff --git a/lisp/international/latin-8.el b/lisp/international/latin-8.el deleted file mode 100644 index 0f41d70ece6..00000000000 --- a/lisp/international/latin-8.el +++ /dev/null @@ -1,118 +0,0 @@ -;;; latin-8.el --- set up case-conversion and syntax tables for ISO Latin-8 - -;; Copyright (C) 1988, 1997, 1999, 2001, 2002, 2003, 2004, 2005 -;; 2006, 2007 Free Software Foundation, Inc. - -;; Author: Dave Love -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Case-conversion and syntax tables for ISO-8859-14 (Latin-8), -;; adapted from latin-1.el. - -;; <URL:http://czyborra.com/charsets/iso8859.html>: -;; Latin8 adds the last Gaelic and Welsh (cy) letters to Latin1 to cover -;; all Celtic languages. - -;; The differences from Latin-1 are starred in the comments below. - -;; This is now ISO/IEC 8859-8:1999. As of 1999-05, there was a `final -;; proof' at <URL:http://www.indigo.ie/egt/standards/iso8859/8859-14-en.pdf>. -;; See also <URL:http://www.itscj.ipsj.or.jp/ISO-IR/199.pdf>. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-14) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax-pair 161 162 tbl) ;latin letter b with dot above * - (set-case-syntax 163 "w" tbl) ;pound sign - (set-case-syntax-pair 164 165 tbl) ;latin letter c with dot above * - (set-case-syntax-pair 166 171 tbl) ;latin letter d with dot above * - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax-pair 168 184 tbl) ;latin letter w with grave * - (set-case-syntax 169 "_" tbl) ;copyright sign - (set-case-syntax-pair 170 186 tbl) ;latin letter w with acute * - (set-case-syntax-pair 172 188 tbl) ;latin letter y with grave * - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax 174 "_" tbl) ;registered sign - (set-case-syntax-pair 175 255 tbl) ;latin letter y with diaeresis * - (set-case-syntax-pair 176 177 tbl) ;capital f with dot above * - (set-case-syntax-pair 178 179 tbl) ;latin letter g with dot above * - (set-case-syntax-pair 180 181 tbl) ;latin letter m with dot above * - (set-case-syntax 182 "w" tbl) ;pilcrow sign - (set-case-syntax-pair 183 185 tbl) ;latin letter p with dot above * - (set-case-syntax-pair 187 191 tbl) ;latin letter s with dot above * - (set-case-syntax-pair 189 190 tbl) ;latin letter w with diaeresis * - (set-case-syntax-pair 192 224 tbl) ;latin letter a with grave - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with tilde - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter a with ring above - (set-case-syntax-pair 198 230 tbl) ;latin letter ae - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter e with grave - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with circumflex - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter i with grave - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter i with diaeresis - (set-case-syntax-pair 208 240 tbl) ;latin letter w with circumflex * - (set-case-syntax-pair 209 241 tbl) ;latin letter n with tilde - (set-case-syntax-pair 210 242 tbl) ;latin letter o with grave - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with tilde - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax-pair 215 247 tbl) ;latin letter t with dot above * - (set-case-syntax-pair 216 248 tbl) ;latin letter o with stroke - (set-case-syntax-pair 217 249 tbl) ;latin letter u with grave - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter y with acute - (set-case-syntax-pair 222 254 tbl) ;latin letter y with circumflex * - (set-case-syntax 223 "w" tbl)) ;latin small letter sharp s - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-8)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: a916b4b5-4204-485b-8b57-8ab3a43a2e29 -;;; latin-8.el ends here diff --git a/lisp/international/latin-9.el b/lisp/international/latin-9.el deleted file mode 100644 index cb94d756cc2..00000000000 --- a/lisp/international/latin-9.el +++ /dev/null @@ -1,130 +0,0 @@ -;;; latin-9.el --- set up case-conversion and syntax tables for ISO Latin-9 - -;; Copyright (C) 1988, 1997, 1999, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 Free Software Foundation, Inc. - -;; Author: Dave Love -;; Maintainer: FSF -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Case-conversion and syntax tables for ISO-8859-15 (Latin-9), -;; adapted from latin-1.el. - -;; <URL:http://czyborra.com/charsets/iso8859.html> (edited to remove -;; non-ASCII characters!): -;; The new Latin9 nicknamed Latin0 aims to update Latin1 by -;; replacing less needed symbols with forgotten French and -;; Finnish letters and placing the U+20AC Euro sign in the cell =A4 of -;; the former international currency sign. - -;; The differences from Latin-1 are starred on the comments below. - -;; This is now ISO/IEC 8859-15:1999. As of 1999-05, there was a `final -;; proof' at <URL:http://www.indigo.ie/egt/standards/iso8859/8859-15-en.pdf>. -;; See also <URL:http://www.itscj.ipsj.or.jp/ISO-IR/203.pdf>. - -;;; Code: - -(require 'case-table) - -(let ((tbl (standard-case-table)) - (set-case-syntax-offset - (if set-case-syntax-set-multibyte - (- (make-char 'latin-iso8859-15) 128) - 0))) - ;; NBSP isn't semantically interchangeable with other whitespace chars, - ;; so it's more like punctation. - (set-case-syntax 160 "." tbl) ;no-break space - (set-case-syntax 161 "." tbl) ;inverted exclamation mark - (set-case-syntax 162 "w" tbl) ;cent sign - (set-case-syntax 163 "w" tbl) ;pound sign - (set-case-syntax 164 "w" tbl) ;euro sign * - (set-case-syntax 165 "w" tbl) ;yen sign - (set-case-syntax-pair 166 168 tbl) ;latin letter s with caron * - (set-case-syntax 167 "." tbl) ;section sign - (set-case-syntax 169 "_" tbl) ;copyright sign - (set-case-syntax 170 "w" tbl) ;feminine ordinal indicator - (set-case-syntax-delims 171 187 tbl) ;left-pointing double angle quotation mark - (set-case-syntax 172 "_" tbl) ;not sign - (set-case-syntax 173 "_" tbl) ;soft hyphen - (set-case-syntax 174 "_" tbl) ;registered sign - (set-case-syntax 175 "w" tbl) ;macron - (set-case-syntax 176 "_" tbl) ;degree sign - (set-case-syntax 177 "_" tbl) ;plus-minus sign - (set-case-syntax 178 "w" tbl) ;superscript two - (set-case-syntax 179 "w" tbl) ;superscript three - (set-case-syntax-pair 180 184 tbl) ;latin letter z with caron * - (set-case-syntax 181 "_" tbl) ;micro sign - (set-case-syntax 182 "." tbl) ;pilcrow sign - (set-case-syntax 183 "_" tbl) ;middle dot - (set-case-syntax 185 "w" tbl) ;superscript one - (set-case-syntax 186 "w" tbl) ;masculine ordinal indicator - (set-case-syntax-pair 188 189 tbl) ;latin ligature oe * - (set-case-syntax-pair 190 255 tbl) ;latin letter y with diaeresis * - (set-case-syntax 191 "." tbl) ;inverted question mark - (set-case-syntax-pair 192 224 tbl) ;latin letter a with grave - (set-case-syntax-pair 193 225 tbl) ;latin letter a with acute - (set-case-syntax-pair 194 226 tbl) ;latin letter a with circumflex - (set-case-syntax-pair 195 227 tbl) ;latin letter a with tilde - (set-case-syntax-pair 196 228 tbl) ;latin letter a with diaeresis - (set-case-syntax-pair 197 229 tbl) ;latin letter a with ring above - (set-case-syntax-pair 198 230 tbl) ;latin letter ae - (set-case-syntax-pair 199 231 tbl) ;latin letter c with cedilla - (set-case-syntax-pair 200 232 tbl) ;latin letter e with grave - (set-case-syntax-pair 201 233 tbl) ;latin letter e with acute - (set-case-syntax-pair 202 234 tbl) ;latin letter e with circumflex - (set-case-syntax-pair 203 235 tbl) ;latin letter e with diaeresis - (set-case-syntax-pair 204 236 tbl) ;latin letter i with grave - (set-case-syntax-pair 205 237 tbl) ;latin letter i with acute - (set-case-syntax-pair 206 238 tbl) ;latin letter i with circumflex - (set-case-syntax-pair 207 239 tbl) ;latin letter i with diaeresis - (set-case-syntax-pair 208 240 tbl) ;latin letter eth - (set-case-syntax-pair 209 241 tbl) ;latin letter n with tilde - (set-case-syntax-pair 210 242 tbl) ;latin letter o with grave - (set-case-syntax-pair 211 243 tbl) ;latin letter o with acute - (set-case-syntax-pair 212 244 tbl) ;latin letter o with circumflex - (set-case-syntax-pair 213 245 tbl) ;latin letter o with tilde - (set-case-syntax-pair 214 246 tbl) ;latin letter o with diaeresis - (set-case-syntax 215 "_" tbl) ;multiplication sign - (set-case-syntax-pair 216 248 tbl) ;latin letter o with stroke - (set-case-syntax-pair 217 249 tbl) ;latin letter u with grave - (set-case-syntax-pair 218 250 tbl) ;latin letter u with acute - (set-case-syntax-pair 219 251 tbl) ;latin letter u with circumflex - (set-case-syntax-pair 220 252 tbl) ;latin letter u with diaeresis - (set-case-syntax-pair 221 253 tbl) ;latin letter y with acute - (set-case-syntax-pair 222 254 tbl) ;latin letter thorn - (set-case-syntax 223 "w" tbl) ;latin small letter sharp s - (set-case-syntax 247 "_" tbl)) ;division sign - -;; When preloading this file, don't provide the feature. -;; Explicit `require' is used to load this for 8-bit characters. -(or set-case-syntax-set-multibyte - (provide 'latin-9)) - -;; Don't compile this file: src/Makefile.in instructs make-docfile -;; to look at the .el file! -;; Local Variables: -;; no-byte-compile: t -;; End: - -;; arch-tag: 84d442ad-d595-4016-8b84-ea92704fd235 -;;; latin-9.el ends here diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 9501d5f7cc0..d80b6ead81a 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -6,8 +6,11 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: mule, multilingual +;; Keywords: mule, i18n ;; This file is part of GNU Emacs. @@ -276,7 +279,7 @@ wrong, use this command again to toggle back to the right mode." (interactive (let ((default (and buffer-file-coding-system (not (eq (coding-system-type buffer-file-coding-system) - t)) + 'undecided)) buffer-file-coding-system))) (list (read-coding-system (if default @@ -343,15 +346,13 @@ This also sets the following values: (setq default-file-name-coding-system 'utf-8) (if (and default-enable-multibyte-characters (or (not coding-system) - (not (coding-system-get coding-system 'ascii-incompatible)))) + (coding-system-get coding-system 'ascii-compatible-p))) (setq default-file-name-coding-system coding-system))) ;; If coding-system is nil, honor that on MS-DOS as well, so ;; that they could reset the terminal coding system. (unless (and (eq window-system 'pc) coding-system) (setq default-terminal-coding-system coding-system)) - (if (or (not coding-system) - (not (coding-system-get coding-system 'ascii-incompatible))) - (setq default-keyboard-coding-system coding-system)) + (setq default-keyboard-coding-system coding-system) ;; Preserve eol-type from existing default-process-coding-systems. ;; On non-unix-like systems in particular, these may have been set ;; carefully by the user, or by the startup code, to deal with the @@ -385,33 +386,24 @@ system, and Emacs automatically sets the default to that coding system at startup. A coding system that requires automatic detection of text -encoding (e.g. undecided, unix) can't be preferred. - -See also `coding-category-list' and `coding-system-category'." ++encoding (e.g. undecided, unix) can't be preferred.." (interactive "zPrefer coding system: ") (if (not (and coding-system (coding-system-p coding-system))) (error "Invalid coding system `%s'" coding-system)) - (let ((coding-category (coding-system-category coding-system)) - (base (coding-system-base coding-system)) + (if (memq (coding-system-type coding-system) '(raw-text undecided)) + (error "Can't prefer the coding system `%s'" coding-system)) + (let ((base (coding-system-base coding-system)) (eol-type (coding-system-eol-type coding-system))) - (if (not coding-category) - ;; CODING-SYSTEM is no-conversion or undecided. - (error "Can't prefer the coding system `%s'" coding-system)) - (set coding-category (or base coding-system)) - ;; Changing the binding of a coding category requires this call. - (update-coding-systems-internal) - (or (eq coding-category (car coding-category-list)) - ;; We must change the order. - (set-coding-priority (list coding-category))) - (if (and base (interactive-p)) - (message "Highest priority is set to %s (base of %s)" - base coding-system)) + (set-coding-system-priority base) + (and (interactive-p) + (or (eq base coding-system) + (message "Highest priority is set to %s (base of %s)" + base coding-system))) ;; If they asked for specific EOL conversion, honor that. (if (memq eol-type '(0 1 2)) - (setq coding-system - (coding-system-change-eol-conversion base eol-type)) - (setq coding-system base)) - (set-default-coding-systems coding-system))) + (setq base + (coding-system-change-eol-conversion base eol-type))) + (set-default-coding-systems base))) (defvar sort-coding-systems-predicate nil "If non-nil, a predicate function to sort coding systems. @@ -435,9 +427,8 @@ If the variable `sort-coding-systems-predicate' (which see) is non-nil, it is used to sort CODINGS instead." (if sort-coding-systems-predicate (sort codings sort-coding-systems-predicate) - (let* ((from-categories (mapcar #'(lambda (x) (symbol-value x)) - coding-category-list)) - (most-preferred (car from-categories)) + (let* ((from-priority (coding-system-priority-list)) + (most-preferred (car from-priority)) (lang-preferred (get-language-info current-language-environment 'coding-system)) (func (function @@ -454,7 +445,7 @@ non-nil, it is used to sort CODINGS instead." (logior (lsh (if (eq base most-preferred) 1 0) 7) (lsh - (let ((mime (coding-system-get base 'mime-charset))) + (let ((mime (coding-system-get base :mime-charset))) ;; Prefer coding systems corresponding to a ;; MIME charset. (if mime @@ -470,28 +461,32 @@ non-nil, it is used to sort CODINGS instead." 0)) 5) (lsh (if (memq base lang-preferred) 1 0) 4) - (lsh (if (memq base from-categories) 1 0) 3) + (lsh (if (memq base from-priority) 1 0) 3) (lsh (if (string-match "-with-esc\\'" (symbol-name base)) 0 1) 2) - (if (eq (coding-system-type base) 2) - ;; For ISO based coding systems, prefer - ;; one that doesn't use escape sequences. - (let ((flags (coding-system-flags base))) - (if (or (consp (aref flags 0)) - (consp (aref flags 1)) - (consp (aref flags 2)) - (consp (aref flags 3))) - (if (or (aref flags 8) (aref flags 9)) - 0 - 1) - 2)) - 1))))))) + (if (eq (coding-system-type base) 'iso-2022) + (let ((category (coding-system-category base))) + ;; For ISO based coding systems, prefer + ;; one that doesn't use designation nor + ;; locking/single shifting. + (cond + ((or (eq category 'coding-category-iso-8-1) + (eq category 'coding-category-iso-8-2)) + 2) + ((or (eq category 'coding-category-iso-7-tight) + (eq category 'coding-category-iso-7)) + 1) + (t + 0))) + 1) + )))))) (sort codings (function (lambda (x y) (> (funcall func x) (funcall func y)))))))) (defun find-coding-systems-region (from to) "Return a list of proper coding systems to encode a text between FROM and TO. + If FROM is a string, find coding systems in that instead of the buffer. All coding systems in the list can safely encode any multibyte characters in the text. @@ -518,43 +513,38 @@ element `undecided'." (defun find-coding-systems-for-charsets (charsets) "Return a list of proper coding systems to encode characters of CHARSETS. CHARSETS is a list of character sets. -It actually checks at most the first 96 characters of each charset. -So, if a charset of dimension two is included in CHARSETS, the value may -contain a coding system that can't encode all characters of the charset." + +This only finds coding systems of type `charset', whose +`:charset-list' property includes all of CHARSETS (plus `ascii' for +ascii-compatible coding systems). It was used in older versions of +Emacs, but is unlikely to be what you really want now." + ;; Deal with aliases. + (setq charsets (mapcar (lambda (c) + (get-charset-property c :name)) + charsets)) (cond ((or (null charsets) (and (= (length charsets) 1) (eq 'ascii (car charsets)))) '(undecided)) ((or (memq 'eight-bit-control charsets) (memq 'eight-bit-graphic charsets)) - '(raw-text emacs-mule)) + '(raw-text utf-8-emacs)) (t - (let ((codings t) - charset l str) - (while (and codings charsets) - (setq charset (car charsets) charsets (cdr charsets)) - (unless (eq charset 'ascii) - (setq str (make-string 96 32)) - (if (= (charset-dimension charset) 1) - (if (= (charset-chars charset) 96) - (dotimes (i 96) - (aset str i (make-char charset (+ i 32)))) - (dotimes (i 94) - (aset str i (make-char charset (+ i 33))))) - (if (= (charset-chars charset) 96) - (dotimes (i 96) - (aset str i (make-char charset 32 (+ i 32)))) - (dotimes (i 94) - (aset str i (make-char charset 33 (+ i 33)))))) - (setq l (find-coding-systems-string str)) - (if (eq codings t) - (setq codings l) - (let ((ll nil)) - (dolist (elt codings) - (if (memq elt l) - (setq ll (cons elt ll)))) - (setq codings ll))))) - codings)))) + (let (codings) + (dolist (cs (coding-system-list t)) + (let ((cs-charsets (and (eq (coding-system-type cs) 'charset) + (coding-system-charset-list cs))) + (charsets charsets)) + (if (coding-system-get cs :ascii-compatible-p) + (add-to-list 'cs-charsets 'ascii)) + (if (catch 'ok + (when cs-charsets + (while charsets + (unless (memq (pop charsets) cs-charsets) + (throw 'ok nil))) + t)) + (push cs codings)))) + (nreverse codings))))) (defun find-multibyte-characters (from to &optional maxcount excludes) "Find multibyte characters in the region specified by FROM and TO. @@ -566,50 +556,42 @@ where COUNT is a number of characters, CHARs are the characters found from the character set. Optional 3rd arg MAXCOUNT limits how many CHARs are put in the above list. -Optional 4th arg EXCLUDES is a list of character sets to be ignored. - -For invalid characters, CHARs are actually strings." +Optional 4th arg EXCLUDES is a list of character sets to be ignored." (let ((chars nil) charset char) (if (stringp from) - (let ((idx 0)) - (while (setq idx (string-match "[^\000-\177]" from idx)) - (setq char (aref from idx) - charset (char-charset char)) - (if (eq charset 'unknown) - (setq char (match-string 0))) - (if (or (memq charset '(unknown - eight-bit-control eight-bit-graphic)) - (not (or (eq excludes t) (memq charset excludes)))) + (if (multibyte-string-p from) + (let ((idx 0)) + (while (setq idx (string-match "[^\000-\177]" from idx)) + (setq char (aref from idx) + charset (char-charset char)) + (unless (memq charset excludes) + (let ((slot (assq charset chars))) + (if slot + (if (not (memq char (nthcdr 2 slot))) + (let ((count (nth 1 slot))) + (setcar (cdr slot) (1+ count)) + (if (or (not maxcount) (< count maxcount)) + (nconc slot (list char))))) + (setq chars (cons (list charset 1 char) chars))))) + (setq idx (1+ idx))))) + (if enable-multibyte-characters + (save-excursion + (goto-char from) + (while (re-search-forward "[^\000-\177]" to t) + (setq char (preceding-char) + charset (char-charset char)) + (unless (memq charset excludes) (let ((slot (assq charset chars))) (if slot - (if (not (memq char (nthcdr 2 slot))) + (if (not (member char (nthcdr 2 slot))) (let ((count (nth 1 slot))) (setcar (cdr slot) (1+ count)) (if (or (not maxcount) (< count maxcount)) (nconc slot (list char))))) - (setq chars (cons (list charset 1 char) chars))))) - (setq idx (1+ idx)))) - (save-excursion - (goto-char from) - (while (re-search-forward "[^\000-\177]" to t) - (setq char (preceding-char) - charset (char-charset char)) - (if (eq charset 'unknown) - (setq char (match-string 0))) - (if (or (memq charset '(unknown eight-bit-control eight-bit-graphic)) - (not (or (eq excludes t) (memq charset excludes)))) - (let ((slot (assq charset chars))) - (if slot - (if (not (member char (nthcdr 2 slot))) - (let ((count (nth 1 slot))) - (setcar (cdr slot) (1+ count)) - (if (or (not maxcount) (< count maxcount)) - (nconc slot (list char))))) - (setq chars (cons (list charset 1 char) chars)))))))) + (setq chars (cons (list charset 1 char) chars))))))))) (nreverse chars))) - (defun search-unencodable-char (coding-system) "Search forward from point for a character that is not encodable. It asks which coding system to check. @@ -629,7 +611,6 @@ character found, or nil if all characters are encodable." (message "All following characters are encodable by %s" coding-system)) pos)) - (defvar last-coding-system-specified nil "Most recent coding system explicitly specified by the user when asked. This variable is set whenever Emacs asks the user which coding system @@ -680,8 +661,9 @@ DEFAULT is the coding system to use by default in the query." (let ((l codings) mime-charset) (while l - (setq mime-charset (coding-system-get (car l) 'mime-charset)) - (if (and mime-charset (coding-system-p mime-charset)) + (setq mime-charset (coding-system-get (car l) :mime-charset)) + (if (and mime-charset (coding-system-p mime-charset) + (coding-system-equal (car l) mime-charset)) (setcar l mime-charset)) (setq l (cdr l)))) @@ -733,7 +715,7 @@ DEFAULT is the coding system to use by default in the query." (let ((pos (point)) (fill-prefix " ")) (dolist (x (append rejected unsafe)) - (princ " ") (princ (car x))) + (princ " ") (princ x)) (insert "\n") (fill-region-as-paragraph pos (point))) (when rejected @@ -932,13 +914,11 @@ It is highly recommended to fix it before writing to a file." ;; If the most preferred coding system has the property mime-charset, ;; append it to the defaults. - (let ((tail coding-category-list) - preferred base) - (while (and tail (not (setq preferred (symbol-value (car tail))))) - (setq tail (cdr tail))) + (let ((preferred (coding-system-priority-list t)) + base) (and (coding-system-p preferred) (setq base (coding-system-base preferred)) - (coding-system-get preferred 'mime-charset) + (coding-system-get preferred :mime-charset) (not (rassq base default-coding-system)) (setq default-coding-system (append default-coding-system @@ -976,7 +956,8 @@ It is highly recommended to fix it before writing to a file." ;; Classify the defaults into safe, rejected, and unsafe. (dolist (elt default-coding-system) - (if (memq (cdr elt) codings) + (if (or (eq (car codings) 'undecided) + (memq (cdr elt) codings)) (if (and (functionp accept-default-p) (not (funcall accept-default-p (cdr elt)))) (push (car elt) rejected) @@ -1054,19 +1035,10 @@ it asks the user to select a proper coding system." ;; We should never use no-conversion for outgoing mail. (setq coding nil)) (if (fboundp select-safe-coding-system-function) - (setq coding - (funcall select-safe-coding-system-function - (point-min) (point-max) coding - (function (lambda (x) - (coding-system-get x 'mime-charset)))))) - (if coding - ;; Be sure to use LF for end-of-line. - (setq coding (coding-system-change-eol-conversion coding 'unix)) - ;; No coding system is decided. Usually this is the case that - ;; the current buffer contains only ASCII. So, we hope - ;; iso-8859-1 works. - (setq coding 'iso-8859-1-unix)) - coding)) + (funcall select-safe-coding-system-function + (point-min) (point-max) coding + (function (lambda (x) (coding-system-get x :mime-charset)))) + coding))) ;;; Language support stuff. @@ -1081,8 +1053,8 @@ Meaningful values for KEY include documentation value is documentation of what this language environment is meant for, and how to use it. - charset value is a list of the character sets used by this - language environment. + charset value is a list of the character sets mainly used + by this language environment. sample-text value is an expression which is evalled to generate a line of text written using characters appropriate for this language environment. @@ -1099,10 +1071,9 @@ Meaningful values for KEY include This is used to set up the coding system priority list when you switch to this language environment. nonascii-translation - value is a translation table to be set in the - variable `nonascii-translation-table' in this - language environment, or a character set from - which `nonascii-insert-offset' is calculated. + value is a charset of dimension one to use for + converting a unibyte character to multibyte + and vice versa. input-method value is a default input method for this language environment. features value is a list of features requested in this @@ -1118,10 +1089,6 @@ The following keys take effect only when multibyte characters are globally disabled, i.e. the value of `default-enable-multibyte-characters' is nil. - unibyte-syntax value is a library name to load to set - unibyte 8-bit character syntaxes for this - language environment. - unibyte-display value is a coding system to encode characters for the terminal. Characters in the range of 160 to 255 display not as octal escapes, @@ -1153,15 +1120,14 @@ see `language-info-alist'." (set-language-info-internal lang-env key info) (if (equal lang-env current-language-environment) (cond ((eq key 'coding-priority) - (set-language-environment-coding-systems lang-env)) + (set-language-environment-coding-systems lang-env) + (set-language-environment-charset lang-env)) ((eq key 'input-method) (set-language-environment-input-method lang-env)) ((eq key 'nonascii-translation) (set-language-environment-nonascii-translation lang-env)) ((eq key 'charset) (set-language-environment-charset lang-env)) - ((eq key 'overriding-fontspec) - (set-language-environment-fontset lang-env)) ((and (not default-enable-multibyte-characters) (or (eq key 'unibyte-syntax) (eq key 'unibyte-display))) (set-language-environment-unibyte lang-env))))) @@ -1321,7 +1287,7 @@ If nil, that means no input method is activated now.") (put 'current-input-method-title 'permanent-local t) (defcustom default-input-method nil - "*Default input method for multilingual text (a string). + "Default input method for multilingual text (a string). This is the input method activated automatically by the command `toggle-input-method' (\\[toggle-input-method])." :link '(custom-manual "(emacs)Input Methods") @@ -1530,6 +1496,8 @@ which marks the variable `default-input-method' as set for Custom buffers." (when interactive (customize-mark-as-set 'default-input-method))))))) +(eval-when-compile (autoload 'help-buffer "help-mode")) + (defun describe-input-method (input-method) "Describe input method INPUT-METHOD." (interactive @@ -1598,7 +1566,7 @@ or a string." ;; should react to these variables. (defcustom input-method-verbose-flag 'default - "*A flag to control extra guidance given by input methods. + "A flag to control extra guidance given by input methods. The value should be nil, t, `complex-only', or `default'. The extra guidance is done by showing list of available keys in echo @@ -1621,7 +1589,7 @@ See also the variable `input-method-highlight-flag'." :group 'mule) (defcustom input-method-highlight-flag t - "*If this flag is non-nil, input methods highlight partially-entered text. + "If this flag is non-nil, input methods highlight partially-entered text. For instance, while you are in the middle of a Quail input method sequence, the text inserted so far is temporarily underlined. The underlining goes away when you finish or abort the input method sequence. @@ -1629,20 +1597,26 @@ See also the variable `input-method-verbose-flag'." :type 'boolean :group 'mule) -(defvar input-method-activate-hook nil +(defcustom input-method-activate-hook nil "Normal hook run just after an input method is activated. The variable `current-input-method' keeps the input method name -just activated.") +just activated." + :type 'hook + :group 'mule) -(defvar input-method-inactivate-hook nil +(defcustom input-method-inactivate-hook nil "Normal hook run just after an input method is inactivated. The variable `current-input-method' still keeps the input method name -just inactivated.") +just inactivated." + :type 'hook + :group 'mule) -(defvar input-method-after-insert-chunk-hook nil - "Normal hook run just after an input method insert some chunk of text.") +(defcustom input-method-after-insert-chunk-hook nil + "Normal hook run just after an input method insert some chunk of text." + :type 'hook + :group 'mule) (defvar input-method-exit-on-first-char nil "This flag controls when an input method returns. @@ -1651,12 +1625,14 @@ that it may find a different translation if a user types another key. But, if this flag is non-nil, the input method returns as soon as the current key sequence gets long enough to have some valid translation.") -(defvar input-method-use-echo-area nil +(defcustom input-method-use-echo-area nil "This flag controls how an input method shows an intermediate key sequence. Usually, the input method inserts the intermediate key sequence, or candidate translations corresponding to the sequence, at point in the current buffer. -But, if this flag is non-nil, it displays them in echo area instead.") +But, if this flag is non-nil, it displays them in echo area instead." + :type 'hook + :group 'mule) (defvar input-method-exit-on-invalid-key nil "This flag controls the behavior of an input method on invalid key input. @@ -1666,21 +1642,25 @@ input method temporarily. After that key, the input method is re-enabled. But, if this flag is non-nil, the input method is never back on.") -(defvar set-language-environment-hook nil +(defcustom set-language-environment-hook nil "Normal hook run after some language environment is set. When you set some hook function here, that effect usually should not be inherited to another language environment. So, you had better set another function in `exit-language-environment-hook' (which see) to -cancel the effect.") +cancel the effect." + :type 'hook + :group 'mule) -(defvar exit-language-environment-hook nil +(defcustom exit-language-environment-hook nil "Normal hook run after exiting from some language environment. When this hook is run, the variable `current-language-environment' is still bound to the language environment being exited. This hook is mainly used for canceling the effect of -`set-language-environment-hook' (which see).") +`set-language-environment-hook' (which see)." + :type 'hook + :group 'mule) (put 'setup-specified-language-environment 'apropos-inhibit t) @@ -1730,64 +1710,26 @@ The default status is as follows: The default value for the command `set-terminal-coding-system' is nil. The default value for the command `set-keyboard-coding-system' is nil. - The order of priorities of coding categories and the coding system - bound to each category are as follows - coding category coding system - -------------------------------------------------- - coding-category-iso-8-1 iso-latin-1 - coding-category-iso-8-2 iso-latin-1 - coding-category-utf-8 mule-utf-8 - coding-category-utf-16-be mule-utf-16be-with-signature - coding-category-utf-16-le mule-utf-16le-with-signature - coding-category-iso-7-tight iso-2022-jp - coding-category-iso-7 iso-2022-7bit - coding-category-iso-7-else iso-2022-7bit-lock - coding-category-iso-8-else iso-2022-8bit-ss2 - coding-category-emacs-mule emacs-mule - coding-category-raw-text raw-text - coding-category-sjis japanese-shift-jis - coding-category-big5 chinese-big5 - coding-category-ccl nil - coding-category-binary no-conversion" + The order of priorities of coding systems are as follows: + utf-8 + iso-2022-7bit + iso-latin-1 + iso-2022-7bit-lock + iso-2022-8bit-ss2 + emacs-mule + raw-text" (interactive) ;; This function formerly set default-enable-multibyte-characters to t, ;; but that is incorrect. It should not alter the unibyte/multibyte choice. - (setq coding-category-iso-7-tight 'iso-2022-jp - coding-category-iso-7 'iso-2022-7bit - coding-category-iso-8-1 'iso-latin-1 - coding-category-iso-8-2 'iso-latin-1 - coding-category-iso-7-else 'iso-2022-7bit-lock - coding-category-iso-8-else 'iso-2022-8bit-ss2 - coding-category-emacs-mule 'emacs-mule - coding-category-raw-text 'raw-text - coding-category-sjis 'japanese-shift-jis - coding-category-big5 'chinese-big5 - coding-category-utf-16-be 'mule-utf-16be-with-signature - coding-category-utf-16-le 'mule-utf-16le-with-signature - coding-category-utf-8 'mule-utf-8 - coding-category-ccl nil - coding-category-binary 'no-conversion) - - (set-coding-priority - '(coding-category-iso-8-1 - coding-category-iso-8-2 - coding-category-utf-8 - coding-category-utf-16-be - coding-category-utf-16-le - coding-category-iso-7-tight - coding-category-iso-7 - coding-category-iso-7-else - coding-category-iso-8-else - coding-category-emacs-mule - coding-category-raw-text - coding-category-sjis - coding-category-big5 - coding-category-ccl - coding-category-binary)) - - ;; Changing the binding of a coding category requires this call. - (update-coding-systems-internal) + (set-coding-system-priority + 'utf-8 + 'iso-2022-7bit + 'iso-latin-1 + 'iso-2022-7bit-lock + 'iso-2022-8bit-ss2 + 'emacs-mule + 'raw-text) (set-default-coding-systems nil) (setq default-sendmail-coding-system 'iso-latin-1) @@ -1820,13 +1762,7 @@ The default status is as follows: ;; (set-terminal-coding-system-internal nil) ;; (set-keyboard-coding-system-internal nil) - (setq nonascii-translation-table nil - nonascii-insert-offset 0) - - ;; Don't invoke fontset-related functions if fontsets aren't - ;; supported in this build of Emacs. - (and (fboundp 'fontset-list) - (set-overriding-fontspec-internal nil))) + (set-unibyte-charset 'iso-8859-1)) (reset-language-environment) @@ -1884,7 +1820,6 @@ specifies the character set for the major languages of Western Europe." (set-language-environment-input-method language-name) (set-language-environment-nonascii-translation language-name) (set-language-environment-charset language-name) - (set-language-environment-fontset language-name) ;; Unibyte setups if necessary. (unless default-enable-multibyte-characters (set-language-environment-unibyte language-name)) @@ -1896,6 +1831,68 @@ specifies the character set for the major languages of Western Europe." (run-hooks 'set-language-environment-hook) (force-mode-line-update t)) +(define-widget 'charset 'symbol + "An Emacs charset." + :tag "Charset" + :complete-function (lambda () + (interactive) + (lisp-complete-symbol 'charsetp)) + :completion-ignore-case t + :value 'ascii + :validate (lambda (widget) + (unless (charsetp (widget-value widget)) + (widget-put widget :error (format "Invalid charset: %S" + (widget-value widget))) + widget)) + :prompt-history 'charset-history) + +(defcustom language-info-custom-alist nil + "Customizations of language environment parameters. +Value is an alist with elements like those of `language-info-alist'. +These are used to set values in `language-info-alist' which replace +the defaults. A typical use is replacing the default input method for +the environment. Use \\[describe-language-environment] to find the environment's settings. + +This option is intended for use at startup. Removing items doesn't +remove them from the language info until you next restart Emacs. + +Setting this variable directly does not take effect. See +`set-language-info-alist' for use in programs." + :group 'mule + :version "23.1" + :set (lambda (s v) + (custom-set-default s v) + ;; Can't do this before language environments are set up. + (when v + ;; modify language-info-alist + (dolist (elt v) + (set-language-info-alist (car elt) (cdr elt))) + ;; re-set the environment in case its parameters changed + (set-language-environment current-language-environment))) + :type `(alist + :key-type (string :tag "Language environment" + :completion-ignore-case t + :complete-function widget-string-complete + :completion-alist language-info-alist) + :value-type + (alist :key-type symbol + :options ((documentation string) + (charset (repeat charset)) + (sample-text string) + (setup-function function) + (exit-function function) + (coding-system (repeat coding-system)) + (coding-priority (repeat coding-system)) + (nonascii-translation charset) + (input-method + (string + :completion-ignore-case t + :complete-function widget-string-complete + :completion-alist input-method-alist + :prompt-history input-method-history)) + (features (repeat symbol)) + (unibyte-display coding-system))))) + (defun standard-display-european-internal () ;; Actually set up direct output of non-ASCII characters. (standard-display-8bit (if (eq window-system 'pc) 128 160) 255) @@ -1926,19 +1923,13 @@ specifies the character set for the major languages of Western Europe." (let* ((priority (get-language-info language-name 'coding-priority)) (default-coding (car priority)) (eol-type (coding-system-eol-type default-buffer-file-coding-system))) - (if priority - (let ((categories (mapcar 'coding-system-category priority))) - (set-default-coding-systems - (if (memq eol-type '(0 1 2 unix dos mac)) - (coding-system-change-eol-conversion default-coding eol-type) - default-coding)) - (setq default-sendmail-coding-system default-coding) - (set-coding-priority categories) - (while priority - (set (car categories) (car priority)) - (setq priority (cdr priority) categories (cdr categories))) - ;; Changing the binding of a coding category requires this call. - (update-coding-systems-internal))))) + (when priority + (set-default-coding-systems + (if (memq eol-type '(0 1 2 unix dos mac)) + (coding-system-change-eol-conversion default-coding eol-type) + default-coding)) + (setq default-sendmail-coding-system default-coding) + (apply 'set-coding-system-priority priority)))) (defun set-language-environment-input-method (language-name) "Do various input method setups for language environment LANGUAGE-NAME." @@ -1952,66 +1943,28 @@ specifies the character set for the major languages of Western Europe." (defun set-language-environment-nonascii-translation (language-name) "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME." - (let ((nonascii (get-language-info language-name 'nonascii-translation)) - (dos-table - (if (eq window-system 'pc) - (intern - (format "cp%d-nonascii-translation-table" dos-codepage))))) - (cond - ((char-table-p nonascii) - (setq nonascii-translation-table nonascii)) - ((and (eq window-system 'pc) (boundp dos-table)) - ;; DOS terminals' default is to use a special non-ASCII translation - ;; table as appropriate for the installed codepage. - (setq nonascii-translation-table (symbol-value dos-table))) - ((charsetp nonascii) - (setq nonascii-insert-offset (- (make-char nonascii) 128)))))) + ;; Note: For DOS, we assumed that the charset cpXXX is already + ;; defined. + (let ((nonascii (get-language-info language-name 'nonascii-translation))) + (if (eq window-system 'pc) + (setq nonascii (intern "cp%d" dos-codepage))) + (or (and (charsetp nonascii) + (get-charset-property nonascii :ascii-compatible-p)) + (setq nonascii 'iso-8859-1)) + (set-unibyte-charset nonascii))) (defun set-language-environment-charset (language-name) "Do various charset setups for language environment LANGUAGE-NAME." - (if (and utf-translate-cjk-mode - (not (eq utf-translate-cjk-lang-env language-name)) - (catch 'tag - (dolist (charset (get-language-info language-name 'charset)) - (if (memq charset utf-translate-cjk-charsets) - (throw 'tag t))) - nil)) - (utf-translate-cjk-load-tables))) - -(defun set-language-environment-fontset (language-name) - "Do various fontset setups for language environment LANGUAGE-NAME." - ;; Don't invoke fontset-related functions if fontsets aren't - ;; supported in this build of Emacs. - (if (fboundp 'fontset-list) - (set-overriding-fontspec-internal - (get-language-info language-name 'overriding-fontspec)))) + ;; Put higher priorities to such charsets that are supported by the + ;; coding systems of higher priorities in this environment. + (let ((charsets (get-language-info language-name 'charset))) + (dolist (coding (get-language-info language-name 'coding-priority)) + (setq charsets (append charsets (coding-system-charset-list coding)))) + (if charsets + (apply 'set-charset-priority charsets)))) (defun set-language-environment-unibyte (language-name) "Do various unibyte-mode setups for language environment LANGUAGE-NAME." - ;; Syntax and case table. - (let ((syntax (get-language-info language-name 'unibyte-syntax))) - (if syntax - (let ((set-case-syntax-set-multibyte nil)) - (load syntax nil t)) - ;; No information for syntax and case. Reset to the defaults. - (let ((syntax-table (standard-syntax-table)) - (standard-table (standard-case-table)) - (case-table (make-char-table 'case-table)) - (ch (if (eq window-system 'pc) 128 160))) - (while (< ch 256) - (modify-syntax-entry ch " " syntax-table) - (setq ch (1+ ch))) - (dotimes (i 128) - (aset case-table i (aref standard-table i))) - (set-char-table-extra-slot case-table 0 nil) - (set-char-table-extra-slot case-table 1 nil) - (set-char-table-extra-slot case-table 2 nil) - (set-standard-case-table case-table)) - (let ((list (buffer-list))) - (while list - (with-current-buffer (car list) - (set-case-table (standard-case-table))) - (setq list (cdr list)))))) (set-display-table-and-terminal-coding-system language-name)) (defsubst princ-list (&rest args) @@ -2067,26 +2020,29 @@ specifies the character set for the major languages of Western Europe." (insert "Sample text:\n " str "\n\n"))) (error nil)) (let ((input-method (get-language-info language-name 'input-method)) - (l (copy-sequence input-method-alist))) - (insert "Input methods") - (when input-method - (insert " (default " input-method ")") - (setq input-method (assoc input-method input-method-alist)) - (setq l (cons input-method (delete input-method l)))) - (insert ":\n") - (while l - (when (string= language-name (nth 1 (car l))) - (insert " " (car (car l))) - (search-backward (car (car l))) - (help-xref-button 0 'help-input-method (car (car l))) + (l (copy-sequence input-method-alist)) + (first t)) + (when (and input-method + (setq input-method (assoc input-method l))) + (insert "Input methods (default " (car input-method) ")\n") + (setq l (cons input-method (delete input-method l)) + first nil)) + (dolist (elt l) + (when (or (eq input-method elt) + (eq t (compare-strings language-name nil nil + (nth 1 elt) nil nil t))) + (when first + (insert "Input methods:\n") + (setq first nil)) + (insert " " (car elt)) + (search-backward (car elt)) + (help-xref-button 0 'help-input-method (car elt)) (goto-char (point-max)) (insert " (\"" - (if (stringp (nth 3 (car l))) - (nth 3 (car l)) - (car (nth 3 (car l)))) - "\" in mode line)\n")) - (setq l (cdr l))) - (insert "\n")) + (if (stringp (nth 3 elt)) (nth 3 elt) (car (nth 3 elt))) + "\" in mode line)\n"))) + (or first + (insert "\n"))) (insert "Character sets:\n") (let ((l (get-language-info language-name 'charset))) (if (null l) @@ -2113,8 +2069,7 @@ specifies the character set for the major languages of Western Europe." "' in mode line):\n\t" (coding-system-doc-string (car l)) "\n") - (let ((aliases (coding-system-get (car l) - 'alias-coding-systems))) + (let ((aliases (coding-system-aliases (car l)))) (when aliases (insert "\t(alias:") (while aliases @@ -2279,7 +2234,6 @@ specifies the character set for the major languages of Western Europe." ("so_ET" "UTF-8") ; Somali ("so" "Latin-1") ; Somali ("sq" . "Latin-1") ; Albanian - ("sr_YU@cyrillic" . "Cyrillic-ISO") ; Serbian (Cyrillic alphabet) ("sr" . "Latin-2") ; Serbian (Latin alphabet) ; ss Siswati ("st" . "Latin-1") ; Sesotho @@ -2314,12 +2268,14 @@ specifies the character set for the major languages of Western Europe." ; yo Yoruba ; za Zhuang ("zh_HK" . "Chinese-Big5") + ; zh_HK/BIG5-HKSCS \ ("zh_TW" . "Chinese-Big5") + ("zh_CN.GB2312" "Chinese-GB") + ("zh_CN.GBK" "Chinese-GBK") + ("zh_CN.GB18030" "Chinese-GB18030") + ("zh_CN.UTF-8" . "Chinese-GBK") ("zh_CN" . "Chinese-GB") ("zh" . "Chinese-GB") - ; zh_CN.GB18030/GB18030 \ - ; zh_CN.GBK/GBK \ - ; zh_HK/BIG5-HKSCS \ ("zu" . "Latin-1") ; Zulu ;; ISO standard locales @@ -2337,7 +2293,7 @@ specifies the character set for the major languages of Western Europe." ("sp" . "Cyrillic-ISO") ; Serbian (Cyrillic alphabet), e.g. X11R6.4 ("su" . "Latin-1") ; Finnish, e.g. Solaris 2.6 ("jp" . "Japanese") ; e.g. MS Windows - ("chs" . "Chinese-GB") ; MS Windows Chinese Simplified + ("chs" . "Chinese-GBK") ; MS Windows Chinese Simplified ("cht" . "Chinese-BIG5") ; MS Windows Chinese Traditional ("gbz" . "UTF-8") ; MS Windows Dari Persian ("div" . "UTF-8") ; MS Windows Divehi (Maldives) @@ -2390,14 +2346,13 @@ This language name is used if the locale is not listed in ("koi8-?r" . koi8-r) ("koi8-?u" . koi8-u) ("tcvn" . tcvn) + ("big5[-_]?hkscs" . big5-hkscs) ("big5" . big5) ("euc-?tw" . euc-tw) - ;; We don't support GBK, but as it is upper compatible with - ;; GB-2312, we setup the default coding system to gb2312. - ("gbk" . gb2312) - ;; We don't support BIG5-HKSCS, but as it is upper compatible with - ;; BIG5, we setup the default coding system to big5. - ("big5hkscs" . big5) + ("euc-?cn" .euc-cn) + ("gb2312" . gb2312) + ("gbk" . gbk) + ("gb18030" . gb18030) ("ja.*[._]euc" . japanese-iso-8bit) ("ja.*[._]jis7" . iso-2022-jp) ("ja.*[._]pck" . japanese-shift-jis) @@ -2524,6 +2479,7 @@ See also `locale-charset-language-names', `locale-language-names', ;; using the translation file that many systems have. (when locale-translation-file-name (with-temp-buffer + (set-buffer-multibyte nil) (insert-file-contents locale-translation-file-name) (when (re-search-forward (concat "^" (regexp-quote locale) ":?[ \t]+") nil t) @@ -2606,7 +2562,21 @@ See also `locale-charset-language-names', `locale-language-names', ;; Fixme: perhaps prefer-coding-system should set this too. ;; But it's not the time to do such a fundamental change. (setq default-sendmail-coding-system coding-system) - (setq locale-coding-system coding-system)))) + (setq locale-coding-system coding-system)) + + (when (get-language-info current-language-environment 'coding-priority) + (let ((codeset (locale-info 'codeset)) + (coding-system (car (coding-system-priority-list)))) + (when codeset + (let ((cs (coding-system-aliases coding-system)) + result) + (while (and cs (not result)) + (setq result + (locale-charset-match-p (symbol-name (pop cs)) + (locale-info 'codeset)))) + (unless result + (message "Warning: Default coding system `%s' disagrees with +system codeset `%s' for this locale." coding-system codeset)))))))) ;; On Windows, override locale-coding-system, ;; keyboard-coding-system with system codepage. Note: @@ -2659,48 +2629,112 @@ See also `locale-charset-language-names', `locale-language-names', 'a4)))))) nil) -;;; Charset property - -(defun get-charset-property (charset propname) - "Return the value of CHARSET's PROPNAME property. -This is the last value stored with - (put-charset-property CHARSET PROPNAME VALUE)." - (and (not (eq charset 'composition)) - (plist-get (charset-plist charset) propname))) - -(defun put-charset-property (charset propname value) - "Store CHARSETS's PROPNAME property with value VALUE. -It can be retrieved with `(get-charset-property CHARSET PROPNAME)'." - (or (eq charset 'composition) - (set-charset-plist charset - (plist-put (charset-plist charset) propname value)))) +;;; Character property + +;; Each element has the form (PROP . TABLE). +;; PROP is a symbol representing a character property. +;; TABLE is a char-table containing the property value for each character. +;; TABLE may be a name of file to load to build a char-table. +;; Don't modify this variable directly but use `define-char-code-property'. + +(defvar char-code-property-alist nil + "Alist of character property name vs char-table containing property values. +Internal use only.") + +(put 'char-code-property-table 'char-table-extra-slots 5) + +(defun define-char-code-property (name table &optional docstring) + "Define NAME as a character code property given by TABLE. +TABLE is a char-table of purpose `char-code-property-table' with +these extra slots: + 1st: NAME. + 2nd: Function to call to get a property value of a character. + It is called with three arguments CHAR, VAL, and TABLE, where + CHAR is a character, VAL is the value of (aref TABLE CHAR). + 3rd: Function to call to put a property value of a character. + It is called with the same arguments as above. + 4th: Function to call to get a description string of a property value. + It is called with one argument VALUE, a property value. + 5th: Data used by the above functions. + +TABLE may be a name of file to load to build a char-table. The +file should contain a call of `define-char-code-property' with a +char-table of the above format as the argument TABLE. + +TABLE may also be nil, in which case no property value is pre-assigned. + +Optional 3rd argment DOCSTRING is a documentation string of the property. -;;; Character code property -(put 'char-code-property-table 'char-table-extra-slots 0) +See also the documentation of `get-char-code-property' and +`put-char-code-property'." + (or (symbolp name) + (error "Not a symbol: %s" name)) + (if (char-table-p table) + (or (and (eq (char-table-subtype table) 'char-code-property-table) + (eq (char-table-extra-slot table 0) name)) + (error "Invalid char-table: %s" table)) + (or (stringp table) + (error "Not a char-table nor a file name: %s" table))) + (let ((slot (assq name char-code-property-alist))) + (if slot + (setcdr slot table) + (setq char-code-property-alist + (cons (cons name table) char-code-property-alist)))) + (put name 'char-code-property-documentation docstring)) (defvar char-code-property-table (make-char-table 'char-code-property-table) "Char-table containing a property list of each character code. - +This table is used for properties not listed in `char-code-property-alist'. See also the documentation of `get-char-code-property' and `put-char-code-property'.") (defun get-char-code-property (char propname) - "Return the value of CHAR's PROPNAME property in `char-code-property-table'." - (let ((plist (aref char-code-property-table char))) - (if (listp plist) - (car (cdr (memq propname plist)))))) + "Return the value of CHAR's PROPNAME property." + (let ((slot (assq propname char-code-property-alist))) + (if slot + (let (table value func) + (if (stringp (cdr slot)) + (load (cdr slot))) + (setq table (cdr slot) + value (aref table char) + func (char-table-extra-slot table 1)) + (if (functionp func) + (setq value (funcall func char value table))) + value) + (plist-get (aref char-code-property-table char) propname)))) (defun put-char-code-property (char propname value) - "Store CHAR's PROPNAME property with VALUE in `char-code-property-table'. + "Store CHAR's PROPNAME property with VALUE. It can be retrieved with `(get-char-code-property CHAR PROPNAME)'." - (let ((plist (aref char-code-property-table char))) - (if plist - (let ((slot (memq propname plist))) - (if slot - (setcar (cdr slot) value) - (nconc plist (list propname value)))) - (aset char-code-property-table char (list propname value))))) + (let ((slot (assq propname char-code-property-alist))) + (if slot + (let (table func) + (if (stringp (cdr slot)) + (load (cdr slot))) + (setq table (cdr slot) + func (char-table-extra-slot table 2)) + (if (functionp func) + (funcall func char value table) + (aset table char value))) + (let* ((plist (aref char-code-property-table char)) + (x (plist-put plist propname value))) + (or (eq x plist) + (aset char-code-property-table char x)))) + value)) + +(defun char-code-property-description (prop value) + "Return a description string of character property PROP's value VALUE. +If there's no description string for VALUE, return nil." + (let ((slot (assq prop char-code-property-alist))) + (if slot + (let (table func) + (if (stringp (cdr slot)) + (load (cdr slot))) + (setq table (cdr slot) + func (char-table-extra-slot table 3)) + (if (functionp func) + (funcall func value)))))) ;; Pretty description of encoded string @@ -2718,7 +2752,7 @@ It can be retrieved with `(get-char-code-property CHAR PROPNAME)'." "Return a pretty description of STR that is encoded by CODING-SYSTEM." (setq str (string-as-unibyte str)) (mapconcat - (if (and coding-system (eq (coding-system-type coding-system) 2)) + (if (and coding-system (eq (coding-system-type coding-system) 'iso-2022)) ;; Try to get a pretty description for ISO 2022 escape sequences. (function (lambda (x) (or (cdr (assq x iso-2022-control-alist)) (format "#x%02X" x)))) @@ -2728,15 +2762,11 @@ It can be retrieved with `(get-char-code-property CHAR PROPNAME)'." (defun encode-coding-char (char coding-system) "Encode CHAR by CODING-SYSTEM and return the resulting string. If CODING-SYSTEM can't safely encode CHAR, return nil." - (let ((str1 (string-as-multibyte (char-to-string char))) - (str2 (string-as-multibyte (make-string 2 char))) - (safe-chars (and coding-system - (coding-system-get coding-system 'safe-chars))) - (charset (char-charset char)) + (let ((str1 (string-as-multibyte (string char))) + (str2 (string-as-multibyte (string char char))) enc1 enc2 i1 i2) - (when (or (eq safe-chars t) - (eq charset 'ascii) - (and safe-chars (aref safe-chars char))) + (when (memq (coding-system-base coding-system) + (find-coding-systems-string str1)) ;; We must find the encoded string of CHAR. But, just encoding ;; CHAR will put extra control sequences (usually to designate ;; ASCII charset) at the tail if type of CODING is ISO 2022. @@ -2756,6 +2786,30 @@ If CODING-SYSTEM can't safely encode CHAR, return nil." ;; exclude. (substring enc2 0 i2)))) +;; Backwards compatibility. These might be better with :init-value t, +;; but that breaks loadup. +(define-minor-mode unify-8859-on-encoding-mode + "Obsolete." + :group 'mule + :global t) +(define-minor-mode unify-8859-on-decoding-mode + "Obsolete." + :group 'mule + :global t) + +(defvar nonascii-insert-offset 0 "This variable is obsolete.") +(defvar nonascii-translation-table nil "This variable is obsolete.") + +(defun ucs-insert (arg) + "Insert a character of the given Unicode code point. +Interactively, prompts for a hex string giving the code." + (interactive "sUnicode (hex): ") + (or (integerp arg) + (setq arg (string-to-number arg 16))) + (if (or (< arg 0) (> arg #x10FFFF)) + (error "Not a Unicode character code: 0x%X" arg)) + (insert arg)) + ;; arch-tag: b382c432-4b36-460e-bf4c-05efd0bb18dc ;;; mule-cmds.el ends here diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el index 0af65a90fb3..8b78952cd43 100644 --- a/lisp/international/mule-conf.el +++ b/lisp/international/mule-conf.el @@ -1,12 +1,15 @@ -;;; mule-conf.el --- configure multilingual environment -*- no-byte-compile: t -*- +;;; mule-conf.el --- configure multilingual environment ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, ;; 2004, 2005, 2006, 2007 Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: mule, multilingual, character set, coding system +;; Keywords: i18n, mule, multilingual, character set, coding system ;; This file is part of GNU Emacs. @@ -27,326 +30,1159 @@ ;;; Commentary: -;; Don't byte-compile this file. +;; This file defines the Emacs charsets and some basic coding systems. +;; Other coding systems are defined in the files in directory +;; lisp/language. ;;; Code: +;;; Remarks + +;; The ISO-IR registry is at http://www.itscj.ipsj.or.jp/ISO-IR/. +;; Standards docs equivalent to iso-2022 and iso-8859 are at +;; http://www.ecma.ch/. + +;; FWIW, http://www.microsoft.com/globaldev/ lists the following for +;; MS Windows, which are presumably the only charsets we really need +;; to worry about on such systems: +;; `OEM codepages': 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866 +;; `Windows codepages': 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, +;; 1258, 874, 932, 936, 949, 950 + ;;; Definitions of character sets. -;; Basic (official) character sets. These character sets are treated -;; efficiently with respect to buffer memory. - -;; Syntax: -;; (define-charset CHARSET-ID CHARSET -;; [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE -;; SHORT-NAME LONG-NAME DESCRIPTION ]) -;; ASCII charset is defined in src/charset.c as below. -;; (define-charset 0 ascii -;; [1 94 1 0 ?B 0 "ASCII" "ASCII" "ASCII (ISO646 IRV)"]) - -;; 1-byte charsets. Valid range of CHARSET-ID is 128..143. - -;; CHARSET-ID 128 is not used. - -(define-charset 129 'latin-iso8859-1 - [1 96 1 0 ?A 1 "RHP of Latin-1" "RHP of Latin-1 (ISO 8859-1): ISO-IR-100" - "Right-Hand Part of Latin Alphabet 1 (ISO/IEC 8859-1): ISO-IR-100."]) -(define-charset 130 'latin-iso8859-2 - [1 96 1 0 ?B 1 "RHP of Latin-2" "RHP of Latin-2 (ISO 8859-2): ISO-IR-101" - "Right-Hand Part of Latin Alphabet 2 (ISO/IEC 8859-2): ISO-IR-101."]) -(define-charset 131 'latin-iso8859-3 - [1 96 1 0 ?C 1 "RHP of Latin-3" "RHP of Latin-3 (ISO 8859-3): ISO-IR-109" - "Right-Hand Part of Latin Alphabet 3 (ISO/IEC 8859-3): ISO-IR-109."]) -(define-charset 132 'latin-iso8859-4 - [1 96 1 0 ?D 1 "RHP of Latin-4" "RHP of Latin-4 (ISO 8859-4): ISO-IR-110" - "Right-Hand Part of Latin Alphabet 4 (ISO/IEC 8859-4): ISO-IR-110."]) -(define-charset 133 'thai-tis620 - [1 96 1 0 ?T 1 "RHP of TIS620" "RHP of Thai (TIS620): ISO-IR-166" - "Right-Hand Part of TIS620.2533 (Thai): ISO-IR-166."]) -(define-charset 134 'greek-iso8859-7 - [1 96 1 0 ?F 1 "RHP of ISO8859/7" "RHP of Greek (ISO 8859-7): ISO-IR-126" - "Right-Hand Part of Latin/Greek Alphabet (ISO/IEC 8859-7): ISO-IR-126."]) -(define-charset 135 'arabic-iso8859-6 - [1 96 1 1 ?G 1 "RHP of ISO8859/6" "RHP of Arabic (ISO 8859-6): ISO-IR-127" - "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127."]) -(define-charset 136 'hebrew-iso8859-8 - [1 96 1 1 ?H 1 "RHP of ISO8859/8" "RHP of Hebrew (ISO 8859-8): ISO-IR-138" - "Right-Hand Part of Latin/Hebrew Alphabet (ISO/IEC 8859-8): ISO-IR-138."]) -(define-charset 137 'katakana-jisx0201 - [1 94 1 0 ?I 1 "JISX0201 Katakana" "Japanese Katakana (JISX0201.1976)" - "Katakana Part of JISX0201.1976."]) -(define-charset 138 'latin-jisx0201 - [1 94 1 0 ?J 0 "JISX0201 Roman" "Japanese Roman (JISX0201.1976)" - "Roman Part of JISX0201.1976."]) - -;; CHARSET-ID is not used 139. - -(define-charset 140 'cyrillic-iso8859-5 - [1 96 1 0 ?L 1 "RHP of ISO8859/5" "RHP of Cyrillic (ISO 8859-5): ISO-IR-144" - "Right-Hand Part of Latin/Cyrillic Alphabet (ISO/IEC 8859-5): ISO-IR-144."]) -(define-charset 141 'latin-iso8859-9 - [1 96 1 0 ?M 1 "RHP of Latin-5" "RHP of Latin-5 (ISO 8859-9): ISO-IR-148" - "Right-Hand Part of Latin Alphabet 5 (ISO/IEC 8859-9): ISO-IR-148."]) -(define-charset 142 'latin-iso8859-15 - [1 96 1 0 ?b 1 "RHP of Latin-9" "RHP of Latin-9 (ISO 8859-15): ISO-IR-203" - "Right-Hand Part of Latin Alphabet 9 (ISO/IEC 8859-15): ISO-IR-203."]) -(define-charset 143 'latin-iso8859-14 - [1 96 1 0 ?_ 1 "RHP of Latin-8" "RHP of Latin-8 (ISO 8859-14): ISO-IR-199" - "Right-Hand Part of Latin Alphabet 8 (ISO/IEC 8859-14): ISO-IR-199."]) - -;; 2-byte charsets. Valid range of CHARSET-ID is 144..153. - -(define-charset 144 'japanese-jisx0208-1978 - [2 94 2 0 ?@ 0 "JISX0208.1978" "JISX0208.1978 (Japanese): ISO-IR-42" - "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42."]) -(define-charset 145 'chinese-gb2312 - [2 94 2 0 ?A 0 "GB2312" "GB2312: ISO-IR-58" - "GB2312 Chinese simplified: ISO-IR-58."]) -(define-charset 146 'japanese-jisx0208 - [2 94 2 0 ?B 0 "JISX0208" "JISX0208.1983/1990 (Japanese): ISO-IR-87" - "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87."]) -(define-charset 147 'korean-ksc5601 - [2 94 2 0 ?C 0 "KSC5601" "KSC5601 (Korean): ISO-IR-149" - "KSC5601 Korean Hangul and Hanja: ISO-IR-149."]) -(define-charset 148 'japanese-jisx0212 - [2 94 2 0 ?D 0 "JISX0212" "JISX0212 (Japanese): ISO-IR-159" - "JISX0212 Japanese supplement: ISO-IR-159."]) -(define-charset 149 'chinese-cns11643-1 - [2 94 2 0 ?G 0 "CNS11643-1" "CNS11643-1 (Chinese traditional): ISO-IR-171" - "CNS11643 Plane 1 Chinese traditional: ISO-IR-171."]) -(define-charset 150 'chinese-cns11643-2 - [2 94 2 0 ?H 0 "CNS11643-2" "CNS11643-2 (Chinese traditional): ISO-IR-172" - "CNS11643 Plane 2 Chinese traditional: ISO-IR-172."]) -(define-charset 151 'japanese-jisx0213-1 - [2 94 2 0 ?O 0 "JISX0213-1" "JISX0213-1" "JISX0213 Plane 1 (Japanese)"]) -(define-charset 152 'chinese-big5-1 - [2 94 2 0 ?0 0 "Big5 (Level-1)" "Big5 (Level-1) A141-C67F" - "Frequently used part (A141-C67F) of Big5 (Chinese traditional)."]) -(define-charset 153 'chinese-big5-2 - [2 94 2 0 ?1 0 "Big5 (Level-2)" "Big5 (Level-2) C940-FEFE" - "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)."]) - -;; Additional (private) character sets. These character sets are -;; treated less space-efficiently in the buffer. - -;; Syntax: -;; (define-charset CHARSET-ID CHARSET -;; [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE -;; SHORT-NAME LONG-NAME DESCRIPTION ]) - -;; ISO-2022 allows a use of character sets not registered in ISO with -;; final characters `0' (0x30) through `?' (0x3F). Among them, Emacs -;; reserves `0' through `9' to support several private character sets. -;; The remaining final characters `:' through `?' are for users. - -;; 1-byte 1-column charsets. Valid range of CHARSET-ID is 160..223. - -(define-charset 160 'chinese-sisheng - [1 94 1 0 ?0 0 "SiSheng" "SiSheng (PinYin/ZhuYin)" - "Sisheng characters (vowels with tone marks) for Pinyin/Zhuyin."]) - -;; IPA characters for phonetic symbols. -(define-charset 161 'ipa - [1 96 1 0 ?0 1 "IPA" "IPA" - "IPA (International Phonetic Association) characters."]) - -;; Vietnamese VISCII. VISCII is 1-byte character set which contains -;; more than 96 characters. Since Emacs can't handle it as one -;; character set, it is divided into two: lower case letters and upper -;; case letters. -(define-charset 162 'vietnamese-viscii-lower - [1 96 1 0 ?1 1 "VISCII lower" "VISCII lower-case" - "Vietnamese VISCII1.1 lower-case characters."]) -(define-charset 163 'vietnamese-viscii-upper - [1 96 1 0 ?2 1 "VISCII upper" "VISCII upper-case" - "Vietnamese VISCII1.1 upper-case characters."]) +;; The charsets `ascii', `unicode' and `eight-bit' are already defined +;; in charset.c as below: +;; +;; (define-charset 'ascii +;; "" +;; :dimension 1 +;; :code-space [0 127] +;; :iso-final-char ?B +;; :ascii-compatible-p t +;; :emacs-mule-id 0 +;; :code-offset 0) +;; +;; (define-charset 'unicode +;; "" +;; :dimension 3 +;; :code-space [0 255 0 255 0 16] +;; :ascii-compatible-p t +;; :code-offset 0) +;; +;; (define-charset 'eight-bit +;; "" +;; :dimension 1 +;; :code-space [128 255] +;; :code-offset #x3FFF80) +;; +;; We now set :docstring, :short-name, and :long-name properties. + +(put-charset-property + 'ascii :docstring "ASCII (ISO646 IRV)") +(put-charset-property + 'ascii :short-name "ASCII") +(put-charset-property + 'ascii :long-name "ASCII (ISO646 IRV)") +(put-charset-property + 'iso-8859-1 :docstring "Latin-1 (ISO/IEC 8859-1)") +(put-charset-property + 'iso-8859-1 :short-name "Latin-1") +(put-charset-property + 'iso-8859-1 :long-name "Latin-1") +(put-charset-property + 'unicode :docstring "Unicode (ISO10646)") +(put-charset-property + 'unicode :short-name "Unicode") +(put-charset-property + 'unicode :long-name "Unicode (ISO10646)") +(put-charset-property 'eight-bit :docstring "Raw bytes 0-255") +(put-charset-property 'eight-bit :short-name "Raw bytes") + +(define-charset-alias 'ucs 'unicode) + +(define-charset 'emacs + "Full Emacs characters" + :ascii-compatible-p t + :code-space [ 0 255 0 255 0 63 ] + :code-offset 0 + :supplementary-p t) + +(define-charset 'latin-iso8859-1 + "Right-Hand Part of ISO/IEC 8859/1 (Latin-1): ISO-IR-100" + :short-name "RHP of Latin-1" + :long-name "RHP of ISO/IEC 8859/1 (Latin-1): ISO-IR-100" + :iso-final-char ?A + :emacs-mule-id 129 + :code-space [32 127] + :code-offset 160) + +;; Name perhaps not ideal, but is XEmacs-compatible. +(define-charset 'control-1 + "8-bit control code (0x80..0x9F)" + :short-name "8-bit control code" + :code-space [128 159] + :code-offset 128) + +(define-charset 'eight-bit-control + "Raw bytes in the range 0x80..0x9F (usually produced from invalid encodings)" + :short-name "Raw bytes 0x80..0x9F" + :code-space [128 159] + :code-offset #x3FFF80) ; see character.h + +(define-charset 'eight-bit-graphic + "Raw bytes in the range 0xA0..0xFF (usually produced from invalid encodings)" + :short-name "Raw bytes 0xA0..0xFF" + :code-space [160 255] + :code-offset #x3FFFA0) ; see character.h + +(defmacro define-iso-single-byte-charset (symbol iso-symbol name nickname + iso-ir iso-final + emacs-mule-id map) + `(progn + (define-charset ,symbol + ,name + :short-name ,nickname + :long-name ,name + :ascii-compatible-p t + :code-space [0 255] + :map ,map) + (if ,iso-symbol + (define-charset ,iso-symbol + (if ,iso-ir + (format "Right-Hand Part of %s (%s): ISO-IR-%d" + ,name ,nickname ,iso-ir) + (format "Right-Hand Part of %s (%s)" ,name ,nickname)) + :short-name (format "RHP of %s" ,name) + :long-name (format "RHP of %s (%s)" ,name ,nickname) + :iso-final-char ,iso-final + :emacs-mule-id ,emacs-mule-id + :code-space [32 127] + :subset (list ,symbol 160 255 -128))))) + +(define-iso-single-byte-charset 'iso-8859-2 'latin-iso8859-2 + "ISO/IEC 8859/2" "Latin-2" 101 ?B 130 "8859-2") + +(define-iso-single-byte-charset 'iso-8859-3 'latin-iso8859-3 + "ISO/IEC 8859/3" "Latin-3" 109 ?C 131 "8859-3") + +(define-iso-single-byte-charset 'iso-8859-4 'latin-iso8859-4 + "ISO/IEC 8859/4" "Latin-4" 110 ?D 132 "8859-4") + +(define-iso-single-byte-charset 'iso-8859-5 'cyrillic-iso8859-5 + "ISO/IEC 8859/5" "Latin/Cyrillic" 144 ?L 140 "8859-5") + +(define-iso-single-byte-charset 'iso-8859-6 'arabic-iso8859-6 + "ISO/IEC 8859/6" "Latin/Arabic" 127 ?G 135 "8859-6") + +(define-iso-single-byte-charset 'iso-8859-7 'greek-iso8859-7 + "ISO/IEC 8859/7" "Latin/Greek" 126 ?F 134 "8859-7") + +(define-iso-single-byte-charset 'iso-8859-8 'hebrew-iso8859-8 + "ISO/IEC 8859/8" "Latin/Hebrew" 138 ?H 136 "8859-8") + +(define-iso-single-byte-charset 'iso-8859-9 'latin-iso8859-9 + "ISO/IEC 8859/9" "Latin-5" 148 ?M 141 "8859-9") + +(define-iso-single-byte-charset 'iso-8859-10 'latin-iso8859-10 + "ISO/IEC 8859/10" "Latin-6" 157 ?V nil "8859-10") + +;; http://www.nectec.or.th/it-standards/iso8859-11/ +;; http://www.cwi.nl/~dik/english/codes/8859.html says this is tis-620 +;; plus nbsp +(define-iso-single-byte-charset 'iso-8859-11 'thai-iso8859-11 + "ISO/IEC 8859/11" "Latin/Thai" 166 ?T nil "8859-11") + +;; 8859-12 doesn't (yet?) exist. + +(define-iso-single-byte-charset 'iso-8859-13 'latin-iso8859-13 + "ISO/IEC 8859/13" "Latin-7" 179 ?Y nil "8859-13") + +(define-iso-single-byte-charset 'iso-8859-14 'latin-iso8859-14 + "ISO/IEC 8859/14" "Latin-8" 199 ?_ 143 "8859-14") + +(define-iso-single-byte-charset 'iso-8859-15 'latin-iso8859-15 + "ISO/IEC 8859/15" "Latin-9" 203 ?b 142 "8859-15") + +(define-iso-single-byte-charset 'iso-8859-16 'latin-iso8859-16 + "ISO/IEC 8859/16" "Latin-10" 226 ?f nil "8859-16") + +;; No point in keeping it around. +(fmakunbound 'define-iso-single-byte-charset) + +;; Can this be shared with 8859-11? +;; N.b. not all of these are defined unicodes. +(define-charset 'thai-tis620 + "TIS620.2533" + :short-name "TIS620.2533" + :iso-final-char ?T + :emacs-mule-id 133 + :code-space [32 127] + :code-offset #x0E00) + +;; Fixme: doc for this, c.f. above +(define-charset 'tis620-2533 + "TIS620.2533" + :short-name "TIS620.2533" + :ascii-compatible-p t + :code-space [0 255] + :superset '(ascii eight-bit-control (thai-tis620 . 128))) + +(define-charset 'jisx0201 + "JISX0201" + :short-name "JISX0201" + :code-space [0 #xDF] + :map "JISX0201") + +(define-charset 'latin-jisx0201 + "Roman Part of JISX0201.1976" + :short-name "JISX0201 Roman" + :long-name "Japanese Roman (JISX0201.1976)" + :iso-final-char ?J + :emacs-mule-id 138 + :code-space [33 126] + :subset '(jisx0201 33 126 0)) + +(define-charset 'katakana-jisx0201 + "Katakana Part of JISX0201.1976" + :short-name "JISX0201 Katakana" + :long-name "Japanese Katakana (JISX0201.1976)" + :iso-final-char ?I + :emacs-mule-id 137 + :code-space [33 126] + :subset '(jisx0201 161 254 -128)) + +(define-charset 'chinese-gb2312 + "GB2312 Chinese simplified: ISO-IR-58" + :short-name "GB2312" + :long-name "GB2312: ISO-IR-58" + :iso-final-char ?A + :emacs-mule-id 145 + :code-space [33 126 33 126] + :code-offset #x110000 + :unify-map "GB2312") + +(define-charset 'chinese-gbk + "GBK Chinese simplified." + :short-name "GBK" + :code-space [#x40 #xFE #x81 #xFE] + :code-offset #x160000 + :unify-map "GBK") +(define-charset-alias 'cp936 'chinese-gbk) +(define-charset-alias 'windows-936 'chinese-gbk) + +(define-charset 'chinese-cns11643-1 + "CNS11643 Plane 1 Chinese traditional: ISO-IR-171" + :short-name "CNS11643-1" + :long-name "CNS11643-1 (Chinese traditional): ISO-IR-171" + :iso-final-char ?G + :emacs-mule-id 149 + :code-space [33 126 33 126] + :code-offset #x114000 + :unify-map "CNS-1") + +(define-charset 'chinese-cns11643-2 + "CNS11643 Plane 2 Chinese traditional: ISO-IR-172" + :short-name "CNS11643-2" + :long-name "CNS11643-2 (Chinese traditional): ISO-IR-172" + :iso-final-char ?H + :emacs-mule-id 150 + :code-space [33 126 33 126] + :code-offset #x118000 + :unify-map "CNS-2") + +(define-charset 'chinese-cns11643-3 + "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183" + :short-name "CNS11643-3" + :long-name "CNS11643-3 (Chinese traditional): ISO-IR-183" + :iso-final-char ?I + :code-space [33 126 33 126] + :emacs-mule-id 246 + :code-offset #x11C000 + :unify-map "CNS-3") + +(define-charset 'chinese-cns11643-4 + "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184" + :short-name "CNS11643-4" + :long-name "CNS11643-4 (Chinese traditional): ISO-IR-184" + :iso-final-char ?J + :emacs-mule-id 247 + :code-space [33 126 33 126] + :code-offset #x120000 + :unify-map "CNS-4") + +(define-charset 'chinese-cns11643-5 + "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185" + :short-name "CNS11643-5" + :long-name "CNS11643-5 (Chinese traditional): ISO-IR-185" + :iso-final-char ?K + :emacs-mule-id 248 + :code-space [33 126 33 126] + :code-offset #x124000 + :unify-map "CNS-5") + +(define-charset 'chinese-cns11643-6 + "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186" + :short-name "CNS11643-6" + :long-name "CNS11643-6 (Chinese traditional): ISO-IR-186" + :iso-final-char ?L + :emacs-mule-id 249 + :code-space [33 126 33 126] + :code-offset #x128000 + :unify-map "CNS-6") + +(define-charset 'chinese-cns11643-7 + "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187" + :short-name "CNS11643-7" + :long-name "CNS11643-7 (Chinese traditional): ISO-IR-187" + :iso-final-char ?M + :emacs-mule-id 250 + :code-space [33 126 33 126] + :code-offset #x12C000 + :unify-map "CNS-7") + +(define-charset 'big5 + "Big5 (Chinese traditional)" + :short-name "Big5" + :code-space [#x40 #xFE #xA1 #xFE] + :code-offset #x130000 + :unify-map "BIG5") +;; Fixme: AKA cp950 according to +;; <URL:http://www.microsoft.com/globaldev/reference/WinCP.asp>. Is +;; that correct? + +(define-charset 'chinese-big5-1 + "Frequently used part (A141-C67E) of Big5 (Chinese traditional)" + :short-name "Big5 (Level-1)" + :long-name "Big5 (Level-1) A141-C67F" + :iso-final-char ?0 + :emacs-mule-id 152 + :code-space [#x21 #x7E #x21 #x7E] + :code-offset #x135000 + :unify-map "BIG5-1") + +(define-charset 'chinese-big5-2 + "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)" + :short-name "Big5 (Level-2)" + :long-name "Big5 (Level-2) C940-FEFE" + :iso-final-char ?1 + :emacs-mule-id 153 + :code-space [#x21 #x7E #x21 #x7E] + :code-offset #x137800 + :unify-map "BIG5-2") + +(define-charset 'japanese-jisx0208 + "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87" + :short-name "JISX0208" + :long-name "JISX0208.1983/1990 (Japanese): ISO-IR-87" + :iso-final-char ?B + :emacs-mule-id 146 + :code-space [33 126 33 126] + :code-offset #x140000 + :unify-map "JISX0208") + +(define-charset 'japanese-jisx0208-1978 + "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42" + :short-name "JISX0208.1978" + :long-name "JISX0208.1978 (JISC6226.1978): ISO-IR-42" + :iso-final-char ?@ + :emacs-mule-id 144 + :code-space [33 126 33 126] + :code-offset #x144000 + :unify-map "JISC6226") + +(define-charset 'japanese-jisx0212 + "JISX0212 Japanese supplement: ISO-IR-159" + :short-name "JISX0212" + :long-name "JISX0212 (Japanese): ISO-IR-159" + :iso-final-char ?D + :emacs-mule-id 148 + :code-space [33 126 33 126] + :code-offset #x148000 + :unify-map "JISX0212") + +;; Note that jisx0213 contains characters not in Unicode (3.2?). It's +;; arguable whether it should have a unify-map. +(define-charset 'japanese-jisx0213-1 + "JISX0213.2000 Plane 1 (Japanese)" + :short-name "JISX0213-1" + :iso-final-char ?O + :emacs-mule-id 151 + :unify-map "JISX2131" + :code-space [33 126 33 126] + :code-offset #x14C000) + +(define-charset 'japanese-jisx0213-2 + "JISX0213.2000 Plane 2 (Japanese)" + :short-name "JISX0213-2" + :iso-final-char ?P + :emacs-mule-id 254 + :unify-map "JISX2132" + :code-space [33 126 33 126] + :code-offset #x150000) + +(define-charset 'japanese-jisx0213-a + "JISX0213.2004 adds these characters to JISX0213.2000." + :short-name "JISX0213A" + :dimension 2 + :code-space [33 126 33 126] + :supplementary-p t + :map "JISX213A") + +(define-charset 'japanese-jisx0213.2004-1 + "JISX0213.2004 Plane1 (Japanese)" + :short-name "JISX0213.2004-1" + :dimension 2 + :code-space [33 126 33 126] + :iso-final-char ?Q + :superset '(japanese-jisx0213-a japanese-jisx0213-1)) + +(define-charset 'katakana-sjis + "Katakana part of Shift-JIS" + :dimension 1 + :code-space [#xA1 #xDF] + :subset '(jisx0201 #xA1 #xDF 0) + :supplementary-p t) + +(define-charset 'cp932-2-byte + "2-byte part of CP932" + :dimension 2 + :map "CP932-2BYTE" + :code-space [#x40 #xFC #x81 #xFC] + :supplementary-p t) + +(define-charset 'cp932 + "CP932 (Microsoft shift-jis)" + :code-space [#x00 #xFF #x00 #xFE] + :short-name "CP932" + :superset '(ascii katakana-sjis cp932-2-byte)) + +(define-charset 'korean-ksc5601 + "KSC5601 Korean Hangul and Hanja: ISO-IR-149" + :short-name "KSC5601" + :long-name "KSC5601 (Korean): ISO-IR-149" + :iso-final-char ?C + :emacs-mule-id 147 + :code-space [33 126 33 126] + :code-offset #x279f94 ; ... #x27c217 + :unify-map "KSC5601") + +(define-charset 'big5-hkscs + "Big5-HKSCS (Chinese traditional, Hong Kong supplement)" + :short-name "Big5" + :code-space [#x40 #xFE #xA1 #xFE] + :code-offset #x27c218 ; ... #x280839 + :unify-map "BIG5-HKSCS") + +;; Fixme: Korean cp949/UHC + +(define-charset 'chinese-sisheng + "SiSheng characters for PinYin/ZhuYin" + :short-name "SiSheng" + :long-name "SiSheng (PinYin/ZhuYin)" + :iso-final-char ?0 + :emacs-mule-id 160 + :code-space [33 126] + :unify-map "MULE-sisheng" + :code-offset #x200000) + +;; A subset of the 1989 version of IPA. It consists of the consonant +;; signs used in English, French, German and Italian, and all vowels +;; signs in the table. [says old MULE doc] +(define-charset 'ipa + "IPA (International Phonetic Association)" + :short-name "IPA" + :iso-final-char ?0 + :emacs-mule-id 161 + :unify-map "MULE-ipa" + :code-space [32 127] + :code-offset #x200080) + +(define-charset 'viscii + "VISCII1.1" + :short-name "VISCII" + :long-name "VISCII 1.1" + :code-space [0 255] + :map "VISCII") + +(define-charset 'vietnamese-viscii-lower + "VISCII1.1 lower-case" + :short-name "VISCII lower" + :long-name "VISCII lower-case" + :iso-final-char ?1 + :emacs-mule-id 162 + :code-space [32 127] + :code-offset #x200200 + :unify-map "MULE-lviscii") + +(define-charset 'vietnamese-viscii-upper + "VISCII1.1 upper-case" + :short-name "VISCII upper" + :long-name "VISCII upper-case" + :iso-final-char ?2 + :emacs-mule-id 163 + :code-space [32 127] + :code-offset #x200280 + :unify-map "MULE-uviscii") + +(define-charset 'vscii + "VSCII1.1 (TCVN-5712 VN1)" + :short-name "VSCII" + :code-space [0 255] + :map "VSCII") + +(define-charset-alias 'tcvn-5712 'vscii) + +;; Fixme: see note in tcvn.map about combining characters +(define-charset 'vscii-2 + "VSCII-2 (TCVN-5712 VN2)" + :code-space [0 255] + :map "VSCII-2") + +(define-charset 'koi8-r + "KOI8-R" + :short-name "KOI8-R" + :ascii-compatible-p t + :code-space [0 255] + :map "KOI8-R") + +(define-charset-alias 'koi8 'koi8-r) + +(define-charset 'alternativnyj + "ALTERNATIVNYJ" + :short-name "alternativnyj" + :ascii-compatible-p t + :code-space [0 255] + :map "ALTERNATIVNYJ") + +(define-charset 'cp866 + "CP866" + :short-name "cp866" + :ascii-compatible-p t + :code-space [0 255] + :map "IBM866") +(define-charset-alias 'ibm866 'cp866) + +(define-charset 'koi8-u + "KOI8-U" + :short-name "KOI8-U" + :ascii-compatible-p t + :code-space [0 255] + :map "KOI8-U") + +(define-charset 'koi8-t + "KOI8-T" + :short-name "KOI8-T" + :ascii-compatible-p t + :code-space [0 255] + :map "KOI8-T") + +(define-charset 'georgian-ps + "GEORGIAN-PS" + :short-name "GEORGIAN-PS" + :ascii-compatible-p t + :code-space [0 255] + :map "KA-PS") + +(define-charset 'georgian-academy + "GEORGIAN-ACADEMY" + :short-name "GEORGIAN-ACADEMY" + :ascii-compatible-p t + :code-space [0 255] + :map "KA-ACADEMY") + +(define-charset 'windows-1250 + "WINDOWS-1250 (Central Europe)" + :short-name "WINDOWS-1250" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1250") +(define-charset-alias 'cp1250 'windows-1250) + +(define-charset 'windows-1251 + "WINDOWS-1251 (Cyrillic)" + :short-name "WINDOWS-1251" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1251") +(define-charset-alias 'cp1251 'windows-1251) + +(define-charset 'windows-1252 + "WINDOWS-1252 (Latin I)" + :short-name "WINDOWS-1252" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1252") +(define-charset-alias 'cp1252 'windows-1252) + +(define-charset 'windows-1253 + "WINDOWS-1253 (Greek)" + :short-name "WINDOWS-1253" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1253") +(define-charset-alias 'cp1253 'windows-1253) + +(define-charset 'windows-1254 + "WINDOWS-1254 (Turkish)" + :short-name "WINDOWS-1254" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1254") +(define-charset-alias 'cp1254 'windows-1254) + +(define-charset 'windows-1255 + "WINDOWS-1255 (Hebrew)" + :short-name "WINDOWS-1255" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1255") +(define-charset-alias 'cp1255 'windows-1255) + +(define-charset 'windows-1256 + "WINDOWS-1256 (Arabic)" + :short-name "WINDOWS-1256" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1256") +(define-charset-alias 'cp1256 'windows-1256) + +(define-charset 'windows-1257 + "WINDOWS-1257 (Baltic)" + :short-name "WINDOWS-1257" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1257") +(define-charset-alias 'cp1257 'windows-1257) + +(define-charset 'windows-1258 + "WINDOWS-1258 (Viet Nam)" + :short-name "WINDOWS-1258" + :ascii-compatible-p t + :code-space [0 255] + :map "CP1258") +(define-charset-alias 'cp1258 'windows-1258) + +(define-charset 'next + "NEXT" + :short-name "NEXT" + :ascii-compatible-p t + :code-space [0 255] + :map "NEXTSTEP") + +(define-charset 'cp1125 + "CP1125" + :short-name "CP1125" + :code-space [0 255] + :ascii-compatible-p t + :map "CP1125") +(define-charset-alias 'ruscii 'cp1125) +;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua> +(define-charset-alias 'cp866u 'cp1125) + +;; Fixme: C.f. iconv, http://czyborra.com/charsets/codepages.html +;; shows this as not ASCII comptaible, with various graphics in +;; 0x01-0x1F. +(define-charset 'cp437 + "CP437 (MS-DOS United States, Australia, New Zealand, South Africa)" + :short-name "CP437" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM437") + +(define-charset 'cp720 + "CP720 (Arabic)" + :short-name "CP720" + :code-space [0 255] + :ascii-compatible-p t + :map "CP720") + +(define-charset 'cp737 + "CP737 (PC Greek)" + :short-name "CP737" + :code-space [0 255] + :ascii-compatible-p t + :map "CP737") + +(define-charset 'cp775 + "CP775 (PC Baltic)" + :short-name "CP775" + :code-space [0 255] + :ascii-compatible-p t + :map "CP775") + +(define-charset 'cp851 + "CP851 (Greek)" + :short-name "CP851" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM851") + +(define-charset 'cp852 + "CP852 (MS-DOS Latin-2)" + :short-name "CP852" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM852") + +(define-charset 'cp855 + "CP855 (IBM Cyrillic)" + :short-name "CP855" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM855") + +(define-charset 'cp857 + "CP857 (IBM Turkish)" + :short-name "CP857" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM857") + +(define-charset 'cp858 + "CP858 (Multilingual Latin I + Euro)" + :short-name "CP858" + :code-space [0 255] + :ascii-compatible-p t + :map "CP858") +(define-charset-alias 'cp00858 'cp858) ; IANA has IBM00858/CP00858 + +(define-charset 'cp860 + "CP860 (MS-DOS Portuguese)" + :short-name "CP860" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM860") + +(define-charset 'cp861 + "CP861 (MS-DOS Icelandic)" + :short-name "CP861" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM861") + +(define-charset 'cp862 + "CP862 (PC Hebrew)" + :short-name "CP862" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM862") + +(define-charset 'cp863 + "CP863 (MS-DOS Canadian French)" + :short-name "CP863" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM863") + +(define-charset 'cp864 + "CP864 (PC Arabic)" + :short-name "CP864" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM864") + +(define-charset 'cp865 + "CP865 (MS-DOS Nordic)" + :short-name "CP865" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM865") + +(define-charset 'cp869 + "CP869 (IBM Modern Greek)" + :short-name "CP869" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM869") + +(define-charset 'cp874 + "CP874 (IBM Thai)" + :short-name "CP874" + :code-space [0 255] + :ascii-compatible-p t + :map "IBM874") ;; For Arabic, we need three different types of character sets. ;; Digits are of direction left-to-right and of width 1-column. ;; Others are of direction right-to-left and of width 1-column or ;; 2-column. -(define-charset 164 'arabic-digit - [1 94 1 0 ?2 0 "Arabic digit" "Arabic digit" - "Arabic digits."]) -(define-charset 165 'arabic-1-column - [1 94 1 1 ?3 0 "Arabic 1-col" "Arabic 1-column" - "Arabic 1-column width glyphs."]) - -;; ASCII with right-to-left direction. -(define-charset 166 'ascii-right-to-left - [1 94 1 1 ?B 0 "rev ASCII" "ASCII with right-to-left direction" - "ASCII (left half of ISO 8859-1) with right-to-left direction."]) +(define-charset 'arabic-digit + "Arabic digit" + :short-name "Arabic digit" + :iso-final-char ?2 + :emacs-mule-id 164 + :code-space [34 42] + :code-offset #x0600) + +(define-charset 'arabic-1-column + "Arabic 1-column" + :short-name "Arabic 1-col" + :long-name "Arabic 1-column" + :iso-final-char ?3 + :emacs-mule-id 165 + :code-space [33 126] + :code-offset #x200100) + +(define-charset 'arabic-2-column + "Arabic 2-column" + :short-name "Arabic 2-col" + :long-name "Arabic 2-column" + :iso-final-char ?4 + :emacs-mule-id 224 + :code-space [33 126] + :code-offset #x200180) ;; Lao script. -;; ISO10646's 0x0E80..0x0EDF are mapped to 0x20..0x7F. -(define-charset 167 'lao - [1 94 1 0 ?1 0 "Lao" "Lao" - "Lao characters (U+0E80..U+0EDF)."]) - -;; CHARSET-IDs 168..223 are not used. - -;; 1-byte 2-column charsets. Valid range of CHARSET-ID is 224..239. +;; Codes 0x21..0x7E are mapped to Unicode U+0E81..U+0EDF. +;; Not all of them are defined unicodes. +(define-charset 'lao + "Lao characters (ISO10646 0E81..0EDF)" + :short-name "Lao" + :iso-final-char ?1 + :emacs-mule-id 167 + :code-space [33 126] + :code-offset #x0E81) + +(define-charset 'mule-lao + "Lao characters (ISO10646 0E81..0EDF)" + :short-name "Lao" + :code-space [0 255] + :superset '(ascii eight-bit-control (lao . 128))) -(define-charset 224 'arabic-2-column - [1 94 2 1 ?4 0 "Arabic 2-col" "Arabic 2-column" - "Arabic 2-column glyphs."]) ;; Indian scripts. Symbolic charset for data exchange. Glyphs are ;; not assigned. They are automatically converted to each Indian ;; script which IS-13194 supports. -(define-charset 225 'indian-is13194 - [1 94 2 0 ?5 1 "IS 13194" "Indian IS 13194" - "Generic Indian character set for data exchange with IS 13194."]) - -;; CHARSET-IDs 226..239 are not used. - -(define-charset 240 'indian-glyph - [2 96 1 0 ?4 0 "Indian glyph" "Indian glyph" - "Glyphs for Indian characters."]) -;; 240 used to be [2 94 1 0 ?6 0 "Indian 1-col" "Indian 1 Column"] - -;; 2-byte 1-column charsets. Valid range of CHARSET-ID is 240..244. +(define-charset 'indian-is13194 + "Generic Indian charset for data exchange with IS 13194" + :short-name "IS 13194" + :long-name "Indian IS 13194" + :iso-final-char ?5 + :emacs-mule-id 225 + :code-space [33 126] + :code-offset #x180000) + +(let ((code-offset #x180100)) + (dolist (script '(devanagari sanskrit bengali tamil telugu assamese + oriya kannada malayalam gujarati punjabi)) + (define-charset (intern (format "%s-cdac" script)) + (format "Glyphs of %s script for CDAC font. Subset of `indian-glyph'." + (capitalize (symbol-name script))) + :short-name (format "CDAC %s glyphs" (capitalize (symbol-name script))) + :code-space [0 255] + :code-offset code-offset) + (setq code-offset (+ code-offset #x100))) + + (dolist (script '(devanagari bengali punjabi gujarati + oriya tamil telugu kannada malayalam)) + (define-charset (intern (format "%s-akruti" script)) + (format "Glyphs of %s script for AKRUTI font. Subset of `indian-glyph'." + (capitalize (symbol-name script))) + :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name script))) + :code-space [0 255] + :code-offset code-offset) + (setq code-offset (+ code-offset #x100)))) + +(define-charset 'indian-glyph + "Glyphs for Indian characters." + :short-name "Indian glyph" + :iso-final-char ?4 + :emacs-mule-id 240 + :code-space [32 127 32 127] + :code-offset #x180100) ;; Actual Glyph for 1-column width. -(define-charset 241 'tibetan-1-column - [2 94 1 0 ?8 0 "Tibetan 1-col" "Tibetan 1 column" - "Tibetan 1-column glyphs."]) - -;; Subsets of Unicode. - -(define-charset 242 'mule-unicode-2500-33ff - [2 96 1 0 ?2 0 "Unicode subset 2" "Unicode subset (U+2500..U+33FF)" - "Unicode characters of the range U+2500..U+33FF."]) - -(define-charset 243 'mule-unicode-e000-ffff - [2 96 1 0 ?3 0 "Unicode subset 3" "Unicode subset (U+E000+FFFF)" - "Unicode characters of the range U+E000..U+FFFF."]) - -(define-charset 244 'mule-unicode-0100-24ff - [2 96 1 0 ?1 0 "Unicode subset" "Unicode subset (U+0100..U+24FF)" - "Unicode characters of the range U+0100..U+24FF."]) - -;; 2-byte 2-column charsets. Valid range of CHARSET-ID is 245..254. - -;; Ethiopic characters (Amharic and Tigrigna). -(define-charset 245 'ethiopic - [2 94 2 0 ?3 0 "Ethiopic" "Ethiopic characters" - "Ethiopic characters."]) - -;; Chinese CNS11643 Plane3 thru Plane7. Although these are official -;; character sets, the use is rare and don't have to be treated -;; space-efficiently in the buffer. -(define-charset 246 'chinese-cns11643-3 - [2 94 2 0 ?I 0 "CNS11643-3" "CNS11643-3 (Chinese traditional): ISO-IR-183" - "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183."]) -(define-charset 247 'chinese-cns11643-4 - [2 94 2 0 ?J 0 "CNS11643-4" "CNS11643-4 (Chinese traditional): ISO-IR-184" - "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184."]) -(define-charset 248 'chinese-cns11643-5 - [2 94 2 0 ?K 0 "CNS11643-5" "CNS11643-5 (Chinese traditional): ISO-IR-185" - "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185."]) -(define-charset 249 'chinese-cns11643-6 - [2 94 2 0 ?L 0 "CNS11643-6" "CNS11643-6 (Chinese traditional): ISO-IR-186" - "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186."]) -(define-charset 250 'chinese-cns11643-7 - [2 94 2 0 ?M 0 "CNS11643-7" "CNS11643-7 (Chinese traditional): ISO-IR-187" - "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187."]) +(define-charset 'indian-1-column + "Indian charset for 1-column width glyphs." + :short-name "Indian 1-col" + :long-name "Indian 1 Column" + :iso-final-char ?6 + :emacs-mule-id 251 + :code-space [33 126 33 126] + :code-offset #x184000) ;; Actual Glyph for 2-column width. -(define-charset 251 'indian-2-column - [2 94 2 0 ?5 0 "Indian 2-col" "Indian 2 Column" - "Indian character set for 2-column width glyphs."]) - ;; old indian-1-column characters will be translated to indian-2-column. -(declare-equiv-charset 2 94 ?6 'indian-2-column) +(define-charset 'indian-2-column + "Indian charset for 2-column width glyphs." + :short-name "Indian 2-col" + :long-name "Indian 2 Column" + :iso-final-char ?5 + :emacs-mule-id 251 + :code-space [33 126 33 126] + :code-offset #x184000) + +(define-charset 'tibetan + "Tibetan characters" + :iso-final-char ?7 + :short-name "Tibetan 2-col" + :long-name "Tibetan 2 column" + :iso-final-char ?7 + :emacs-mule-id 252 + :unify-map "MULE-tibetan" + :code-space [33 126 33 37] + :code-offset #x190000) + +(define-charset 'tibetan-1-column + "Tibetan 1 column glyph" + :short-name "Tibetan 1-col" + :long-name "Tibetan 1 column" + :iso-final-char ?8 + :emacs-mule-id 241 + :code-space [33 126 33 37] + :code-offset #x190000) -;; Tibetan script. -(define-charset 252 'tibetan - [2 94 2 0 ?7 0 "Tibetan 2-col" "Tibetan 2 column" - "Tibetan 2-column width glyphs."]) - -;; CHARSET-ID 253 is not used. - -;; JISX0213 Plane 2 -(define-charset 254 'japanese-jisx0213-2 - [2 94 2 0 ?P 0 "JISX0213-2" "JISX0213-2" - "JISX0213 Plane 2 (Japanese)."]) - -;; Tell C code charset ID's of several charsets. -(setup-special-charsets) +;; Subsets of Unicode. +(define-charset 'mule-unicode-2500-33ff + "Unicode characters of the range U+2500..U+33FF." + :short-name "Unicode subset 2" + :long-name "Unicode subset (U+2500..U+33FF)" + :iso-final-char ?2 + :emacs-mule-id 242 + :code-space [#x20 #x7f #x20 #x47] + :code-offset #x2500) + +(define-charset 'mule-unicode-e000-ffff + "Unicode characters of the range U+E000..U+FFFF." + :short-name "Unicode subset 3" + :long-name "Unicode subset (U+E000+FFFF)" + :iso-final-char ?3 + :emacs-mule-id 243 + :code-space [#x20 #x7F #x20 #x75] + :code-offset #xE000 + :max-code 30015) ; U+FFFF + +(define-charset 'mule-unicode-0100-24ff + "Unicode characters of the range U+0100..U+24FF." + :short-name "Unicode subset" + :long-name "Unicode subset (U+0100..U+24FF)" + :iso-final-char ?1 + :emacs-mule-id 244 + :code-space [#x20 #x7F #x20 #x7F] + :code-offset #x100) + +(define-charset 'unicode-bmp + "Unicode Basic Multilingual Plane (U+0000..U+FFFF)" + :short-name "Unicode BMP" + :code-space [0 255 0 255] + :code-offset 0) + +(define-charset 'unicode-smp + "Unicode Supplementary Multilingual Plane (U+10000..U+1FFFF)" + :short-name "Unicode SMP " + :code-space [0 255 0 255] + :code-offset #x10000) + +(define-charset 'unicode-sip + "Unicode Supplementary Ideographic Plane (U+20000..U+2FFFF)" + :short-name "Unicode SIP" + :code-space [0 255 0 255] + :code-offset #x20000) + +(define-charset 'unicode-ssp + "Unicode Supplementary Special-purpose Plane (U+E0000..U+EFFFF)" + :short-name "Unicode SSP" + :code-space [0 255 0 255] + :code-offset #xE0000) + +(define-charset 'ethiopic + "Ethiopic characters for Amharic and Tigrigna." + :short-name "Ethiopic" + :long-name "Ethiopic characters" + :iso-final-char ?3 + :emacs-mule-id 245 + :unify-map "MULE-ethiopic" + :code-space [33 126 33 126] + :code-offset #x1A0000) + +(define-charset 'mac-roman + "Mac Roman charset" + :short-name "Mac Roman" + :ascii-compatible-p t + :code-space [0 255] + :map "MACINTOSH") + +;; Fixme: modern EBCDIC variants, e.g. IBM00924? +(define-charset 'ebcdic-us + "US version of EBCDIC" + :short-name "EBCDIC-US" + :code-space [0 255] + :mime-charset 'ebcdic-us + :map "EBCDICUS") + +(define-charset 'ebcdic-uk + "UK version of EBCDIC" + :short-name "EBCDIC-UK" + :code-space [0 255] + :mime-charset 'ebcdic-uk + :map "EBCDICUK") + +(define-charset 'ibm1047 + ;; Says groff: + "IBM1047, `EBCDIC Latin 1/Open Systems' used by OS/390 Unix." + :short-name "IBM1047" + :code-space [0 255] + :mime-charset 'ibm1047 + :map "IBM1047") +(define-charset-alias 'cp1047 'ibm1047) + +(define-charset 'hp-roman8 + "Encoding used by Hewlet-Packard printer software" + :short-name "HP-ROMAN8" + :ascii-compatible-p t + :code-space [0 255] + :map "HP-ROMAN8") + +;; To make a coding system with this, a pre-write-conversion should +;; account for the commented-out multi-valued code points in +;; stdenc.map. +(define-charset 'adobe-standard-encoding + "Adobe `standard encoding' used in PostScript" + :short-name "ADOBE-STANDARD-ENCODING" + :code-space [#x20 255] + :map "stdenc") + +(define-charset 'symbol + "Adobe symbol encoding used in PostScript" + :short-name "ADOBE-SYMBOL" + :code-space [#x20 255] + :map "symbol") + +(define-charset 'ibm850 + "DOS codepage 850 (Latin-1)" + :short-name "IBM850" + :ascii-compatible-p t + :code-space [0 255] + :map "IBM850") +(define-charset-alias 'cp850 'ibm850) + +(define-charset 'mik + "Bulgarian DOS codepage" + :short-name "MIK" + :ascii-compatible-p t + :code-space [0 255] + :map "MIK") + +(define-charset 'ptcp154 + "`Paratype' codepage (Asian Cyrillic)" + :short-name "PT154" + :ascii-compatible-p t + :code-space [0 255] + :mime-charset 'pt154 + :map "PTCP154") +(define-charset-alias 'pt154 'ptcp154) +(define-charset-alias 'cp154 'ptcp154) + +(define-charset 'gb18030-2-byte + "GB18030 2-byte (0x814E..0xFEFE)" + :code-space [#x40 #xFE #x81 #xFE] + :supplementary-p t + :map "GB180302") + +(define-charset 'gb18030-4-byte-bmp + "GB18030 4-byte for BMP (0x81308130-0x8431A439)" + :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x81 #x84] + :supplementary-p t + :map "GB180304") + +(define-charset 'gb18030-4-byte-smp + "GB18030 4-byte for SMP (0x90308130-0xE3329A35)" + :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x90 #xE3] + :min-code '(#x9030 . #x8130) + :max-code '(#xE332 . #x9A35) + :supplementary-p t + :code-offset #x10000) + +(define-charset 'gb18030-4-byte-ext-1 + "GB18030 4-byte (0x8431A530-0x8F39FE39)" + :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #x84 #x8F] + :min-code '(#x8431 . #xA530) + :max-code '(#x8F39 . #xFE39) + :supplementary-p t + :code-offset #x200000 ; ... #x22484B + ) + +(define-charset 'gb18030-4-byte-ext-2 + "GB18030 4-byte (0xE3329A36-0xFE39FE39)" + :code-space [#x30 #x39 #x81 #xFE #x30 #x39 #xE3 #xFE] + :min-code '(#xE332 . #x9A36) + :max-code '(#xFE39 . #xFE39) + :supplementary-p t + :code-offset #x22484C ; ... #x279f93 + ) + +(define-charset 'gb18030 + "GB18030" + :code-space [#x00 #xFF #x00 #xFE #x00 #xFE #x00 #xFE] + :min-code 0 + :max-code '(#xFE39 . #xFE39) + :superset '(ascii gb18030-2-byte + gb18030-4-byte-bmp gb18030-4-byte-smp + gb18030-4-byte-ext-1 gb18030-4-byte-ext-2)) + +(define-charset 'chinese-cns11643-15 + "CNS11643 Plane 15 Chinese Traditional" + :short-name "CNS11643-15" + :long-name "CNS11643-15 (Chinese traditional)" + :code-space [33 126 33 126] + :code-offset #x27A000) + +(unify-charset 'chinese-gb2312) +(unify-charset 'chinese-gbk) +(unify-charset 'chinese-cns11643-1) +(unify-charset 'chinese-cns11643-2) +(unify-charset 'chinese-cns11643-3) +(unify-charset 'chinese-cns11643-4) +(unify-charset 'chinese-cns11643-5) +(unify-charset 'chinese-cns11643-6) +(unify-charset 'chinese-cns11643-7) +(unify-charset 'big5) +(unify-charset 'chinese-big5-1) +(unify-charset 'chinese-big5-2) +(unify-charset 'big5-hkscs) +(unify-charset 'korean-ksc5601) +(unify-charset 'vietnamese-viscii-lower) +(unify-charset 'vietnamese-viscii-upper) +(unify-charset 'chinese-sisheng) +(unify-charset 'ipa) +(unify-charset 'tibetan) +(unify-charset 'ethiopic) +(unify-charset 'japanese-jisx0208-1978) +(unify-charset 'japanese-jisx0208) +(unify-charset 'japanese-jisx0212) +(unify-charset 'japanese-jisx0213-1) +(unify-charset 'japanese-jisx0213-2) ;; These are tables for translating characters on decoding and ;; encoding. -(define-translation-table - 'oldjis-newjis-jisroman-ascii - (list (cons (make-char 'japanese-jisx0208-1978) - (make-char 'japanese-jisx0208)) - (cons (make-char 'latin-jisx0201) (make-char 'ascii)))) -(aset (get 'oldjis-newjis-jisroman-ascii 'translation-table) - (make-char 'latin-jisx0201 92) (make-char 'latin-jisx0201 92)) -(aset (get 'oldjis-newjis-jisroman-ascii 'translation-table) - (make-char 'latin-jisx0201 126) (make-char 'latin-jisx0201 126)) - -(setq standard-translation-table-for-decode - (get 'oldjis-newjis-jisroman-ascii 'translation-table)) +;; Fixme: these aren't used now -- should they be? +(setq standard-translation-table-for-decode nil) (setq standard-translation-table-for-encode nil) ;;; Make fundamental coding systems. -;; Miscellaneous coding systems which can't be made by -;; `make-coding-system'. - -(put 'no-conversion 'coding-system - (vector nil ?= "Do no conversion. - -When you visit a file with this coding, the file is read into a -unibyte buffer as is, thus each byte of a file is treated as a -character." - (list 'coding-category 'coding-category-binary - 'alias-coding-systems '(no-conversion) - 'safe-charsets t 'safe-chars t) - nil)) -(put 'no-conversion 'eol-type 0) -(put 'coding-category-binary 'coding-systems '(no-conversion)) -(setq coding-system-list '(no-conversion)) -(setq coding-system-alist '(("no-conversion"))) -(define-coding-system-internal 'no-conversion) +;; The coding system `no-conversion' and `undecided' are already +;; defined in coding.c as below: +;; +;; (define-coding-system 'no-conversion +;; "..." +;; :coding-type 'raw-text +;; ...) +;; (define-coding-system 'undecided +;; "..." +;; :coding-type 'undecided +;; ...) (define-coding-system-alias 'binary 'no-conversion) - -(put 'undecided 'coding-system - (vector t ?- "No conversion on encoding, automatic conversion on decoding" - (list 'alias-coding-systems '(undecided) - 'safe-charsets '(ascii)) - nil)) -(setq coding-system-list (cons 'undecided coding-system-list)) -(setq coding-system-alist (cons '("undecided") coding-system-alist)) -(put 'undecided 'eol-type - (make-subsidiary-coding-system 'undecided)) - (define-coding-system-alias 'unix 'undecided-unix) (define-coding-system-alias 'dos 'undecided-dos) (define-coding-system-alias 'mac 'undecided-mac) -;; Coding systems not specific to each language environment. - -(make-coding-system - 'emacs-mule 0 ?= - "Emacs internal format used in buffer and string. - -Encoding text with this coding system produces the actual byte -sequence of the text in buffers and strings. An exception is made for -eight-bit-control characters. Each of them is encoded into a single -byte." - nil - '((safe-charsets . t) - (composition . t))) - -(make-coding-system - 'raw-text 5 ?t - "Raw text, which means text contains random 8-bit codes. +(define-coding-system 'raw-text + "Raw text, which means text contains random 8-bit codes. Encoding text with this coding system produces the actual byte sequence of the text in buffers and strings. An exception is made for eight-bit-control characters. Each of them is encoded into a single @@ -355,72 +1191,173 @@ byte. When you visit a file with this coding, the file is read into a unibyte buffer as is (except for EOL format), thus each byte of a file is treated as a character." - nil - '((safe-charsets . t))) - -(make-coding-system - 'iso-2022-7bit 2 ?J - "ISO 2022 based 7-bit encoding using only G0" - '((ascii t) nil nil nil - short ascii-eol ascii-cntl seven) - '((safe-charsets . t) - (composition . t))) - -(make-coding-system - 'iso-2022-7bit-ss2 2 ?$ - "ISO 2022 based 7-bit encoding using SS2 for 96-charset" - '((ascii t) nil t nil - short ascii-eol ascii-cntl seven nil single-shift) - '((safe-charsets . t) - (composition . t))) - -(make-coding-system - 'iso-2022-7bit-lock 2 ?& - "ISO-2022 coding system using Locking-Shift for 96-charset" - '((ascii t) t nil nil - nil ascii-eol ascii-cntl seven locking-shift) - '((safe-charsets . t) - (composition . t))) + :coding-type 'raw-text + :for-unibyte t + :mnemonic ?t) + +(define-coding-system 'no-conversion-multibyte + "Like `no-conversion' but don't read a file into a unibyte buffer." + :coding-type 'raw-text + :eol-type 'unix + :mnemonic ?=) + +(define-coding-system 'iso-latin-1 + "ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1)." + :coding-type 'charset + :mnemonic ?1 + :charset-list '(iso-8859-1) + :mime-charset 'iso-8859-1) -(define-coding-system-alias 'iso-2022-int-1 'iso-2022-7bit-lock) +(define-coding-system-alias 'iso-8859-1 'iso-latin-1) +(define-coding-system-alias 'latin-1 'iso-latin-1) -(make-coding-system - 'iso-2022-7bit-lock-ss2 2 ?i - "Mixture of ISO-2022-JP, ISO-2022-KR, and ISO-2022-CN" - '((ascii t) - (nil korean-ksc5601 chinese-gb2312 chinese-cns11643-1 t) - (nil chinese-cns11643-2) - (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 - chinese-cns11643-6 chinese-cns11643-7) - short ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil - init-bol) - '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978 latin-jisx0201 - korean-ksc5601 chinese-gb2312 chinese-cns11643-1 - chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 - chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7) - (composition . t))) +;; Coding systems not specific to each language environment. -(define-coding-system-alias 'iso-2022-cjk 'iso-2022-7bit-lock-ss2) +(define-coding-system 'emacs-mule + "Emacs 21 internal format used in buffer and string." + :coding-type 'emacs-mule + :charset-list 'emacs-mule + :mnemonic ?M) + +(define-coding-system 'utf-8 + "UTF-8." + :coding-type 'utf-8 + :mnemonic ?U + :charset-list '(unicode) + :mime-charset 'utf-8) + +(define-coding-system-alias 'mule-utf-8 'utf-8) + +(define-coding-system 'utf-8-emacs + "Support for all Emacs characters (including non-Unicode characters)." + :coding-type 'utf-8 + :mnemonic ?U + :charset-list '(emacs)) + +(define-coding-system 'utf-16le + "UTF-16LE (little endian, no signature (BOM))." + :coding-type 'utf-16 + :mnemonic ?U + :charset-list '(unicode) + :endian 'little + :mime-text-unsuitable t + :mime-charset 'utf-16le) + +(define-coding-system 'utf-16be + "UTF-16BE (big endian, no signature (BOM))." + :coding-type 'utf-16 + :mnemonic ?U + :charset-list '(unicode) + :endian 'big + :mime-text-unsuitable t + :mime-charset 'utf-16be) + +(define-coding-system 'utf-16le-with-signature + "UTF-16 (little endian, with signature (BOM))." + :coding-type 'utf-16 + :mnemonic ?U + :charset-list '(unicode) + :bom t + :endian 'little + :mime-text-unsuitable t + :mime-charset 'utf-16) + +(define-coding-system 'utf-16be-with-signature + "UTF-16 (big endian, with signature)." + :coding-type 'utf-16 + :mnemonic ?U + :charset-list '(unicode) + :bom t + :endian 'big + :mime-text-unsuitable t + :mime-charset 'utf-16) + +(define-coding-system 'utf-16 + "UTF-16 (detect endian on decoding, use big endian on encoding with BOM)." + :coding-type 'utf-16 + :mnemonic ?U + :charset-list '(unicode) + :bom '(utf-16le-with-signature . utf-16be-with-signature) + :endian 'big + :mime-text-unsuitable t + :mime-charset 'utf-16) + +;; Backwards compatibility (old names, also used by Mule-UCS). We +;; prefer the MIME names. +(define-coding-system-alias 'utf-16-le 'utf-16le-with-signature) +(define-coding-system-alias 'utf-16-be 'utf-16be-with-signature) + + +(define-coding-system 'iso-2022-7bit + "ISO 2022 based 7-bit encoding using only G0." + :coding-type 'iso-2022 + :mnemonic ?J + :charset-list 'iso-2022 + :designation [(ascii t) nil nil nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation composition)) + +(define-coding-system 'iso-2022-7bit-ss2 + "ISO 2022 based 7-bit encoding using SS2 for 96-charset." + :coding-type 'iso-2022 + :mnemonic ?$ + :charset-list 'iso-2022 + :designation [(ascii 94) nil (nil 96) nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit + designation single-shift composition)) + +(define-coding-system 'iso-2022-7bit-lock + "ISO-2022 coding system using Locking-Shift for 96-charset." + :coding-type 'iso-2022 + :mnemonic ?& + :charset-list 'iso-2022 + :designation [(ascii 94) (nil 96) nil nil] + :flags '(ascii-at-eol ascii-at-cntl 7-bit + designation locking-shift composition)) + +(define-coding-system-alias 'iso-2022-int-1 'iso-2022-7bit-lock) -(make-coding-system - 'iso-2022-8bit-ss2 2 ?@ - "ISO 2022 based 8-bit encoding using SS2 for 96-charset" - '((ascii t) nil t nil - nil ascii-eol ascii-cntl nil nil single-shift) - '((safe-charsets . t) - (composition . t))) +(define-coding-system 'iso-2022-7bit-lock-ss2 + "Mixture of ISO-2022-JP, ISO-2022-KR, and ISO-2022-CN." + :coding-type 'iso-2022 + :mnemonic ?i + :charset-list '(ascii + japanese-jisx0208 japanese-jisx0208-1978 latin-jisx0201 + korean-ksc5601 + chinese-gb2312 + chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 + chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 + chinese-cns11643-7) + :designation [(ascii 94) + (nil korean-ksc5601 chinese-gb2312 chinese-cns11643-1 96) + (nil chinese-cns11643-2) + (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 + chinese-cns11643-6 chinese-cns11643-7)] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit locking-shift + single-shift init-bol)) -(make-coding-system - 'compound-text 2 ?x - "Compound text based generic encoding for decoding unknown messages. +(define-coding-system-alias 'iso-2022-cjk 'iso-2022-7bit-lock-ss2) -This coding system does not support extended segments." - '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t - nil ascii-eol ascii-cntl nil locking-shift single-shift nil nil nil - init-bol nil nil) - '((safe-charsets . t) - (mime-charset . x-ctext) - (composition . t))) +(define-coding-system 'iso-2022-8bit-ss2 + "ISO 2022 based 8-bit encoding using SS2 for 96-charset." + :coding-type 'iso-2022 + :mnemonic ?@ + :charset-list 'iso-2022 + :designation [(ascii 94) nil (nil 96) nil] + :flags '(ascii-at-eol ascii-at-cntl designation single-shift composition)) + +(define-coding-system 'compound-text + "Compound text based generic encoding for decoding unknown messages. + +This coding system does not support extended segments of CTEXT." + :coding-type 'iso-2022 + :mnemonic ?x + :charset-list 'iso-2022 + :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil] + :flags '(ascii-at-eol ascii-at-cntl long-form + designation locking-shift single-shift composition) + ;; Fixme: this isn't a valid MIME charset and has to be + ;; special-cased elsewhere -- fx + :mime-charset 'x-ctext) (define-coding-system-alias 'x-ctext 'compound-text) (define-coding-system-alias 'ctext 'compound-text) @@ -430,62 +1367,64 @@ This coding system does not support extended segments." ;; compound-text-with-extensions, see mule.el. Note that this should ;; not have a mime-charset property, to prevent it from showing up ;; close to the beginning of coding systems ordered by priority. -(make-coding-system - 'ctext-no-compositions 2 ?x +(define-coding-system 'ctext-no-compositions "Compound text based generic encoding for decoding unknown messages. Like `compound-text', but does not produce escape sequences for compositions." - '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t - nil ascii-eol ascii-cntl nil locking-shift single-shift nil nil nil - init-bol nil nil) - '((safe-charsets . t))) + :coding-type 'iso-2022 + :mnemonic ?x + :charset-list 'iso-2022 + :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil] + :flags '(ascii-at-eol ascii-at-cntl + designation locking-shift single-shift)) -(make-coding-system - 'compound-text-with-extensions 2 ?x - "Compound text encoding with extended segments. +(define-coding-system 'compound-text-with-extensions + "Compound text encoding with ICCCM Extended Segment extensions. See the variable `ctext-non-standard-encodings-alist' for the detail about how extended segments are handled. This coding system should be used only for X selections. It is inappropriate for decoding and encoding files, process I/O, etc." - '((ascii t) (latin-iso8859-1 katakana-jisx0201 t) t t - nil ascii-eol ascii-cntl) - '((post-read-conversion . ctext-post-read-conversion) - (pre-write-conversion . ctext-pre-write-conversion))) + :coding-type 'iso-2022 + :mnemonic ?x + :charset-list 'iso-2022 + :designation [(ascii 94) (latin-iso8859-1 katakana-jisx0201 96) nil nil] + :flags '(ascii-at-eol ascii-at-cntl long-form + designation locking-shift single-shift) + :post-read-conversion 'ctext-post-read-conversion + :pre-write-conversion 'ctext-pre-write-conversion) (define-coding-system-alias 'x-ctext-with-extensions 'compound-text-with-extensions) (define-coding-system-alias 'ctext-with-extensions 'compound-text-with-extensions) -(make-coding-system - 'iso-safe 2 ?- - "Encode ASCII asis and encode non-ASCII characters to `?'." - '(ascii nil nil nil - nil ascii-eol ascii-cntl nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii))) - -(define-coding-system-alias - 'us-ascii 'iso-safe) - -(make-coding-system - 'iso-latin-1 2 ?1 - "ISO 2022 based 8-bit encoding for Latin-1 (MIME:ISO-8859-1)." - '(ascii latin-iso8859-1 nil nil - nil nil nil nil nil nil nil nil nil nil nil t t) - '((safe-charsets ascii latin-iso8859-1) - (mime-charset . iso-8859-1))) - -(define-coding-system-alias 'iso-8859-1 'iso-latin-1) -(define-coding-system-alias 'latin-1 'iso-latin-1) - -;; Use iso-safe for terminal output if some other coding system is not +(define-coding-system 'us-ascii + "Encode ASCII as-is and encode non-ASCII characters to `?'." + :coding-type 'charset + :mnemonic ?- + :charset-list '(ascii) + :default-char ?? + :mime-charset 'us-ascii) + +(define-coding-system-alias 'iso-safe 'us-ascii) + +(define-coding-system 'utf-7 + "UTF-7 encoding of Unicode (RFC 2152)." + :coding-type 'utf-8 + :mnemonic ?U + :mime-charset 'utf-7 + :charset-list '(unicode) + :pre-write-conversion 'utf-7-pre-write-conversion + :post-read-conversion 'utf-7-post-read-conversion) + +;; Use us-ascii for terminal output if some other coding system is not ;; specified explicitly. -(set-safe-terminal-coding-system-internal 'iso-safe) +(set-safe-terminal-coding-system-internal 'us-ascii) ;; The other coding-systems are defined in each language specific -;; section of languages.el. +;; files under lisp/language. ;; Normally, set coding system to `undecided' before reading a file. ;; Compiled Emacs Lisp files (*.elc) are not decoded at all, @@ -493,8 +1432,13 @@ for decoding and encoding files, process I/O, etc." ;; Tar files are not decoded at all, but we treat them as raw bytes. (setq file-coding-system-alist - '(("\\.elc\\'" . (emacs-mule . emacs-mule)) + '(("\\.elc\\'" . utf-8-emacs) ("\\.utf\\(-8\\)?\\'" . utf-8) + ;; This is the defined default for XML documents. It may be + ;; overridden by a charset specification in the header. That + ;; should be grokked by the auto-coding mechanism, but rms + ;; vetoed that. -- fx + ("\\.xml\\'" . utf-8) ;; We use raw-text for reading loaddefs.el so that if it ;; happens to have DOS or Mac EOLs, they are converted to ;; newlines. This is required to make the special treatment @@ -514,42 +1458,20 @@ for decoding and encoding files, process I/O, etc." ;; values are set by the command `set-language-environment' for each ;; language environment. -(setq coding-category-emacs-mule 'emacs-mule - coding-category-sjis 'japanese-shift-jis - coding-category-iso-7 'iso-2022-7bit - coding-category-iso-7-tight 'iso-2022-jp - coding-category-iso-8-1 'iso-latin-1 - coding-category-iso-8-2 'iso-latin-1 - coding-category-iso-7-else 'iso-2022-7bit-lock - coding-category-iso-8-else 'iso-2022-8bit-ss2 - coding-category-ccl nil - coding-category-utf-8 'mule-utf-8 - coding-category-utf-16-be 'mule-utf-16be-with-signature - coding-category-utf-16-le 'mule-utf-16le-with-signature - coding-category-big5 'chinese-big5 - coding-category-raw-text 'raw-text - coding-category-binary 'no-conversion) - -(set-coding-priority - '(coding-category-iso-8-1 - coding-category-iso-8-2 - coding-category-utf-8 - coding-category-utf-16-be - coding-category-utf-16-le - coding-category-iso-7-tight - coding-category-iso-7 - coding-category-iso-7-else - coding-category-iso-8-else - coding-category-emacs-mule - coding-category-raw-text - coding-category-sjis - coding-category-big5 - coding-category-ccl - coding-category-binary - )) +(set-coding-system-priority + 'iso-latin-1 + 'utf-8 + 'iso-2022-7bit + ) ;;; Miscellaneous settings. + +;; Make all multibyte characters self-insert. +(set-char-table-range (nth 1 global-map) + (cons 128 (max-char)) + 'self-insert-command) + (aset latin-extra-code-table ?\221 t) (aset latin-extra-code-table ?\222 t) (aset latin-extra-code-table ?\223 t) @@ -557,7 +1479,19 @@ for decoding and encoding files, process I/O, etc." (aset latin-extra-code-table ?\225 t) (aset latin-extra-code-table ?\226 t) -(update-coding-systems-internal) +;; Move least specific charsets to end of priority list + +(apply #'set-charset-priority + (delq 'unicode (delq 'emacs (charset-priority-list)))) + +;; The old code-pages library is obsoleted by coding systems based on +;; the charsets defined in this file but might be required by user +;; code. +(provide 'code-pages) + +;; Local variables: +;; no-byte-compile: t +;; End: ;; arch-tag: 7d5fed55-b6df-42f6-8d3d-0011190551f5 ;;; mule-conf.el ends here diff --git a/lisp/international/mule-diag.el b/lisp/international/mule-diag.el index 21b0b3485f1..75bf45f0525 100644 --- a/lisp/international/mule-diag.el +++ b/lisp/international/mule-diag.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis, i18n @@ -35,8 +38,8 @@ ;;; General utility function -;; Print all arguments with single space separator in one line. (defun print-list (&rest args) + "Print all arguments with single space separator in one line." (while (cdr args) (when (car args) (princ (car args)) @@ -45,12 +48,6 @@ (princ (car args)) (princ "\n")) -;; Re-order the elements of charset-list. -(defun sort-charset-list () - (setq charset-list - (sort charset-list - (lambda (x y) (< (charset-id x) (charset-id y)))))) - ;;; CHARSET (define-button-type 'sort-listed-character-sets @@ -65,85 +62,9 @@ 'help-echo "mouse-2, RET: show table of characters for this character set") ;;;###autoload -(defvar non-iso-charset-alist - `((mac-roman - (ascii latin-iso8859-1 mule-unicode-2500-33ff - mule-unicode-0100-24ff mule-unicode-e000-ffff) - mac-roman-decoder - ((0 255))) - (viscii - (ascii vietnamese-viscii-lower vietnamese-viscii-upper) - viet-viscii-nonascii-translation-table - ((0 255))) - (vietnamese-tcvn - (ascii vietnamese-viscii-lower vietnamese-viscii-upper) - viet-tcvn-nonascii-translation-table - ((0 255))) - (koi8-r - (ascii cyrillic-iso8859-5) - cyrillic-koi8-r-nonascii-translation-table - ((32 255))) - (alternativnyj - (ascii cyrillic-iso8859-5) - cyrillic-alternativnyj-nonascii-translation-table - ((32 255))) - (koi8-u - (ascii cyrillic-iso8859-5 mule-unicode-0100-24ff) - cyrillic-koi8-u-nonascii-translation-table - ((32 255))) - (big5 - (ascii chinese-big5-1 chinese-big5-2) - decode-big5-char - ((32 127) - ((?\xA1 ?\xFE) . (?\x40 ?\x7E ?\xA1 ?\xFE)))) - (sjis - (ascii katakana-jisx0201 japanese-jisx0208) - decode-sjis-char - ((32 127 ?\xA1 ?\xDF) - ((?\x81 ?\x9F ?\xE0 ?\xEF) . (?\x40 ?\x7E ?\x80 ?\xFC))))) - "Alist of charset names vs the corresponding information. -This is mis-named for historical reasons. The charsets are actually -non-built-in ones. They correspond to Emacs coding systems, not Emacs -charsets, i.e. what Emacs can read (or write) by mapping to (or -from) Emacs internal charsets that typically correspond to a limited -set of ISO charsets. - -Each element has the following format: - (CHARSET CHARSET-LIST TRANSLATION-METHOD [ CODE-RANGE ]) - -CHARSET is the name (symbol) of the charset. - -CHARSET-LIST is a list of Emacs charsets into which characters of -CHARSET are mapped. - -TRANSLATION-METHOD is a translation table (symbol) to translate a -character code of CHARSET to the corresponding Emacs character -code. It can also be a function to call with one argument, a -character code in CHARSET. - -CODE-RANGE specifies the valid code ranges of CHARSET. -It is a list of RANGEs, where each RANGE is of the form: - (FROM1 TO1 FROM2 TO2 ...) -or - ((FROM1-1 TO1-1 FROM1-2 TO1-2 ...) . (FROM2-1 TO2-1 FROM2-2 TO2-2 ...)) -In the first form, valid codes are between FROM1 and TO1, or FROM2 and -TO2, or... -The second form is used for 2-byte codes. The car part is the ranges -of the first byte, and the cdr part is the ranges of the second byte.") - -;;;###autoload (defun list-character-sets (arg) "Display a list of all character sets. -The ID-NUM column contains a charset identification number for -internal Emacs use. - -The MULTIBYTE-FORM column contains the format of the buffer and string -multibyte sequence of characters in the charset using one to four -hexadecimal digits. - `xx' stands for any byte in the range 0..127. - `XX' stands for any byte in the range 160..255. - The D column contains the dimension of this character set. The CH column contains the number of characters in a block of this character set. The FINAL-CHAR column contains an ISO-2022 <final-char> to use @@ -158,22 +79,20 @@ but still shows the full information." (if arg (list-character-sets-2) ;; Insert header. - (insert "Indirectly supported character sets are shown below.\n") + (insert "Supplementary character sets are shown below.\n") (insert (substitute-command-keys (concat "Use " (if (display-mouse-p) "\\[help-follow-mouse] or ") "\\[help-follow]:\n"))) (insert " on a column title to sort by that title,") - (indent-to 56) + (indent-to 48) (insert "+----DIMENSION\n") (insert " on a charset name to list characters.") - (indent-to 56) + (indent-to 48) (insert "| +--CHARS\n") - (let ((columns '(("ID-NUM" . id) "\t" - ("CHARSET-NAME" . name) "\t\t\t" - ("MULTIBYTE-FORM" . id) "\t" - ("D CH FINAL-CHAR" . iso-spec))) + (let ((columns '(("CHARSET-NAME" . name) "\t\t\t\t\t" + ("D CH FINAL-CHAR" . iso-spec))) pos) (while columns (if (stringp (car columns)) @@ -184,127 +103,73 @@ but still shows the full information." (goto-char (point-max))) (setq columns (cdr columns))) (insert "\n")) - (insert "------\t------------\t\t\t--------------\t- -- ----------\n") + (insert "------------\t\t\t\t\t- --- ----------\n") ;; Insert body sorted by charset IDs. - (list-character-sets-1 'id) - - ;; Insert non-directly-supported charsets. - (insert-char ?- 72) - (insert "\n\nINDIRECTLY SUPPORTED CHARSETS SETS:\n\n" - (propertize "CHARSET NAME\tMAPPED TO" 'face 'bold) - "\n------------\t---------\n") - (dolist (elt non-iso-charset-alist) - (insert-text-button (symbol-name (car elt)) - :type 'list-charset-chars - 'help-args (list (car elt))) - (indent-to 16) - (dolist (e (nth 1 elt)) - (when (>= (+ (current-column) 1 (string-width (symbol-name e))) - ;; This is an approximate value. We don't know - ;; the correct window width of this buffer yet. - 78) - (insert "\n") - (indent-to 16)) - - (insert (format "%s " e))) - (insert "\n")))))) + (list-character-sets-1 'name))))) (defun sort-listed-character-sets (sort-key) (if sort-key (save-excursion - (help-setup-xref (list #'list-character-sets nil) t) (let ((buffer-read-only nil)) (goto-char (point-min)) - (re-search-forward "[0-9][0-9][0-9]") - (beginning-of-line) - (let ((pos (point))) - (search-forward "----------") - (beginning-of-line) - (save-restriction - (narrow-to-region pos (point)) - (delete-region (point-min) (point-max)) - (list-character-sets-1 sort-key))))))) - -(defun charset-multibyte-form-string (charset) - (let ((info (charset-info charset))) - (cond ((eq charset 'ascii) - "xx") - ((eq charset 'eight-bit-control) - (format "%2X Xx" (aref info 6))) - ((eq charset 'eight-bit-graphic) - "XX") - (t - (let ((str (format "%2X" (aref info 6)))) - (if (> (aref info 7) 0) - (setq str (format "%s %2X" - str (aref info 7)))) - (setq str (concat str " XX")) - (if (> (aref info 2) 1) - (setq str (concat str " XX"))) - str))))) - -;; Insert a list of character sets sorted by SORT-KEY. SORT-KEY -;; should be one of `id', `name', and `iso-spec'. If SORT-KEY is nil, -;; it defaults to `id'. + (search-forward "\n-") + (forward-line 1) + (delete-region (point) (point-max)) + (list-character-sets-1 sort-key))))) (defun list-character-sets-1 (sort-key) + "Insert a list of character sets sorted by SORT-KEY. +SORT-KEY should be `name' or `iso-spec' (default `name')." (or sort-key - (setq sort-key 'id)) - (let ((tail (charset-list)) - charset-info-list elt charset info sort-func) - (while tail - (setq charset (car tail) tail (cdr tail) - info (charset-info charset)) - + (setq sort-key 'name)) + (let ((tail charset-list) + charset-info-list supplementary-list charset sort-func) + (dolist (charset charset-list) ;; Generate a list that contains all information to display. - (setq charset-info-list - (cons (list (charset-id charset) ; ID-NUM - charset ; CHARSET-NAME - (charset-multibyte-form-string charset); MULTIBYTE-FORM - (aref info 2) ; DIMENSION - (aref info 3) ; CHARS - (aref info 8) ; FINAL-CHAR - ) - charset-info-list))) + (let ((elt (list charset + (charset-dimension charset) + (charset-chars charset) + (charset-iso-final-char charset)))) + (if (plist-get (charset-plist charset) :supplementary-p) + (push elt supplementary-list) + (push elt charset-info-list)))) ;; Determine a predicate for `sort' by SORT-KEY. (setq sort-func - (cond ((eq sort-key 'id) - (lambda (x y) (< (car x) (car y)))) - - ((eq sort-key 'name) - (lambda (x y) (string< (nth 1 x) (nth 1 y)))) + (cond ((eq sort-key 'name) + (lambda (x y) (string< (car x) (car y)))) ((eq sort-key 'iso-spec) ;; Sort by DIMENSION CHARS FINAL-CHAR - (lambda (x y) - (or (< (nth 3 x) (nth 3 y)) - (and (= (nth 3 x) (nth 3 y)) - (or (< (nth 4 x) (nth 4 y)) - (and (= (nth 4 x) (nth 4 y)) - (< (nth 5 x) (nth 5 y)))))))) + (function + (lambda (x y) + (or (< (nth 1 x) (nth 1 y)) + (and (= (nth 1 x) (nth 1 y)) + (or (< (nth 2 x) (nth 2 y)) + (and (= (nth 2 x) (nth 2 y)) + (< (nth 3 x) (nth 3 y))))))))) (t (error "Invalid charset sort key: %s" sort-key)))) (setq charset-info-list (sort charset-info-list sort-func)) + (setq supplementary-list (sort supplementary-list sort-func)) ;; Insert information of character sets. - (while charset-info-list - (setq elt (car charset-info-list) - charset-info-list (cdr charset-info-list)) - (insert (format "%03d(%02X)" (car elt) (car elt))) ; ID-NUM - (indent-to 8) - (insert-text-button (symbol-name (nth 1 elt)) - :type 'list-charset-chars - 'help-args (list (nth 1 elt))) - (goto-char (point-max)) - (insert "\t") - (indent-to 40) - (insert (nth 2 elt)) ; MULTIBYTE-FORM - (indent-to 56) - (insert (format "%d %2d " (nth 3 elt) (nth 4 elt)) ; DIMENSION and CHARS - (if (< (nth 5 elt) 0) "none" (nth 5 elt))) ; FINAL-CHAR + (dolist (elt (append charset-info-list (list t) supplementary-list)) + (if (eq elt t) + (insert "-------------- Supplementary Character Sets --------------") + (insert-text-button (symbol-name (car elt)) ; NAME + :type 'list-charset-chars + 'help-args (list (car elt))) + (goto-char (point-max)) + (insert "\t") + (indent-to 48) + (insert (format "%d %3d " + (nth 1 elt) (nth 2 elt)) ; DIMENSION and CHARS + (if (< (nth 3 elt) 0) + "none" + (nth 3 elt)))) ; FINAL-CHAR (insert "\n")))) @@ -316,42 +181,37 @@ but still shows the full information." ## Each line corresponds to one charset. ## The following attributes are listed in this order ## separated by a colon `:' in one line. -## CHARSET-ID, ## CHARSET-SYMBOL-NAME, ## DIMENSION (1 or 2) ## CHARS (94 or 96) -## BYTES (of multibyte form: 1, 2, 3, or 4), -## WIDTH (occupied column numbers: 1 or 2), -## DIRECTION (0:left-to-right, 1:right-to-left), ## ISO-FINAL-CHAR (character code of ISO-2022's final character) -## ISO-GRAPHIC-PLANE (ISO-2022's graphic plane, 0:GL, 1:GR) +## -1 means that no final character is assigned. ## DESCRIPTION (describing string of the charset) ") (let ((l charset-list) charset) (while l (setq charset (car l) l (cdr l)) - (princ (format "%03d:%s:%d:%d:%d:%d:%d:%d:%d:%s\n" - (charset-id charset) + (princ (format "%s:%d:%d:%d:%s\n" charset (charset-dimension charset) (charset-chars charset) - (charset-bytes charset) - (charset-width charset) - (charset-direction charset) +;;; (char-width (make-char charset)) +;;; (charset-direction charset) (charset-iso-final-char charset) - (charset-iso-graphic-plane charset) +;;; (charset-iso-graphic-plane charset) (charset-description charset)))))) +(defvar non-iso-charset-alist nil + "Obsolete.") +(make-obsolete-variable 'non-iso-charset-alist "no longer relevant" "23.1") + (defun decode-codepage-char (codepage code) "Decode a character that has code CODE in CODEPAGE. Return a decoded character string. Each CODEPAGE corresponds to a -coding system cpCODEPAGE." - (let ((coding-system (intern (format "cp%d" codepage)))) - (or (coding-system-p coding-system) - (codepage-setup codepage)) - (string-to-char - (decode-coding-string (char-to-string code) coding-system)))) +coding system cpCODEPAGE. This function is obsolete." + (decode-char (intern (format "cp%d" codepage)) code)) +(make-obsolete 'decode-codepage-char 'decode-char "23.1") ;; A variable to hold charset input history. (defvar charset-history nil) @@ -360,210 +220,170 @@ coding system cpCODEPAGE." ;;;###autoload (defun read-charset (prompt &optional default-value initial-input) "Read a character set from the minibuffer, prompting with string PROMPT. -It must be an Emacs character set listed in the variable `charset-list' -or a non-ISO character set listed in the variable -`non-iso-charset-alist'. +It must be an Emacs character set listed in the variable `charset-list'. Optional arguments are DEFAULT-VALUE and INITIAL-INPUT. DEFAULT-VALUE, if non-nil, is the default value. INITIAL-INPUT, if non-nil, is a string inserted in the minibuffer initially. See the documentation of the function `completing-read' for the detailed meanings of these arguments." - (let* ((table (append (mapcar (lambda (x) (list (symbol-name x))) - charset-list) - (mapcar (lambda (x) (list (symbol-name (car x)))) - non-iso-charset-alist))) + (let* ((table (mapcar (lambda (x) (list (symbol-name x))) charset-list)) (charset (completing-read prompt table nil t initial-input 'charset-history default-value))) (if (> (length charset) 0) (intern charset)))) - ;; List characters of the range MIN and MAX of CHARSET. If dimension ;; of CHARSET is two (i.e. 2-byte charset), ROW is the first byte ;; (block index) of the characters, and MIN and MAX are the second ;; bytes of the characters. If the dimension is one, ROW should be 0. -;; For a non-ISO charset, CHARSET is a translation table (symbol) or a -;; function to get Emacs' character codes that corresponds to the -;; characters to list. (defun list-block-of-chars (charset row min max) (let (i ch) - (insert-char ?- (+ 4 (* 3 16))) - (insert "\n ") + (insert-char ?- (+ 7 (* 4 16))) + (insert "\n ") (setq i 0) (while (< i 16) - (insert (format "%3X" i)) + (insert (format "%4X" i)) (setq i (1+ i))) (setq i (* (/ min 16) 16)) (while (<= i max) (if (= (% i 16) 0) - (insert (format "\n%3Xx" (/ (+ (* row 256) i) 16)))) - (setq ch (cond ((< i min) - 32) - ((charsetp charset) - (if (= row 0) - (make-char charset i) - (make-char charset row i))) - ((and (symbolp charset) (get charset 'translation-table)) - (aref (get charset 'translation-table) i)) - (t (funcall charset (+ (* row 256) i))))) - (if (and (char-table-p charset) - (or (< ch 32) (and (>= ch 127) (<= ch 255)))) - ;; Don't insert a control code. - (setq ch 32)) - (unless ch (setq ch 32)) - (if (eq ch ?\t) - ;; Make it visible. - (setq ch (propertize "\t" 'display "^I"))) - ;; This doesn't DTRT. Maybe it's better to insert "^J" and not - ;; worry about the buffer contents not being correct. -;;; (if (eq ch ?\n) -;;; (setq ch (propertize "\n" 'display "^J"))) - (indent-to (+ (* (% i 16) 3) 6)) - (insert ch) + (insert (format "\n%6Xx" (/ (+ (* row 256) i) 16)))) + (setq ch (if (< i min) + 32 + (or (decode-char charset (+ (* row 256) i)) + 32))) ; gap in mapping + ;; Don't insert a control code. + (if (or (< ch 32) (= ch 127)) + (setq ch (single-key-description ch)) + (if (and (>= ch 128) (< ch 160)) + (setq ch (format "%02Xh" ch)))) + (insert "\t" ch) (setq i (1+ i)))) (insert "\n")) -(defun list-iso-charset-chars (charset) - (let ((dim (charset-dimension charset)) - (chars (charset-chars charset)) - (plane (charset-iso-graphic-plane charset)) - min max) - (insert (format "Characters in the coded character set %s.\n" charset)) - - (cond ((eq charset 'eight-bit-control) - (setq min 128 max 159)) - ((eq charset 'eight-bit-graphic) - (setq min 160 max 255)) - (t - (if (= chars 94) - (setq min 33 max 126) - (setq min 32 max 127)) - (or (= plane 0) - (setq min (+ min 128) max (+ max 128))))) - - (if (= dim 1) - (list-block-of-chars charset 0 min max) - (let ((i min)) - (while (<= i max) - (list-block-of-chars charset i min max) - (setq i (1+ i))))))) - -(defun list-non-iso-charset-chars (charset) - "List all characters in non-built-in coded character set CHARSET." - (let* ((slot (assq charset non-iso-charset-alist)) - (charsets (nth 1 slot)) - (translate-method (nth 2 slot)) - (ranges (nth 3 slot)) - range) - (or slot - (error "Unknown character set: %s" charset)) - (insert (format "Characters in the coded character set %s.\n" charset)) - (if charsets - (insert "They are mapped to: " - (mapconcat #'symbol-name charsets ", ") - "\n")) - (while ranges - (setq range (pop ranges)) - (if (integerp (car range)) - ;; The form of RANGES is (FROM1 TO1 FROM2 TO2 ...). - (if (and (not (functionp translate-method)) - (< (car (last range)) 256)) - ;; Do it all in one block to avoid the listing being - ;; broken up at gaps in the range. Don't do that for - ;; function translate-method, since not all codes in - ;; that range may be valid. - (list-block-of-chars translate-method - 0 (car range) (car (last range))) - (while range - (list-block-of-chars translate-method - 0 (car range) (nth 1 range)) - (setq range (nthcdr 2 range)))) - ;; The form of RANGES is ((FROM1-1 TO1-1 ...) . (FROM2-1 TO2-1 ...)). - (let ((row-range (car range)) - row row-max - col-range col col-max) - (while row-range - (setq row (car row-range) row-max (nth 1 row-range) - row-range (nthcdr 2 row-range)) - (while (<= row row-max) - (setq col-range (cdr range)) - (while col-range - (setq col (car col-range) col-max (nth 1 col-range) - col-range (nthcdr 2 col-range)) - (list-block-of-chars translate-method row col col-max)) - (setq row (1+ row))))))))) - - ;;;###autoload (defun list-charset-chars (charset) - "Display a list of characters in the specified character set. -This can list both Emacs `official' (ISO standard) charsets and the -characters encoded by various Emacs coding systems which correspond to -PC `codepages' and other coded character sets. See `non-iso-charset-alist'." + "Display a list of characters in character set CHARSET." (interactive (list (read-charset "Character set: "))) + (or (charsetp charset) + (error "Invalid character set: %s" charset)) (with-output-to-temp-buffer "*Character List*" (with-current-buffer standard-output + (if (coding-system-p charset) + ;; Useful to be able to do C-u C-x = to find file code, for + ;; instance: + (set-buffer-file-coding-system charset)) (setq mode-line-format (copy-sequence mode-line-format)) (let ((slot (memq 'mode-line-buffer-identification mode-line-format))) (if slot (setcdr slot (cons (format " (%s)" charset) (cdr slot))))) - (setq indent-tabs-mode nil) + (setq tab-width 4) (set-buffer-multibyte t) - (cond ((charsetp charset) - (list-iso-charset-chars charset)) - ((assq charset non-iso-charset-alist) - (list-non-iso-charset-chars charset)) - (t - (error "Invalid character set %s" charset)))))) + (let ((dim (charset-dimension charset)) + (chars (charset-chars charset)) + ;; (plane (charset-iso-graphic-plane charset)) + (plane 1) + (range (plist-get (charset-plist charset) :code-space)) + min max min2 max2) + (if (> dim 2) + (error "Can only list 1- and 2-dimensional charsets")) + (insert (format "Characters in the coded character set %s.\n" charset)) + (narrow-to-region (point) (point)) + (setq min (aref range 0) + max (aref range 1)) + (if (= dim 1) + (list-block-of-chars charset 0 min max) + (setq min2 (aref range 2) + max2 (aref range 3)) + (let ((i min2)) + (while (<= i max2) + (list-block-of-chars charset i min max) + (setq i (1+ i))))) + (put-text-property (point-min) (point-max) 'charset charset) + (widen))))) ;;;###autoload (defun describe-character-set (charset) "Display information about built-in character set CHARSET." - (interactive (list (let ((non-iso-charset-alist nil)) - (read-charset "Charset: ")))) + (interactive (list (read-charset "Charset: "))) (or (charsetp charset) (error "Invalid charset: %S" charset)) - (let ((info (charset-info charset))) - (help-setup-xref (list #'describe-character-set charset) (interactive-p)) - (with-output-to-temp-buffer (help-buffer) - (with-current-buffer standard-output - (insert "Character set: " (symbol-name charset) - (format " (ID:%d)\n\n" (aref info 0))) - (insert (aref info 13) "\n\n") ; description - (insert "Number of contained characters: " - (if (= (aref info 2) 1) - (format "%d\n" (aref info 3)) - (format "%dx%d\n" (aref info 3) (aref info 3)))) - (insert "Final char of ISO2022 designation sequence: ") - (if (>= (aref info 8) 0) - (insert (format "`%c'\n" (aref info 8))) - (insert "not assigned\n")) - (insert (format "Width (how many columns on screen): %d\n" - (aref info 4))) - (insert (format "Internal multibyte sequence: %s\n" - (charset-multibyte-form-string charset))) - (let ((coding (plist-get (aref info 14) 'preferred-coding-system))) - (when coding - (insert (format "Preferred coding system: %s\n" coding)) - (search-backward (symbol-name coding)) - (help-xref-button 0 'help-coding-system coding))))))) + (help-setup-xref (list #'describe-character-set charset) (interactive-p)) + (with-output-to-temp-buffer (help-buffer) + (with-current-buffer standard-output + (insert "Character set: " (symbol-name charset)) + (let ((name (get-charset-property charset :name))) + (if (not (eq name charset)) + (insert " (alias of " (symbol-name name) ?\)))) + (insert "\n\n" (charset-description charset) "\n\n") + (insert "Number of contained characters: ") + (dotimes (i (charset-dimension charset)) + (unless (= i 0) + (insert ?x)) + (insert (format "%d" (charset-chars charset (1+ i))))) + (insert ?\n) + (let ((char (charset-iso-final-char charset))) + (when (> char 0) + (insert "Final char of ISO2022 designation sequence: ") + (insert (format "`%c'\n" char)))) + (insert (format "Width (how many columns on screen): %d\n" + (aref char-width-table (make-char charset)))) + (let (aliases) + (dolist (c charset-list) + (if (and (not (eq c charset)) + (eq charset (get-charset-property c :name))) + (push c aliases))) + (if aliases + (insert "Aliases: " (mapconcat #'symbol-name aliases ", ") ?\n))) + + (dolist (elt `((:ascii-compatible-p "ASCII compatible." nil) + (:map "Map file: " identity) + (:unify-map "Unification map file: " identity) + (:invalid-code + nil + ,(lambda (c) + (format "Invalid character: %c (code %d)" c c))) + (:emacs-mule-id "Id in emacs-mule coding system: " + number-to-string) + (:parents "Parents: " + (lambda (parents) + (mapconcat ,(lambda (elt) + (format "%s" elt)) + parents + ", "))) + (:code-space "Code space: " ,(lambda (c) + (format "%s" c))) + (:code-offset "Code offset: " number-to-string) + (:iso-revision-number "ISO revision number: " + number-to-string) + (:supplementary-p + "Used only as a parent of some other charset." nil))) + (let ((val (get-charset-property charset (car elt)))) + (when val + (if (cadr elt) (insert (cadr elt))) + (if (nth 2 elt) + (insert (funcall (nth 2 elt) val))) + (insert ?\n))))))) ;;; CODING-SYSTEM -;; Print information of designation of each graphic register in FLAGS -;; in human readable format. See the documentation of -;; `make-coding-system' for the meaning of FLAGS. -(defun print-designation (flags) - (let ((graphic-register 0) - charset) - (while (< graphic-register 4) - (setq charset (aref flags graphic-register)) +(eval-when-compile ; dynamic bondage + (defvar graphic-register)) + +;; Print information about designation of each graphic register in +;; DESIGNATIONS in human readable format. See the documentation of +;; `define-coding-system' for the meaning of DESIGNATIONS +;; (`:designation' property). +(defun print-designation (designations) + (let (charset) + (dotimes (graphic-register 4) + (setq charset (aref designations graphic-register)) (princ (format " G%d -- %s\n" graphic-register @@ -593,8 +413,7 @@ PC `codepages' and other coded character sets. See `non-iso-charset-alist'." (charset-description (car charset))))) (t "invalid designation information")) - (setq charset (cdr charset)))) - (setq graphic-register (1+ graphic-register))))) + (setq charset (cdr charset))))))) ;;;###autoload (defun describe-coding-system (coding-system) @@ -606,73 +425,57 @@ PC `codepages' and other coded character sets. See `non-iso-charset-alist'." (interactive-p)) (with-output-to-temp-buffer (help-buffer) (print-coding-system-briefly coding-system 'doc-string) - (princ "\n") - (let ((vars (coding-system-get coding-system 'dependency))) - (when vars - (princ "See also the documentation of these customizable variables -which alter the behavior of this coding system.\n") - (dolist (v vars) - (princ " `") - (princ v) - (princ "'\n")) - (princ "\n"))) - - (princ "Type: ") (let ((type (coding-system-type coding-system)) - (flags (coding-system-flags coding-system))) + ;; Fixme: use this + (extra-spec (coding-system-plist coding-system))) + (princ "Type: ") (princ type) - (cond ((eq type nil) - (princ " (do no conversion)")) - ((eq type t) + (cond ((eq type 'undecided) (princ " (do automatic conversion)")) - ((eq type 0) - (princ " (Emacs internal multibyte form)")) - ((eq type 1) + ((eq type 'utf-8) + (princ " (UTF-8: Emacs internal multibyte form)")) + ((eq type 'utf-16) + ;; (princ " (UTF-16)") + ) + ((eq type 'shift-jis) (princ " (Shift-JIS, MS-KANJI)")) - ((eq type 2) + ((eq type 'iso-2022) (princ " (variant of ISO-2022)\n") (princ "Initial designations:\n") - (print-designation flags) - (princ "Other Form: \n ") - (princ (if (aref flags 4) "short-form" "long-form")) - (if (aref flags 5) (princ ", ASCII@EOL")) - (if (aref flags 6) (princ ", ASCII@CNTL")) - (princ (if (aref flags 7) ", 7-bit" ", 8-bit")) - (if (aref flags 8) (princ ", use-locking-shift")) - (if (aref flags 9) (princ ", use-single-shift")) - (if (aref flags 10) (princ ", use-roman")) - (if (aref flags 11) (princ ", use-old-jis")) - (if (aref flags 12) (princ ", no-ISO6429")) - (if (aref flags 13) (princ ", init-bol")) - (if (aref flags 14) (princ ", designation-bol")) - (if (aref flags 15) (princ ", convert-unsafe")) - (if (aref flags 16) (princ ", accept-latin-extra-code")) - (princ ".")) - ((eq type 3) - (princ " (Big5)")) - ((eq type 4) + (print-designation (coding-system-get coding-system + :designation)) + + (when (coding-system-get coding-system :flags) + (princ "Other specifications: \n ") + (apply #'print-list + (coding-system-get coding-system :flags)))) + ((eq type 'charset) + (princ " (charset)")) + ((eq type 'ccl) (princ " (do conversion by CCL program)")) - ((eq type 5) + ((eq type 'raw-text) (princ " (text with random binary characters)")) - (t (princ ": invalid coding-system.")))) - (princ "\nEOL type: ") - (let ((eol-type (coding-system-eol-type coding-system))) - (cond ((vectorp eol-type) - (princ "Automatic selection from:\n\t") - (princ eol-type) - (princ "\n")) - ((or (null eol-type) (eq eol-type 0)) (princ "LF\n")) - ((eq eol-type 1) (princ "CRLF\n")) - ((eq eol-type 2) (princ "CR\n")) - (t (princ "invalid\n")))) - (let ((postread (coding-system-get coding-system 'post-read-conversion))) + ((eq type 'emacs-mule) + (princ " (Emacs 21 internal encoding)")) + (t (princ ": invalid coding-system."))) + (princ "\nEOL type: ") + (let ((eol-type (coding-system-eol-type coding-system))) + (cond ((vectorp eol-type) + (princ "Automatic selection from:\n\t") + (princ eol-type) + (princ "\n")) + ((or (null eol-type) (eq eol-type 0)) (princ "LF\n")) + ((eq eol-type 1) (princ "CRLF\n")) + ((eq eol-type 2) (princ "CR\n")) + (t (princ "invalid\n"))))) + (let ((postread (coding-system-get coding-system :post-read-conversion))) (when postread (princ "After decoding text normally,") (princ " perform post-conversion using the function: ") (princ "\n ") (princ postread) (princ "\n"))) - (let ((prewrite (coding-system-get coding-system 'pre-write-conversion))) + (let ((prewrite (coding-system-get coding-system :pre-write-conversion))) (when prewrite (princ "Before encoding text normally,") (princ " perform pre-conversion using the function: ") @@ -680,21 +483,23 @@ which alter the behavior of this coding system.\n") (princ prewrite) (princ "\n"))) (with-current-buffer standard-output - (let ((charsets (coding-system-get coding-system 'safe-charsets))) - (when (and (not (memq (coding-system-base coding-system) - '(raw-text emacs-mule))) + (let ((charsets (coding-system-charset-list coding-system))) + (when (and (not (eq (coding-system-base coding-system) 'raw-text)) charsets) - (if (eq charsets t) - (insert "This coding system can encode all charsets except for -eight-bit-control and eight-bit-graphic.\n") + (cond + ((eq charsets 'iso-2022) + (insert "This coding system can encode all ISO 2022 charsets.")) + ((eq charsets 'emacs-mule) + (insert "This coding system can encode all emacs-mule charsets\ +.""")) + (t (insert "This coding system encodes the following charsets:\n ") (while charsets (insert " " (symbol-name (car charsets))) (search-backward (symbol-name (car charsets))) (help-xref-button 0 'help-character-set (car charsets)) (goto-char (point-max)) - (setq charsets (cdr charsets)))))))))) - + (setq charsets (cdr charsets))))))))))) ;;;###autoload (defun describe-current-coding-system-briefly () @@ -742,18 +547,17 @@ in place of `..': (coding-system-eol-type-mnemonic (cdr default-process-coding-system)) ))) -;; Print symbol name and mnemonic letter of CODING-SYSTEM with `princ'. -;; If DOC-STRING is non-nil, print also the docstring of CODING-SYSTEM. -;; If DOC-STRING is `tightly', don't print an empty line before the -;; docstring, and print only the first line of the docstring. - (defun print-coding-system-briefly (coding-system &optional doc-string) + "Print symbol name and mnemonic letter of CODING-SYSTEM with `princ'. +If DOC-STRING is non-nil, print also the docstring of CODING-SYSTEM. +If DOC-STRING is `tightly', don't print an empty line before the +docstring, and print only the first line of the docstring." (if (not coding-system) (princ "nil\n") (princ (format "%c -- %s" (coding-system-mnemonic coding-system) coding-system)) - (let ((aliases (coding-system-get coding-system 'alias-coding-systems))) + (let ((aliases (coding-system-aliases coding-system))) (cond ((eq coding-system (car aliases)) (if (cdr aliases) (princ (format " %S" (cons 'alias: (cdr aliases)))))) @@ -795,6 +599,8 @@ in place of `..': (print-coding-system-briefly (keyboard-coding-system)) (princ "Coding system for terminal output:\n ") (print-coding-system-briefly (terminal-coding-system)) + (princ "Coding system for inter-client cut and paste:\n ") + (print-coding-system-briefly selection-coding-system) (when (get-buffer-process (current-buffer)) (princ "Coding systems for process I/O:\n") (princ " encoding input to the process: ") @@ -811,30 +617,23 @@ in place of `..': (princ " Priority order for recognizing coding systems when reading files:\n") - (let ((l coding-category-list) - (i 1) - (coding-list nil) - coding aliases) - (while l - (setq coding (symbol-value (car l))) - ;; Do not list up the same coding system twice. - (when (and coding (not (memq coding coding-list))) - (setq coding-list (cons coding coding-list)) - (princ (format " %d. %s " i coding)) - (setq aliases (coding-system-get coding 'alias-coding-systems)) - (if (eq coding (car aliases)) + (let ((i 1)) + (dolist (elt (coding-system-priority-list)) + (princ (format " %d. %s " i elt)) + (let ((aliases (coding-system-aliases elt))) + (if (eq elt (car aliases)) (if (cdr aliases) (princ (cons 'alias: (cdr aliases)))) - (if (memq coding aliases) - (princ (list 'alias 'of (car aliases))))) + (princ (list 'alias 'of (car aliases)))) (terpri) - (setq i (1+ i))) - (setq l (cdr l)))) + (setq i (1+ i))))) (princ "\n Other coding systems cannot be distinguished automatically from these, and therefore cannot be recognized automatically with the present coding system priorities.\n\n") + ;; Fixme: should this be replaced or junked? + (if nil (let ((categories '(coding-category-iso-7 coding-category-iso-7-else)) coding-system codings) (while categories @@ -842,9 +641,9 @@ Priority order for recognizing coding systems when reading files:\n") (mapcar (lambda (x) (if (and (not (eq x coding-system)) - (coding-system-get x 'no-initial-designation) - (let ((flags (coding-system-flags x))) - (not (or (aref flags 10) (aref flags 11))))) + (let ((flags (coding-system-get :flags))) + (not (or (memq 'use-roman flags) + (memq 'use-oldjis flags))))) (setq codings (cons x codings)))) (get (car categories) 'coding-systems)) (if codings @@ -862,7 +661,7 @@ Priority order for recognizing coding systems when reading files:\n") (goto-char (point-max))) (setq codings (cdr codings))) (insert "\n\n"))) - (setq categories (cdr categories)))) + (setq categories (cdr categories))))) (princ "Particular coding systems specified for certain file names:\n") (terpri) @@ -887,12 +686,12 @@ Priority order for recognizing coding systems when reading files:\n") (funcall func "Network I/O" network-coding-system-alist)) (help-mode)))) -;; Print detailed information on CODING-SYSTEM. (defun print-coding-system (coding-system) + "Print detailed information on CODING-SYSTEM." (let ((type (coding-system-type coding-system)) (eol-type (coding-system-eol-type coding-system)) - (flags (coding-system-flags coding-system)) - (aliases (coding-system-get coding-system 'alias-coding-systems))) + (flags (coding-system-get coding-system :flags)) + (aliases (coding-system-aliases coding-system))) (if (not (eq (car aliases) coding-system)) (princ (format "%s (alias of %s)\n" coding-system (car aliases))) (princ coding-system) @@ -905,7 +704,7 @@ Priority order for recognizing coding systems when reading files:\n") type (coding-system-mnemonic coding-system) (if (integerp eol-type) eol-type 3))) - (cond ((eq type 2) ; ISO-2022 + (cond ((eq type 'iso2022) (let ((idx 0) charset) (while (< idx 4) @@ -932,7 +731,7 @@ Priority order for recognizing coding systems when reading files:\n") (princ ",") (setq idx (1+ idx))) (princ (if (aref flags idx) 1 0)))) - ((eq type 4) ; CCL + ((eq type 'ccl) (let (i len) (if (symbolp (car flags)) (princ (format " %s" (car flags))) @@ -999,19 +798,9 @@ but still contains full information about each coding system." (dolist (coding-system (sort-coding-systems (coding-system-list 'base-only))) (if (null arg) (print-coding-system-briefly coding-system 'tightly) - (print-coding-system coding-system))) - (let ((first t)) - (dolist (elt coding-system-alist) - (unless (memq (intern (car elt)) coding-system-list) - (when first - (princ "\ -#################################################### -# The following coding systems are not yet loaded. # -#################################################### -") - (setq first nil)) - (princ-list (car elt)))))) + (print-coding-system coding-system)))) +;; Fixme: delete? ;;;###autoload (defun list-coding-categories () "Display a list of all coding categories." @@ -1029,8 +818,8 @@ but still contains full information about each coding system." ;;; FONT -;; Print information of a font in FONTINFO. (defun describe-font-internal (font-info &optional verbose) + "Print information about a font in FONT-INFO." (print-list "name (opened by):" (aref font-info 0)) (print-list " full name:" (aref font-info 1)) (print-list " size:" (format "%2d" (aref font-info 2))) @@ -1065,76 +854,84 @@ The font must be already used by Emacs." (with-output-to-temp-buffer "*Help*" (describe-font-internal font-info 'verbose))))) -(defun print-fontset (fontset &optional print-fonts) +(defun print-fontset-element (val) + ;; VAL has this format: + ;; ((REQUESTED-FONT-NAME OPENED-FONT-NAME ...) ...) + ;; CHAR RANGE is already inserted. Get character codes from + ;; the current line. + (beginning-of-line) + (let ((from (following-char)) + (to (if (looking-at "[^.]*[.]* ") + (char-after (match-end 0))))) + (if (re-search-forward "[ \t]*$" nil t) + (delete-region (match-beginning 0) (match-end 0))) + + ;; For non-ASCII characters, insert also CODE RANGE. + (if (or (>= from 128) (and to (>= to 128))) + (if to + (insert (format " (#x%02X .. #x%02X)" from to)) + (insert (format " (#x%02X)" from)))) + + ;; Insert a requested font name. + (dolist (elt val) + (let ((requested (car elt))) + (if (stringp requested) + (insert "\n " requested) + (let (family registry weight slant width adstyle) + (if (and (fboundp 'fontp) (fontp requested)) + (setq family (font-get requested :family) + registry (font-get requested :registry) + weight (font-get requested :weight) + slant (font-get requested :slant) + width (font-get requested :width) + adstyle (font-get requested :adstyle)) + (setq family (aref requested 0) + registry (aref requested 5) + weight (aref requested 1) + slant (aref requested 2) + width (aref requested 3) + adstyle (aref requested 4))) + (if (not family) + (setq family "*-*") + (if (symbolp family) + (setq family (symbol-name family))) + (or (string-match "-" family) + (setq family (concat "*-" family)))) + (if (not registry) + (setq registry "*-*") + (if (symbolp registry) + (setq registry (symbol-name registry))) + (or (string-match "-" registry) + (= (aref registry (1- (length registry))) ?*) + (setq registry (concat registry "*")))) + (insert (format"\n -%s-%s-%s-%s-%s-*-*-*-*-*-*-%s" + family (or weight "*") (or slant "*") (or width "*") + (or adstyle "*") registry))))) + + ;; Insert opened font names (if any). + (if (and (boundp 'print-opened) (symbol-value 'print-opened)) + (dolist (opened (cdr elt)) + (insert "\n\t[" opened "]")))))) + +(defun print-fontset (fontset &optional print-opened) "Print information about FONTSET. If FONTSET is nil, print information about the default fontset. -If optional arg PRINT-FONTS is non-nil, also print names of all opened +If optional arg PRINT-OPENED is non-nil, also print names of all opened fonts for FONTSET. This function actually inserts the information in the current buffer." (or fontset (setq fontset (query-fontset "fontset-default"))) - (let ((tail (aref (fontset-info fontset) 2)) - elt chars font-spec opened prev-charset charset from to) - (beginning-of-line) - (insert "Fontset: " fontset "\n") - (insert "CHARSET or CHAR RANGE") - (indent-to 24) - (insert "FONT NAME\n") - (insert "---------------------") - (indent-to 24) - (insert "---------") - (insert "\n") - (while tail - (setq elt (car tail) tail (cdr tail)) - (setq chars (car elt) font-spec (car (cdr elt)) opened (cdr (cdr elt))) - (if (symbolp chars) - (setq charset chars from nil to nil) - (if (integerp chars) - (setq charset (char-charset chars) from chars to chars) - (setq charset (char-charset (car chars)) - from (car chars) to (cdr chars)))) - (unless (eq charset prev-charset) - (insert (symbol-name charset)) - (if from - (insert "\n"))) - (when from - (let ((split (split-char from))) - (if (and (= (charset-dimension charset) 2) - (= (nth 2 split) 0)) - (setq from - (make-char charset (nth 1 split) - (if (= (charset-chars charset) 94) 33 32)))) - (insert " " from)) - (when (/= from to) - (insert "-") - (let ((split (split-char to))) - (if (and (= (charset-dimension charset) 2) - (= (nth 2 split) 0)) - (setq to - (make-char charset (nth 1 split) - (if (= (charset-chars charset) 94) 126 127)))) - (insert to)))) - (indent-to 24) - (if (stringp font-spec) - (insert font-spec) - (if (car font-spec) - (if (string-match "-" (car font-spec)) - (insert "-" (car font-spec) "-*-") - (insert "-*-" (car font-spec) "-*-")) - (insert "-*-")) - (if (cdr font-spec) - (if (string-match "-" (cdr font-spec)) - (insert (cdr font-spec)) - (insert (cdr font-spec) "-*")) - (insert "*"))) - (insert "\n") - (when print-fonts - (while opened - (indent-to 5) - (insert "[" (car opened) "]\n") - (setq opened (cdr opened)))) - (setq prev-charset charset) - ))) + (beginning-of-line) + (insert "Fontset: " fontset "\n") + (insert (propertize "CHAR RANGE" 'face 'underline) + " (" (propertize "CODE RANGE" 'face 'underline) ")\n") + (insert " " (propertize "FONT NAME" 'face 'underline) + " (" (propertize "REQUESTED" 'face 'underline) + " and [" (propertize "OPENED" 'face 'underline) "])") + (let ((info (fontset-info fontset))) + (describe-vector info 'print-fontset-element) + (insert "\n ---<fallback to the default fontset>---") + (describe-vector (char-table-extra-slot info 0) 'print-fontset-element))) ;;;###autoload (defun describe-fontset (fontset) @@ -1291,16 +1088,6 @@ system which uses fontsets)." (insert-section 4 "Coding systems") (list-coding-systems-1 t) - (princ "\ -############################ -## LIST OF CODING CATEGORIES (ordered by priority) -## CATEGORY:CODING-SYSTEM -## -") - (let ((l coding-category-list)) - (while l - (princ (format "%s:%s\n" (car l) (symbol-value (car l)))) - (setq l (cdr l)))) (insert "\n") (insert-section 5 "Character sets") @@ -1318,6 +1105,192 @@ system which uses fontsets)." (setq fontsets (cdr fontsets))))) (print-help-return-message)))) +;;;###autoload +(defcustom unicodedata-file nil + "Location of UnicodeData file. +This is the UnicodeData.txt file from the Unicode consortium, used for +diagnostics. If it is non-nil `describe-char-after' will print data +looked up from it." + :group 'mule + :type '(choice (const :tag "None" nil) + file)) + +;; We could convert the unidata file into a Lispy form once-for-all +;; and distribute it for loading on demand. It might be made more +;; space-efficient by splitting strings word-wise and replacing them +;; with lists of symbols interned in a private obarray, e.g. +;; "LATIN SMALL LETTER A" => '(LATIN SMALL LETTER A). + +;;;###autoload +(defun unicode-data (char) + "Return a list of Unicode data for unicode CHAR. +Each element is a list of a property description and the property value. +The list is null if CHAR isn't found in `unicodedata-file'." + (when unicodedata-file + (unless (file-exists-p unicodedata-file) + (error "`unicodedata-file' %s not found" unicodedata-file)) + (save-excursion + (set-buffer (find-file-noselect unicodedata-file t t)) + (goto-char (point-min)) + (let ((hex (format "%04X" char)) + found first last) + (if (re-search-forward (concat "^" hex) nil t) + (setq found t) + ;; It's not listed explicitly. Look for ranges, e.g. CJK + ;; ideographs, and check whether it's in one of them. + (while (and (re-search-forward "^\\([^;]+\\);[^;]+First>;" nil t) + (>= char (setq first + (string-to-number (match-string 1) 16))) + (progn + (forward-line 1) + (looking-at "^\\([^;]+\\);[^;]+Last>;") + (> char + (setq last + (string-to-number (match-string 1) 16)))))) + (if (and (>= char first) + (<= char last)) + (setq found t))) + (if found + (let ((fields (mapcar (lambda (elt) + (if (> (length elt) 0) + elt)) + (cdr (split-string + (buffer-substring + (line-beginning-position) + (line-end-position)) + ";"))))) + ;; The length depends on whether the last field was empty. + (unless (or (= 13 (length fields)) + (= 14 (length fields))) + (error "Invalid contents in %s" unicodedata-file)) + ;; The field names and values lists are slightly + ;; modified from Mule-UCS unidata.el. + (list + (list "Name" (let ((name (nth 0 fields))) + ;; Check for <..., First>, <..., Last> + (if (string-match "\\`\\(<[^,]+\\)," name) + (concat (match-string 1 name) ">") + name))) + (list "Category" + (cdr (assoc + (nth 1 fields) + '(("Lu" . "uppercase letter") + ("Ll" . "lowercase letter") + ("Lt" . "titlecase letter") + ("Mn" . "non-spacing mark") + ("Mc" . "spacing-combining mark") + ("Me" . "enclosing mark") + ("Nd" . "decimal digit") + ("Nl" . "letter number") + ("No" . "other number") + ("Zs" . "space separator") + ("Zl" . "line separator") + ("Zp" . "paragraph separator") + ("Cc" . "other control") + ("Cf" . "other format") + ("Cs" . "surrogate") + ("Co" . "private use") + ("Cn" . "not assigned") + ("Lm" . "modifier letter") + ("Lo" . "other letter") + ("Pc" . "connector punctuation") + ("Pd" . "dash punctuation") + ("Ps" . "open punctuation") + ("Pe" . "close punctuation") + ("Pi" . "initial-quotation punctuation") + ("Pf" . "final-quotation punctuation") + ("Po" . "other punctuation") + ("Sm" . "math symbol") + ("Sc" . "currency symbol") + ("Sk" . "modifier symbol") + ("So" . "other symbol"))))) + (list "Combining class" + (cdr (assoc + (string-to-number (nth 2 fields)) + '((0 . "Spacing") + (1 . "Overlays and interior") + (7 . "Nuktas") + (8 . "Hiragana/Katakana voicing marks") + (9 . "Viramas") + (10 . "Start of fixed position classes") + (199 . "End of fixed position classes") + (200 . "Below left attached") + (202 . "Below attached") + (204 . "Below right attached") + (208 . "Left attached (reordrant around \ +single base character)") + (210 . "Right attached") + (212 . "Above left attached") + (214 . "Above attached") + (216 . "Above right attached") + (218 . "Below left") + (220 . "Below") + (222 . "Below right") + (224 . "Left (reordrant around single base \ +character)") + (226 . "Right") + (228 . "Above left") + (230 . "Above") + (232 . "Above right") + (233 . "Double below") + (234 . "Double above") + (240 . "Below (iota subscript)"))))) + (list "Bidi category" + (cdr (assoc + (nth 3 fields) + '(("L" . "Left-to-Right") + ("LRE" . "Left-to-Right Embedding") + ("LRO" . "Left-to-Right Override") + ("R" . "Right-to-Left") + ("AL" . "Right-to-Left Arabic") + ("RLE" . "Right-to-Left Embedding") + ("RLO" . "Right-to-Left Override") + ("PDF" . "Pop Directional Format") + ("EN" . "European Number") + ("ES" . "European Number Separator") + ("ET" . "European Number Terminator") + ("AN" . "Arabic Number") + ("CS" . "Common Number Separator") + ("NSM" . "Non-Spacing Mark") + ("BN" . "Boundary Neutral") + ("B" . "Paragraph Separator") + ("S" . "Segment Separator") + ("WS" . "Whitespace") + ("ON" . "Other Neutrals"))))) + (list "Decomposition" + (if (nth 4 fields) + (let* ((parts (split-string (nth 4 fields))) + (info (car parts))) + (if (string-match "\\`<\\(.+\\)>\\'" info) + (setq info (match-string 1 info)) + (setq info nil)) + (if info (setq parts (cdr parts))) + (setq parts (mapconcat + (lambda (arg) + (string (string-to-number arg 16))) + parts " ")) + (concat info parts)))) + (list "Decimal digit value" + (nth 5 fields)) + (list "Digit value" + (nth 6 fields)) + (list "Numeric value" + (nth 7 fields)) + (list "Mirrored" + (if (equal "Y" (nth 8 fields)) + "yes")) + (list "Old name" (nth 9 fields)) + (list "ISO 10646 comment" (nth 10 fields)) + (list "Uppercase" (and (nth 11 fields) + (string (string-to-number + (nth 11 fields) 16)))) + (list "Lowercase" (and (nth 12 fields) + (string (string-to-number + (nth 12 fields) 16)))) + (list "Titlecase" (and (nth 13 fields) + (string (string-to-number + (nth 13 fields) 16))))))))))) + (provide 'mule-diag) ;;; arch-tag: cd3b607c-2893-45a0-a4fa-a6535754dbee diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index 4cb0ebe9de4..7e22eabb67d 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: mule, multilingual @@ -185,18 +188,18 @@ defaults to \"...\"." ;; (("foobarbaz" 6 nil nil "...") . "foo...") ;; (("foobarbaz" 7 2 nil "...") . "ob...") ;; (("foobarbaz" 9 3 nil "...") . "barbaz") -;; (("$B$3(Bh$B$s(Be$B$K(Bl$B$A(Bl$B$O(Bo" 15 1 ? t) . " h$B$s(Be$B$K(Bl$B$A(Bl$B$O(Bo") -;; (("$B$3(Bh$B$s(Be$B$K(Bl$B$A(Bl$B$O(Bo" 14 1 ? t) . " h$B$s(Be$B$K(Bl$B$A(B...") -;; (("x" 3 nil nil "$(0GnM$(B") . "x") -;; (("$AVP(B" 2 nil nil "$(0GnM$(B") . "$AVP(B") -;; (("$AVP(B" 1 nil ?x "$(0GnM$(B") . "x") ;; XEmacs error -;; (("$AVPND(B" 3 nil ? "$(0GnM$(B") . "$AVP(B ") ;; XEmacs error -;; (("foobarbaz" 4 nil nil "$(0GnM$(B") . "$(0GnM$(B") -;; (("foobarbaz" 5 nil nil "$(0GnM$(B") . "f$(0GnM$(B") -;; (("foobarbaz" 6 nil nil "$(0GnM$(B") . "fo$(0GnM$(B") -;; (("foobarbaz" 8 3 nil "$(0GnM$(B") . "b$(0GnM$(B") -;; (("$B$3(Bh$B$s(Be$B$K(Bl$B$A(Bl$B$O(Bo" 14 4 ?x "$BF|K\8l(B") . "xe$B$KF|K\8l(B") -;; (("$B$3(Bh$B$s(Be$B$K(Bl$B$A(Bl$B$O(Bo" 13 4 ?x "$BF|K\8l(B") . "xex$BF|K\8l(B") +;; (("$A$3(Bh$A$s(Be$A$K(Bl$A$A(Bl$A$O(Bo" 15 1 ? t) . " h$A$s(Be$A$K(Bl$A$A(Bl$A$O(Bo") +;; (("$A$3(Bh$A$s(Be$A$K(Bl$A$A(Bl$A$O(Bo" 14 1 ? t) . " h$A$s(Be$A$K(Bl$A$A(B...") +;; (("x" 3 nil nil "$(Gemk#(B") . "x") +;; (("$AVP(B" 2 nil nil "$(Gemk#(B") . "$AVP(B") +;; (("$AVP(B" 1 nil ?x "$(Gemk#(B") . "x") ;; XEmacs error +;; (("$AVPND(B" 3 nil ? "$(Gemk#(B") . "$AVP(B ") ;; XEmacs error +;; (("foobarbaz" 4 nil nil "$(Gemk#(B") . "$(Gemk#(B") +;; (("foobarbaz" 5 nil nil "$(Gemk#(B") . "f$(Gemk#(B") +;; (("foobarbaz" 6 nil nil "$(Gemk#(B") . "fo$(Gemk#(B") +;; (("foobarbaz" 8 3 nil "$(Gemk#(B") . "b$(Gemk#(B") +;; (("$A$3(Bh$A$s(Be$A$K(Bl$A$A(Bl$A$O(Bo" 14 4 ?x "$AHU1>$(Gk#(B") . "xe$A$KHU1>$(Gk#(B") +;; (("$A$3(Bh$A$s(Be$A$K(Bl$A$A(Bl$A$O(Bo" 13 4 ?x "$AHU1>$(Gk#(B") . "xex$AHU1>$(Gk#(B") ;; )) ;; (let (ret) ;; (condition-case e @@ -294,56 +297,57 @@ Optional 3rd argument NIL-FOR-TOO-LONG non-nil means return nil ;;;###autoload (defun coding-system-post-read-conversion (coding-system) "Return the value of CODING-SYSTEM's `post-read-conversion' property." - (coding-system-get coding-system 'post-read-conversion)) + (coding-system-get coding-system :post-read-conversion)) ;;;###autoload (defun coding-system-pre-write-conversion (coding-system) "Return the value of CODING-SYSTEM's `pre-write-conversion' property." - (coding-system-get coding-system 'pre-write-conversion)) + (coding-system-get coding-system :pre-write-conversion)) ;;;###autoload (defun coding-system-translation-table-for-decode (coding-system) - "Return the value of CODING-SYSTEM's `translation-table-for-decode' property." - (coding-system-get coding-system 'translation-table-for-decode)) + "Return the value of CODING-SYSTEM's `decode-translation-table' property." + (coding-system-get coding-system :decode-translation-table)) ;;;###autoload (defun coding-system-translation-table-for-encode (coding-system) - "Return the value of CODING-SYSTEM's `translation-table-for-encode' property." - (coding-system-get coding-system 'translation-table-for-encode)) + "Return the value of CODING-SYSTEM's `encode-translation-table' property." + (coding-system-get coding-system :encode-translation-table)) + +;;;###autoload +(defmacro with-coding-priority (coding-systems &rest body) + "Execute BODY like `progn' with CODING-SYSTEMS at the front of priority list. +CODING-SYSTEMS is a list of coding systems. See +`set-coding-priority'. This affects the implicit sorting of lists of +coding sysems returned by operations such as `find-coding-systems-region'." + (let ((current (make-symbol "current"))) + `(let ((,current (coding-system-priority-list))) + (apply #'set-coding-system-priority ,coding-systems) + (unwind-protect + (progn ,@body) + (apply #'set-coding-system-priority ,current))))) +(put 'with-coding-priority 'lisp-indent-function 1) +(put 'with-coding-priority 'edebug-form-spec t) ;;;###autoload (defmacro detect-coding-with-priority (from to priority-list) "Detect a coding system of the text between FROM and TO with PRIORITY-LIST. PRIORITY-LIST is an alist of coding categories vs the corresponding coding systems ordered by priority." - `(unwind-protect - (let* ((prio-list ,priority-list) - (coding-category-list coding-category-list) - ,@(mapcar (function (lambda (x) (list x x))) - coding-category-list)) - (mapc (function (lambda (x) (set (car x) (cdr x)))) - prio-list) - (set-coding-priority (mapcar #'car prio-list)) - ;; Changing the binding of a coding category requires this call. - (update-coding-systems-internal) - (detect-coding-region ,from ,to)) - ;; We must restore the internal database. - (set-coding-priority coding-category-list) - (update-coding-systems-internal))) + `(with-coding-priority (mapcar #'cdr ,priority-list) + (detect-coding-region ,from ,to))) +(make-obsolete 'detect-coding-with-priority + "Use with-coding-priority and detect-coding-region" "23.1") ;;;###autoload (defun detect-coding-with-language-environment (from to lang-env) - "Detect a coding system of the text between FROM and TO with LANG-ENV. + "Detect a coding system for the text between FROM and TO with LANG-ENV. The detection takes into account the coding system priorities for the language environment LANG-ENV." (let ((coding-priority (get-language-info lang-env 'coding-priority))) (if coding-priority - (detect-coding-with-priority - from to - (mapcar (function (lambda (x) - (cons (coding-system-get x 'coding-category) x))) - coding-priority)) - (detect-coding-region from to)))) + (with-coding-priority coding-priority + (detect-coding-region from to))))) ;;;###autoload (defun char-displayable-p (char) @@ -364,14 +368,35 @@ basis, this may not be accurate." ;; currently selected frame. (car (internal-char-font nil char))) (t - (let ((coding (terminal-coding-system))) + (let ((coding 'iso-2022-7bit)) (if coding - (let ((safe-chars (coding-system-get coding 'safe-chars)) - (safe-charsets (coding-system-get coding 'safe-charsets))) - (or (and safe-chars - (aref safe-chars char)) - (and safe-charsets - (memq (char-charset char) safe-charsets))))))))) + (let ((cs-list (coding-system-get coding :charset-list))) + (cond + ((listp cs-list) + (catch 'tag + (mapc #'(lambda (charset) + (if (encode-char char charset) + (throw 'tag charset))) + cs-list) + nil)) + ((eq cs-list 'iso-2022) + (catch 'tag2 + (mapc #'(lambda (charset) + (if (and (plist-get (charset-plist charset) + :iso-final-char) + (encode-char char charset)) + (throw 'tag2 charset))) + charset-list) + nil)) + ((eq cs-list 'emacs-mule) + (catch 'tag3 + (mapc #'(lambda (charset) + (if (and (plist-get (charset-plist charset) + :emacs-mule-id) + (encode-char char charset)) + (throw 'tag3 charset))) + charset-list) + nil))))))))) (provide 'mule-util) diff --git a/lisp/international/mule.el b/lisp/international/mule.el index a7b97b16d20..c41cfbd1588 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1,4 +1,4 @@ -;;; mule.el --- basic commands for mulitilingual environment +;;; mule.el --- basic commands for multilingual environment ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: mule, multilingual, character set, coding system @@ -30,12 +33,267 @@ ;;; Code: -(defconst mule-version "5.0 (SAKAKI)" "\ +(defconst mule-version "6.0 (HANACHIRUSATO)" "\ Version number and name of this version of MULE (multilingual environment).") -(defconst mule-version-date "1999.12.7" "\ +(defconst mule-version-date "2003.9.1" "\ Distribution date of this version of MULE (multilingual environment).") + +;;; CHARSET + +;; Backward compatibility code for handling emacs-mule charsets. +(defvar private-char-area-1-min #xF0000) +(defvar private-char-area-1-max #xFFFFE) +(defvar private-char-area-2-min #x100000) +(defvar private-char-area-2-max #x10FFFE) + +;; Table of emacs-mule charsets indexed by their emacs-mule ID. +(defvar emacs-mule-charset-table (make-vector 256 nil)) +(aset emacs-mule-charset-table 0 'ascii) + +;; Convert the argument of old-style calll of define-charset to a +;; property list used by the new-style. +;; INFO-VECTOR is a vector of the format: +;; [DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE +;; SHORT-NAME LONG-NAME DESCRIPTION] + +(defun convert-define-charset-argument (emacs-mule-id info-vector) + (let* ((dim (aref info-vector 0)) + (chars (aref info-vector 1)) + (total (if (= dim 1) chars (* chars chars))) + (code-space (if (= dim 1) (if (= chars 96) [32 127] [33 126]) + (if (= chars 96) [32 127 32 127] [33 126 33 126]))) + code-offset) + (if (integerp emacs-mule-id) + (or (= emacs-mule-id 0) + (and (>= emacs-mule-id 129) (< emacs-mule-id 256)) + (error "Invalid CHARSET-ID: %d" emacs-mule-id)) + (let (from-id to-id) + (if (= dim 1) (setq from-id 160 to-id 224) + (setq from-id 224 to-id 255)) + (while (and (< from-id to-id) + (not (aref emacs-mule-charset-table from-id))) + (setq from-id (1+ from-id))) + (if (= from-id to-id) + (error "No more room for the new Emacs-mule charset")) + (setq emacs-mule-id from-id))) + (if (> (- private-char-area-1-max private-char-area-1-min) total) + (setq code-offset private-char-area-1-min + private-char-area-1-min (+ private-char-area-1-min total)) + (if (> (- private-char-area-2-max private-char-area-2-min) total) + (setq code-offset private-char-area-2-min + private-char-area-2-min (+ private-char-area-2-min total)) + (error "No more space for a new charset."))) + (list :dimension dim + :code-space code-space + :iso-final-char (aref info-vector 4) + :code-offset code-offset + :emacs-mule-id emacs-mule-id))) + +(defun define-charset (name docstring &rest props) + "Define NAME (symbol) as a charset with DOCSTRING. +The remaining arguments must come in pairs ATTRIBUTE VALUE. ATTRIBUTE +may be any symbol. The following have special meanings, and one of +`:code-offset', `:map', `:subset', `:superset' must be specified. + +`:short-name' + +VALUE must be a short string to identify the charset. If omitted, +NAME is used. + +`:long-name' + +VALUE must be a string longer than `:short-name' to identify the +charset. If omitted, the value of the `:short-name' attribute is used. + +`:dimension' + +VALUE must be an integer 0, 1, 2, or 3, specifying the dimension of +code-points of the charsets. If omitted, it is calculated from the +value of the `:code-space' attribute. + +`:code-space' + +VALUE must be a vector of length at most 8 specifying the byte code +range of each dimension in this format: + [ MIN-1 MAX-1 MIN-2 MAX-2 ... ] +where MIN-N is the minimum byte value of Nth dimension of code-point, +MAX-N is the maximum byte value of that. + +`:min-code' + +VALUE must be an integer specifying the mininum code point of the +charset. If omitted, it is calculated from `:code-space'. VALUE may +be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of +the code point and LOW is the least significant 16 bits. + +`:max-code' + +VALUE must be an integer specifying the maxinum code point of the +charset. If omitted, it is calculated from `:code-space'. VALUE may +be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of +the code point and LOW is the least significant 16 bits. + +`:iso-final-char' + +VALUE must be a character in the range 32 to 127 (inclusive) +specifying the final char of the charset for ISO-2022 encoding. If +omitted, the charset can't be encoded by ISO-2022 based +coding-systems. + +`:iso-revision-number' + +VALUE must be an integer in the range 0..63, specifying the revision +number of the charset for ISO-2022 encoding. + +`:emacs-mule-id' + +VALUE must be an integer of 0, 129..255. If omitted, the charset +can't be encoded by coding-systems of type `emacs-mule'. + +`:ascii-compatible-p' + +VALUE must be nil or t (default nil). If VALUE is t, the charset is +compatible with ASCII, i.e. the first 128 code points map to ASCII. + +`:supplementary-p' + +VALUE must be nil or t. If the VALUE is t, the charset is +supplementary, which means it is used only as a parent of some other +charset. + +`:invalid-code' + +VALUE must be a nonnegative integer that can be used as an invalid +code point of the charset. If the minimum code is 0 and the maximum +code is greater than Emacs' maximum integer value, `:invalid-code' +should not be omitted. + +`:code-offset' + +VALUE must be an integer added to the index number of a character to +get the corresponding character code. + +`:map' + +VALUE must be vector or string. + +If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ], +where CODE-n is a code-point of the charset, and CHAR-n is the +corresponding character code. + +If it is a string, it is a name of file that contains the above +information. Each line of the file must be this format: + 0xXXX 0xYYY +where XXX is a hexadecimal representation of CODE-n and YYY is a +hexadecimal representation of CHAR-n. A line starting with `#' is a +comment line. + +`:subset' + +VALUE must be a list: + ( PARENT MIN-CODE MAX-CODE OFFSET ) +PARENT is a parent charset. MIN-CODE and MAX-CODE specify the range +of characters inherited from the parent. OFFSET is an integer value +to add to a code point of the parent charset to get the corresponding +code point of this charset. + +`:superset' + +VALUE must be a list of parent charsets. The charset inherits +characters from them. Each element of the list may be a cons (PARENT +. OFFSET), where PARENT is a parent charset, and OFFSET is an offset +value to add to a code point of PARENT to get the corresponding code +point of this charset. + +`:unify-map' + +VALUE must be vector or string. + +If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ], +where CODE-n is a code-point of the charset, and CHAR-n is the +corresponding Unicode character code. + +If it is a string, it is a name of file that contains the above +information. The file format is the same as what described for `:map' +attribute." + (when (vectorp (car props)) + ;; Old style code: + ;; (define-charset CHARSET-ID CHARSET-SYMBOL INFO-VECTOR) + ;; Convert the argument to make it fit with the current style. + (let ((vec (car props))) + (setq props (convert-define-charset-argument name vec) + name docstring + docstring (aref vec 8)))) + (let ((attrs (mapcar 'list '(:dimension + :code-space + :min-code + :max-code + :iso-final-char + :iso-revision-number + :emacs-mule-id + :ascii-compatible-p + :supplementary-p + :invalid-code + :code-offset + :map + :subset + :superset + :unify-map + :plist)))) + + ;; If :dimension is omitted, get the dimension from :code-space. + (let ((dimension (plist-get props :dimension))) + (or dimension + (let ((code-space (plist-get props :code-space))) + (setq dimension (if code-space (/ (length code-space) 2) 4)) + (setq props (plist-put props :dimension dimension))))) + + (let ((code-space (plist-get props :code-space))) + (or code-space + (let ((dimension (plist-get props :dimension))) + (setq code-space (make-vector 8 0)) + (dotimes (i dimension) + (aset code-space (1+ (* i 2)) #xFF)) + (setq props (plist-put props :code-space code-space))))) + + ;; If :emacs-mule-id is specified, update emacs-mule-charset-table. + (let ((emacs-mule-id (plist-get props :emacs-mule-id))) + (if (integerp emacs-mule-id) + (aset emacs-mule-charset-table emacs-mule-id name))) + + (dolist (slot attrs) + (setcdr slot (plist-get props (car slot)))) + + ;; Make sure that the value of :code-space is a vector of 8 + ;; elements. + (let* ((slot (assq :code-space attrs)) + (val (cdr slot)) + (len (length val))) + (if (< len 8) + (setcdr slot + (vconcat val (make-vector (- 8 len) 0))))) + + ;; Add :name and :docstring properties to PROPS. + (setq props + (cons :name (cons name (cons :docstring (cons docstring props))))) + (or (plist-get props :short-name) + (plist-put props :short-name (symbol-name name))) + (or (plist-get props :long-name) + (plist-put props :long-name (plist-get props :short-name))) + ;; We can probably get a worthwhile amount in purespace. + (setq props + (mapcar (lambda (elt) + (if (stringp elt) + (purecopy elt) + elt)) + props)) + (setcdr (assq :plist attrs) props) + + (apply 'define-charset-internal name (mapcar 'cdr attrs)))) + + (defun load-with-code-conversion (fullname file &optional noerror nomessage) "Execute a file of Lisp code named FILE whose absolute name is FULLNAME. The file contents are decoded before evaluation if necessary. @@ -81,8 +339,8 @@ Return t if file exists." ;; Otherwise, eval-buffer might try to interpret random ;; binary junk as multibyte characters. (if (and enable-multibyte-characters - (or (eq (coding-system-type last-coding-system-used) 5) - (eq last-coding-system-used 'no-conversion))) + (or (eq (coding-system-type last-coding-system-used) + 'raw-text))) (set-buffer-multibyte nil)) ;; Make `kill-buffer' quiet. (set-buffer-modified-p nil)) @@ -107,290 +365,131 @@ Return t if file exists." (message "Loading %s...done" file))) t))) -;; API (Application Program Interface) for charsets. - -(defsubst charset-quoted-standard-p (obj) - "Return t if OBJ is a quoted symbol, and is the name of a standard charset." - (and (listp obj) (eq (car obj) 'quote) - (symbolp (car-safe (cdr obj))) - (let ((vector (get (car-safe (cdr obj)) 'charset))) - (and (vectorp vector) - (< (aref vector 0) 160))))) - -(defsubst charsetp (object) - "Return t if OBJECT is a charset." - (and (symbolp object) (vectorp (get object 'charset)))) - -(defsubst charset-info (charset) +(defun charset-info (charset) "Return a vector of information of CHARSET. +This function is provided for backward compatibility. + The elements of the vector are: CHARSET-ID, BYTES, DIMENSION, CHARS, WIDTH, DIRECTION, LEADING-CODE-BASE, LEADING-CODE-EXT, ISO-FINAL-CHAR, ISO-GRAPHIC-PLANE, REVERSE-CHARSET, SHORT-NAME, LONG-NAME, DESCRIPTION, - PLIST, + PLIST. where -CHARSET-ID (integer) is the identification number of the charset. -BYTES (integer) is the length of multi-byte form of a character in - the charset: one of 1, 2, 3, and 4. -DIMENSION (integer) is the number of bytes to represent a character of -the charset: 1 or 2. -CHARS (integer) is the number of characters in a dimension: 94 or 96. -WIDTH (integer) is the number of columns a character in the charset - occupies on the screen: one of 0, 1, and 2. -DIRECTION (integer) is the rendering direction of characters in the - charset when rendering. If 0, render from left to right, else - render from right to left. -LEADING-CODE-BASE (integer) is the base leading-code for the - charset. -LEADING-CODE-EXT (integer) is the extended leading-code for the - charset. All charsets of less than 0xA0 has the value 0. +CHARSET-ID is always 0. +BYTES is always 0. +DIMENSION is the number of bytes of a code-point of the charset: + 1, 2, 3, or 4. +CHARS is the number of characters in a dimension: + 94, 96, 128, or 256. +WIDTH is always 0. +DIRECTION is always 0. +LEADING-CODE-BASE is always 0. +LEADING-CODE-EXT is always 0. ISO-FINAL-CHAR (character) is the final character of the corresponding ISO 2022 charset. If the charset is not assigned any final character, the value is -1. -ISO-GRAPHIC-PLANE (integer) is the graphic plane to be invoked - while encoding to variants of ISO 2022 coding system, one of the - following: 0/graphic-plane-left(GL), 1/graphic-plane-right(GR). - If the charset is not assigned any final character, the value is -1. -REVERSE-CHARSET (integer) is the charset which differs only in - LEFT-TO-RIGHT value from the charset. If there's no such a - charset, the value is -1. +ISO-GRAPHIC-PLANE is always 0. +REVERSE-CHARSET is always -1. SHORT-NAME (string) is the short name to refer to the charset. LONG-NAME (string) is the long name to refer to the charset DESCRIPTION (string) is the description string of the charset. PLIST (property list) may contain any type of information a user want to put and get by functions `put-charset-property' and `get-charset-property' respectively." - (get charset 'charset)) + (vector 0 + 0 + (charset-dimension charset) + (charset-chars charset) + 0 + 0 + 0 + 0 + (charset-iso-final-char charset) + 0 + -1 + (get-charset-property charset :short-name) + (get-charset-property charset :short-name) + (charset-description charset) + (charset-plist charset))) ;; It is better not to use backquote in this file, ;; because that makes a bootstrapping problem ;; if you need to recompile all the Lisp files using interpreted code. -(defmacro charset-id (charset) - "Return charset identification number of CHARSET." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 0) - (list 'aref (list 'charset-info charset) 0))) +(defun charset-id (charset) + "Always return 0. This is provided for backward compatibility." + 0) (defmacro charset-bytes (charset) - "Return bytes of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 1) - (list 'aref (list 'charset-info charset) 1))) - -(defmacro charset-dimension (charset) - "Return dimension of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 2) - (list 'aref (list 'charset-info charset) 2))) - -(defmacro charset-chars (charset) - "Return character numbers contained in a dimension of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 3) - (list 'aref (list 'charset-info charset) 3))) - -(defmacro charset-width (charset) - "Return width (how many column occupied on a screen) of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 4) - (list 'aref (list 'charset-info charset) 4))) - -(defmacro charset-direction (charset) - "Return direction of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 5) - (list 'aref (list 'charset-info charset) 5))) - -(defmacro charset-iso-final-char (charset) - "Return final char of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 8) - (list 'aref (list 'charset-info charset) 8))) - -(defmacro charset-iso-graphic-plane (charset) - "Return graphic plane of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 9) - (list 'aref (list 'charset-info charset) 9))) - -(defmacro charset-reverse-charset (charset) - "Return reverse charset of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 10) - (list 'aref (list 'charset-info charset) 10))) + "Always return 0. This is provided for backward compatibility." + 0) + +(defun get-charset-property (charset propname) + "Return the value of CHARSET's PROPNAME property. +This is the last value stored with + (put-charset-property CHARSET PROPNAME VALUE)." + (plist-get (charset-plist charset) propname)) + +(defun put-charset-property (charset propname value) + "Set CHARSETS's PROPNAME property to value VALUE. +It can be retrieved with `(get-charset-property CHARSET PROPNAME)'." + (set-charset-plist charset + (plist-put (charset-plist charset) propname value))) + +(defun charset-description (charset) + "Return description string of CHARSET." + (plist-get (charset-plist charset) :docstring)) + +(defun charset-dimension (charset) + "Return dimension of CHARSET." + (plist-get (charset-plist charset) :dimension)) + +(defun charset-chars (charset &optional dimension) + "Return number of characters contained in DIMENSION of CHARSET. +DIMENSION defaults to the first dimension." + (unless dimension (setq dimension 1)) + (let ((code-space (plist-get (charset-plist charset) :code-space))) + (1+ (- (aref code-space (1- (* 2 dimension))) + (aref code-space (- (* 2 dimension) 2)))))) + +(defun charset-iso-final-char (charset) + "Return ISO-2022 final character of CHARSET. +Return -1 if charset isn't an ISO 2022 one." + (or (plist-get (charset-plist charset) :iso-final-char) + -1)) (defmacro charset-short-name (charset) - "Return short name of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 11) - (list 'aref (list 'charset-info charset) 11))) + "Return short name of CHARSET." + (plist-get (charset-plist charset) :short-name)) (defmacro charset-long-name (charset) - "Return long name of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 12) - (list 'aref (list 'charset-info charset) 12))) - -(defmacro charset-description (charset) - "Return description of CHARSET. -See the function `charset-info' for more detail." - (if (charset-quoted-standard-p charset) - (aref (charset-info (nth 1 charset)) 13) - (list 'aref (list 'charset-info charset) 13))) - -(defmacro charset-plist (charset) - "Return list charset property of CHARSET. -See the function `charset-info' for more detail." - (list 'aref - (if (charset-quoted-standard-p charset) - (charset-info (nth 1 charset)) - (list 'charset-info charset)) - 14)) - -(defun set-charset-plist (charset plist) - "Set CHARSET's property list to PLIST, and return PLIST." - (aset (charset-info charset) 14 plist)) - -(defun make-char (charset &optional code1 code2) - "Return a character of CHARSET whose position codes are CODE1 and CODE2. -CODE1 and CODE2 are optional, but if you don't supply -sufficient position codes, return a generic character which stands for -all characters or group of characters in the character set. -A generic character can be used to index a char table (e.g. `syntax-table'). - -Such character sets as ascii, eight-bit-control, and eight-bit-graphic -don't have corresponding generic characters. If CHARSET is one of -them and you don't supply CODE1, return the character of the smallest -code in CHARSET. - -If CODE1 or CODE2 are invalid (out of range), this function signals an -error. However, the eighth bit of both CODE1 and CODE2 is zeroed -before they are used to index CHARSET. Thus you may use, say, the -actual ISO 8859 character code rather than subtracting 128, as you -would need to index the corresponding Emacs charset." - (make-char-internal (charset-id charset) code1 code2)) - -(put 'make-char 'byte-compile - (lambda (form) - (let ((charset (nth 1 form))) - (byte-compile-normal-call - (cons 'make-char-internal - (cons (if (charset-quoted-standard-p charset) - (charset-id (nth 1 charset)) - (list 'charset-id charset)) - (nthcdr 2 form))))))) + "Return long name of CHARSET." + (plist-get (charset-plist charset) :long-name)) (defun charset-list () - "Return list of charsets ever defined. + "Return list of all charsets ever defined. This function is provided for backward compatibility. Now we have the variable `charset-list'." charset-list) +(make-obsolete 'charset-list "Use variable `charset-list'" "23.1") -(defsubst generic-char-p (char) - "Return t if and only if CHAR is a generic character. -See also the documentation of `make-char'." - (and (>= char 0400) - (let ((l (split-char char))) - (and (or (= (nth 1 l) 0) (eq (nth 2 l) 0)) - (not (eq (car l) 'composition)))))) - -(defun decode-char (ccs code-point &optional restriction) - "Return character specified by coded character set CCS and CODE-POINT in it. -Return nil if such a character is not supported. -Currently the only supported coded character set is `ucs' (ISO/IEC -10646: Universal Multi-Octet Coded Character Set), and the result is -translated through the translation-table named -`utf-translation-table-for-decode', or through the -translation-hash-table named `utf-subst-table-for-decode' -\(if `utf-translate-cjk-mode' is non-nil). - -Optional argument RESTRICTION specifies a way to map the pair of CCS -and CODE-POINT to a character. Currently not supported and just ignored." - (cond - ((eq ccs 'ucs) - (or (and utf-translate-cjk-mode - (utf-lookup-subst-table-for-decode code-point)) - (let ((c (cond - ((< code-point 160) - code-point) - ((< code-point 256) - (make-char 'latin-iso8859-1 code-point)) - ((< code-point #x2500) - (setq code-point (- code-point #x0100)) - (make-char 'mule-unicode-0100-24ff - (+ (/ code-point 96) 32) (+ (% code-point 96) 32))) - ((< code-point #x3400) - (setq code-point (- code-point #x2500)) - (make-char 'mule-unicode-2500-33ff - (+ (/ code-point 96) 32) (+ (% code-point 96) 32))) - ((and (>= code-point #xe000) (< code-point #x10000)) - (setq code-point (- code-point #xe000)) - (make-char 'mule-unicode-e000-ffff - (+ (/ code-point 96) 32) - (+ (% code-point 96) 32)))))) - (when c - (or (aref (get 'utf-translation-table-for-decode - 'translation-table) c) - c))))))) - -(defun encode-char (char ccs &optional restriction) - "Return code-point in coded character set CCS that corresponds to CHAR. -Return nil if CHAR is not included in CCS. -Currently the only supported coded character set is `ucs' (ISO/IEC -10646: Universal Multi-Octet Coded Character Set), and CHAR is first -translated through the translation-table named -`utf-translation-table-for-encode', or through the -translation-hash-table named `utf-subst-table-for-encode' \(if -`utf-translate-cjk-mode' is non-nil). - -CHAR should be in one of these charsets: - ascii, latin-iso8859-1, mule-unicode-0100-24ff, mule-unicode-2500-33ff, - mule-unicode-e000-ffff, eight-bit-control -Otherwise, return nil. - -Optional argument RESTRICTION specifies a way to map CHAR to a -code-point in CCS. Currently not supported and just ignored." - (let* ((split (split-char char)) - (charset (car split)) - trans) - (cond ((eq ccs 'ucs) - (or (and utf-translate-cjk-mode - (utf-lookup-subst-table-for-encode char)) - (let ((table (get 'utf-translation-table-for-encode - 'translation-table))) - (setq trans (aref table char)) - (if trans - (setq split (split-char trans) - charset (car split))) - (cond ((eq charset 'ascii) - (or trans char)) - ((eq charset 'latin-iso8859-1) - (+ (nth 1 split) 128)) - ((eq charset 'mule-unicode-0100-24ff) - (+ #x0100 (+ (* (- (nth 1 split) 32) 96) - (- (nth 2 split) 32)))) - ((eq charset 'mule-unicode-2500-33ff) - (+ #x2500 (+ (* (- (nth 1 split) 32) 96) - (- (nth 2 split) 32)))) - ((eq charset 'mule-unicode-e000-ffff) - (+ #xe000 (+ (* (- (nth 1 split) 32) 96) - (- (nth 2 split) 32)))) - ((eq charset 'eight-bit-control) - char)))))))) + +;;; CHARACTER +(defalias 'char-valid-p 'characterp) +(make-obsolete 'char-valid-p 'characterp "23.1") +(defun generic-char-p (char) + "Always return nil. This is provided for backward compatibility." + nil) +(make-obsolete 'generic-char-p "Generic characters no longer exist" "23.1") + +(defun make-char-internal (charset-id &optional code1 code2) + (let ((charset (aref emacs-mule-charset-table charset-id))) + (or charset + (error "Invalid Emacs-mule charset ID: %d" charset-id)) + (make-char charset code1 code2))) ;; Save the ASCII case table in case we need it later. Some locales ;; (such as Turkish) modify the case behavior of ASCII characters, @@ -408,127 +507,365 @@ code-point in CCS. Currently not supported and just ignored." ;; Coding system stuff -;; Coding system is a symbol that has the property `coding-system'. -;; -;; The value of the property `coding-system' is a vector of the -;; following format: -;; [TYPE MNEMONIC DOC-STRING PLIST FLAGS] -;; We call this vector as coding-spec. See comments in src/coding.c -;; for more detail. - -(defconst coding-spec-type-idx 0) -(defconst coding-spec-mnemonic-idx 1) -(defconst coding-spec-doc-string-idx 2) -(defconst coding-spec-plist-idx 3) -(defconst coding-spec-flags-idx 4) - -;; PLIST is a property list of a coding system. To share PLIST among -;; alias coding systems, a coding system has PLIST in coding-spec -;; instead of having it in normal property list of Lisp symbol. -;; Here's a list of coding system properties currently being used. -;; -;; o coding-category -;; -;; The value is a coding category the coding system belongs to. The -;; function `make-coding-system' sets this value automatically -;; unless its argument PROPERTIES specifies this property. -;; -;; o alias-coding-systems -;; -;; The value is a list of coding systems of the same alias group. The -;; first element is the coding system made at first, which we call as -;; `base coding system'. The function `make-coding-system' sets this -;; value automatically and `define-coding-system-alias' updates it. -;; -;; See the documentation of make-coding-system for the meanings of the -;; following properties. -;; -;; o post-read-conversion -;; o pre-write-conversion -;; o translation-table-for-decode -;; o translation-table-for-encode -;; o safe-chars -;; o safe-charsets -;; o mime-charset -;; o valid-codes (meaningful only for a coding system based on CCL) - - -(defsubst coding-system-spec (coding-system) - "Return coding-spec of CODING-SYSTEM." - (get (check-coding-system coding-system) 'coding-system)) +;; Coding system is a symbol that has been defined by the function +;; `define-coding-system'. -(defun coding-system-type (coding-system) - "Return the coding type of CODING-SYSTEM. -A coding type is an integer value indicating the encoding method -of CODING-SYSTEM. See the function `make-coding-system' for more detail." - (aref (coding-system-spec coding-system) coding-spec-type-idx)) +(defconst coding-system-iso-2022-flags + '(long-form + ascii-at-eol + ascii-at-cntl + 7-bit + locking-shift + single-shift + designation + revision + direction + init-at-bol + designate-at-bol + safe + latin-extra + composition + euc-tw-shift + use-roman + use-oldjis) + "List of symbols that control ISO-2022 encoder/decoder. -(defun coding-system-mnemonic (coding-system) - "Return the mnemonic character of CODING-SYSTEM. -The mnemonic character of a coding system is used in mode line -to indicate the coding system. If the arg is nil, return ?-." - (let ((spec (coding-system-spec coding-system))) - (if spec (aref spec coding-spec-mnemonic-idx) ?-))) +The value of the `:flags' attribute in the argument of the function +`define-coding-system' must be one of them. + +If `long-form' is specified, use a long designation sequence on +encoding for the charsets `japanese-jisx0208-1978', `chinese-gb2312', +and `japanese-jisx0208'. The long designation sequence doesn't +conform to ISO 2022, but is used by such coding systems as +`compound-text'. + +If `ascii-at-eol' is specified, designate ASCII to g0 at end of line +on encoding. + +If `ascii-at-cntl' is specified, designate ASCII to g0 before control +codes and SPC on encoding. + +If `7-bit' is specified, use 7-bit code only on encoding. + +If `locking-shift' is specified, decode locking-shift code correctly +on decoding, and use locking-shift to invoke a graphic element on +encoding. + +If `single-shift' is specified, decode single-shift code correctly on +decoding, and use single-shift to invoke a graphic element on encoding. + +If `designation' is specified, decode designation code correctly on +decoding, and use designation to designate a charset to a graphic +element on encoding. + +If `revision' is specified, produce an escape sequence to specify +revision number of a charset on encoding. Such an escape sequence is +always correctly decoded on decoding. + +If `direction' is specified, decode ISO6429's code for specifying +direction correctly, and produce the code on encoding. + +If `init-at-bol' is specified, on encoding, it is assumed that +invocation and designation statuses are reset at each beginning of +line even if `ascii-at-eol' is not specified; thus no codes for +resetting them are produced. + +If `safe' is specified, on encoding, characters not supported by a +coding are replaced with `?'. + +If `latin-extra' is specified, the code-detection routine assumes that a +code specified in `latin-extra-code-table' (which see) is valid. + +If `composition' is specified, an escape sequence to specify +composition sequence is correctly decoded on decoding, and is produced +on encoding. + +If `euc-tw-shift' is specified, the EUC-TW specific shifting code is +correctly decoded on decoding, and is produced on encoding. + +If `use-roman' is specified, JIS0201-1976-Roman is designated instead +of ASCII. + +If `use-oldjis' is specified, JIS0208-1976 is designated instead of +JIS0208-1983.") + +(defun define-coding-system (name docstring &rest props) + "Define NAME (a symbol) as a coding system with DOCSTRING and attributes. +The remaining arguments must come in pairs ATTRIBUTE VALUE. ATTRIBUTE +may be any symbol. + +The following attributes have special meanings. Those labeled as +\"(required)\", should not be omitted. + +`:mnemonic' (required) + +VALUE is a character to display on mode line for the coding system. + +`:coding-type' (required) + +VALUE must be one of `charset', `utf-8', `utf-16', `iso-2022', +`emacs-mule', `shift-jis', `ccl', `raw-text', `undecided'. + +`:eol-type' + +VALUE is the EOL (end-of-line) format of the coding system. It must be +one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL +\(i.e. single LF), `dos' means DOS-like EOL \(i.e. sequence of CR LF), +and `mac' means MAC-like EOL \(i.e. single CR). If omitted, on +decoding by the coding system, Emacs automatically detects the EOL +format of the source text. + +`:charset-list' + +VALUE must be a list of charsets supported by the coding system. On +encoding by the coding system, if a character belongs to multiple +charsets in the list, a charset that comes earlier in the list is +selected. If `:coding-type' is `iso-2022', VALUE may be `iso-2022', +which indicates that the coding system supports all ISO-2022 based +charsets. If `:coding-type' is `emacs-mule', VALUE may be +`emacs-mule', which indicates that the coding system supports all +charsets that have the `:emacs-mule-id' property. + +`:ascii-compatible-p' + +If VALUE is non-nil, the coding system decodes all 7-bit bytes into +the corresponding ASCII characters, and encodes all ASCII characters +back to the corresponding 7-bit bytes. VALUE defaults to nil. + +`:decode-translation-table' + +VALUE must be a translation table to use on decoding. + +`:encode-translation-table' + +VALUE must be a translation table to use on encoding. + +`:post-read-conversion' + +VALUE must be a function to call after some text is inserted and +decoded by the coding system itself and before any functions in +`after-insert-functions' are called. The arguments to this function +are the same as those of a function in `after-insert-file-functions', +i.e. LENGTH of the text to be decoded with point at the head of it, +and the function should leave point unchanged. + +`:pre-write-conversion' + +VALUE must be a function to call after all functions in +`write-region-annotate-functions' and `buffer-file-format' are called, +and before the text is encoded by the coding system itself. The +arguments to this function are the same as those of a function in +`write-region-annotate-functions'. + +`:default-char' + +VALUE must be a character. On encoding, a character not supported by +the coding system is replaced with VALUE. + +`:for-unibyte' + +VALUE non-nil means that visiting a file with the coding system +results in a unibyte buffer. + +`:eol-type' + +VALUE must be `unix', `dos', `mac'. The symbol `unix' means Unix-like +EOL (LF), `dos' means DOS-like EOL (CRLF), and `mac' means MAC-like +EOL (CR). If omitted, on decoding, the coding system detects EOL +format automatically, and on encoding, uses Unix-like EOL. + +`:mime-charset' + +VALUE must be a symbol whose name is that of a MIME charset converted +to lower case. + +`:mime-text-unsuitable' + +VALUE non-nil means the `:mime-charset' property names a charset which +is unsuitable for the top-level media type \"text\". + +`:flags' + +VALUE must be a list of symbols that control the ISO-2022 converter. +Each must be a member of the list `coding-system-iso-2022-flags' +\(which see). This attribute has a meaning only when `:coding-type' +is `iso-2022'. + +`:designation' + +VALUE must be a vector [G0-USAGE G1-USAGE G2-USAGE G3-USAGE]. +GN-USAGE specifies the usage of graphic register GN as follows. + +If it is nil, no charset can be designated to GN. + +If it is a charset, the charset is initially designated to GN, and +never used by the other charsets. + +If it is a list, the elements must be charsets, nil, 94, or 96. GN +can be used by all the listed charsets. If the list contains 94, any +iso-2022 charset whose code-space ranges are 94 long can be designated +to GN. If the list contains 96, any charsets whose whose ranges are +96 long can be designated to GN. If the first element is a charset, +that charset is initially designated to GN. + +This attribute has a meaning only when `:coding-type' is `iso-2022'. + +`:bom' + +This attributes specifies whether the coding system uses a `byte order +mark'. VALUE must nil, t, or cons of coding systems whose +`:coding-type' is `utf-16'. + +If the value is nil, on decoding, don't treat the first two-byte as +BOM, and on encoding, don't produce BOM bytes. + +If the value is t, on decoding, skip the first two-byte as BOM, and on +encoding, produce BOM bytes accoding to the value of `:endian'. + +If the value is cons, on decoding, check the first two-byte. If theyq +are 0xFE 0xFF, use the car part coding system of the value. If they +are 0xFF 0xFE, use the car part coding system of the value. +Otherwise, treat them as bytes for a normal character. On encoding, +produce BOM bytes accoding to the value of `:endian'. + +This attribute has a meaning only when `:coding-type' is `utf-16'. + +`:endian' + +VALUE must be `big' or `little' specifying big-endian and +little-endian respectively. The default value is `big'. + +This attribute has a meaning only when `:coding-type' is `utf-16'. + +`:ccl-decoder' + +VALUE is a symbol representing the registered CCL program used for +decoding. This attribute has a meaning only when `:coding-type' is +`ccl'. + +`:ccl-encoder' + +VALUE is a symbol representing the registered CCL program used for +encoding. This attribute has a meaning only when `:coding-type' is +`ccl'." + (let* ((common-attrs (mapcar 'list + '(:mnemonic + :coding-type + :charset-list + :ascii-compatible-p + :decode-translation-table + :encode-translation-table + :post-read-conversion + :pre-write-conversion + :default-char + :for-unibyte + :plist + :eol-type))) + (coding-type (plist-get props :coding-type)) + (spec-attrs (mapcar 'list + (cond ((eq coding-type 'iso-2022) + '(:initial + :reg-usage + :request + :flags)) + ((eq coding-type 'utf-16) + '(:bom + :endian)) + ((eq coding-type 'ccl) + '(:ccl-decoder + :ccl-encoder + :valids)))))) + + (dolist (slot common-attrs) + (setcdr slot (plist-get props (car slot)))) + + (dolist (slot spec-attrs) + (setcdr slot (plist-get props (car slot)))) + + (if (eq coding-type 'iso-2022) + (let ((designation (plist-get props :designation)) + (flags (plist-get props :flags)) + (initial (make-vector 4 nil)) + (reg-usage (cons 4 4)) + request elt) + (dotimes (i 4) + (setq elt (aref designation i)) + (cond ((charsetp elt) + (aset initial i elt) + (setq request (cons (cons elt i) request))) + ((consp elt) + (aset initial i (car elt)) + (if (charsetp (car elt)) + (setq request (cons (cons (car elt) i) request))) + (dolist (e (cdr elt)) + (cond ((charsetp e) + (setq request (cons (cons e i) request))) + ((eq e 94) + (setcar reg-usage i)) + ((eq e 96) + (setcdr reg-usage i)) + ((eq e t) + (setcar reg-usage i) + (setcdr reg-usage i))))))) + (setcdr (assq :initial spec-attrs) initial) + (setcdr (assq :reg-usage spec-attrs) reg-usage) + (setcdr (assq :request spec-attrs) request) + + ;; Change :flags value from a list to a bit-mask. + (let ((bits 0) + (i 0)) + (dolist (elt coding-system-iso-2022-flags) + (if (memq elt flags) + (setq bits (logior bits (lsh 1 i)))) + (setq i (1+ i))) + (setcdr (assq :flags spec-attrs) bits)))) + + ;; Add :name and :docstring properties to PROPS. + (setq props + (cons :name (cons name (cons :docstring (cons (purecopy docstring) + props))))) + (setcdr (assq :plist common-attrs) props) + (apply 'define-coding-system-internal + name (mapcar 'cdr (append common-attrs spec-attrs))))) (defun coding-system-doc-string (coding-system) "Return the documentation string for CODING-SYSTEM." - (aref (coding-system-spec coding-system) coding-spec-doc-string-idx)) - -(defun coding-system-plist (coding-system) - "Return the property list of CODING-SYSTEM." - (aref (coding-system-spec coding-system) coding-spec-plist-idx)) + (plist-get (coding-system-plist coding-system) :docstring)) -(defun coding-system-flags (coding-system) - "Return `flags' of CODING-SYSTEM. -A `flags' of a coding system is a vector of length 32 indicating detailed -information of a coding system. See the function `make-coding-system' -for more detail." - (aref (coding-system-spec coding-system) coding-spec-flags-idx)) +(defun coding-system-mnemonic (coding-system) + "Return the mnemonic character of CODING-SYSTEM. +The mnemonic character of a coding system is used in mode line to +indicate the coding system. If CODING-SYSTEM. is nil, return ?=." + (plist-get (coding-system-plist coding-system) :mnemonic)) -(defun coding-system-get (coding-system prop) - "Extract a value from CODING-SYSTEM's property list for property PROP." - (plist-get (coding-system-plist coding-system) prop)) +(defun coding-system-type (coding-system) + "Return the coding type of CODING-SYSTEM. +A coding type is a symbol indicating the encoding method of CODING-SYSTEM. +See the function `define-coding-system' for more detail." + (plist-get (coding-system-plist coding-system) :coding-type)) -(defun coding-system-put (coding-system prop val) - "Change value in CODING-SYSTEM's property list PROP to VAL." - (let ((plist (coding-system-plist coding-system))) - (if plist - (plist-put plist prop val) - (aset (coding-system-spec coding-system) coding-spec-plist-idx - (list prop val))))) +(defun coding-system-charset-list (coding-system) + "Return list of charsets supported by CODING-SYSTEM. +If CODING-SYSTEM supports all ISO-2022 charsets, return `iso-2022'. +If CODING-SYSTEM supports all emacs-mule charsets, return `emacs-mule'." + (plist-get (coding-system-plist coding-system) :charset-list)) (defun coding-system-category (coding-system) - "Return the coding category of CODING-SYSTEM. -See also `coding-category-list'." - (coding-system-get coding-system 'coding-category)) - -(defun coding-system-base (coding-system) - "Return the base coding system of CODING-SYSTEM. -A base coding system is what made by `make-coding-system'. -Any alias nor subsidiary coding systems are not base coding system." - (car (coding-system-get coding-system 'alias-coding-systems))) - -;; Coding system also has a property `eol-type'. -;; -;; This property indicates how the coding system handles end-of-line -;; format. The value is integer 0, 1, 2, or a vector of three coding -;; systems. Each integer value 0, 1, and 2 indicates the format of -;; end-of-line LF, CRLF, and CR respectively. A vector value -;; indicates that the format of end-of-line should be detected -;; automatically. Nth element of the vector is the subsidiary coding -;; system whose `eol-type' property is N. - -(defun coding-system-eol-type (coding-system) - "Return eol-type of CODING-SYSTEM. -An eol-type is integer 0, 1, 2, or a vector of coding systems. - -Integer values 0, 1, and 2 indicate a format of end-of-line; LF, -CRLF, and CR respectively. - -A vector value indicates that a format of end-of-line should be -detected automatically. Nth element of the vector is the subsidiary -coding system whose eol-type is N." - (get coding-system 'eol-type)) + "Return a category symbol of CODING-SYSTEM." + (plist-get (coding-system-plist coding-system) :category)) + +(defun coding-system-get (coding-system prop) + "Extract a value from CODING-SYSTEM's property list for property PROP. +For compatibility with Emacs 20/21, this accepts old-style symbols +like `mime-charset' as well as the current style like `:mime-charset'." + (or (plist-get (coding-system-plist coding-system) prop) + (if (not (keywordp prop)) + ;; For backward compatiblity. + (if (eq prop 'ascii-incompatible) + (not (plist-get (coding-system-plist coding-system) + :ascii-compatible-p)) + (plist-get (coding-system-plist coding-system) + (intern (concat ":" (symbol-name prop)))))))) (defun coding-system-eol-type-mnemonic (coding-system) "Return the string indicating end-of-line format of CODING-SYSTEM." @@ -559,8 +896,8 @@ coding system whose eol-type is N." Two coding systems are identical if two symbols are equal or one is an alias of the other." (or (eq coding-system-1 coding-system-2) - (and (equal (coding-system-spec coding-system-1) - (coding-system-spec coding-system-2)) + (and (equal (coding-system-plist coding-system-1) + (coding-system-plist coding-system-2)) (let ((eol-type-1 (coding-system-eol-type coding-system-1)) (eol-type-2 (coding-system-eol-type coding-system-2))) (or (eq eol-type-1 eol-type-2) @@ -583,71 +920,23 @@ or one is an alias of the other." (defun coding-system-list (&optional base-only) "Return a list of all existing non-subsidiary coding systems. -If optional arg BASE-ONLY is non-nil, only base coding systems are listed. -The value doesn't include subsidiary coding systems which are what +If optional arg BASE-ONLY is non-nil, only base coding systems are +listed. The value doesn't include subsidiary coding systems which are made from bases and aliases automatically for various end-of-line formats (e.g. iso-latin-1-unix, koi8-r-dos)." - (let* ((codings (copy-sequence coding-system-list)) - (tail (cons nil codings))) - ;; Remove subsidiary coding systems (eol variants) and alias - ;; coding systems (if necessary). - (while (cdr tail) - (let* ((coding (car (cdr tail))) - (aliases (coding-system-get coding 'alias-coding-systems))) - (if (or - ;; CODING is an eol variant if not in ALIASES. - (not (memq coding aliases)) - ;; CODING is an alias if it is not car of ALIASES. - (and base-only (not (eq coding (car aliases))))) - (setcdr tail (cdr (cdr tail))) - (setq tail (cdr tail))))) + (let ((codings nil)) + (dolist (coding coding-system-list) + (if (eq (coding-system-base coding) coding) + (if base-only + (setq codings (cons coding codings)) + (dolist (alias (coding-system-aliases coding)) + (setq codings (cons alias codings)))))) codings)) -(defun map-charset-chars (func charset) - "Use FUNC to map over all characters in CHARSET for side effects. -FUNC is a function of two args, the start and end (inclusive) of a -character code range. Thus FUNC should iterate over [START, END]." - (let* ((dim (charset-dimension charset)) - (chars (charset-chars charset)) - (start (if (= chars 94) - 33 - 32))) - (if (= dim 1) - (funcall func - (make-char charset start) - (make-char charset (+ start chars -1))) - (dotimes (i chars) - (funcall func - (make-char charset (+ i start) start) - (make-char charset (+ i start) (+ start chars -1))))))) - -(defalias 'register-char-codings 'ignore "") -(make-obsolete 'register-char-codings - "it exists just for backward compatibility, and does nothing." - "21.3") - (defconst char-coding-system-table nil "This is an obsolete variable. It exists just for backward compatibility, and the value is always nil.") -(defun make-subsidiary-coding-system (coding-system) - "Make subsidiary coding systems (eol-type variants) of CODING-SYSTEM." - (let ((coding-spec (coding-system-spec coding-system)) - (subsidiaries (vector (intern (format "%s-unix" coding-system)) - (intern (format "%s-dos" coding-system)) - (intern (format "%s-mac" coding-system)))) - elt) - (dotimes (i 3) - (setq elt (aref subsidiaries i)) - (put elt 'coding-system coding-spec) - (put elt 'eol-type i) - (put elt 'coding-system-define-form nil) - (add-to-coding-system-list elt) - (or (assoc (symbol-name elt) coding-system-alist) - (setq coding-system-alist - (cons (list (symbol-name elt)) coding-system-alist)))) - subsidiaries)) - (defun transform-make-coding-system-args (name type &optional doc-string props) "For internal use only. Transform XEmacs style args for `make-coding-system' to Emacs style. @@ -735,169 +1024,8 @@ Value is a list of transformed arguments." properties eol-type) "Define a new coding system CODING-SYSTEM (symbol). -Remaining arguments are TYPE, MNEMONIC, DOC-STRING, FLAGS (optional), -and PROPERTIES (optional) which construct a coding-spec of CODING-SYSTEM -in the following format: - [TYPE MNEMONIC DOC-STRING PLIST FLAGS] - -TYPE is an integer value indicating the type of the coding system as follows: - 0: Emacs internal format, - 1: Shift-JIS (or MS-Kanji) used mainly on Japanese PCs, - 2: ISO-2022 including many variants, - 3: Big5 used mainly on Chinese PCs, - 4: private, CCL programs provide encoding/decoding algorithm, - 5: Raw-text, which means that text contains random 8-bit codes. - -MNEMONIC is a character to be displayed on mode line for the coding system. - -DOC-STRING is a documentation string for the coding system. - -FLAGS specifies more detailed information of the coding system as follows: - - If TYPE is 2 (ISO-2022), FLAGS is a list of these elements: - CHARSET0, CHARSET1, CHARSET2, CHARSET3, SHORT-FORM, - ASCII-EOL, ASCII-CNTL, SEVEN, LOCKING-SHIFT, SINGLE-SHIFT, - USE-ROMAN, USE-OLDJIS, NO-ISO6429, INIT-BOL, DESIGNATION-BOL, - SAFE, ACCEPT-LATIN-EXTRA-CODE. - CHARSETn are character sets initially designated to Gn graphic registers. - If CHARSETn is nil, Gn is never used. - If CHARSETn is t, Gn can be used but nothing designated initially. - If CHARSETn is a list of character sets, those character sets are - designated to Gn on output, but nothing designated to Gn initially. - But, character set `ascii' can be designated only to G0. - SHORT-FORM non-nil means use short designation sequence on output. - ASCII-EOL non-nil means designate ASCII to g0 at end of line on output. - ASCII-CNTL non-nil means designate ASCII to g0 before control codes and - SPACE on output. - SEVEN non-nil means use 7-bit code only on output. - LOCKING-SHIFT non-nil means use locking-shift. - SINGLE-SHIFT non-nil means use single-shift. - USE-ROMAN non-nil means designate JIS0201-1976-Roman instead of ASCII. - USE-OLDJIS non-nil means designate JIS0208-1976 instead of JIS0208-1983. - NO-ISO6429 non-nil means not use ISO6429's direction specification. - INIT-BOL non-nil means any designation state is assumed to be reset - to initial at each beginning of line on output. - DESIGNATION-BOL non-nil means designation sequences should be placed - at beginning of line on output. - SAFE non-nil means convert unsafe characters to `?' on output. - Characters not specified in the property `safe-charsets' nor - `safe-chars' are unsafe. - ACCEPT-LATIN-EXTRA-CODE non-nil means code-detection routine accepts - a code specified in `latin-extra-code-table' (which see) as a valid - code of the coding system. - - If TYPE is 4 (private), FLAGS should be a cons of CCL programs, for - decoding and encoding. CCL programs should be specified by their - symbols. - -PROPERTIES is an alist of properties vs the corresponding values. The -following properties are recognized: - - o post-read-conversion - - The value is a function to call after some text is inserted and - decoded by the coding system itself and before any functions in - `after-insert-functions' are called. The argument of this - function is the same as for a function in - `after-insert-file-functions', i.e. LENGTH of the text inserted, - with point at the head of the text to be decoded. - - o pre-write-conversion - - The value is a function to call after all functions in - `write-region-annotate-functions' and `buffer-file-format' are - called, and before the text is encoded by the coding system itself. - The arguments to this function are the same as those of a function - in `write-region-annotate-functions', i.e. FROM and TO, specifying - a region of text. - - o translation-table-for-decode - - The value is a translation table to be applied on decoding. See - the function `make-translation-table' for the format of translation - table. This is not applicable to type 4 (CCL-based) coding systems. - - o translation-table-for-encode - - The value is a translation table to be applied on encoding. This is - not applicable to type 4 (CCL-based) coding systems. - - o safe-chars - - The value is a char table. If a character has non-nil value in it, - the character is safely supported by the coding system. This - overrides the specification of safe-charsets. - - o safe-charsets - - The value is a list of charsets safely supported by the coding - system. The value t means that all charsets Emacs handles are - supported. Even if some charset is not in this list, it doesn't - mean that the charset can't be encoded in the coding system; - it just means that some other receiver of text encoded - in the coding system won't be able to handle that charset. - - o mime-charset - - The value is a symbol whose name is the `MIME-charset' parameter of - the coding system. - - o mime-text-unsuitable - - A non-nil value means the `mime-charset' property names a charset - which is unsuitable for the top-level media type \"text\". - - o valid-codes (meaningful only for a coding system based on CCL) - - The value is a list to indicate valid byte ranges of the encoded - file. Each element of the list is an integer or a cons of integer. - In the former case, the integer value is a valid byte code. In the - latter case, the integers specify the range of valid byte codes. - - o composition (meaningful only when TYPE is 0 or 2) - - If the value is non-nil, the coding system preserves composition - information. - - o ascii-incompatible - - If the value is non-nil, the coding system is not compatible - with ASCII, which means it encodes or decodes ASCII character - string to the different byte sequence. - -These properties are set in PLIST, a property list. This function -also sets properties `coding-category' and `alias-coding-systems' -automatically. - -EOL-TYPE specifies the EOL type of the coding-system in one of the -following formats: - - o symbol (unix, dos, or mac) - - The symbol `unix' means Unix-like EOL (LF), `dos' means - DOS-like EOL (CRLF), and `mac' means MAC-like EOL (CR). - - o number (0, 1, or 2) - - The number 0, 1, and 2 mean UNIX, DOS, and MAC-like EOL - respectively. - - o vector of coding-systems of length 3 - - The EOL type is detected automatically for the coding system. - And, according to the detected EOL type, one of the coding - systems in the vector is selected. Elements of the vector - corresponds to Unix-like EOL, DOS-like EOL, and Mac-like EOL - in this order. - -Kludgy features for backward compatibility: - -1. If TYPE is 4 and car or cdr of FLAGS is a vector, the vector is -treated as a compiled CCL code. - -2. If PROPERTIES is just a list of character sets, the list is set as -a value of `safe-charsets' in PLIST." - +This function is provided for backward compatibility. +Use `define-coding-system' instead." ;; For compatiblity with XEmacs, we check the type of TYPE. If it ;; is a symbol, perhaps, this function is called with XEmacs-style ;; arguments. Here, try to transform that kind of arguments to @@ -913,233 +1041,82 @@ a value of `safe-charsets' in PLIST." properties (nth 5 args) eol-type (nth 6 args)))) - ;; Set a value of `coding-system' property. - (let ((coding-spec (make-vector 5 nil)) - (no-initial-designation t) - (no-alternative-designation t) - (accept-latin-extra-code nil) - coding-category) - (if (or (not (integerp type)) (< type 0) (> type 5)) - (error "TYPE argument must be 0..5")) - (if (or (not (integerp mnemonic)) (<= mnemonic ? ) (> mnemonic 127)) - (error "MNEMONIC argument must be an ASCII printable character")) - (aset coding-spec coding-spec-type-idx type) - (aset coding-spec coding-spec-mnemonic-idx mnemonic) - (aset coding-spec coding-spec-doc-string-idx - (purecopy (if (stringp doc-string) doc-string ""))) - (cond ((= type 0) - (setq coding-category 'coding-category-emacs-mule)) - ((= type 1) - (setq coding-category 'coding-category-sjis)) - ((= type 2) ; ISO2022 - (let ((i 0) - (vec (make-vector 32 nil)) - (g1-designation nil) - (fl flags)) - (while (< i 4) - (let ((charset (car fl))) - (if (and no-initial-designation - (> i 0) - (or (charsetp charset) - (and (consp charset) - (charsetp (car charset))))) - (setq no-initial-designation nil)) - (if (charsetp charset) - (if (= i 1) (setq g1-designation charset)) - (if (consp charset) - (let ((tail charset) - elt) - (while tail - (setq elt (car tail)) - (if (eq elt t) - (setq no-alternative-designation nil) - (if (and elt (not (charsetp elt))) - (error "Invalid charset: %s" elt))) - (setq tail (cdr tail))) - (setq g1-designation (car charset))) - (if charset - (if (eq charset t) - (setq no-alternative-designation nil) - (error "Invalid charset: %s" charset))))) - (aset vec i charset)) - (setq fl (cdr fl) i (1+ i))) - (while (and (< i 32) fl) - (aset vec i (car fl)) - (if (and (= i 16) ; ACCEPT-LATIN-EXTRA-CODE - (car fl)) - (setq accept-latin-extra-code t)) - (setq fl (cdr fl) i (1+ i))) - (aset coding-spec 4 vec) - (setq coding-category - (if (aref vec 8) ; Use locking-shift. - (or (and (aref vec 7) 'coding-category-iso-7-else) - 'coding-category-iso-8-else) - (if (aref vec 7) ; 7-bit only. - (if (aref vec 9) ; Use single-shift. - 'coding-category-iso-7-else - (if no-alternative-designation - 'coding-category-iso-7-tight - 'coding-category-iso-7)) - (if (or no-initial-designation - (not no-alternative-designation)) - 'coding-category-iso-8-else - (if (and (charsetp g1-designation) - (= (charset-dimension g1-designation) 2)) - 'coding-category-iso-8-2 - 'coding-category-iso-8-1))))))) - ((= type 3) - (setq coding-category 'coding-category-big5)) - ((= type 4) ; private - (setq coding-category 'coding-category-ccl) - (if (not (consp flags)) - (error "Invalid FLAGS argument for TYPE 4 (CCL)") - (let ((decoder (check-ccl-program - (car flags) - (intern (format "%s-decoder" coding-system)))) - (encoder (check-ccl-program - (cdr flags) - (intern (format "%s-encoder" coding-system))))) - (if (and decoder encoder) - (aset coding-spec 4 (cons decoder encoder)) - (error "Invalid FLAGS argument for TYPE 4 (CCL)"))))) - (t ; i.e. (= type 5) - (setq coding-category 'coding-category-raw-text))) - - (let ((plist (list 'coding-category coding-category - 'alias-coding-systems (list coding-system)))) - (if no-initial-designation - (plist-put plist 'no-initial-designation t)) - (if (and properties - (or (eq properties t) - (not (consp (car properties))))) - ;; In the old version, the arg PROPERTIES is a list to be - ;; set in PLIST as a value of property `safe-charsets'. - (setq properties (list (cons 'safe-charsets properties)))) - ;; In the current version PROPERTIES is a property list. - ;; Reflect it into PLIST one by one while handling safe-chars - ;; specially. - (let ((safe-charsets (cdr (assq 'safe-charsets properties))) - (safe-chars (cdr (assq 'safe-chars properties))) - (l properties) - prop val) - ;; If only safe-charsets is specified, make a char-table from - ;; it, and store that char-table as the value of `safe-chars'. - (if (and (not safe-chars) safe-charsets) - (let (charset) - (if (eq safe-charsets t) - (setq safe-chars t) - (setq safe-chars (make-char-table 'safe-chars)) - (while safe-charsets - (setq charset (car safe-charsets) - safe-charsets (cdr safe-charsets)) - (cond ((eq charset 'ascii)) ; just ignore - ((eq charset 'eight-bit-control) - (let ((i 128)) - (while (< i 160) - (aset safe-chars i t) - (setq i (1+ i))))) - ((eq charset 'eight-bit-graphic) - (let ((i 160)) - (while (< i 256) - (aset safe-chars i t) - (setq i (1+ i))))) - (t - (aset safe-chars (make-char charset) t)))) - (if accept-latin-extra-code - (let ((i 128)) - (while (< i 160) - (if (aref latin-extra-code-table i) - (aset safe-chars i t)) - (setq i (1+ i)))))) - (setq l (cons (cons 'safe-chars safe-chars) l)))) - (while l - (setq prop (car (car l)) val (cdr (car l)) l (cdr l)) - (if (eq prop 'safe-chars) - (progn - (if (and (symbolp val) - (get val 'translation-table)) - (setq safe-chars (get val 'translation-table))) - (setq val safe-chars))) - (plist-put plist prop val))) - ;; The property `coding-category' may have been set differently - ;; through PROPERTIES. - (setq coding-category (plist-get plist 'coding-category)) - (aset coding-spec coding-spec-plist-idx plist)) - (put coding-system 'coding-system coding-spec) - (put coding-system 'coding-system-define-form nil) - (put coding-category 'coding-systems - (cons coding-system (get coding-category 'coding-systems)))) - - ;; Next, set a value of `eol-type' property. - (if (not eol-type) - ;; If EOL-TYPE is nil, set a vector of subsidiary coding - ;; systems, each corresponds to a coding system for the detected - ;; EOL format. - (setq eol-type (make-subsidiary-coding-system coding-system))) - (setq eol-type - (cond ((or (eq eol-type 'unix) (null eol-type)) - 0) - ((eq eol-type 'dos) - 1) - ((eq eol-type 'mac) - 2) - ((or (and (vectorp eol-type) - (= (length eol-type) 3)) - (and (numberp eol-type) - (and (>= eol-type 0) - (<= eol-type 2)))) - eol-type) + (setq type + (cond ((eq type 0) 'emacs-mule) + ((eq type 1) 'shift-jis) + ((eq type 2) 'iso2022) + ((eq type 3) 'big5) + ((eq type 4) 'ccl) + ((eq type 5) 'raw-text) (t - (error "Invalid EOL-TYPE spec:%S" eol-type)))) - (put coding-system 'eol-type eol-type) - - (define-coding-system-internal coding-system) - - ;; At last, register CODING-SYSTEM in `coding-system-list' and - ;; `coding-system-alist'. - (add-to-coding-system-list coding-system) - (or (assoc (symbol-name coding-system) coding-system-alist) - (setq coding-system-alist (cons (list (symbol-name coding-system)) - coding-system-alist))) - - ;; For a coding system of cateogory iso-8-1 and iso-8-2, create - ;; XXX-with-esc variants. - (let ((coding-category (coding-system-category coding-system))) - (if (or (eq coding-category 'coding-category-iso-8-1) - (eq coding-category 'coding-category-iso-8-2)) - (let ((esc (intern (concat (symbol-name coding-system) "-with-esc"))) - (doc (format "Same as %s but can handle any charsets by ISO's escape sequences." coding-system)) - (safe-charsets (assq 'safe-charsets properties)) - (mime-charset (assq 'mime-charset properties))) - (if safe-charsets - (setcdr safe-charsets t) - (setq properties (cons (cons 'safe-charsets t) properties))) - (if mime-charset - (setcdr mime-charset nil)) - (make-coding-system esc type mnemonic doc - (if (listp (car flags)) - (cons (append (car flags) '(t)) (cdr flags)) - (cons (list (car flags) t) (cdr flags))) - properties)))) - - coding-system) - -(put 'safe-chars 'char-table-extra-slots 0) - -(defun define-coding-system-alias (alias coding-system) - "Define ALIAS as an alias for coding system CODING-SYSTEM." - (put alias 'coding-system (coding-system-spec coding-system)) - (put alias 'coding-system-define-form nil) - (add-to-coding-system-list alias) - (or (assoc (symbol-name alias) coding-system-alist) - (setq coding-system-alist (cons (list (symbol-name alias)) - coding-system-alist))) - (let ((eol-type (coding-system-eol-type coding-system))) - (if (vectorp eol-type) - (progn - (nconc (coding-system-get alias 'alias-coding-systems) (list alias)) - (put alias 'eol-type (make-subsidiary-coding-system alias))) - (put alias 'eol-type eol-type)))) + (error "Invalid coding system type: %s" type)))) + + (setq properties + (let ((plist nil) key) + (dolist (elt properties) + (setq key (car elt)) + (cond ((eq key 'post-read-conversion) + (setq key :post-read-conversion)) + ((eq key 'pre-write-conversion) + (setq key :pre-write-conversion)) + ((eq key 'translation-table-for-decode) + (setq key :decode-translation-table)) + ((eq key 'translation-table-for-encode) + (setq key :encode-translation-table)) + ((eq key 'safe-charsets) + (setq key :charset-list)) + ((eq key 'mime-charset) + (setq key :mime-charset)) + ((eq key 'valid-codes) + (setq key :valids))) + (setq plist (plist-put plist key (cdr elt)))) + plist)) + (setq properties (plist-put properties :mnemonic mnemonic)) + (plist-put properties :coding-type type) + (cond ((eq eol-type 0) (setq eol-type 'unix)) + ((eq eol-type 1) (setq eol-type 'dos)) + ((eq eol-type 2) (setq eol-type 'mac)) + ((vectorp eol-type) (setq eol-type nil))) + (plist-put properties :eol-type eol-type) + + (cond + ((eq type 'iso2022) + (plist-put properties :flags + (list (and (or (consp (nth 0 flags)) + (consp (nth 1 flags)) + (consp (nth 2 flags)) + (consp (nth 3 flags))) 'designation) + (or (nth 4 flags) 'long-form) + (and (nth 5 flags) 'ascii-at-eol) + (and (nth 6 flags) 'ascii-at-cntl) + (and (nth 7 flags) '7-bit) + (and (nth 8 flags) 'locking-shift) + (and (nth 9 flags) 'single-shift) + (and (nth 10 flags) 'use-roman) + (and (nth 11 flags) 'use-oldjis) + (or (nth 12 flags) 'direction) + (and (nth 13 flags) 'init-at-bol) + (and (nth 14 flags) 'designate-at-bol) + (and (nth 15 flags) 'safe) + (and (nth 16 flags) 'latin-extra))) + (plist-put properties :designation + (let ((vec (make-vector 4 nil))) + (dotimes (i 4) + (let ((spec (nth i flags))) + (if (eq spec t) + (aset vec i '(94 96)) + (if (consp spec) + (progn + (if (memq t spec) + (setq spec (append (delq t spec) '(94 96)))) + (aset vec i spec)))))) + vec))) + + ((eq type 'ccl) + (plist-put properties :ccl-decoder (car flags)) + (plist-put properties :ccl-encoder (cdr flags)))) + + (apply 'define-coding-system coding-system doc-string properties)) (defun merge-coding-systems (first second) "Fill in any unspecified aspects of coding system FIRST from SECOND. @@ -1224,8 +1201,9 @@ see) to CODING-SYSTEM." (interactive "zCoding system for file names (default nil): ") (check-coding-system coding-system) (if (and coding-system - (coding-system-get coding-system 'ascii-incompatible)) - (error "%s is not ASCII-compatible" coding-system)) + (not (coding-system-get coding-system :ascii-compatible-p)) + (not (coding-system-get coding-system :suitable-for-file-name))) + (error "%s is not suitable for file names" coding-system)) (setq file-name-coding-system coding-system)) (defvar default-terminal-coding-system nil @@ -1283,8 +1261,9 @@ or by the previous use of this command." (if coding-system (setq default-keyboard-coding-system coding-system)) (if (and coding-system - (coding-system-get coding-system 'ascii-incompatible)) - (error "%s is not ASCII-compatible" coding-system)) + (not (coding-system-get coding-system :ascii-compatible-p)) + (not (coding-system-get coding-system :suitable-for-keyboard))) + (error "%s is not suitable for keyboard" coding-system)) (set-keyboard-coding-system-internal coding-system) (setq keyboard-coding-system coding-system) (encoded-kbd-mode (if coding-system 1 0))) @@ -1342,14 +1321,14 @@ the text is encoded or decoded by CODING-SYSTEM." (defvar last-next-selection-coding-system nil) (defun set-next-selection-coding-system (coding-system) - "Make CODING-SYSTEM used for the next communication with other X clients. + "Use CODING-SYSTEM for next communication with other window system clients. This setting is effective for the next communication only." (interactive (list (read-coding-system (if last-next-selection-coding-system - (format "Coding system for the next X selection (default %S): " + (format "Coding system for the next selection (default %S): " last-next-selection-coding-system) - "Coding system for the next X selection: ") + "Coding system for the next selection: ") last-next-selection-coding-system))) (if coding-system (setq last-next-selection-coding-system coding-system) @@ -1360,28 +1339,21 @@ This setting is effective for the next communication only." (defun set-coding-priority (arg) "Set priority of coding categories according to ARG. -ARG is a list of coding categories ordered by priority." - (let ((l arg) - (current-list (copy-sequence coding-category-list))) - ;; Check the validity of ARG while deleting coding categories in - ;; ARG from CURRENT-LIST. We assume that CODING-CATEGORY-LIST - ;; contains all coding categories. - (while l - (if (or (null (get (car l) 'coding-category-index)) - (null (memq (car l) current-list))) - (error "Invalid or duplicated element in argument: %s" arg)) - (setq current-list (delq (car l) current-list)) - (setq l (cdr l))) - ;; Update `coding-category-list' and return it. - (setq coding-category-list (append arg current-list)) - (set-coding-priority-internal))) +ARG is a list of coding categories ordered by priority. + +This function is provided for backward compatibility. +Now we have more convenient function `set-coding-system-priority'." + (apply 'set-coding-system-priority + (mapcar #'(lambda (x) (symbol-value x)) arg))) +(make-obsolete 'set-coding-priority 'set-coding-system-priority "23.1") ;;; X selections (defvar ctext-non-standard-encodings-alist - '(("big5-0" big5 2 (chinese-big5-1 chinese-big5-2)) + '(("big5-0" big5 2 big5) ("ISO8859-14" iso-8859-14 1 latin-iso8859-14) - ("ISO8859-15" iso-8859-15 1 latin-iso8859-15)) + ("ISO8859-15" iso-8859-15 1 latin-iso8859-15) + ("gbk-0" gbk 2 chinese-gbk)) "Alist of non-standard encoding names vs the corresponding usages in CTEXT. It controls how extended segments of a compound text are handled @@ -1399,9 +1371,7 @@ in the segment. It can be 0 (meaning the number of octets per character is variable), 1, 2, 3, or 4. CHARSET is a charater set containing characters that are encoded -in the segment. It can be a list of character sets. It can also -be a char-table, in which case characters that have non-nil value -in the char-table are the target. +in the segment. It can be a list of character sets. On decoding CTEXT, all encoding names listed here are recognized. @@ -1410,8 +1380,7 @@ On encoding CTEXT, encoding names in the variable listed for the current language environment under the key `ctext-non-standard-encodings' are used.") -(defvar ctext-non-standard-encodings - '("big5-0") +(defvar ctext-non-standard-encodings nil "List of non-standard encoding names used in extended segments of CTEXT. Each element must be one of the names listed in the variable `ctext-non-standard-encodings-alist' (which see).") @@ -1432,23 +1401,24 @@ Each element must be one of the names listed in the variable (defun ctext-post-read-conversion (len) "Decode LEN characters encoded as Compound Text with Extended Segments." + ;; We don't need the following because it is expected that this + ;; function is mainly used for decoding X selection which is not + ;; that big data. + ;;(buffer-disable-undo) ; minimize consing due to insertions and deletions (save-match-data (save-restriction + (narrow-to-region (point) (+ (point) len)) (let ((case-fold-search nil) - (in-workbuf (string= (buffer-name) " *code-converting-work*")) last-coding-system-used pos bytes) - (or in-workbuf - (narrow-to-region (point) (+ (point) len))) - (if in-workbuf - (set-buffer-multibyte t)) + (decode-coding-region (point-min) (point-max) 'ctext) (while (re-search-forward ctext-non-standard-encodings-regexp nil 'move) (setq pos (match-beginning 0)) (if (match-beginning 1) ;; ESC % / [0-4] M L --ENCODING-NAME-- \002 --BYTES-- - (let* ((M (char-after (+ pos 4))) - (L (char-after (+ pos 5))) + (let* ((M (multibyte-char-to-unibyte (char-after (+ pos 4)))) + (L (multibyte-char-to-unibyte (char-after (+ pos 5)))) (encoding (match-string 2)) (encoding-info (assoc-string encoding @@ -1471,33 +1441,46 @@ Each element must be one of the names listed in the variable (goto-char (point-min)) (- (point-max) (point))))) -;; Return a char table of extended segment usage for each character. -;; Each value of the char table is nil, one of the elements of -;; `ctext-non-standard-encodings-alist', or the symbol `utf-8'. +;; Return an alist of CHARSET vs CTEXT-USAGE-INFO generated from +;; `ctext-non-standard-encodings' and a list specified by the key +;; `ctext-non-standard-encodings' for the currrent language +;; environment. CTEXT-USAGE-INFO is one of the element of +;; `ctext-non-standard-encodings-alist' or nil. In the former case, a +;; character in CHARSET is encoded using extended segment. In the +;; latter case, a character in CHARSET is encoded using normal ISO2022 +;; designation sequence. If a character is not in any of CHARSETs, it +;; is encoded using UTF-8 encoding extention. (defun ctext-non-standard-encodings-table () - (let ((table (make-char-table 'translation-table))) - (aset table (make-char 'mule-unicode-0100-24ff) 'utf-8) - (aset table (make-char 'mule-unicode-2500-33ff) 'utf-8) - (aset table (make-char 'mule-unicode-e000-ffff) 'utf-8) - (dolist (encoding (reverse - (append + (let (table) + ;; Setup charsets specified by the key + ;; `ctext-non-standard-encodings' for the current language + ;; environment and in `ctext-non-standard-encodings'. + (dolist (encoding (append (get-language-info current-language-environment 'ctext-non-standard-encodings) - ctext-non-standard-encodings))) + ctext-non-standard-encodings)) (let* ((slot (assoc encoding ctext-non-standard-encodings-alist)) (charset (nth 3 slot))) - (if charset - (cond ((charsetp charset) - (aset table (make-char charset) slot)) - ((listp charset) - (dolist (elt charset) - (aset table (make-char elt) slot))) - ((char-table-p charset) - (map-char-table #'(lambda (k v) - (if (and v (> k 128)) (aset table k slot))) - charset)))))) - table)) + (if (charsetp charset) + (push (cons charset slot) table) + (dolist (cs charset) + (push (cons cs slot) table))))) + + ;; Next prepend charsets for ISO2022 designation sequence. + (dolist (charset charset-list) + (let ((final (plist-get (charset-plist charset) :iso-final-char))) + (if (and (integerp final) + (>= final #x40) (<= final #x7e) + ;; Exclude ascii and chinese-cns11643-X. + (not (eq charset 'ascii)) + (not (string-match "cns11643" (symbol-name charset)))) + (push (cons charset nil) table)))) + + ;; Returned reversed list so that the charsets specified by the + ;; key `ctext-non-standard-encodings' for the current language + ;; have the highest priority. + (nreverse table))) (defun ctext-pre-write-conversion (from to) "Encode characters between FROM and TO as Compound Text w/Extended Segments. @@ -1506,39 +1489,40 @@ If FROM is a string, or if the current buffer is not the one set up for us by encode-coding-string, generate a new temp buffer, insert the text, and convert it in the temporary buffer. Otherwise, convert in-place." (save-match-data - (let ((workbuf (get-buffer-create " *code-conversion-work*"))) - ;; Setup a working buffer if necessary. - (cond ((stringp from) - (set-buffer workbuf) - (erase-buffer) - (set-buffer-multibyte (multibyte-string-p from)) - (insert from)) - ((not (eq (current-buffer) workbuf)) - (let ((buf (current-buffer)) - (multibyte enable-multibyte-characters)) - (set-buffer workbuf) - (erase-buffer) - (set-buffer-multibyte multibyte) - (insert-buffer-substring buf from to))))) + ;; Setup a working buffer if necessary. + (when (stringp from) + (set-buffer (generate-new-buffer " *temp")) + (set-buffer-multibyte (multibyte-string-p from)) + (insert from)) ;; Now we can encode the whole buffer. (let ((encoding-table (ctext-non-standard-encodings-table)) last-coding-system-used last-pos last-encoding-info - encoding-info end-pos) + encoding-info end-pos ch) (goto-char (setq last-pos (point-min))) (setq end-pos (point-marker)) (while (re-search-forward "[^\000-\177]+" nil t) ;; Found a sequence of non-ASCII characters. (setq last-pos (match-beginning 0) - last-encoding-info (aref encoding-table (char-after last-pos))) + ch (char-after last-pos) + last-encoding-info (catch 'tag + (dolist (elt encoding-table) + (if (encode-char ch (car elt)) + (throw 'tag (cdr elt)))) + 'utf-8)) (set-marker end-pos (match-end 0)) (goto-char (1+ last-pos)) (catch 'tag (while t (setq encoding-info (if (< (point) end-pos) - (aref encoding-table (following-char)))) + (catch 'tag + (setq ch (following-char)) + (dolist (elt encoding-table) + (if (encode-char ch (car elt)) + (throw 'tag (cdr elt)))) + 'utf-8))) (unless (eq last-encoding-info encoding-info) (cond ((consp last-encoding-info) ;; Encode the previous range using an extended @@ -1550,14 +1534,18 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place." (encode-coding-region last-pos (point) coding-system) (setq len (+ (length encoding-name) 1 (- (point) last-pos))) + ;; According to the spec of CTEXT, it is not + ;; necessary to produce this extra designation + ;; sequence, but some buggy application + ;; (e.g. crxvt-gb) requires it. + (insert "\e(B") (save-excursion (goto-char last-pos) - (insert (string-to-multibyte - (format "\e%%/%d%c%c%s" - noctets - (+ (/ len 128) 128) - (+ (% len 128) 128) - encoding-name)))))) + (insert (format "\e%%/%d" noctets)) + (insert-byte (+ (/ len 128) 128) 1) + (insert-byte (+ (% len 128) 128) 1) + (insert encoding-name) + (insert 2)))) ((eq last-encoding-info 'utf-8) ;; Encode the previous range using UTF-8 encoding ;; extention. @@ -1604,7 +1592,8 @@ and the contents of `file-coding-system-alist'." '(("^BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion) ("\\`\xFE\xFF" . utf-16be-with-signature) ("\\`\xFF\xFE" . utf-16le-with-signature) - ("\\`\xEF\xBB\xBF" . utf-8)) + ("\\`\xEF\xBB\xBF" . utf-8) + ("\\`;ELC\024\0\0\0" . emacs-mule)) ; Emacs 20-compiled "Alist of patterns vs corresponding coding systems. Each element looks like (REGEXP . CODING-SYSTEM). A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading. @@ -1860,35 +1849,13 @@ The optional second arg VISIT non-nil means that we are visiting a file." (setq buffer-file-coding-system-explicit coding-system-for-read)) (if last-coding-system-used (let ((coding-system - (find-new-buffer-file-coding-system last-coding-system-used)) - (modified-p (buffer-modified-p))) + (find-new-buffer-file-coding-system last-coding-system-used))) (when coding-system ;; Tell set-buffer-file-coding-system not to mark the file ;; as modified; we just read it, and it's supposed to be unmodified. ;; Marking it modified would try to lock it, which would ;; check the modtime, and we don't want to do that again now. - (set-buffer-file-coding-system coding-system t t) - (if (and enable-multibyte-characters - (or (eq coding-system 'no-conversion) - (eq (coding-system-type coding-system) 5)) - ;; If buffer was unmodified and the size is the - ;; same as INSERTED, we must be visiting it. - (not modified-p) - (= (buffer-size) inserted)) - ;; For coding systems no-conversion and raw-text..., - ;; edit the buffer as unibyte. - (let ((pos-marker (copy-marker (+ (point) inserted))) - ;; Prevent locking. - (buffer-file-name nil)) - (if visit - ;; If we're doing this for find-file, - ;; don't record undo info; this counts as - ;; part of producing the buffer's initial contents. - (let ((buffer-undo-list t)) - (set-buffer-multibyte nil)) - (set-buffer-multibyte nil)) - (setq inserted (- pos-marker (point))))) - (restore-buffer-modified-p modified-p)))) + (set-buffer-file-coding-system coding-system t t)))) inserted) ;; The coding-spec and eol-type of coding-system returned is decided @@ -1915,8 +1882,8 @@ Return nil if there's no need to set `buffer-file-coding-system'." ;; But eol-type is not yet set. (setq local-eol nil)) (if (and buffer-file-coding-system - (not (eq (coding-system-type buffer-file-coding-system) t))) - ;; This is not `undecided'. + (not (eq (coding-system-type buffer-file-coding-system) + 'undecided))) (setq local-coding (coding-system-base buffer-file-coding-system))) (if (and (local-variable-p 'buffer-file-coding-system) @@ -1930,9 +1897,7 @@ Return nil if there's no need to set `buffer-file-coding-system'." ;; But eol-type is not found. ;; If EOL conversions are inhibited, force unix eol-type. (setq found-eol (if inhibit-eol-conversion 0))) - (if (eq (coding-system-type coding) t) - (setq found-coding 'undecided) - (setq found-coding (coding-system-base coding))) + (setq found-coding (coding-system-base coding)) (if (and (not found-eol) (eq found-coding 'undecided)) ;; No valid coding information found. @@ -2083,62 +2048,38 @@ translation in CCL programs. Each argument is a list of elements of the form (FROM . TO), where FROM is a character to be translated to TO. -FROM can be a generic character (see `make-char'). In this case, TO is -a generic character containing the same number of characters, or an -ordinary character. If FROM and TO are both generic characters, all -characters belonging to FROM are translated to characters belonging to TO -without changing their position code(s). - The arguments and forms in each argument are processed in the given order, and if a previous form already translates TO to some other character, say TO-ALT, FROM is also translated to TO-ALT." (let ((table (make-char-table 'translation-table)) revlist) - (while args - (let ((elts (car args))) - (while elts - (let* ((from (car (car elts))) - (from-i 0) ; degree of freedom of FROM - (from-rev (nreverse (split-char from))) - (to (cdr (car elts))) - (to-i 0) ; degree of freedom of TO - (to-rev (nreverse (split-char to)))) - ;; Check numbers of heading 0s in FROM-REV and TO-REV. - (while (eq (car from-rev) 0) - (setq from-i (1+ from-i) from-rev (cdr from-rev))) - (while (eq (car to-rev) 0) - (setq to-i (1+ to-i) to-rev (cdr to-rev))) - (if (and (/= from-i to-i) (/= to-i 0)) - (error "Invalid character pair (%d . %d)" from to)) - ;; If we have already translated TO to TO-ALT, FROM should - ;; also be translated to TO-ALT. But, this is only if TO - ;; is a generic character or TO-ALT is not a generic - ;; character. - (let ((to-alt (aref table to))) - (if (and to-alt - (or (> to-i 0) (not (generic-char-p to-alt)))) - (setq to to-alt))) - (if (> from-i 0) - (set-char-table-default table from to) - (aset table from to)) - ;; If we have already translated some chars to FROM, they - ;; should also be translated to TO. - (let ((l (assq from revlist))) - (if l - (let ((ch (car l))) - (setcar l to) - (setq l (cdr l)) - (while l - (aset table ch to) - (setq l (cdr l)) )))) - ;; Now update REVLIST. - (let ((l (assq to revlist))) - (if l - (setcdr l (cons from (cdr l))) - (setq revlist (cons (list to from) revlist))))) - (setq elts (cdr elts)))) - (setq args (cdr args))) + (dolist (elts args) + (dolist (elt elts) + (let ((from (car elt)) + (to (cdr elt)) + to-alt rev-from rev-to) + ;; If we have already translated TO to TO-ALT, FROM should + ;; also be translated to TO-ALT. + (if (setq to-alt (aref table to)) + (setq to to-alt)) + (aset table from to) + ;; If we have already translated some chars to FROM, they + ;; should also be translated to TO. + (when (setq rev-from (assq from revlist)) + (dolist (elt (cdr rev-from)) + (aset table elt to)) + (setq revlist (delq rev-from revlist) + rev-from (cdr rev-from))) + ;; Now update REVLIST. + (setq rev-to (assq to revlist)) + (if rev-to + (setcdr rev-to (cons from (cdr rev-to))) + (setq rev-to (list to from) + revlist (cons rev-to revlist))) + (if rev-from + (setcdr rev-to (append rev-from (cdr rev-to))))))) ;; Return TABLE just created. + (set-char-table-extra-slot table 1 1) table)) (defun make-translation-table-from-vector (vec) @@ -2156,8 +2097,47 @@ See also the variable `nonascii-translation-table'." (if (>= ch 256) (aset rev-table ch i)))) (set-char-table-extra-slot table 0 rev-table) + (set-char-table-extra-slot table 1 1) + (set-char-table-extra-slot rev-table 1 1) table)) +(defun make-translation-table-from-alist (alist) + "Make translation table from N<->M mapping in ALIST. +ALIST is an alist, each element has the form (FROM . TO). +FROM and TO are a character or a vector of characters. +If FROM is a character, that character is translated to TO. +If FROM is a vector of characters, that sequence is translated to TO. +The first extra-slot of the value is a translation table for reverse mapping." + (let ((tables (vector (make-char-table 'translation-table) + (make-char-table 'translation-table))) + table max-lookup from to idx val) + (dotimes (i 2) + (setq table (aref tables i)) + (setq max-lookup 1) + (dolist (elt alist) + (if (= i 0) + (setq from (car elt) to (cdr elt)) + (setq from (cdr elt) to (car elt))) + (if (characterp from) + (setq idx from) + (setq idx (aref from 0) + max-lookup (max max-lookup (length from)))) + (setq val (aref table idx)) + (if val + (progn + (or (consp val) + (setq val (list (cons (vector idx) val)))) + (if (characterp from) + (setq from (vector from))) + (setq val (nconc val (list (cons from to))))) + (if (characterp from) + (setq val to) + (setq val (list (cons from to))))) + (aset table idx val)) + (set-char-table-extra-slot table 1 max-lookup)) + (set-char-table-extra-slot (aref tables 0) 0 (aref tables 1)) + (aref tables 0))) + (defun define-translation-table (symbol &rest args) "Define SYMBOL as the name of translation table made by ARGS. This sets up information so that the table can be used for @@ -2228,7 +2208,7 @@ It returns the number of characters changed." (put 'with-category-table 'lisp-indent-function 1) (defmacro with-category-table (table &rest body) - "Evaluate BODY with category table of current buffer set to TABLE. + "Execute BODY like `progn' with CATEGORY-TABLE the current category table. The category table of the current buffer is saved, BODY is evaluated, then the saved table is restored, even in case of an abnormal exit. Value is what BODY returns." @@ -2278,6 +2258,8 @@ Analogous to `define-translation-table', but updates (setq ignore-relative-composition (make-char-table 'ignore-relative-composition)) +(make-obsolete 'set-char-table-default + "Generic characters no longer exist" "23.1") ;;; Built-in auto-coding-functions: diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 774e3c14269..b91a6297f21 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -800,7 +800,9 @@ The format of KBD-LAYOUT is the same as `quail-keyboard-layout'." (if translation (progn (if (consp translation) - (setq translation (aref (cdr translation) 0))) + (if (> (length (cdr translation)) 0) + (setq translation (aref (cdr translation) 0)) + (setq translation " "))) (setq done-list (cons translation done-list))) (setq translation ch)) (aset layout i translation)) @@ -1276,28 +1278,16 @@ The returned value is a Quail map specific to KEY." (defun quail-input-string-to-events (str) "Convert input string STR to a list of events. -Do so while interleaving with the following special events: -\(compose-last-chars LEN COMPONENTS) -\(quail-advice INPUT-STRING)" - (let* ((events (mapcar - (lambda (c) - ;; This gives us the chance to unify on input - ;; (e.g. using ucs-tables.el). - (or (and translation-table-for-input - (aref translation-table-for-input c)) - c)) - str)) - (len (length str)) - (idx len) - composition from to) - (while (and (> idx 0) - (setq composition (find-composition idx 0 str t))) - (setq from (car composition) to (nth 1 composition)) - (setcdr (nthcdr (1- to) events) - (cons (list 'compose-last-chars (- to from) - (and (not (nth 3 composition)) (nth 2 composition))) - (nthcdr to events))) - (setq idx (1- from))) +If STR has `advice' text property, append the following special event: +\(quail-advice STR)" + (let ((events (mapcar + (lambda (c) + ;; This gives us the chance to unify on input + ;; (e.g. using ucs-tables.el). + (or (and translation-table-for-input + (aref translation-table-for-input c)) + c)) + str))) (if (or (get-text-property 0 'advice str) (next-single-property-change 0 'advice str)) (setq events @@ -1597,7 +1587,10 @@ with more keys." "Return string to be shown as current translation of key sequence. LEN is the length of the sequence. DEF is a definition part of the Quail map for the sequence." - (or (and (consp def) (aref (cdr def) (car (car def)))) + (or (and (consp def) + (if (> (length (cdr def)) (car (car def))) + (aref (cdr def) (car (car def))) + "")) def (and (> len 1) (let* ((str (quail-get-current-str @@ -2076,6 +2069,8 @@ minibuffer and the selected frame has no other windows)." (defun quail-get-translations () "Return a string containing the current possible translations." + (or (multibyte-string-p quail-current-key) + (setq quail-current-key (string-to-multibyte quail-current-key))) (let ((map (quail-lookup-key quail-current-key nil t)) (str (copy-sequence quail-current-key))) (if quail-current-translations @@ -2084,7 +2079,7 @@ minibuffer and the selected frame has no other windows)." ;; Show the current key. (let ((guidance (quail-guidance))) (if (listp guidance) - ;; We must replace thetyped key with the specified PROMPTKEY. + ;; We must replace the typed key with the specified PROMPT-KEY. (dotimes (i (length str)) (let ((prompt-key (cdr (assoc (aref str i) guidance)))) (if prompt-key @@ -2526,7 +2521,7 @@ physical keyboard layout as specified with that variable. (when (> num 0) (insert " KEY SEQUENCE ------------ +------------ ") (if (quail-show-layout) (insert "You can also input more characters") @@ -3019,8 +3014,8 @@ of each directory." ;; At last, write out LEIM list file. (with-current-buffer list-buf - (setq buffer-file-coding-system 'iso-2022-7bit) - (save-buffer 0)) + (let ((coding-system-for-write 'iso-2022-7bit)) + (save-buffer 0))) (kill-buffer list-buf) (message "Updating %s ... done" leim-list))) diff --git a/lisp/international/robin.el b/lisp/international/robin.el new file mode 100644 index 00000000000..109f967ee87 --- /dev/null +++ b/lisp/international/robin.el @@ -0,0 +1,575 @@ +;;; robin.el --- yet another input method (smaller than quail) + +;; Copyright (C) 2003, 2004, 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number: H15PRO110 + +;; Author: TAKAHASHI Naoto <ntakahas@m17n.org> +;; Keywords: mule, multilingual, input method + +;; This program 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. + +;; This program 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 this program; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Comentary: + +;; Functionalities +;; --------------- + +;; Robin is a new input method for GNU Emacs. It has three +;; functionalities: + +;; 1. It serves as a simple input method. When the user types an ASCII +;; key sequence, robin converts it into a string. This functionality +;; is most likely used to input non-ASCII characters. + +;; 2. It converts existing buffer substring into another string. +;; This functionality is similar to the 1. above, but the input is +;; buffer substring rather than key strokes. + +;; 3. It offers reverse conversion. Each character produced by a +;; robin rule can hold the original ASCII sequence as a +;; char-code-property. + + +;; How to define conversion rules +;; ------------------------------ + +;; Each conversion rule belongs to a robin package. A robin package is +;; identified by a string called package name. Use robin-define-package +;; to define a robin package. + +;; (robin-define-package NAME DOCTSTRING +;; (INPUT1 OUPUT1) +;; (INPUT2 OUPUT2) +;; ...) + +;; NAME is a string identifying the robin package. It often starts with a +;; language name and followed by a method name. For example, +;; french-postfix, greek-prefix, etc. + +;; DOCSTRING is a documentation string for the robin method. + +;; Each INPUTn is a string. It represents a transliteration of the +;; corresponding OUTPUTn. + +;; Each OUTPUTn is a string or a character that is to be inserted as the +;; result of conversion. + +;; Neither INPUT* nor OUTPUT* are evaluated. Do not use a variable or a +;; function in those parts. Instead, use a string or character literal +;; directly. + +;; If multiple rules have the same input pattern but different output +;; patterns, only the latest definition is effective. + + +;; Example +;; ------- + +;; (robin-define-package "german-example" +;; "An example for German + +;; AE -> Ä OE -> Ö UE -> Ü +;; ae -> ä oe -> ö ue -> ü ss -> ß + +;; Repeat E or S to input itself. + +;; AEE -> AE OEE -> OE UEE -> UE +;; aee -> ae oee -> oe uee -> ue sss -> ss" + +;; ("AE" ?Ä) +;; ("OE" ?Ö) +;; ("UE" ?Ü) +;; ("ae" ?ä) +;; ("oe" ?ö) +;; ("ue" ?ü) +;; ("ss" ?ß) + +;; ("AEE" "AE") +;; ("OEE" "OE") +;; ("UEE" "UE") +;; ("aee" "ae") +;; ("oee" "oe") +;; ("uee" "ue") +;; ("sss" "ss") +;; ) + + +;; Using robin as an input method +;; ------------------------------ + +;; To use a defined robin package as an input method, register it with +;; the register-input-method function. For example, + +;; (register-input-method +;; "german-example" +;; "german" +;; 'robin-use-package +;; "de" +;; "An example for German") + +;; The first argument is the robin package name. + +;; The second argument is the language environment for which this robin +;; package is used. + +;; Use the symbol `robin-use-package' as the third argument. + +;; The fourth argument is the prompt that appears in modeline when this +;; input method is active. + +;; The fifth argument is a documentation string; it may or may not be +;; identical to the one that you specified in robin-define-package. + +;; You can activate the robin input method by typing + +;; C-u C-\ german-example RET + +;; Just like a quail package, only C-\ suffices for subsequent +;; invocation. + + +;; Using robin as a buffer translator +;; ---------------------------------- + +;; To transliterate buffer substring, use the following functions. + +;; (robin-convert-buffer &optional name) + +;; Convert the content of current buffer using a robin package. + +;; NAME, if given, is a string specifying a robin package. If NAME is +;; not given or nil, the value of `robin-current-package-name' is used. + +;; (robin-convert-region begin end &optional name) + +;; Convert the region using a robin package. + +;; NAME, if given, is a string specifying a robin package. If NAME is +;; not given or nil, the value of `robin-current-package-name' is used. + + +;; Reverse conversion +;; ------------------ + +;; If the output pattern defined in a robin rule is a character, robin +;; gives to the character a char-code-property whose key is the symbol +;; representation of the robin package name and whose value is the input +;; pattern of that character. For example, with the "german-example" +;; definition above, + +;; (get-char-code-property ?Ä 'german-example) => "AE" + +;; etc. + +;; If you do not want to assign a char-code-property to a character, use +;; a string of length one as the output pattern, e.g. + +;; (robin-define-package "german-example2" +;; "Another example for German." + +;; ("AE" "Ä") +;; ("OE" "Ö") +;; ...) + +;; Then + +;; (get-char-code-property ?Ä 'german-example2) => nil + +;; etc. + +;; If multiple input patterns in a robin package generate the same +;; character, the lastly used input pattern is given as the value of the +;; char-code-property. + +;; There are two functions for reverse conversion. + +;; (robin-invert-buffer &optional name) + +;; Apply reverse conversion to the content of current buffer. NAME, if +;; given, is a string specifying a robin package. If NAME is not given +;; or nil, the value of `robin-current-package-name' is used. + +;; (robin-invert-region begin end &optional name) + +;; Apply reverse conversion to the region. NAME, if given, is a string +;; specifying a robin package. If NAME is not given or nil, the value of +;; `robin-current-package-name' is used. + + +;; Modifying an existing rule +;; -------------------------- + +;; Use the robin-modify-package function to modify a rule already defined +;; in a Robin package. + +;; (robin-modify-package name input output) + +;; Change a rule in an already defined Robin package. +;; NAME is the string specifying a robin package. +;; INPUT is a string that specifies the input pattern. +;; OUTPUT is either a character or a string to be generated. + + +;; The name of the game +;; -------------------- + +;; As stated in Murphy's law, it took longer than expected to develop the +;; very first version of Japanese input subsystem in NEmacs (Nihongo +;; Emacs). So the subsystem was named "TAMAGO", which is an acronym of +;; "TAkusan Matasete GOmennasai" (Sorry to have kept you waiting so +;; long). "Tamago" as a Japanese word means "egg", so the word "egg" was +;; also used for related filenames and function names. + +;; Since it was designed to input CJK characters, Egg was rather big as a +;; subsystem. So later in Mule (Multilingual Enhancement to GNU Emacs), +;; we designed and implemented a smaller input subsystem. We had to give +;; it a name. "So, what's smaller than an egg?" "A quail egg, of +;; course." Therefore it was named "quail". + +;; As time went by, quail became more and more complicated. That +;; tendency was inevitable as long as we support CJK input. However, if +;; we can limit ourselves to non-CJK characters, a much simpler +;; transliteration mechanism suffices. So I wrote "robin", whose name +;; was chosen because a robin is smaller than a quail. I could name it +;; "hummingbird" or "nightingale", but those spellings seemed too long. + + +;;; Code: + +(defvar robin-package-alist nil + "List of robin packages. +A robin pacakge is of the form (NAME DOCSTRING &rest RULES). +NAME is a string specifying a particular robin package. +DOCSTRING is a documentation string for the robin package. + +RULE is of the form (KEY OUTPUT &rest rules). +KEY is a string. +OUTPUT is a character or a string. +For example, if you evaluate the following, + +(robin-define-package \"test\" \"Uppercase input characters\" + (\"a\" \"A\") + (\"ab\" \"AB\") + (\"ac\" \"AC\") + (\"acd\" \"ACD\") + (\"ace\" \"ACE\") + (\"b\" \"B\")) + +this robin package will be the following. + + (\"test\" \"Uppercase input characters\" + (?a \"A\" + (?b \"AB\") + (?c \"AC\" + (?d \"ACD\") + (?e \"ACE\"))) + (?b \"B\")) +") + +;;;###autoload +(defmacro robin-define-package (name docstring &rest rules) + "Define a robin package. + +NAME is the string of this robin package. +DOCSTRING is the documentation string of this robin package. +Each RULE is of the form (INPUT OUTPUT) where INPUT is a string and +OUTPUT is either a character or a string. RULES are not evaluated. + +If there already exists a robin package whose name is NAME, the new +one replaces the old one." + + (let ((iname (intern name)) + (new (list name "")) ; "" as a fake output + input output pairs) + (dolist (r rules) + (setq input (car r) + output (cadr r)) + (robin-add-rule name new input output) + (cond + ((not (stringp input)) + (error "Bad input sequence %S" r)) + ((characterp output) + (setq pairs + (cons (cons input output) + pairs))) + ((not (stringp output)) + (error "Bad output pattern %S" r)))) + (setcar (cdr new) docstring) ; replace "" above with real docstring + `(let ((slot (assoc ,name robin-package-alist)) + (newdef ',new) + (prop ',iname) + (lst ',pairs)) + (if slot + (setcdr slot (cdr newdef)) + (setq robin-package-alist + (cons newdef robin-package-alist))) + (dolist (l lst) + (put-char-code-property (cdr l) prop (car l)))))) + +;;;###autoload +(defun robin-modify-package (name input output) + "Change a rule in an already defined robin package. + +NAME is the string specifying a robin package. +INPUT is a string that specifies the input pattern. +OUTPUT is either a character or a string to be generated." + + (let ((tree (assoc name robin-package-alist)) + docstring) + (if (not tree) + (error "No such robin package") + (setq docstring (cadr tree)) + (setcar (cdr tree) "") + (robin-add-rule name tree input output) + (setcar (cdr tree) docstring) + (if (characterp output) + (put-char-code-property output (intern name) input)))) + output) + +(defun robin-add-rule (name tree input output) + "Add translation rule (INPUT OUTPUT) to TREE whose name is NAME. +Internal use only." + + (let* ((head (aref input 0)) + (branch (assoc head tree)) + (sofar (cadr tree))) + + (if (= (length input) 1) + (if branch + + ;; A definition already exists for this input. + ;; We do not cancel old char-code-property of OUTPUT + ;; so that n-to-1 reverse conversion is possible. + (setcar (cdr branch) output) + + ;; New definition for this input. + (setcdr (last tree) (list (list head output)))) + + (unless branch + (if (characterp sofar) + (setq sofar (char-to-string sofar))) + (setq branch + (list head + (concat sofar + (char-to-string head)))) + (setcdr (last tree) (list branch))) + + (robin-add-rule name branch (substring input 1) output)))) + +;;; Interactive use + +(defvar robin-mode nil + "If non-nil, `robin-input-method' is active.") +(make-variable-buffer-local 'robin-mode) + +(defvar robin-current-package-name nil + "String representing the name of the current robin package. +Nil means no packages is selected.") +(make-variable-buffer-local 'robin-current-package-name) + +;;;###autoload +(defun robin-use-package (name) + "Start using robin package NAME, which is a string." + + (let ((package (assoc name robin-package-alist))) + (unless package + (error "No such robin package")) + (setq robin-current-package-name name) + (robin-activate))) + +(defun robin-inactivate () + "Inactivate robin input method." + + (interactive) + (robin-activate -1)) + +(defun robin-activate (&optional arg) + "Activate robin input method. + +With ARG, activate robin input method iff ARG is positive. + +While this input method is active, the variable +`input-method-function' is bound to the function `robin-input-method'." + (if (and arg + (< (prefix-numeric-value arg) 0)) + + ;; inactivate robin input method. + (unwind-protect + (progn + (setq robin-mode nil) + (setq describe-current-input-method-function nil) + (run-hooks 'robin-inactivate-hook)) + (kill-local-variable 'input-method-function)) + + ;; activate robin input method. + (setq robin-mode t + describe-current-input-method-function 'robin-help + inactivate-current-input-method-function 'robin-inactivate) + (if (eq (selected-window) (minibuffer-window)) + (add-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer)) + (run-hooks 'input-method-activate-hook + 'robin-activate-hook) + (set (make-local-variable 'input-method-function) + 'robin-input-method))) + +(defun robin-exit-from-minibuffer () + (inactivate-input-method) + (if (<= (minibuffer-depth) 1) + (remove-hook 'minibuffer-exit-hook 'robin-exit-from-minibuffer))) + +(defun robin-input-method (key) + "Interpret typed key sequence and insert into buffer." + + (if (or buffer-read-only + overriding-terminal-local-map + overriding-local-map) + (list key) + + (let ((echo-keystrokes 0) + (input-method-function nil) + (start (point)) + (tree (cddr (assoc robin-current-package-name robin-package-alist))) + branch + output) + + (while (setq branch (assq key tree)) + (delete-region start (point)) + (insert (setq output (cadr branch))) + (setq tree (cddr branch)) + (if tree + (setq key (read-event)) + (setq key nil))) + + (if (null output) + ;; body of the `while' above was not executed + (list key) + (delete-region start (point)) + (if key + (setq unread-command-events (list key))) + (if (stringp output) + (string-to-list output) + (list output)))))) + +(defun robin-help () + "Display the docstring of the current robin package." + + (interactive) + (let ((buf (get-buffer-create "*Robin Help*")) + (doc (cadr (assoc robin-current-package-name robin-package-alist)))) + (set-buffer buf) + (erase-buffer) + (insert doc) + (goto-char (point-min)) + (display-buffer buf))) + +;;; Batch mode + +(defun robin-convert-buffer (&optional name) + "Convert the content of current buffer using a robin package. +NAME, if given, is a string specifying a robin package. If NAME +is not given or nil, the value of `robin-current-package-name' is +used." + + (interactive "*") + (robin-convert-region (point-min) (point-max) name)) + +(defun robin-convert-region (begin end &optional name) + "Convert the region using a robin package. +NAME, if given, is a string specifying a robin package. If NAME +is not given or nil, the value of `robin-current-package-name' is +used." + + (interactive "*r") + (or name + (setq name robin-current-package-name) + (error "No robin package specified")) + + (let ((tree (assoc name robin-package-alist))) + (unless tree + (error "No such robin package")) + + (save-excursion + (save-restriction + (narrow-to-region begin end) + (goto-char (point-min)) + (while (not (eobp)) + (robin-convert-region-internal tree)))))) + +(defun robin-convert-region-internal (tree) + "Apply a robin rule defined in TREE to the current point. +Use the longest match method to select a rule." + + (let ((begin (point)) + end branch) + (while (setq branch (assq (following-char) tree)) + (setq tree branch) + (forward-char 1)) + + (setq end (point)) + (if (= begin end) + ;; no matching rule found; leave it as it is + (forward-char 1) + ;; replace the string + (goto-char begin) + (insert (cadr tree)) + (delete-char (- end begin))))) + +;; for backward compatibility + +(fset 'robin-transliterate-region 'robin-convert-region) +(fset 'robin-transliterate-buffer 'robin-convert-buffer) + +;;; Reverse conversion + +(defun robin-invert-buffer (&optional name) + "Apply reverse conversion to the content of current buffer. +NAME, if given, is a string specifying a robin package. If NAME +is not given or nil, the value of `robin-current-package-name' is +used." + + (interactive "*") + (robin-invert-region (point-min) (point-max) name)) + +(defun robin-invert-region (begin end &optional name) + "Apply reverse conversion to the region. +NAME, if given, is a string specifying a robin package. If NAME +is not given or nil, the value of `robin-current-package-name' is +used." + + (interactive "*r") + (or name + (setq name robin-current-package-name) + (error "No robin package specified")) + + (setq name (intern name)) + (let (str) + (save-restriction + (narrow-to-region begin end) + (goto-char (point-min)) + (while (not (eobp)) + (if (not (setq str (get-char-code-property (following-char) name))) + (forward-char 1) + (insert str) + (delete-char 1)))))) + +(provide 'robin) + +;;; Local Variables: +;;; coding: utf-8-emacs +;;; End: + +;; arch-tag: ba995140-7436-4a57-b875-747fc340f605 +;;; robin.el ends here diff --git a/lisp/international/subst-big5.el b/lisp/international/subst-big5.el deleted file mode 100644 index e744305f799..00000000000 --- a/lisp/international/subst-big5.el +++ /dev/null @@ -1,13942 +0,0 @@ -;;; subst-big5.el --- Unicode/GB2312 translation -*-coding: big5;-*- - -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; This file 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 3, or (at your option) -;; any later version. - -;; This file 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. - -;;; Commentary: - -;; Provides translation tables between Unicode and chinese-big5 for -;; use by the `utf-translate-cjk-mode' option. See subst-jis.el for the -;; method used. - -;;; Code: - -(mapc - (lambda (pair) - (let ((unicode (car pair)) - (char (cadr pair))) - ;; exclude non-supporting components from decode table - (if (utf-translate-cjk-substitutable-p unicode) - (puthash unicode char ucs-unicode-to-mule-cjk)) - (puthash char unicode ucs-mule-cjk-to-unicode))) - '((#xa7 ?) - (#xaf ?) - (#xb0 ?X) - (#xb1 ?) - (#xb7 ?P) - (#xd7 ?) - (#xf7 ?) - (#x2c7 ?) - (#x2c9 ?) - (#x2ca ?) - (#x2cb ?) - (#x2cd ?) - (#x2d9 ?) - (#x391 ?D) - (#x392 ?E) - (#x393 ?F) - (#x394 ?G) - (#x395 ?H) - (#x396 ?I) - (#x397 ?J) - (#x398 ?K) - (#x399 ?L) - (#x39a ?M) - (#x39b ?N) - (#x39c ?O) - (#x39d ?P) - (#x39e ?Q) - (#x39f ?R) - (#x3a0 ?S) - (#x3a1 ?T) - (#x3a3 ?U) - (#x3a4 ?V) - (#x3a5 ?W) - (#x3a6 ?X) - (#x3a7 ?Y) - (#x3a8 ?Z) - (#x3a9 ?[) - (#x3b1 ?\) - (#x3b2 ?]) - (#x3b3 ?^) - (#x3b4 ?_) - (#x3b5 ?`) - (#x3b6 ?a) - (#x3b7 ?b) - (#x3b8 ?c) - (#x3b9 ?d) - (#x3ba ?e) - (#x3bb ?f) - (#x3bc ?g) - (#x3bd ?h) - (#x3be ?i) - (#x3bf ?j) - (#x3c0 ?k) - (#x3c1 ?l) - (#x3c3 ?m) - (#x3c4 ?n) - (#x3c5 ?o) - (#x3c6 ?p) - (#x3c7 ?q) - (#x3c8 ?r) - (#x3c9 ?s) - (#x2013 ?V) - (#x2014 ?X) - (#x2018 ?) - (#x2019 ?) - (#x201c ?) - (#x201d ?) - (#x2025 ?L) - (#x2026 ?K) - (#x2027 ?E) - (#x2032 ?) - (#x2035 ?) - (#x203b ?) - (#x20ac ?) - (#x2103 ?J) - (#x2105 ?) - (#x2109 ?K) - (#x2160 ?) - (#x2161 ?) - (#x2162 ?) - (#x2163 ?) - (#x2164 ?) - (#x2165 ?) - (#x2166 ?) - (#x2167 ?) - (#x2168 ?) - (#x2169 ?) - (#x2190 ?) - (#x2191 ?) - (#x2192 ?) - (#x2193 ?) - (#x2196 ?) - (#x2197 ?) - (#x2198 ?) - (#x2199 ?) - (#x2215 ?A) - (#x221a ?) - (#x221e ?) - (#x221f ?) - (#x2220 ?) - (#x2223 ?) - (#x2225 ?) - (#x2229 ?) - (#x222a ?) - (#x222b ?) - (#x222e ?) - (#x2234 ?) - (#x2235 ?) - (#x2252 ?) - (#x2260 ?) - (#x2261 ?) - (#x2266 ?) - (#x2267 ?) - (#x2295 ?) - (#x2299 ?) - (#x22a5 ?) - (#x22bf ?) - (#x2500 ?w) - (#x2502 ?x) - (#x250c ?z) - (#x2510 ?{) - (#x2514 ?|) - (#x2518 ?}) - (#x251c ?u) - (#x2524 ?t) - (#x252c ?s) - (#x2534 ?r) - (#x253c ?q) - (#x2550 ?) - (#x2551 ?) - (#x2552 ?) - (#x2553 ?) - (#x2554 ?) - (#x2555 ?) - (#x2556 ?) - (#x2557 ?) - (#x2558 ?) - (#x2559 ?) - (#x255a ?) - (#x255b ?) - (#x255c ?) - (#x255d ?) - (#x255e ?) - (#x255f ?) - (#x2560 ?) - (#x2561 ?) - (#x2562 ?) - (#x2563 ?) - (#x2564 ?) - (#x2565 ?) - (#x2566 ?) - (#x2567 ?) - (#x2568 ?) - (#x2569 ?) - (#x256a ?) - (#x256b ?) - (#x256c ?) - (#x256d ?~) - (#x256e ?) - (#x256f ?) - (#x2570 ?) - (#x2571 ?) - (#x2572 ?) - (#x2573 ?) - (#x2574 ?Z) - (#x2581 ?b) - (#x2582 ?c) - (#x2583 ?d) - (#x2584 ?e) - (#x2585 ?f) - (#x2586 ?g) - (#x2587 ?h) - (#x2588 ?i) - (#x2589 ?p) - (#x258a ?o) - (#x258b ?n) - (#x258c ?m) - (#x258d ?l) - (#x258e ?k) - (#x258f ?j) - (#x2593 ?) - (#x2594 ?v) - (#x2595 ?y) - (#x25a0 ?) - (#x25a1 ?) - (#x25b2 ?) - (#x25b3 ?) - (#x25bc ?) - (#x25bd ?) - (#x25c6 ?) - (#x25c7 ?) - (#x25cb ?) - (#x25ce ?) - (#x25cf ?) - (#x25e2 ?) - (#x25e3 ?) - (#x25e4 ?) - (#x25e5 ?) - (#x2605 ?) - (#x2606 ?) - (#x2640 ?) - (#x2642 ?) - (#x3000 ?@) - (#x3001 ?B) - (#x3002 ?C) - (#x3003 ?) - (#x3008 ?\q) - (#x3009 ?\r) - (#x300a ?\m) - (#x300b ?\n) - (#x300c ?\u) - (#x300d ?\v) - (#x300e ?\y) - (#x300f ?\z) - (#x3010 ?\i) - (#x3011 ?\j) - (#x3012 ?E) - (#x3014 ?\e) - (#x3015 ?\f) - (#x301d ?) - (#x301e ?) - (#x3021 ?) - (#x3022 ?) - (#x3023 ?) - (#x3024 ?) - (#x3025 ?) - (#x3026 ?) - (#x3027 ?) - (#x3028 ?) - (#x3029 ?) - (#x3105 ?t) - (#x3106 ?u) - (#x3107 ?v) - (#x3108 ?w) - (#x3109 ?x) - (#x310a ?y) - (#x310b ?z) - (#x310c ?{) - (#x310d ?|) - (#x310e ?}) - (#x310f ?~) - (#x3110 ?) - (#x3111 ?) - (#x3112 ?) - (#x3113 ?) - (#x3114 ?) - (#x3115 ?) - (#x3116 ?) - (#x3117 ?) - (#x3118 ?) - (#x3119 ?) - (#x311a ?) - (#x311b ?) - (#x311c ?) - (#x311d ?) - (#x311e ?) - (#x311f ?) - (#x3120 ?) - (#x3121 ?) - (#x3122 ?) - (#x3123 ?) - (#x3124 ?) - (#x3125 ?) - (#x3126 ?) - (#x3127 ?) - (#x3128 ?) - (#x3129 ?) - (#x32a3 ?) - (#x338e ?U) - (#x338f ?V) - (#x339c ?P) - (#x339d ?Q) - (#x339e ?R) - (#x33a1 ?T) - (#x33c4 ?W) - (#x33ce ?S) - (#x33d1 ?) - (#x33d2 ?) - (#x33d5 ?O) - (#x4e00 ?@) - (#x4e01 ?B) - (#x4e03 ?C) - (#x4e07 ?E) - (#x4e08 ?V) - (#x4e09 ?T) - (#x4e0a ?W) - (#x4e0b ?U) - (#x4e0c ?F) - (#x4e0d ?) - (#x4e0e ?O) - (#x4e0f ?M) - (#x4e10 ?) - (#x4e11 ?) - (#x4e14 ?B) - (#x4e15 ?A) - (#x4e16 ?@) - (#x4e18 ?C) - (#x4e19 ?) - (#x4e1e ?) - (#x4e1f ?) - (#x4e26 ?) - (#x4e2b ?X) - (#x4e2d ?) - (#x4e2e ?P) - (#x4e30 ?) - (#x4e31 ?c) - (#x4e32 ?) - (#x4e33 ?˱) - (#x4e38 ?Y) - (#x4e39 ?) - (#x4e3b ?D) - (#x4e3c ?d) - (#x4e42 ?@) - (#x4e43 ?D) - (#x4e45 ?[) - (#x4e47 ?G) - (#x4e48 ?\) - (#x4e4b ?) - (#x4e4d ?E) - (#x4e4e ?G) - (#x4e4f ?F) - (#x4e52 ?) - (#x4e53 ?) - (#x4e56 ?) - (#x4e58 ?) - (#x4e59 ?A) - (#x4e5c ?A) - (#x4e5d ?E) - (#x4e5e ?^) - (#x4e5f ?]) - (#x4e69 ?) - (#x4e73 ?) - (#x4e7e ?) - (#x4e7f ?K) - (#x4e82 ?) - (#x4e83 ?ܱ) - (#x4e84 ?ܲ) - (#x4e86 ?F) - (#x4e88 ?) - (#x4e8b ?) - (#x4e8c ?G) - (#x4e8d ?H) - (#x4e8e ?_) - (#x4e91 ?) - (#x4e92 ?) - (#x4e93 ?Q) - (#x4e94 ?) - (#x4e95 ?) - (#x4e99 ?) - (#x4e9b ?) - (#x4e9e ?) - (#x4e9f ?E) - (#x4ea1 ?`) - (#x4ea2 ?) - (#x4ea4 ?) - (#x4ea5 ?) - (#x4ea6 ?) - (#x4ea8 ?) - (#x4eab ?) - (#x4eac ?) - (#x4ead ?F) - (#x4eae ?G) - (#x4eb3 ?) - (#x4eb6 ?ܳ) - (#x4eb9 ?) - (#x4eba ?H) - (#x4ec0 ?) - (#x4ec1 ?) - (#x4ec2 ?R) - (#x4ec3 ?) - (#x4ec4 ?) - (#x4ec6 ?) - (#x4ec7 ?) - (#x4ec8 ?T) - (#x4ec9 ?S) - (#x4eca ?) - (#x4ecb ?) - (#x4ecd ?) - (#x4ed4 ?J) - (#x4ed5 ?K) - (#x4ed6 ?L) - (#x4ed7 ?M) - (#x4ed8 ?I) - (#x4ed9 ?P) - (#x4eda ?j) - (#x4edc ?f) - (#x4edd ?i) - (#x4ede ?Q) - (#x4edf ?a) - (#x4ee1 ?h) - (#x4ee3 ?N) - (#x4ee4 ?O) - (#x4ee5 ?H) - (#x4ee8 ?e) - (#x4ee9 ?g) - (#x4ef0 ?) - (#x4ef1 ?ɰ) - (#x4ef2 ?) - (#x4ef3 ?) - (#x4ef4 ?ɺ) - (#x4ef5 ?ɮ) - (#x4ef6 ?) - (#x4ef7 ?ɲ) - (#x4efb ?) - (#x4efd ?) - (#x4eff ?) - (#x4f00 ?ɱ) - (#x4f01 ?) - (#x4f02 ?ɵ) - (#x4f04 ?ɹ) - (#x4f05 ?ɶ) - (#x4f08 ?ɳ) - (#x4f09 ?) - (#x4f0a ?) - (#x4f0b ?) - (#x4f0d ?) - (#x4f0e ?ɫ) - (#x4f0f ?) - (#x4f10 ?) - (#x4f11 ?) - (#x4f12 ?ɻ) - (#x4f13 ?ɸ) - (#x4f14 ?ɯ) - (#x4f15 ?) - (#x4f18 ?ɬ) - (#x4f19 ?) - (#x4f1d ?ɴ) - (#x4f22 ?ɷ) - (#x4f2c ?ɭ) - (#x4f2d ?f) - (#x4f2f ?B) - (#x4f30 ?) - (#x4f33 ?g) - (#x4f34 ?) - (#x4f36 ?D) - (#x4f38 ?) - (#x4f3a ?) - (#x4f3b ?[) - (#x4f3c ?) - (#x4f3d ?) - (#x4f3e ?`) - (#x4f3f ?h) - (#x4f41 ?d) - (#x4f43 ?) - (#x4f46 ?) - (#x4f47 ?) - (#x4f48 ?G) - (#x4f49 ?]) - (#x4f4c ?˽) - (#x4f4d ?) - (#x4f4e ?C) - (#x4f4f ?) - (#x4f50 ?) - (#x4f51 ?) - (#x4f52 ?b) - (#x4f53 ?^) - (#x4f54 ?) - (#x4f55 ?) - (#x4f56 ?Z) - (#x4f57 ?) - (#x4f58 ?e) - (#x4f59 ?E) - (#x4f5a ?H) - (#x4f5b ?) - (#x4f5c ?@) - (#x4f5d ?F) - (#x4f5e ?) - (#x4f5f ?c) - (#x4f60 ?A) - (#x4f61 ?i) - (#x4f62 ?\) - (#x4f63 ?) - (#x4f64 ?_) - (#x4f67 ?a) - (#x4f69 ?) - (#x4f6a ?˿) - (#x4f6b ?) - (#x4f6c ?) - (#x4f6e ?) - (#x4f6f ?) - (#x4f70 ?) - (#x4f73 ?) - (#x4f74 ?˹) - (#x4f75 ?) - (#x4f76 ?˸) - (#x4f77 ?˼) - (#x4f78 ?) - (#x4f79 ?) - (#x4f7a ?) - (#x4f7b ?) - (#x4f7c ?˳) - (#x4f7d ?˵) - (#x4f7e ?) - (#x4f7f ?) - (#x4f80 ?˶) - (#x4f81 ?) - (#x4f82 ?) - (#x4f83 ?) - (#x4f84 ?˻) - (#x4f85 ?˴) - (#x4f86 ?) - (#x4f87 ?˷) - (#x4f88 ?) - (#x4f89 ?˺) - (#x4f8b ?) - (#x4f8d ?) - (#x4f8f ?) - (#x4f90 ?) - (#x4f91 ?) - (#x4f92 ?) - (#x4f94 ?) - (#x4f95 ?) - (#x4f96 ?) - (#x4f97 ?˾) - (#x4f98 ?˲) - (#x4f9a ?) - (#x4f9b ?) - (#x4f9c ?) - (#x4f9d ?) - (#x4f9e ?) - (#x4fae ?V) - (#x4faf ?J) - (#x4fb2 ?) - (#x4fb3 ?) - (#x4fb5 ?I) - (#x4fb6 ?Q) - (#x4fb7 ?]) - (#x4fb9 ?) - (#x4fba ?) - (#x4fbb ?) - (#x4fbf ?K) - (#x4fc0 ?) - (#x4fc1 ?) - (#x4fc2 ?Y) - (#x4fc3 ?P) - (#x4fc4 ?X) - (#x4fc5 ?) - (#x4fc7 ?) - (#x4fc9 ?) - (#x4fca ?T) - (#x4fcb ?) - (#x4fcd ?) - (#x4fce ?[) - (#x4fcf ?N) - (#x4fd0 ?W) - (#x4fd1 ?M) - (#x4fd3 ?) - (#x4fd4 ?) - (#x4fd6 ?) - (#x4fd7 ?U) - (#x4fd8 ?R) - (#x4fd9 ?) - (#x4fda ?Z) - (#x4fdb ?) - (#x4fdc ?) - (#x4fdd ?O) - (#x4fde ?\) - (#x4fdf ?S) - (#x4fe0 ?L) - (#x4fe1 ?H) - (#x4fec ?) - (#x4fee ?) - (#x4fef ?) - (#x4ff1 ?) - (#x4ff3 ?) - (#x4ff4 ?) - (#x4ff5 ?) - (#x4ff6 ?) - (#x4ff7 ?) - (#x4ff8 ?) - (#x4ffa ?) - (#x4ffe ?) - (#x5000 ?) - (#x5005 ?) - (#x5006 ?) - (#x5007 ?) - (#x5009 ?) - (#x500b ?) - (#x500c ?) - (#x500d ?) - (#x500e ?) - (#x500f ?) - (#x5011 ?) - (#x5012 ?) - (#x5013 ?) - (#x5014 ?) - (#x5015 ?[) - (#x5016 ?) - (#x5017 ?) - (#x5018 ?) - (#x5019 ?) - (#x501a ?) - (#x501b ?) - (#x501c ?) - (#x501e ?) - (#x501f ?) - (#x5020 ?) - (#x5021 ?) - (#x5022 ?) - (#x5023 ?) - (#x5025 ?) - (#x5026 ?) - (#x5027 ?) - (#x5028 ?) - (#x5029 ?) - (#x502a ?) - (#x502b ?) - (#x502c ?) - (#x502d ?) - (#x502f ?) - (#x5030 ?) - (#x5031 ?) - (#x5033 ?) - (#x5035 ?) - (#x5037 ?) - (#x503c ?) - (#x5040 ?c) - (#x5041 ?W) - (#x5043 ?) - (#x5045 ?\) - (#x5046 ?b) - (#x5047 ?) - (#x5048 ?U) - (#x5049 ?) - (#x504a ?Y) - (#x504b ?R) - (#x504c ?) - (#x504d ?V) - (#x504e ?) - (#x504f ?) - (#x5051 ?g) - (#x5053 ?Q) - (#x5055 ?) - (#x5057 ?f) - (#x505a ?) - (#x505b ?X) - (#x505c ?) - (#x505d ?S) - (#x505e ?O) - (#x505f ?]) - (#x5060 ?P) - (#x5061 ?N) - (#x5062 ?Z) - (#x5063 ?`) - (#x5064 ?a) - (#x5065 ?) - (#x5068 ?[) - (#x5069 ?^) - (#x506a ?M) - (#x506b ?_) - (#x506d ?) - (#x506e ?d) - (#x506f ?) - (#x5070 ?L) - (#x5072 ?T) - (#x5073 ?e) - (#x5074 ?) - (#x5075 ?) - (#x5076 ?) - (#x5077 ?) - (#x507a ?) - (#x507d ?) - (#x5080 ?) - (#x5082 ?^) - (#x5083 ?W) - (#x5085 ?) - (#x5087 ?_) - (#x508b ?U) - (#x508c ?X) - (#x508d ?) - (#x508e ?Y) - (#x5091 ?) - (#x5092 ?]) - (#x5094 ?S) - (#x5095 ?R) - (#x5096 ?) - (#x5098 ?) - (#x5099 ?) - (#x509a ?) - (#x509b ?Q) - (#x509c ?\) - (#x509d ?Z) - (#x509e ?T) - (#x50a2 ?) - (#x50a3 ?V) - (#x50ac ?) - (#x50ad ?) - (#x50ae ?ܷ) - (#x50af ?) - (#x50b0 ?ܽ) - (#x50b1 ?) - (#x50b2 ?) - (#x50b3 ?) - (#x50b4 ?ܺ) - (#x50b5 ?) - (#x50b6 ?) - (#x50b7 ?) - (#x50b8 ?) - (#x50ba ?ܿ) - (#x50bb ?) - (#x50bd ?ܴ) - (#x50be ?) - (#x50bf ?ܵ) - (#x50c1 ?ܾ) - (#x50c2 ?ܼ) - (#x50c4 ?ܸ) - (#x50c5 ?) - (#x50c6 ?ܶ) - (#x50c7 ?) - (#x50c8 ?ܻ) - (#x50c9 ?) - (#x50ca ?ܹ) - (#x50cb ?) - (#x50ce ?) - (#x50cf ?) - (#x50d1 ?) - (#x50d3 ?) - (#x50d4 ?) - (#x50d5 ?) - (#x50d6 ?) - (#x50d7 ?) - (#x50da ?) - (#x50db ?) - (#x50dd ?) - (#x50e0 ?) - (#x50e3 ?) - (#x50e4 ?) - (#x50e5 ?) - (#x50e6 ?) - (#x50e7 ?) - (#x50e8 ?) - (#x50e9 ?) - (#x50ea ?) - (#x50ec ?) - (#x50ed ?) - (#x50ee ?) - (#x50ef ?) - (#x50f0 ?) - (#x50f1 ?) - (#x50f3 ?) - (#x50f5 ?) - (#x50f6 ?) - (#x50f8 ?) - (#x50f9 ?) - (#x50fb ?) - (#x50fd ?) - (#x50fe ?) - (#x50ff ?) - (#x5100 ?) - (#x5102 ?) - (#x5103 ?) - (#x5104 ?) - (#x5105 ?) - (#x5106 ?) - (#x5107 ?) - (#x5108 ?) - (#x5109 ?) - (#x510a ?) - (#x510b ?) - (#x510c ?) - (#x5110 ?) - (#x5111 ?) - (#x5112 ?) - (#x5113 ?) - (#x5114 ?) - (#x5115 ?) - (#x5117 ?) - (#x5118 ?) - (#x511a ?) - (#x511c ?) - (#x511f ?v) - (#x5120 ?) - (#x5121 ?w) - (#x5122 ?) - (#x5124 ?) - (#x5125 ?) - (#x5126 ?) - (#x5129 ?) - (#x512a ?u) - (#x512d ?) - (#x512e ?) - (#x5130 ?) - (#x5131 ?) - (#x5132 ?x) - (#x5133 ?_) - (#x5134 ?) - (#x5135 ?) - (#x5137 ?) - (#x5138 ?) - (#x5139 ?) - (#x513a ?) - (#x513b ?l) - (#x513c ?k) - (#x513d ?) - (#x513f ?I) - (#x5140 ?a) - (#x5141 ?) - (#x5143 ?) - (#x5144 ?S) - (#x5145 ?R) - (#x5146 ?) - (#x5147 ?) - (#x5148 ?) - (#x5149 ?) - (#x514b ?J) - (#x514c ?I) - (#x514d ?K) - (#x5152 ?) - (#x5154 ?) - (#x5155 ?) - (#x5157 ?^) - (#x5159 ?Y) - (#x515a ?) - (#x515b ?Z) - (#x515c ?) - (#x515d ?\) - (#x515e ?[) - (#x515f ?`) - (#x5161 ?]) - (#x5162 ?) - (#x5163 ?^) - (#x5165 ?J) - (#x5167 ?) - (#x5168 ?) - (#x5169 ?) - (#x516b ?K) - (#x516c ?) - (#x516d ?) - (#x516e ?) - (#x5171 ?@) - (#x5175 ?L) - (#x5176 ?) - (#x5177 ?) - (#x5178 ?) - (#x517c ?) - (#x5180 ?) - (#x5187 ?N) - (#x5189 ?T) - (#x518a ?U) - (#x518d ?A) - (#x518f ?j) - (#x5191 ?`) - (#x5192 ?_) - (#x5193 ?) - (#x5194 ?) - (#x5195 ?) - (#x5197 ?) - (#x5198 ?U) - (#x519e ?) - (#x51a0 ?a) - (#x51a2 ?) - (#x51a4 ?) - (#x51a5 ?) - (#x51aa ?) - (#x51ac ?V) - (#x51b0 ?B) - (#x51b1 ?ɼ) - (#x51b6 ?M) - (#x51b7 ?N) - (#x51b9 ?k) - (#x51bc ?) - (#x51bd ?) - (#x51be ?) - (#x51c4 ?) - (#x51c5 ?) - (#x51c6 ?) - (#x51c8 ?) - (#x51ca ?) - (#x51cb ?) - (#x51cc ?) - (#x51cd ?) - (#x51ce ?) - (#x51d0 ?h) - (#x51d4 ?a) - (#x51d7 ?) - (#x51d8 ?@) - (#x51dc ?) - (#x51dd ?) - (#x51de ?) - (#x51e0 ?L) - (#x51e1 ?Z) - (#x51f0 ?) - (#x51f1 ?) - (#x51f3 ?) - (#x51f5 ?B) - (#x51f6 ?) - (#x51f8 ?Y) - (#x51f9 ?W) - (#x51fa ?X) - (#x51fd ?) - (#x5200 ?M) - (#x5201 ?N) - (#x5203 ?b) - (#x5206 ?) - (#x5207 ?) - (#x5208 ?) - (#x5209 ?ɾ) - (#x520a ?Z) - (#x520c ?k) - (#x520e ?F) - (#x5210 ?ɿ) - (#x5211 ?D) - (#x5212 ?E) - (#x5213 ?ɽ) - (#x5216 ?G) - (#x5217 ?C) - (#x521c ?l) - (#x521d ?) - (#x521e ?m) - (#x5221 ?n) - (#x5224 ?P) - (#x5225 ?O) - (#x5228 ?S) - (#x5229 ?Q) - (#x522a ?R) - (#x522e ?) - (#x5230 ?) - (#x5231 ?) - (#x5232 ?) - (#x5233 ?) - (#x5235 ?) - (#x5236 ?) - (#x5237 ?) - (#x5238 ?) - (#x523a ?) - (#x523b ?) - (#x5241 ?) - (#x5243 ?c) - (#x5244 ?) - (#x5246 ?) - (#x5247 ?h) - (#x5249 ?) - (#x524a ?d) - (#x524b ?g) - (#x524c ?f) - (#x524d ?e) - (#x524e ?b) - (#x5252 ?) - (#x5254 ?) - (#x5255 ?) - (#x5256 ?) - (#x525a ?) - (#x525b ?) - (#x525c ?) - (#x525d ?) - (#x525e ?) - (#x525f ?) - (#x5261 ?) - (#x5262 ?) - (#x5269 ?) - (#x526a ?) - (#x526b ?i) - (#x526c ?k) - (#x526d ?j) - (#x526e ?l) - (#x526f ?) - (#x5272 ?) - (#x5274 ?) - (#x5275 ?) - (#x5277 ?) - (#x5278 ?) - (#x527a ?) - (#x527b ?) - (#x527c ?) - (#x527d ?) - (#x527f ?) - (#x5280 ?A) - (#x5281 ?B) - (#x5282 ?) - (#x5283 ?) - (#x5284 ?Z) - (#x5287 ?@) - (#x5288 ?A) - (#x5289 ?B) - (#x528a ?D) - (#x528b ?) - (#x528c ?) - (#x528d ?C) - (#x5291 ?) - (#x5293 ?) - (#x5296 ?) - (#x5297 ?) - (#x5298 ?) - (#x5299 ?) - (#x529b ?O) - (#x529f ?\) - (#x52a0 ?[) - (#x52a3 ?H) - (#x52a6 ?) - (#x52a9 ?U) - (#x52aa ?V) - (#x52ab ?T) - (#x52ac ?W) - (#x52ad ?o) - (#x52ae ?p) - (#x52bb ?) - (#x52bc ?) - (#x52be ?) - (#x52c0 ?) - (#x52c1 ?l) - (#x52c2 ?) - (#x52c3 ?k) - (#x52c7 ?i) - (#x52c9 ?j) - (#x52cd ?) - (#x52d2 ?) - (#x52d3 ?n) - (#x52d5 ?) - (#x52d6 ?m) - (#x52d7 ?) - (#x52d8 ?) - (#x52d9 ?) - (#x52db ?) - (#x52dd ?) - (#x52de ?) - (#x52df ?) - (#x52e2 ?) - (#x52e3 ?) - (#x52e4 ?) - (#x52e6 ?) - (#x52e9 ?C) - (#x52eb ?D) - (#x52ef ?) - (#x52f0 ?E) - (#x52f1 ?) - (#x52f3 ?) - (#x52f4 ?) - (#x52f5 ?y) - (#x52f7 ?) - (#x52f8 ?U) - (#x52fa ?c) - (#x52fb ?) - (#x52fc ?V) - (#x52fe ?) - (#x52ff ?) - (#x5305 ?]) - (#x5306 ?^) - (#x5308 ?I) - (#x5309 ?q) - (#x530a ?) - (#x530b ?) - (#x530d ?m) - (#x530e ?) - (#x530f ?) - (#x5310 ?) - (#x5311 ?c) - (#x5312 ?b) - (#x5315 ?P) - (#x5316 ?) - (#x5317 ?_) - (#x5319 ?) - (#x531a ?C) - (#x531c ?l) - (#x531d ?`) - (#x531f ?) - (#x5320 ?K) - (#x5321 ?J) - (#x5322 ?) - (#x5323 ?X) - (#x532a ?) - (#x532d ?o) - (#x532f ?) - (#x5330 ?E) - (#x5331 ?) - (#x5334 ?) - (#x5337 ?) - (#x5339 ?) - (#x533c ?) - (#x533d ?) - (#x533e ?) - (#x533f ?) - (#x5340 ?) - (#x5341 ?Q) - (#x5343 ?d) - (#x5344 ?) - (#x5345 ?) - (#x5347 ?) - (#x5348 ?) - (#x5349 ?c) - (#x534a ?b) - (#x534c ?m) - (#x534d ?) - (#x5351 ?) - (#x5352 ?) - (#x5353 ?) - (#x5354 ?) - (#x5357 ?n) - (#x535a ?) - (#x535c ?R) - (#x535e ?) - (#x5360 ?e) - (#x5361 ?d) - (#x5363 ?r) - (#x5366 ?) - (#x536c ?W) - (#x536e ?g) - (#x536f ?f) - (#x5370 ?L) - (#x5371 ?M) - (#x5372 ?s) - (#x5373 ?Y) - (#x5375 ?Z) - (#x5377 ?) - (#x5378 ?) - (#x5379 ?) - (#x537b ?o) - (#x537c ?) - (#x537f ?) - (#x5382 ?D) - (#x5384 ?) - (#x538a ?) - (#x538e ?t) - (#x538f ?u) - (#x5392 ?) - (#x5394 ?) - (#x5396 ?) - (#x5397 ?) - (#x5398 ?) - (#x5399 ?) - (#x539a ?p) - (#x539c ?p) - (#x539d ?) - (#x539e ?) - (#x539f ?) - (#x53a4 ?d) - (#x53a5 ?) - (#x53a7 ?e) - (#x53ac ?F) - (#x53ad ?) - (#x53b2 ?F) - (#x53b4 ?) - (#x53b9 ?X) - (#x53bb ?h) - (#x53c3 ?) - (#x53c8 ?S) - (#x53c9 ?e) - (#x53ca ?) - (#x53cb ?) - (#x53cd ?) - (#x53d4 ?) - (#x53d6 ?) - (#x53d7 ?) - (#x53db ?q) - (#x53df ?) - (#x53e1 ?) - (#x53e2 ?O) - (#x53e3 ?f) - (#x53e4 ?j) - (#x53e5 ?y) - (#x53e6 ?t) - (#x53e8 ?o) - (#x53e9 ?n) - (#x53ea ?u) - (#x53eb ?s) - (#x53ec ?l) - (#x53ed ?z) - (#x53ee ?m) - (#x53ef ?i) - (#x53f0 ?x) - (#x53f1 ?w) - (#x53f2 ?v) - (#x53f3 ?k) - (#x53f5 ?r) - (#x53f8 ?q) - (#x53fb ?{) - (#x53fc ?p) - (#x5401 ?S) - (#x5403 ?Y) - (#x5404 ?U) - (#x5406 ?[) - (#x5407 ?) - (#x5408 ?X) - (#x5409 ?N) - (#x540a ?Q) - (#x540b ?T) - (#x540c ?P) - (#x540d ?W) - (#x540e ?Z) - (#x540f ?O) - (#x5410 ?R) - (#x5411 ?V) - (#x5412 ?\) - (#x5418 ?~) - (#x5419 ?{) - (#x541b ?g) - (#x541c ?|) - (#x541d ?[) - (#x541e ?]) - (#x541f ?u) - (#x5420 ?p) - (#x5424 ?ʥ) - (#x5425 ?}) - (#x5426 ?_) - (#x5427 ?a) - (#x5428 ?ʤ) - (#x5429 ?h) - (#x542a ?x) - (#x542b ?t) - (#x542c ?v) - (#x542d ?\) - (#x542e ?m) - (#x5430 ?v) - (#x5431 ?s) - (#x5433 ?d) - (#x5435 ?n) - (#x5436 ?o) - (#x5437 ?w) - (#x5438 ?l) - (#x5439 ?j) - (#x543b ?k) - (#x543c ?q) - (#x543d ?ʡ) - (#x543e ?^) - (#x5440 ?r) - (#x5441 ?ʣ) - (#x5442 ?f) - (#x5443 ?c) - (#x5445 ?z) - (#x5446 ?b) - (#x5447 ?ʦ) - (#x5448 ?e) - (#x544a ?i) - (#x544e ?`) - (#x544f ?ʢ) - (#x5454 ?y) - (#x5460 ?) - (#x5461 ?) - (#x5462 ?O) - (#x5463 ?) - (#x5464 ?) - (#x5465 ?) - (#x5466 ?) - (#x5467 ?) - (#x5468 ?P) - (#x546b ?) - (#x546c ?) - (#x546f ?) - (#x5470 ?I) - (#x5471 ?K) - (#x5472 ?M) - (#x5473 ?) - (#x5474 ?) - (#x5475 ?) - (#x5476 ?L) - (#x5477 ?E) - (#x5478 ?A) - (#x547a ?) - (#x547b ?D) - (#x547c ?I) - (#x547d ?R) - (#x547e ?) - (#x547f ?) - (#x5480 ?C) - (#x5481 ?) - (#x5482 ?) - (#x5484 ?F) - (#x5486 ?H) - (#x5487 ?) - (#x5488 ?) - (#x548b ?Q) - (#x548c ?M) - (#x548d ?) - (#x548e ?S) - (#x5490 ?J) - (#x5491 ?) - (#x5492 ?G) - (#x5495 ?B) - (#x5496 ?@) - (#x5498 ?) - (#x549a ?N) - (#x54a0 ?H) - (#x54a1 ?) - (#x54a2 ?K) - (#x54a5 ?) - (#x54a6 ?x) - (#x54a7 ?) - (#x54a8 ?t) - (#x54a9 ?) - (#x54aa ?}) - (#x54ab ?) - (#x54ac ?r) - (#x54ad ?) - (#x54ae ?C) - (#x54af ?) - (#x54b0 ?O) - (#x54b1 ?) - (#x54b3 ?y) - (#x54b6 ?E) - (#x54b7 ?B) - (#x54b8 ?w) - (#x54ba ?) - (#x54bb ?) - (#x54bc ?J) - (#x54bd ?|) - (#x54be ?L) - (#x54bf ?) - (#x54c0 ?s) - (#x54c1 ?~) - (#x54c2 ?{) - (#x54c3 ?@) - (#x54c4 ?) - (#x54c5 ?F) - (#x54c6 ?G) - (#x54c7 ?z) - (#x54c8 ?) - (#x54c9 ?v) - (#x54ce ?u) - (#x54cf ?) - (#x54d6 ?D) - (#x54de ?N) - (#x54e0 ?D) - (#x54e1 ?) - (#x54e2 ?) - (#x54e4 ?) - (#x54e5 ?) - (#x54e6 ?@) - (#x54e7 ?) - (#x54e8 ?) - (#x54e9 ?) - (#x54ea ?) - (#x54eb ?) - (#x54ed ?) - (#x54ee ?) - (#x54f1 ?) - (#x54f2 ?) - (#x54f3 ?) - (#x54f7 ?B) - (#x54f8 ?C) - (#x54fa ?) - (#x54fb ?A) - (#x54fc ?) - (#x54fd ?C) - (#x54ff ?) - (#x5501 ?) - (#x5503 ?F) - (#x5504 ?) - (#x5505 ?) - (#x5506 ?) - (#x5507 ?B) - (#x5508 ?) - (#x5509 ?) - (#x550a ?@) - (#x550b ?G) - (#x550c ?ԡ) - (#x550e ?E) - (#x550f ?D) - (#x5510 ?) - (#x5511 ?) - (#x5512 ?) - (#x5514 ?) - (#x5517 ?) - (#x551a ?) - (#x5526 ?) - (#x5527 ?A) - (#x552a ?w) - (#x552c ?) - (#x552d ?ԧ) - (#x552e ?) - (#x552f ?) - (#x5530 ?|) - (#x5531 ?) - (#x5532 ?Ԣ) - (#x5533 ?) - (#x5534 ?v) - (#x5535 ?{) - (#x5536 ?z) - (#x5537 ?) - (#x5538 ?) - (#x5539 ?ԥ) - (#x553b ?Ԩ) - (#x553c ?s) - (#x553e ?) - (#x5540 ?ԩ) - (#x5541 ?) - (#x5543 ?) - (#x5544 ?) - (#x5545 ?~) - (#x5546 ?) - (#x5548 ?Ԧ) - (#x554a ?) - (#x554b ?Ԫ) - (#x554d ?t) - (#x554e ?Ԥ) - (#x554f ?) - (#x5550 ?u) - (#x5551 ?x) - (#x5552 ?}) - (#x5555 ?) - (#x5556 ?) - (#x5557 ?) - (#x555c ?) - (#x555e ?) - (#x555f ?) - (#x5561 ?) - (#x5562 ?y) - (#x5563 ?) - (#x5564 ?) - (#x5565 ?ԣ) - (#x5566 ?) - (#x556a ?) - (#x5575 ?q) - (#x5576 ?r) - (#x5577 ?j) - (#x557b ?) - (#x557c ?) - (#x557d ?u) - (#x557e ?) - (#x557f ?x) - (#x5580 ?) - (#x5581 ?q) - (#x5582 ?) - (#x5583 ?) - (#x5584 ?) - (#x5587 ?) - (#x5588 ?n) - (#x5589 ?) - (#x558a ?) - (#x558b ?) - (#x558c ?v) - (#x558d ?) - (#x558e ?{) - (#x558f ?o) - (#x5591 ?f) - (#x5592 ?s) - (#x5593 ?m) - (#x5594 ?) - (#x5595 ?y) - (#x5598 ?) - (#x5599 ?) - (#x559a ?) - (#x559c ?) - (#x559d ?) - (#x559f ?) - (#x55a1 ?z) - (#x55a2 ?l) - (#x55a3 ?r) - (#x55a4 ?t) - (#x55a5 ?h) - (#x55a6 ?w) - (#x55a7 ?) - (#x55a8 ?g) - (#x55aa ?) - (#x55ab ?) - (#x55ac ?) - (#x55ad ?i) - (#x55ae ?) - (#x55b1 ?) - (#x55b2 ?) - (#x55b3 ?) - (#x55b5 ?p) - (#x55bb ?) - (#x55bf ?) - (#x55c0 ?) - (#x55c2 ?) - (#x55c3 ?) - (#x55c4 ?) - (#x55c5 ?) - (#x55c6 ?) - (#x55c7 ?) - (#x55c8 ?) - (#x55c9 ?) - (#x55ca ?) - (#x55cb ?) - (#x55cc ?) - (#x55cd ?) - (#x55ce ?) - (#x55cf ?) - (#x55d0 ?) - (#x55d1 ?) - (#x55d2 ?) - (#x55d3 ?) - (#x55d4 ?) - (#x55d5 ?) - (#x55d6 ?) - (#x55d9 ?) - (#x55da ?) - (#x55db ?) - (#x55dc ?) - (#x55dd ?) - (#x55df ?) - (#x55e1 ?) - (#x55e2 ?) - (#x55e3 ?) - (#x55e4 ?) - (#x55e5 ?) - (#x55e6 ?) - (#x55e7 ?_) - (#x55e8 ?) - (#x55e9 ?) - (#x55ef ?) - (#x55f2 ?) - (#x55f6 ?) - (#x55f7 ?) - (#x55f9 ?U) - (#x55fa ?Q) - (#x55fc ?K) - (#x55fd ?) - (#x55fe ?) - (#x55ff ?T) - (#x5600 ?) - (#x5601 ?N) - (#x5602 ?P) - (#x5604 ?S) - (#x5606 ?) - (#x5608 ?) - (#x5609 ?) - (#x560c ?I) - (#x560d ?) - (#x560e ?) - (#x560f ?L) - (#x5610 ?) - (#x5612 ?J) - (#x5613 ?O) - (#x5614 ?) - (#x5615 ?H) - (#x5616 ?) - (#x5617 ?) - (#x561b ?) - (#x561c ?M) - (#x561d ?R) - (#x561f ?) - (#x5627 ?G) - (#x5629 ?M) - (#x562a ?G) - (#x562c ?D) - (#x562e ?G) - (#x562f ?S) - (#x5630 ?T) - (#x5632 ?J) - (#x5633 ?B) - (#x5634 ?L) - (#x5635 ?) - (#x5636 ?R) - (#x5638 ?F) - (#x5639 ?I) - (#x563a ?H) - (#x563b ?H) - (#x563d ?C) - (#x563e ?E) - (#x563f ?K) - (#x5640 ?A) - (#x5641 ?) - (#x5642 ?) - (#x5645 ?k) - (#x5646 ?) - (#x5648 ?) - (#x5649 ?) - (#x564a ?) - (#x564c ?) - (#x564e ?O) - (#x5653 ?N) - (#x5657 ?P) - (#x5658 ?) - (#x5659 ?) - (#x565a ?@) - (#x565e ?E) - (#x5660 ?) - (#x5662 ?) - (#x5663 ?B) - (#x5664 ?) - (#x5665 ?) - (#x5666 ?A) - (#x5668 ?) - (#x5669 ?) - (#x566a ?) - (#x566b ?) - (#x566c ?) - (#x566d ?C) - (#x566e ?) - (#x566f ?) - (#x5670 ?) - (#x5671 ?) - (#x5672 ?D) - (#x5673 ?@) - (#x5674 ?Q) - (#x5676 ?) - (#x5677 ?F) - (#x5678 ?) - (#x5679 ?) - (#x567e ?) - (#x567f ?) - (#x5680 ?{) - (#x5681 ?) - (#x5682 ?) - (#x5683 ?) - (#x5684 ?) - (#x5685 ?}) - (#x5686 ?) - (#x5687 ?~) - (#x568c ?) - (#x568d ?) - (#x568e ?z) - (#x568f ?) - (#x5690 ?|) - (#x5693 ?) - (#x5695 ?P) - (#x5697 ?) - (#x5698 ?) - (#x5699 ?) - (#x569a ?) - (#x569c ?) - (#x569d ?) - (#x56a5 ?`) - (#x56a6 ?) - (#x56a7 ?) - (#x56a8 ?V) - (#x56aa ?) - (#x56ab ?) - (#x56ac ?) - (#x56ad ?) - (#x56ae ?Q) - (#x56b2 ?) - (#x56b3 ?A) - (#x56b4 ?Y) - (#x56b5 ?@) - (#x56b6 ?X) - (#x56b7 ?W) - (#x56bc ?Z) - (#x56bd ?) - (#x56be ?) - (#x56c0 ?) - (#x56c1 ?) - (#x56c2 ?) - (#x56c3 ?) - (#x56c5 ?) - (#x56c6 ?) - (#x56c8 ?m) - (#x56c9 ?o) - (#x56ca ?n) - (#x56cb ?) - (#x56cc ?) - (#x56cd ?) - (#x56d1 ?) - (#x56d3 ?) - (#x56d4 ?) - (#x56d7 ?I) - (#x56da ?}) - (#x56db ?|) - (#x56dd ?_) - (#x56de ?^) - (#x56df ?) - (#x56e0 ?]) - (#x56e1 ?) - (#x56e4 ?y) - (#x56e5 ?ʩ) - (#x56e7 ?ʨ) - (#x56ea ?w) - (#x56eb ?z) - (#x56ee ?ʧ) - (#x56f0 ?x) - (#x56f7 ?) - (#x56f9 ?) - (#x56fa ?T) - (#x56ff ?) - (#x5701 ?H) - (#x5702 ?I) - (#x5703 ?E) - (#x5704 ?F) - (#x5707 ?Ԭ) - (#x5708 ?) - (#x5709 ?) - (#x570a ?ԫ) - (#x570b ?) - (#x570c ?|) - (#x570d ?) - (#x5712 ?) - (#x5713 ?) - (#x5714 ?) - (#x5716 ?) - (#x5718 ?) - (#x571a ?I) - (#x571b ?H) - (#x571c ?G) - (#x571e ?k) - (#x571f ?g) - (#x5720 ?Y) - (#x5722 ?n) - (#x5723 ?o) - (#x5728 ?b) - (#x5729 ?f) - (#x572a ?) - (#x572c ?d) - (#x572d ?c) - (#x572e ?) - (#x572f ?e) - (#x5730 ?a) - (#x5733 ?`) - (#x5734 ?) - (#x573b ?) - (#x573e ?) - (#x5740 ?}) - (#x5741 ?ʪ) - (#x5745 ?ʫ) - (#x5747 ?) - (#x5749 ?ʭ) - (#x574a ?{) - (#x574b ?ʮ) - (#x574c ?ʬ) - (#x574d ?~) - (#x574e ?) - (#x574f ?) - (#x5750 ?) - (#x5751 ?|) - (#x5752 ?ʯ) - (#x5761 ?Y) - (#x5762 ?) - (#x5764 ?[) - (#x5766 ?Z) - (#x5768 ?@) - (#x5769 ?X) - (#x576a ?W) - (#x576b ?) - (#x576d ?) - (#x576f ?) - (#x5770 ?) - (#x5771 ?) - (#x5772 ?) - (#x5773 ?) - (#x5774 ?) - (#x5775 ?) - (#x5776 ?) - (#x5777 ?V) - (#x577b ?) - (#x577c ?\) - (#x577d ?A) - (#x5780 ?) - (#x5782 ?) - (#x5783 ?U) - (#x578b ?) - (#x578c ?T) - (#x578f ?Z) - (#x5793 ?) - (#x5794 ?X) - (#x5795 ?^) - (#x5797 ?U) - (#x5798 ?Y) - (#x5799 ?[) - (#x579a ?]) - (#x579b ?W) - (#x579d ?V) - (#x579e ?Q) - (#x579f ?R) - (#x57a0 ?) - (#x57a2 ?) - (#x57a3 ?) - (#x57a4 ?S) - (#x57a5 ?\) - (#x57ae ?) - (#x57b5 ?P) - (#x57b6 ?S) - (#x57b8 ?R) - (#x57b9 ?W) - (#x57ba ?N) - (#x57bc ?Q) - (#x57bd ?P) - (#x57bf ?T) - (#x57c1 ?X) - (#x57c2 ?G) - (#x57c3 ?J) - (#x57c6 ?O) - (#x57c7 ?U) - (#x57cb ?I) - (#x57cc ?J) - (#x57ce ?) - (#x57cf ?Ժ) - (#x57d0 ?V) - (#x57d2 ?M) - (#x57d4 ?H) - (#x57d5 ?L) - (#x57dc ?Ա) - (#x57df ?) - (#x57e0 ?) - (#x57e1 ?) - (#x57e2 ?ԯ) - (#x57e3 ?Խ) - (#x57e4 ?) - (#x57e5 ?Կ) - (#x57e7 ?) - (#x57e9 ?) - (#x57ec ?) - (#x57ed ?Դ) - (#x57ee ?Լ) - (#x57f0 ?) - (#x57f1 ?) - (#x57f2 ?Ծ) - (#x57f3 ?Թ) - (#x57f4 ?Բ) - (#x57f5 ?ئ) - (#x57f6 ?) - (#x57f7 ?) - (#x57f8 ?Է) - (#x57f9 ?) - (#x57fa ?) - (#x57fb ?ԭ) - (#x57fc ?) - (#x57fd ?Ե) - (#x5800 ?Գ) - (#x5801 ?) - (#x5802 ?) - (#x5804 ?) - (#x5805 ?) - (#x5806 ?) - (#x5807 ?Ի) - (#x5808 ?Զ) - (#x5809 ?K) - (#x580a ?) - (#x580b ?Ը) - (#x580c ?) - (#x580d ?) - (#x580e ?) - (#x5810 ?) - (#x5814 ?Ԯ) - (#x5819 ?ء) - (#x581b ?ت) - (#x581c ?ة) - (#x581d ?) - (#x581e ?آ) - (#x5820 ?) - (#x5821 ?) - (#x5823 ?ؤ) - (#x5824 ?) - (#x5825 ?ب) - (#x5827 ?أ) - (#x5828 ?إ) - (#x5829 ?}) - (#x582a ?) - (#x582c ?ز) - (#x582d ?ر) - (#x582e ?خ) - (#x582f ?) - (#x5830 ?) - (#x5831 ?) - (#x5832 ?K) - (#x5833 ?ث) - (#x5834 ?) - (#x5835 ?) - (#x5836 ?ح) - (#x5837 ?~) - (#x5838 ?ذ) - (#x5839 ?د) - (#x583b ?س) - (#x583d ?) - (#x583f ?ج) - (#x5848 ?ا) - (#x5849 ?) - (#x584a ?) - (#x584b ?) - (#x584c ?) - (#x584d ?) - (#x584e ?) - (#x584f ?) - (#x5851 ?) - (#x5852 ?) - (#x5853 ?) - (#x5854 ?) - (#x5855 ?) - (#x5857 ?) - (#x5858 ?) - (#x5859 ?) - (#x585a ?) - (#x585b ?) - (#x585d ?) - (#x585e ?) - (#x5862 ?) - (#x5863 ?) - (#x5864 ?) - (#x5865 ?) - (#x5868 ?) - (#x586b ?) - (#x586d ?) - (#x586f ?) - (#x5871 ?) - (#x5874 ?]) - (#x5875 ?) - (#x5876 ?c) - (#x5879 ?) - (#x587a ?_) - (#x587b ?f) - (#x587c ?W) - (#x587d ?) - (#x587e ?) - (#x587f ?\) - (#x5880 ?U) - (#x5881 ?[) - (#x5882 ?d) - (#x5883 ?) - (#x5885 ?) - (#x5886 ?Z) - (#x5887 ?`) - (#x5888 ?e) - (#x5889 ?V) - (#x588a ?) - (#x588b ?^) - (#x588e ?b) - (#x588f ?h) - (#x5890 ?X) - (#x5891 ?a) - (#x5893 ?) - (#x5894 ?g) - (#x5898 ?Y) - (#x589c ?Y) - (#x589d ?K) - (#x589e ?W) - (#x589f ?V) - (#x58a0 ?M) - (#x58a1 ?R) - (#x58a3 ?N) - (#x58a5 ?Q) - (#x58a6 ?\) - (#x58a8 ?) - (#x58a9 ?[) - (#x58ab ?J) - (#x58ac ?P) - (#x58ae ?Z) - (#x58af ?O) - (#x58b1 ?L) - (#x58b3 ?X) - (#x58ba ?M) - (#x58bb ?) - (#x58bc ?O) - (#x58bd ?J) - (#x58be ?) - (#x58bf ?L) - (#x58c1 ?) - (#x58c2 ?N) - (#x58c5 ?) - (#x58c6 ?P) - (#x58c7 ?) - (#x58c8 ?I) - (#x58c9 ?K) - (#x58ce ?) - (#x58cf ?) - (#x58d1 ?) - (#x58d2 ?) - (#x58d3 ?) - (#x58d4 ?) - (#x58d5 ?) - (#x58d6 ?) - (#x58d8 ?S) - (#x58d9 ?R) - (#x58da ?) - (#x58db ?) - (#x58dd ?) - (#x58de ?a) - (#x58df ?b) - (#x58e2 ?c) - (#x58e3 ?B) - (#x58e4 ?[) - (#x58e7 ?) - (#x58e8 ?) - (#x58e9 ?) - (#x58eb ?h) - (#x58ec ?) - (#x58ef ?) - (#x58f4 ?_) - (#x58f9 ?) - (#x58fa ?) - (#x58fc ?) - (#x58fd ?) - (#x58fe ?i) - (#x58ff ?S) - (#x5903 ?Z) - (#x5906 ?ʰ) - (#x590c ?B) - (#x590d ?`) - (#x590e ?Y) - (#x590f ?L) - (#x5912 ?) - (#x5914 ?) - (#x5915 ?i) - (#x5916 ?~) - (#x5917 ?p) - (#x5919 ?g) - (#x591a ?h) - (#x591c ?]) - (#x5920 ?) - (#x5922 ?) - (#x5924 ?) - (#x5925 ?) - (#x5927 ?j) - (#x5929 ?) - (#x592a ?) - (#x592b ?) - (#x592c ?[) - (#x592d ?) - (#x592e ?) - (#x592f ?q) - (#x5931 ?) - (#x5937 ?i) - (#x5938 ?j) - (#x593c ?) - (#x593e ?) - (#x5940 ?ʱ) - (#x5944 ?a) - (#x5945 ?C) - (#x5947 ?_) - (#x5948 ?`) - (#x5949 ?^) - (#x594a ?Z) - (#x594e ?) - (#x594f ?) - (#x5950 ?) - (#x5951 ?) - (#x5953 ?a) - (#x5954 ?b) - (#x5955 ?) - (#x5957 ?M) - (#x5958 ?N) - (#x595a ?O) - (#x595c ?) - (#x5960 ?) - (#x5961 ?ش) - (#x5962 ?) - (#x5967 ?) - (#x5969 ?) - (#x596a ?) - (#x596b ?j) - (#x596d ?]) - (#x596e ?) - (#x5970 ?) - (#x5971 ?) - (#x5972 ?) - (#x5973 ?k) - (#x5974 ?) - (#x5976 ?) - (#x5977 ?) - (#x5978 ?l) - (#x5979 ?o) - (#x597b ?) - (#x597c ?) - (#x597d ?n) - (#x597e ?) - (#x597f ?) - (#x5980 ?) - (#x5981 ?q) - (#x5982 ?p) - (#x5983 ?m) - (#x5984 ?k) - (#x5985 ?) - (#x598a ?) - (#x598d ?) - (#x598e ?ʶ) - (#x598f ?ʹ) - (#x5990 ?ʸ) - (#x5992 ?) - (#x5993 ?) - (#x5996 ?) - (#x5997 ?ʵ) - (#x5998 ?ʳ) - (#x5999 ?) - (#x599d ?) - (#x599e ?) - (#x59a0 ?ʴ) - (#x59a1 ?ʻ) - (#x59a2 ?ʷ) - (#x59a3 ?) - (#x59a4 ?) - (#x59a5 ?) - (#x59a6 ?ʲ) - (#x59a7 ?ʺ) - (#x59a8 ?) - (#x59ae ?g) - (#x59af ?o) - (#x59b1 ?O) - (#x59b2 ?H) - (#x59b3 ?p) - (#x59b4 ?S) - (#x59b5 ?D) - (#x59b6 ?K) - (#x59b9 ?f) - (#x59ba ?E) - (#x59bb ?d) - (#x59bc ?L) - (#x59bd ?P) - (#x59be ?c) - (#x59c0 ?Q) - (#x59c1 ?J) - (#x59c3 ?M) - (#x59c5 ?r) - (#x59c6 ?i) - (#x59c7 ?T) - (#x59c8 ?R) - (#x59ca ?n) - (#x59cb ?l) - (#x59cc ?I) - (#x59cd ?k) - (#x59ce ?G) - (#x59cf ?F) - (#x59d0 ?j) - (#x59d1 ?h) - (#x59d2 ?q) - (#x59d3 ?m) - (#x59d4 ?e) - (#x59d6 ?N) - (#x59d8 ?) - (#x59da ?) - (#x59db ?o) - (#x59dc ?) - (#x59dd ?g) - (#x59de ?c) - (#x59e0 ?s) - (#x59e1 ?b) - (#x59e3 ?) - (#x59e4 ?l) - (#x59e5 ?) - (#x59e6 ?) - (#x59e8 ?) - (#x59e9 ?p) - (#x59ea ?) - (#x59ec ?V) - (#x59ed ?v) - (#x59ee ?d) - (#x59f1 ?f) - (#x59f2 ?m) - (#x59f3 ?q) - (#x59f4 ?u) - (#x59f5 ?r) - (#x59f6 ?k) - (#x59f7 ?n) - (#x59fa ?h) - (#x59fb ?) - (#x59fc ?j) - (#x59fd ?i) - (#x59fe ?t) - (#x59ff ?) - (#x5a00 ?e) - (#x5a01 ?) - (#x5a03 ?) - (#x5a09 ?\) - (#x5a0a ?b) - (#x5a0c ?[) - (#x5a0f ?`) - (#x5a11 ?P) - (#x5a13 ?U) - (#x5a15 ?_) - (#x5a16 ?\) - (#x5a17 ?a) - (#x5a18 ?Q) - (#x5a19 ?[) - (#x5a1b ?T) - (#x5a1c ?R) - (#x5a1e ?c) - (#x5a1f ?S) - (#x5a20 ?W) - (#x5a23 ?X) - (#x5a25 ?Z) - (#x5a29 ?Y) - (#x5a2d ?]) - (#x5a2e ?^) - (#x5a33 ?d) - (#x5a35 ?) - (#x5a36 ?) - (#x5a37 ?) - (#x5a38 ?) - (#x5a39 ?) - (#x5a3c ?@) - (#x5a3e ?) - (#x5a40 ?) - (#x5a41 ?) - (#x5a42 ?) - (#x5a43 ?) - (#x5a44 ?) - (#x5a46 ?C) - (#x5a47 ?) - (#x5a48 ?) - (#x5a49 ?) - (#x5a4a ?D) - (#x5a4c ?) - (#x5a4d ?) - (#x5a50 ?) - (#x5a51 ?) - (#x5a52 ?) - (#x5a53 ?) - (#x5a55 ?) - (#x5a56 ?) - (#x5a57 ?) - (#x5a58 ?) - (#x5a5a ?B) - (#x5a5b ?) - (#x5a5c ?) - (#x5a5d ?) - (#x5a5e ?) - (#x5a5f ?) - (#x5a60 ?) - (#x5a62 ?A) - (#x5a64 ?) - (#x5a65 ?) - (#x5a66 ?) - (#x5a67 ?) - (#x5a69 ?) - (#x5a6a ?) - (#x5a6c ?) - (#x5a6d ?) - (#x5a70 ?) - (#x5a77 ?@) - (#x5a78 ?ػ) - (#x5a7a ?ظ) - (#x5a7b ?) - (#x5a7c ?ؽ) - (#x5a7d ?) - (#x5a7f ?B) - (#x5a83 ?) - (#x5a84 ?) - (#x5a8a ?) - (#x5a8b ?) - (#x5a8c ?) - (#x5a8e ?) - (#x5a8f ?) - (#x5a90 ?G) - (#x5a92 ?C) - (#x5a93 ?) - (#x5a94 ?ض) - (#x5a95 ?) - (#x5a97 ?) - (#x5a9a ?A) - (#x5a9b ?D) - (#x5a9c ?) - (#x5a9d ?) - (#x5a9e ?غ) - (#x5a9f ?ط) - (#x5aa2 ?ع) - (#x5aa5 ?ؾ) - (#x5aa6 ?ؼ) - (#x5aa7 ?E) - (#x5aa9 ?) - (#x5aac ?ؿ) - (#x5aae ?) - (#x5aaf ?ص) - (#x5ab0 ?) - (#x5ab1 ?) - (#x5ab2 ?B) - (#x5ab3 ?@) - (#x5ab4 ?C) - (#x5ab5 ?) - (#x5ab6 ?D) - (#x5ab7 ?@) - (#x5ab8 ?) - (#x5ab9 ?F) - (#x5aba ?) - (#x5abb ?) - (#x5abc ?) - (#x5abd ?) - (#x5abe ?) - (#x5abf ?) - (#x5ac0 ?A) - (#x5ac1 ?) - (#x5ac2 ?A) - (#x5ac4 ?) - (#x5ac6 ?) - (#x5ac7 ?) - (#x5ac8 ?) - (#x5ac9 ?) - (#x5aca ?B) - (#x5acb ?) - (#x5acc ?) - (#x5acd ?E) - (#x5ad5 ?n) - (#x5ad6 ?) - (#x5ad7 ?) - (#x5ad8 ?) - (#x5ad9 ?z) - (#x5ada ?p) - (#x5adb ?v) - (#x5adc ?k) - (#x5add ?y) - (#x5ade ?x) - (#x5adf ?|) - (#x5ae0 ?u) - (#x5ae1 ?) - (#x5ae2 ?t) - (#x5ae3 ?) - (#x5ae5 ?m) - (#x5ae6 ?) - (#x5ae8 ?{) - (#x5ae9 ?) - (#x5aea ?o) - (#x5aeb ?r) - (#x5aec ?w) - (#x5aed ?q) - (#x5aee ?l) - (#x5af3 ?s) - (#x5af4 ?U) - (#x5af5 ?a) - (#x5af6 ?X) - (#x5af7 ?W) - (#x5af8 ?Z) - (#x5af9 ?\) - (#x5afa ?) - (#x5afb ?_) - (#x5afd ?V) - (#x5aff ?T) - (#x5b01 ?]) - (#x5b02 ?[) - (#x5b03 ?Y) - (#x5b05 ?_) - (#x5b07 ?^) - (#x5b08 ?c) - (#x5b09 ?^) - (#x5b0b ?`) - (#x5b0c ?b) - (#x5b0f ?`) - (#x5b10 ?W) - (#x5b13 ?V) - (#x5b14 ?U) - (#x5b16 ?X) - (#x5b17 ?Q) - (#x5b19 ?R) - (#x5b1a ?Z) - (#x5b1b ?S) - (#x5b1d ?) - (#x5b1e ?\) - (#x5b20 ?[) - (#x5b21 ?T) - (#x5b23 ?) - (#x5b24 ?) - (#x5b25 ?) - (#x5b26 ?) - (#x5b27 ?) - (#x5b28 ?Y) - (#x5b2a ?) - (#x5b2c ?) - (#x5b2d ?) - (#x5b2e ?) - (#x5b2f ?) - (#x5b30 ?) - (#x5b32 ?) - (#x5b34 ?) - (#x5b38 ?T) - (#x5b3c ?) - (#x5b3d ?) - (#x5b3e ?) - (#x5b3f ?) - (#x5b40 ?\) - (#x5b43 ?]) - (#x5b45 ?C) - (#x5b47 ?) - (#x5b48 ?) - (#x5b4b ?) - (#x5b4c ?) - (#x5b4d ?) - (#x5b4e ?) - (#x5b50 ?l) - (#x5b51 ?m) - (#x5b53 ?n) - (#x5b54 ?) - (#x5b55 ?) - (#x5b56 ?) - (#x5b57 ?r) - (#x5b58 ?s) - (#x5b5a ?) - (#x5b5b ?) - (#x5b5c ?) - (#x5b5d ?) - (#x5b5f ?s) - (#x5b62 ?U) - (#x5b63 ?u) - (#x5b64 ?t) - (#x5b65 ?V) - (#x5b69 ?) - (#x5b6b ?]) - (#x5b6c ?e) - (#x5b6e ?) - (#x5b70 ?E) - (#x5b71 ?G) - (#x5b72 ?) - (#x5b73 ?F) - (#x5b75 ?) - (#x5b77 ?}) - (#x5b78 ?) - (#x5b7a ?) - (#x5b7b ?) - (#x5b7d ?^) - (#x5b7f ?p) - (#x5b81 ?r) - (#x5b83 ?) - (#x5b84 ?s) - (#x5b85 ?v) - (#x5b87 ?t) - (#x5b88 ?u) - (#x5b89 ?w) - (#x5b8b ?) - (#x5b8c ?) - (#x5b8e ?ʼ) - (#x5b8f ?) - (#x5b92 ?ʽ) - (#x5b93 ?W) - (#x5b95 ?X) - (#x5b97 ?v) - (#x5b98 ?x) - (#x5b99 ?z) - (#x5b9a ?w) - (#x5b9b ?{) - (#x5b9c ?y) - (#x5ba2 ?) - (#x5ba3 ?) - (#x5ba4 ?) - (#x5ba5 ?) - (#x5ba6 ?) - (#x5ba7 ?f) - (#x5ba8 ?w) - (#x5bac ?h) - (#x5bad ?g) - (#x5bae ?c) - (#x5bb0 ?_) - (#x5bb3 ?`) - (#x5bb4 ?b) - (#x5bb5 ?d) - (#x5bb6 ?a) - (#x5bb8 ?f) - (#x5bb9 ?e) - (#x5bbf ?J) - (#x5bc0 ?) - (#x5bc1 ?) - (#x5bc2 ?I) - (#x5bc4 ?H) - (#x5bc5 ?G) - (#x5bc6 ?K) - (#x5bc7 ?F) - (#x5bca ?) - (#x5bcb ?) - (#x5bcc ?I) - (#x5bcd ?) - (#x5bce ?) - (#x5bd0 ?K) - (#x5bd1 ?) - (#x5bd2 ?H) - (#x5bd3 ?J) - (#x5bd4 ?) - (#x5bd6 ?H) - (#x5bd8 ?I) - (#x5bd9 ?J) - (#x5bde ?) - (#x5bdf ?) - (#x5be0 ?~) - (#x5be1 ?) - (#x5be2 ?) - (#x5be3 ?) - (#x5be4 ?) - (#x5be5 ?) - (#x5be6 ?) - (#x5be7 ?) - (#x5be8 ?) - (#x5be9 ?f) - (#x5bea ?) - (#x5beb ?g) - (#x5bec ?e) - (#x5bee ?d) - (#x5bef ?]) - (#x5bf0 ?) - (#x5bf1 ?) - (#x5bf2 ?) - (#x5bf5 ?d) - (#x5bf6 ?_) - (#x5bf8 ?o) - (#x5bfa ?x) - (#x5c01 ?) - (#x5c03 ?i) - (#x5c04 ?g) - (#x5c07 ?N) - (#x5c08 ?M) - (#x5c09 ?L) - (#x5c0a ?L) - (#x5c0b ?M) - (#x5c0c ?) - (#x5c0d ?) - (#x5c0e ?) - (#x5c0f ?p) - (#x5c10 ?\) - (#x5c11 ?) - (#x5c12 ?t) - (#x5c15 ?) - (#x5c16 ?y) - (#x5c1a ?|) - (#x5c1f ?K) - (#x5c22 ?q) - (#x5c24 ?) - (#x5c25 ?) - (#x5c28 ?ʾ) - (#x5c2a ?ʿ) - (#x5c2c ?) - (#x5c30 ?) - (#x5c31 ?N) - (#x5c33 ?L) - (#x5c37 ?) - (#x5c38 ?r) - (#x5c39 ?) - (#x5c3a ?) - (#x5c3b ?u) - (#x5c3c ?) - (#x5c3e ?) - (#x5c3f ?) - (#x5c40 ?) - (#x5c41 ?) - (#x5c44 ?Y) - (#x5c45 ?~) - (#x5c46 ?) - (#x5c47 ?Z) - (#x5c48 ?}) - (#x5c4b ?) - (#x5c4c ?x) - (#x5c4d ?) - (#x5c4e ?) - (#x5c4f ?) - (#x5c50 ?j) - (#x5c51 ?h) - (#x5c54 ?k) - (#x5c55 ?i) - (#x5c56 ?j) - (#x5c58 ?^) - (#x5c59 ?) - (#x5c5c ?P) - (#x5c5d ?Q) - (#x5c60 ?O) - (#x5c62 ?) - (#x5c63 ?) - (#x5c64 ?h) - (#x5c65 ?i) - (#x5c67 ?a) - (#x5c68 ?) - (#x5c69 ?) - (#x5c6a ?) - (#x5c6c ?) - (#x5c6d ?) - (#x5c6e ?K) - (#x5c6f ?) - (#x5c71 ?s) - (#x5c73 ?w) - (#x5c74 ?v) - (#x5c79 ?z) - (#x5c7a ?) - (#x5c7b ?) - (#x5c7c ?) - (#x5c7e ?) - (#x5c86 ?) - (#x5c88 ?) - (#x5c89 ?) - (#x5c8a ?) - (#x5c8b ?) - (#x5c8c ?) - (#x5c8d ?) - (#x5c8f ?) - (#x5c90 ?) - (#x5c91 ?) - (#x5c92 ?) - (#x5c93 ?) - (#x5c94 ?) - (#x5c95 ?) - (#x5c9d ?h) - (#x5c9f ?b) - (#x5ca0 ?]) - (#x5ca1 ?) - (#x5ca2 ?e) - (#x5ca3 ?c) - (#x5ca4 ?\) - (#x5ca5 ?i) - (#x5ca6 ?l) - (#x5ca7 ?g) - (#x5ca8 ?`) - (#x5ca9 ?) - (#x5caa ?f) - (#x5cab ?) - (#x5cac ?a) - (#x5cad ?d) - (#x5cae ?[) - (#x5caf ?_) - (#x5cb0 ?k) - (#x5cb1 ?) - (#x5cb3 ?) - (#x5cb5 ?^) - (#x5cb6 ?j) - (#x5cb7 ?) - (#x5cb8 ?) - (#x5cc6 ?Ϋ) - (#x5cc7 ?Τ) - (#x5cc8 ?Ϊ) - (#x5cc9 ?Σ) - (#x5cca ?Υ) - (#x5ccb ?}) - (#x5ccc ?{) - (#x5cce ?ά) - (#x5ccf ?Ω) - (#x5cd0 ?y) - (#x5cd2 ?) - (#x5cd3 ?Χ) - (#x5cd4 ?Ψ) - (#x5cd6 ?Φ) - (#x5cd7 ?|) - (#x5cd8 ?z) - (#x5cd9 ?) - (#x5cda ?) - (#x5cdb ?~) - (#x5cde ?Ρ) - (#x5cdf ?έ) - (#x5ce8 ?o) - (#x5cea ?n) - (#x5cec ?l) - (#x5ced ?k) - (#x5cee ?n) - (#x5cf0 ?p) - (#x5cf1 ?o) - (#x5cf4 ?s) - (#x5cf6 ?q) - (#x5cf7 ?p) - (#x5cf8 ?ή) - (#x5cf9 ?r) - (#x5cfb ?m) - (#x5cfd ?l) - (#x5cff ?m) - (#x5d00 ?q) - (#x5d01 ?r) - (#x5d06 ?S) - (#x5d07 ?R) - (#x5d0b ?) - (#x5d0c ?) - (#x5d0d ?) - (#x5d0e ?T) - (#x5d0f ?) - (#x5d11 ?X) - (#x5d12 ?A) - (#x5d14 ?Z) - (#x5d16 ?V) - (#x5d17 ?^) - (#x5d19 ?[) - (#x5d1a ?) - (#x5d1b ?U) - (#x5d1d ?) - (#x5d1e ?) - (#x5d1f ?C) - (#x5d20 ?) - (#x5d22 ?W) - (#x5d23 ?B) - (#x5d24 ?\) - (#x5d25 ?) - (#x5d26 ?) - (#x5d27 ?]) - (#x5d28 ?) - (#x5d29 ?Y) - (#x5d2e ?D) - (#x5d30 ?@) - (#x5d31 ?) - (#x5d32 ?) - (#x5d33 ?) - (#x5d34 ?Q) - (#x5d35 ?) - (#x5d36 ?) - (#x5d37 ?) - (#x5d38 ?) - (#x5d39 ?) - (#x5d3a ?) - (#x5d3c ?) - (#x5d3d ?) - (#x5d3f ?) - (#x5d40 ?) - (#x5d41 ?) - (#x5d42 ?) - (#x5d43 ?) - (#x5d45 ?) - (#x5d47 ?R) - (#x5d49 ?) - (#x5d4a ?O) - (#x5d4b ?) - (#x5d4c ?O) - (#x5d4e ?) - (#x5d50 ?P) - (#x5d51 ?) - (#x5d52 ?) - (#x5d55 ?) - (#x5d59 ?) - (#x5d5e ?S) - (#x5d62 ?V) - (#x5d63 ?N) - (#x5d65 ?P) - (#x5d67 ?U) - (#x5d68 ?T) - (#x5d69 ?C) - (#x5d6b ?) - (#x5d6c ?R) - (#x5d6f ?D) - (#x5d71 ?M) - (#x5d72 ?Q) - (#x5d77 ?) - (#x5d79 ?) - (#x5d7a ?) - (#x5d7c ?) - (#x5d7d ?) - (#x5d7e ?) - (#x5d7f ?) - (#x5d80 ?) - (#x5d81 ?) - (#x5d82 ?) - (#x5d84 ?) - (#x5d86 ?) - (#x5d87 ?) - (#x5d88 ?) - (#x5d89 ?) - (#x5d8a ?) - (#x5d8d ?) - (#x5d92 ?e) - (#x5d93 ?g) - (#x5d94 ?k) - (#x5d95 ?h) - (#x5d97 ?c) - (#x5d99 ?b) - (#x5d9a ?l) - (#x5d9c ?j) - (#x5d9d ?j) - (#x5d9e ?m) - (#x5d9f ?d) - (#x5da0 ?i) - (#x5da1 ?k) - (#x5da2 ?f) - (#x5da7 ?a) - (#x5da8 ?f) - (#x5da9 ?`) - (#x5daa ?e) - (#x5dac ?^) - (#x5dad ?h) - (#x5dae ?d) - (#x5daf ?i) - (#x5db0 ?c) - (#x5db1 ?_) - (#x5db2 ?g) - (#x5db4 ?j) - (#x5db5 ?b) - (#x5db7 ?) - (#x5db8 ?) - (#x5dba ?) - (#x5dbc ?) - (#x5dbd ?) - (#x5dc0 ?) - (#x5dc2 ?r) - (#x5dc3 ?) - (#x5dc6 ?D) - (#x5dc7 ?E) - (#x5dc9 ?`) - (#x5dcb ?) - (#x5dcd ?) - (#x5dcf ?) - (#x5dd1 ?) - (#x5dd2 ?r) - (#x5dd4 ?q) - (#x5dd5 ?) - (#x5dd6 ?) - (#x5dd8 ?) - (#x5ddd ?t) - (#x5dde ?{) - (#x5ddf ?) - (#x5de0 ?) - (#x5de1 ?) - (#x5de2 ?_) - (#x5de5 ?u) - (#x5de6 ?) - (#x5de7 ?) - (#x5de8 ?) - (#x5deb ?) - (#x5dee ?t) - (#x5df0 ?W) - (#x5df1 ?v) - (#x5df2 ?w) - (#x5df3 ?x) - (#x5df4 ?) - (#x5df7 ?) - (#x5df9 ?ί) - (#x5dfd ?S) - (#x5dfe ?y) - (#x5dff ?]) - (#x5e02 ?) - (#x5e03 ?) - (#x5e04 ?x) - (#x5e06 ?|) - (#x5e0a ?) - (#x5e0c ?) - (#x5e0e ?) - (#x5e11 ?) - (#x5e14 ?n) - (#x5e15 ?) - (#x5e16 ?) - (#x5e17 ?m) - (#x5e18 ?) - (#x5e19 ?o) - (#x5e1a ?) - (#x5e1b ?) - (#x5e1d ?) - (#x5e1f ?) - (#x5e20 ?γ) - (#x5e21 ?ΰ) - (#x5e22 ?α) - (#x5e23 ?β) - (#x5e24 ?δ) - (#x5e25 ?) - (#x5e28 ?t) - (#x5e29 ?s) - (#x5e2b ?v) - (#x5e2d ?u) - (#x5e33 ?b) - (#x5e34 ?F) - (#x5e36 ?a) - (#x5e37 ?c) - (#x5e38 ?`) - (#x5e3d ?U) - (#x5e3e ?E) - (#x5e40 ?V) - (#x5e41 ?) - (#x5e43 ?W) - (#x5e44 ?) - (#x5e45 ?T) - (#x5e4a ?Z) - (#x5e4b ?\) - (#x5e4c ?E) - (#x5e4d ?[) - (#x5e4e ?Y) - (#x5e4f ?X) - (#x5e53 ?) - (#x5e54 ?) - (#x5e55 ?) - (#x5e57 ?) - (#x5e58 ?) - (#x5e59 ?) - (#x5e5b ?) - (#x5e5c ?q) - (#x5e5d ?o) - (#x5e5f ?m) - (#x5e60 ?p) - (#x5e61 ?n) - (#x5e62 ?l) - (#x5e63 ?) - (#x5e66 ?m) - (#x5e67 ?k) - (#x5e68 ?l) - (#x5e69 ?n) - (#x5e6a ?) - (#x5e6b ?) - (#x5e6c ?) - (#x5e6d ?) - (#x5e6e ?) - (#x5e6f ?n) - (#x5e70 ?) - (#x5e72 ?z) - (#x5e73 ?) - (#x5e74 ?~) - (#x5e75 ?) - (#x5e76 ?}) - (#x5e78 ?) - (#x5e79 ?F) - (#x5e7b ?) - (#x5e7c ?) - (#x5e7d ?) - (#x5e7e ?X) - (#x5e80 ?y) - (#x5e82 ?z) - (#x5e84 ?) - (#x5e87 ?) - (#x5e88 ?) - (#x5e89 ?) - (#x5e8a ?) - (#x5e8b ?) - (#x5e8c ?) - (#x5e8d ?) - (#x5e8f ?) - (#x5e95 ?) - (#x5e96 ?) - (#x5e97 ?) - (#x5e9a ?) - (#x5e9b ?θ) - (#x5e9c ?) - (#x5ea0 ?) - (#x5ea2 ?η) - (#x5ea3 ?ι) - (#x5ea4 ?ζ) - (#x5ea5 ?κ) - (#x5ea6 ?) - (#x5ea7 ?y) - (#x5ea8 ?u) - (#x5eaa ?w) - (#x5eab ?w) - (#x5eac ?x) - (#x5ead ?x) - (#x5eae ?v) - (#x5eb0 ?ε) - (#x5eb1 ?G) - (#x5eb2 ?J) - (#x5eb3 ?K) - (#x5eb4 ?H) - (#x5eb5 ?g) - (#x5eb6 ?f) - (#x5eb7 ?d) - (#x5eb8 ?e) - (#x5eb9 ?I) - (#x5ebe ?h) - (#x5ec1 ?Z) - (#x5ec2 ?[) - (#x5ec4 ?\) - (#x5ec5 ?]) - (#x5ec6 ?_) - (#x5ec7 ?a) - (#x5ec8 ?H) - (#x5ec9 ?G) - (#x5eca ?Y) - (#x5ecb ?`) - (#x5ecc ?^) - (#x5ece ?) - (#x5ed1 ?) - (#x5ed2 ?) - (#x5ed3 ?) - (#x5ed4 ?) - (#x5ed5 ?) - (#x5ed6 ?) - (#x5ed7 ?) - (#x5ed8 ?) - (#x5ed9 ?) - (#x5eda ?p) - (#x5edb ?s) - (#x5edc ?) - (#x5edd ?r) - (#x5ede ?t) - (#x5edf ?q) - (#x5ee0 ?t) - (#x5ee1 ?u) - (#x5ee2 ?o) - (#x5ee3 ?s) - (#x5ee5 ?s) - (#x5ee6 ?q) - (#x5ee7 ?p) - (#x5ee8 ?r) - (#x5ee9 ?o) - (#x5eec ?f) - (#x5eee ?F) - (#x5eef ?G) - (#x5ef1 ?) - (#x5ef2 ?) - (#x5ef3 ?U) - (#x5ef6 ?) - (#x5ef7 ?) - (#x5efa ?) - (#x5efe ?{) - (#x5eff ?) - (#x5f01 ?) - (#x5f02 ?) - (#x5f04 ?) - (#x5f05 ?) - (#x5f07 ?λ) - (#x5f08 ?) - (#x5f0a ?) - (#x5f0b ?|) - (#x5f0f ?) - (#x5f12 ?I) - (#x5f13 ?}) - (#x5f14 ?) - (#x5f15 ?) - (#x5f17 ?) - (#x5f18 ?) - (#x5f1a ?) - (#x5f1b ?) - (#x5f1d ?) - (#x5f1f ?) - (#x5f22 ?q) - (#x5f23 ?r) - (#x5f24 ?s) - (#x5f26 ?) - (#x5f27 ?) - (#x5f28 ?p) - (#x5f29 ?) - (#x5f2d ?) - (#x5f2e ?μ) - (#x5f30 ?z) - (#x5f31 ?z) - (#x5f33 ?y) - (#x5f35 ?i) - (#x5f36 ?L) - (#x5f37 ?j) - (#x5f38 ?M) - (#x5f3c ?]) - (#x5f40 ?b) - (#x5f43 ?) - (#x5f44 ?) - (#x5f46 ?) - (#x5f48 ?u) - (#x5f49 ?v) - (#x5f4a ?) - (#x5f4b ?t) - (#x5f4c ?) - (#x5f4e ?s) - (#x5f4f ?) - (#x5f54 ?t) - (#x5f56 ?ν) - (#x5f57 ?k) - (#x5f58 ?) - (#x5f59 ?J) - (#x5f5d ?U) - (#x5f62 ?) - (#x5f64 ?) - (#x5f65 ?) - (#x5f67 ?{) - (#x5f69 ?m) - (#x5f6a ?C) - (#x5f6b ?n) - (#x5f6c ?l) - (#x5f6d ?^) - (#x5f6f ?) - (#x5f70 ?) - (#x5f71 ?v) - (#x5f73 ?L) - (#x5f74 ?) - (#x5f76 ?) - (#x5f77 ?) - (#x5f78 ?) - (#x5f79 ?) - (#x5f7c ?) - (#x5f7d ?w) - (#x5f7e ?v) - (#x5f7f ?) - (#x5f80 ?) - (#x5f81 ?) - (#x5f82 ?u) - (#x5f85 ?) - (#x5f86 ?ξ) - (#x5f87 ?) - (#x5f88 ?) - (#x5f89 ?) - (#x5f8a ?) - (#x5f8b ?) - (#x5f8c ?) - (#x5f90 ?}) - (#x5f91 ?|) - (#x5f92 ?{) - (#x5f96 ?O) - (#x5f97 ?o) - (#x5f98 ?r) - (#x5f99 ?p) - (#x5f9b ?N) - (#x5f9c ?u) - (#x5f9e ?q) - (#x5f9f ?P) - (#x5fa0 ?t) - (#x5fa1 ?s) - (#x5fa5 ?) - (#x5fa6 ?) - (#x5fa8 ?a) - (#x5fa9 ?_) - (#x5faa ?`) - (#x5fab ?) - (#x5fac ?K) - (#x5fad ?d) - (#x5fae ?L) - (#x5faf ?c) - (#x5fb2 ?w) - (#x5fb5 ?x) - (#x5fb6 ?) - (#x5fb7 ?w) - (#x5fb9 ?) - (#x5fbb ?) - (#x5fbc ?u) - (#x5fbd ?) - (#x5fbe ?) - (#x5fbf ?@) - (#x5fc0 ?H) - (#x5fc1 ?I) - (#x5fc3 ?) - (#x5fc5 ?) - (#x5fc9 ?{) - (#x5fcc ?) - (#x5fcd ?) - (#x5fcf ?) - (#x5fd0 ?) - (#x5fd1 ?) - (#x5fd2 ?) - (#x5fd4 ?) - (#x5fd5 ?) - (#x5fd6 ?) - (#x5fd7 ?) - (#x5fd8 ?) - (#x5fd9 ?) - (#x5fdd ?) - (#x5fde ?x) - (#x5fe0 ?) - (#x5fe1 ?) - (#x5fe3 ?) - (#x5fe4 ?) - (#x5fe5 ?y) - (#x5fe8 ?) - (#x5fea ?) - (#x5feb ?) - (#x5fed ?) - (#x5fee ?) - (#x5fef ?) - (#x5ff1 ?) - (#x5ff3 ?) - (#x5ff4 ?) - (#x5ff5 ?) - (#x5ff7 ?) - (#x5ff8 ?) - (#x5ffa ?) - (#x5ffb ?) - (#x5ffd ?) - (#x5fff ?) - (#x6000 ?) - (#x6009 ?̯) - (#x600a ?̢) - (#x600b ?~) - (#x600c ?̮) - (#x600d ?̩) - (#x600e ?) - (#x600f ?) - (#x6010 ?̪) - (#x6011 ?̭) - (#x6012 ?) - (#x6013 ?̬) - (#x6014 ?) - (#x6015 ?) - (#x6016 ?) - (#x6017 ?̣) - (#x6019 ?|) - (#x601a ?̥) - (#x601b ?) - (#x601c ?̰) - (#x601d ?) - (#x601e ?̦) - (#x6020 ?) - (#x6021 ?) - (#x6022 ?̨) - (#x6024 ?) - (#x6025 ?) - (#x6026 ?{) - (#x6027 ?) - (#x6028 ?) - (#x6029 ?) - (#x602a ?) - (#x602b ?) - (#x602c ?̧) - (#x602d ?z) - (#x602e ?̫) - (#x602f ?) - (#x6032 ?}) - (#x6033 ?̤) - (#x6034 ?̡) - (#x6035 ?) - (#x6037 ?ο) - (#x6039 ?) - (#x6040 ?) - (#x6041 ?ѡ) - (#x6042 ?) - (#x6043 ?) - (#x6044 ?) - (#x6045 ?) - (#x6046 ?) - (#x6047 ?) - (#x6049 ?) - (#x604c ?) - (#x604d ?) - (#x6050 ?) - (#x6052 ?) - (#x6053 ?) - (#x6054 ?) - (#x6055 ?) - (#x6058 ?) - (#x6059 ?~) - (#x605a ?}) - (#x605b ?) - (#x605d ?|) - (#x605e ?) - (#x605f ?) - (#x6062 ?) - (#x6063 ?) - (#x6064 ?) - (#x6065 ?) - (#x6066 ?) - (#x6067 ?~) - (#x6068 ?) - (#x6069 ?) - (#x606a ?) - (#x606b ?) - (#x606c ?) - (#x606d ?) - (#x606e ?) - (#x606f ?) - (#x6070 ?) - (#x6072 ?) - (#x607f ?v) - (#x6080 ?Ѥ) - (#x6081 ?Ѧ) - (#x6083 ?Ѩ) - (#x6084 ?) - (#x6085 ?) - (#x6086 ?S) - (#x6087 ?Ѭ) - (#x6088 ?ѣ) - (#x6089 ?x) - (#x608a ?Q) - (#x608c ?) - (#x608d ?) - (#x608e ?Ѯ) - (#x6090 ?R) - (#x6092 ?ѥ) - (#x6094 ?) - (#x6095 ?ѩ) - (#x6096 ?) - (#x6097 ?ѫ) - (#x609a ?) - (#x609b ?Ѫ) - (#x609c ?ѭ) - (#x609d ?ѧ) - (#x609f ?) - (#x60a0 ?y) - (#x60a2 ?Ѣ) - (#x60a3 ?w) - (#x60a8 ?z) - (#x60b0 ?U) - (#x60b1 ?^) - (#x60b2 ?d) - (#x60b4 ?|) - (#x60b5 ?) - (#x60b6 ?e) - (#x60b7 ?`) - (#x60b8 ?) - (#x60b9 ?) - (#x60ba ?V) - (#x60bb ?) - (#x60bc ?) - (#x60bd ?~) - (#x60be ?T) - (#x60bf ?b) - (#x60c0 ?e) - (#x60c1 ?I) - (#x60c3 ?c) - (#x60c4 ?) - (#x60c5 ?) - (#x60c6 ?) - (#x60c7 ?) - (#x60c8 ?]) - (#x60c9 ?) - (#x60ca ?a) - (#x60cb ?{) - (#x60cc ?) - (#x60cd ?d) - (#x60ce ?) - (#x60cf ?Y) - (#x60d1 ?b) - (#x60d3 ?W) - (#x60d4 ?X) - (#x60d5 ?) - (#x60d8 ?) - (#x60d9 ?[) - (#x60da ?) - (#x60db ?_) - (#x60dc ?) - (#x60dd ?\) - (#x60df ?) - (#x60e0 ?f) - (#x60e1 ?c) - (#x60e2 ?) - (#x60e4 ?Z) - (#x60e6 ?}) - (#x60f0 ?k) - (#x60f1 ?o) - (#x60f2 ?@) - (#x60f3 ?Q) - (#x60f4 ?m) - (#x60f5 ?D) - (#x60f6 ?q) - (#x60f7 ?e) - (#x60f8 ?F) - (#x60f9 ?S) - (#x60fa ?i) - (#x60fb ?l) - (#x60fc ?G) - (#x60fe ?H) - (#x60ff ?N) - (#x6100 ?s) - (#x6101 ?T) - (#x6103 ?J) - (#x6104 ?O) - (#x6105 ?C) - (#x6106 ?^) - (#x6108 ?U) - (#x6109 ?r) - (#x610a ?A) - (#x610b ?P) - (#x610d ?]) - (#x610e ?p) - (#x610f ?N) - (#x6110 ?M) - (#x6112 ?t) - (#x6113 ?E) - (#x6114 ?) - (#x6115 ?j) - (#x6116 ?B) - (#x6118 ?K) - (#x611a ?M) - (#x611b ?R) - (#x611c ?g) - (#x611d ?L) - (#x611f ?P) - (#x6123 ?h) - (#x6127 ?\) - (#x6128 ?) - (#x6129 ?p) - (#x612b ?h) - (#x612c ?) - (#x612e ?l) - (#x612f ?n) - (#x6132 ?k) - (#x6134 ?[) - (#x6136 ?j) - (#x6137 ?_) - (#x613b ?) - (#x613e ?Z) - (#x613f ?@) - (#x6140 ?q) - (#x6141 ?) - (#x6144 ?X) - (#x6145 ?i) - (#x6146 ?m) - (#x6147 ?) - (#x6148 ?O) - (#x6149 ?f) - (#x614a ?g) - (#x614b ?A) - (#x614c ?W) - (#x614d ?Y) - (#x614e ?V) - (#x614f ?o) - (#x6152 ?) - (#x6153 ?) - (#x6154 ?) - (#x6155 ?}) - (#x6156 ?) - (#x6158 ?G) - (#x615a ?F) - (#x615b ?) - (#x615d ?|) - (#x615e ?) - (#x615f ?E) - (#x6161 ?) - (#x6162 ?C) - (#x6163 ?D) - (#x6165 ?) - (#x6166 ?) - (#x6167 ?z) - (#x6168 ?n) - (#x616a ?) - (#x616b ?) - (#x616c ?) - (#x616e ?{) - (#x6170 ?) - (#x6171 ?) - (#x6172 ?) - (#x6173 ?) - (#x6174 ?) - (#x6175 ?H) - (#x6176 ?y) - (#x6177 ?B) - (#x6179 ?z) - (#x617a ?) - (#x617c ?) - (#x617e ?) - (#x6180 ?) - (#x6182 ?~) - (#x6183 ?y) - (#x6189 ?~) - (#x618a ?) - (#x618b ?x) - (#x618c ?) - (#x618d ?) - (#x618e ?) - (#x6190 ?) - (#x6191 ?) - (#x6192 ?) - (#x6193 ?) - (#x6194 ?) - (#x6196 ?x) - (#x619a ?) - (#x619b ?) - (#x619d ?v) - (#x619f ?) - (#x61a1 ?) - (#x61a2 ?}) - (#x61a4 ?) - (#x61a7 ?) - (#x61a8 ?w) - (#x61a9 ?) - (#x61aa ?) - (#x61ab ?) - (#x61ac ?) - (#x61ad ?) - (#x61ae ?) - (#x61af ?) - (#x61b0 ?|) - (#x61b1 ?{) - (#x61b2 ?) - (#x61b3 ?) - (#x61b4 ?z) - (#x61b5 ?) - (#x61b6 ?) - (#x61b8 ?) - (#x61ba ?~) - (#x61bc ?) - (#x61be ?) - (#x61bf ?) - (#x61c1 ?|) - (#x61c2 ?) - (#x61c3 ?) - (#x61c5 ?y) - (#x61c6 ?{) - (#x61c7 ?) - (#x61c8 ?) - (#x61c9 ?) - (#x61ca ?) - (#x61cb ?) - (#x61cc ?}) - (#x61cd ?) - (#x61d6 ?) - (#x61d8 ?) - (#x61de ?) - (#x61df ?) - (#x61e0 ?) - (#x61e3 ?V) - (#x61e4 ?) - (#x61e5 ?) - (#x61e6 ?) - (#x61e7 ?) - (#x61e8 ?) - (#x61e9 ?) - (#x61ea ?) - (#x61eb ?) - (#x61ed ?) - (#x61ee ?) - (#x61f0 ?) - (#x61f1 ?) - (#x61f2 ?g) - (#x61f5 ?j) - (#x61f6 ?i) - (#x61f7 ?h) - (#x61f8 ?a) - (#x61f9 ?J) - (#x61fa ?b) - (#x61fb ?A) - (#x61fc ?) - (#x61fd ?) - (#x61fe ?) - (#x61ff ?t) - (#x6200 ?) - (#x6201 ?) - (#x6203 ?) - (#x6204 ?) - (#x6207 ?) - (#x6208 ?) - (#x6209 ?|) - (#x620a ?) - (#x620c ?) - (#x620d ?) - (#x620e ?) - (#x6210 ?) - (#x6211 ?) - (#x6212 ?) - (#x6214 ?̱) - (#x6215 ?) - (#x6216 ?) - (#x6219 ?ѯ) - (#x621a ?) - (#x621b ?) - (#x621f ?u) - (#x6220 ?r) - (#x6221 ?`) - (#x6222 ?a) - (#x6223 ?t) - (#x6224 ?v) - (#x6225 ?u) - (#x6227 ?) - (#x6229 ?) - (#x622a ?I) - (#x622b ?) - (#x622d ?) - (#x622e ?) - (#x6230 ?) - (#x6232 ?) - (#x6233 ?W) - (#x6234 ?) - (#x6236 ?) - (#x623a ?) - (#x623d ?̲) - (#x623e ?) - (#x623f ?) - (#x6240 ?) - (#x6241 ?) - (#x6242 ?) - (#x6243 ?) - (#x6246 ?Ѱ) - (#x6247 ?) - (#x6248 ?) - (#x6249 ?v) - (#x624a ?Q) - (#x624b ?) - (#x624d ?~) - (#x624e ?) - (#x6250 ?}) - (#x6251 ?) - (#x6252 ?) - (#x6253 ?) - (#x6254 ?) - (#x6258 ?) - (#x6259 ?) - (#x625a ?) - (#x625b ?) - (#x625c ?) - (#x625e ?) - (#x6260 ?) - (#x6261 ?) - (#x6262 ?) - (#x6263 ?) - (#x6264 ?) - (#x6265 ?) - (#x6266 ?) - (#x626d ?) - (#x626e ?) - (#x626f ?) - (#x6270 ?) - (#x6271 ?) - (#x6272 ?) - (#x6273 ?) - (#x6274 ?) - (#x6276 ?) - (#x6277 ?) - (#x6279 ?) - (#x627a ?) - (#x627b ?) - (#x627c ?) - (#x627d ?) - (#x627e ?) - (#x627f ?) - (#x6280 ?) - (#x6281 ?) - (#x6283 ?) - (#x6284 ?) - (#x6286 ?) - (#x6287 ?) - (#x6288 ?) - (#x6289 ?) - (#x628a ?) - (#x628c ?) - (#x628e ?) - (#x628f ?) - (#x6291 ?) - (#x6292 ?) - (#x6293 ?) - (#x6294 ?) - (#x6295 ?) - (#x6296 ?) - (#x6297 ?) - (#x6298 ?) - (#x62a8 ?) - (#x62a9 ?̾) - (#x62aa ?̷) - (#x62ab ?) - (#x62ac ?) - (#x62ad ?̳) - (#x62ae ?̺) - (#x62af ?̼) - (#x62b0 ?̿) - (#x62b1 ?) - (#x62b3 ?̻) - (#x62b4 ?̴) - (#x62b5 ?) - (#x62b6 ?̸) - (#x62b8 ?) - (#x62b9 ?) - (#x62bb ?̽) - (#x62bc ?) - (#x62bd ?) - (#x62be ?̶) - (#x62bf ?) - (#x62c2 ?) - (#x62c4 ?) - (#x62c6 ?) - (#x62c7 ?) - (#x62c8 ?) - (#x62c9 ?) - (#x62ca ?̹) - (#x62cb ?) - (#x62cc ?) - (#x62cd ?) - (#x62ce ?) - (#x62cf ?) - (#x62d0 ?) - (#x62d1 ?̵) - (#x62d2 ?) - (#x62d3 ?) - (#x62d4 ?) - (#x62d6 ?) - (#x62d7 ?) - (#x62d8 ?) - (#x62d9 ?) - (#x62da ?) - (#x62db ?) - (#x62dc ?) - (#x62eb ?) - (#x62ec ?A) - (#x62ed ?) - (#x62ee ?) - (#x62ef ?@) - (#x62f0 ?) - (#x62f1 ?) - (#x62f2 ?ѱ) - (#x62f3 ?) - (#x62f4 ?C) - (#x62f5 ?) - (#x62f6 ?) - (#x62f7 ?) - (#x62f8 ?) - (#x62f9 ?) - (#x62fa ?) - (#x62fb ?) - (#x62fc ?) - (#x62fd ?) - (#x62fe ?B) - (#x62ff ?) - (#x6300 ?) - (#x6301 ?) - (#x6302 ?E) - (#x6303 ?) - (#x6307 ?) - (#x6308 ?) - (#x6309 ?) - (#x630b ?) - (#x630c ?) - (#x630d ?) - (#x630e ?) - (#x630f ?) - (#x6310 ?Ѳ) - (#x6311 ?D) - (#x6313 ?) - (#x6314 ?) - (#x6315 ?) - (#x6316 ?) - (#x6328 ?) - (#x6329 ?Ѿ) - (#x632a ?) - (#x632b ?) - (#x632c ?Ѵ) - (#x632d ?) - (#x632f ?) - (#x6332 ?f) - (#x6333 ?) - (#x6334 ?) - (#x6336 ?ѷ) - (#x6338 ?) - (#x6339 ?Ѻ) - (#x633a ?) - (#x633b ?}) - (#x633c ?ѽ) - (#x633d ?) - (#x633e ?) - (#x6340 ?) - (#x6341 ?ѿ) - (#x6342 ?) - (#x6343 ?Ѹ) - (#x6344 ?ѵ) - (#x6345 ?Ѷ) - (#x6346 ?) - (#x6347 ?) - (#x6348 ?) - (#x6349 ?) - (#x634a ?Ѽ) - (#x634b ?ѻ) - (#x634c ?) - (#x634d ?) - (#x634e ?) - (#x634f ?) - (#x6350 ?) - (#x6351 ?) - (#x6354 ?) - (#x6355 ?) - (#x6356 ?ѳ) - (#x6357 ?) - (#x6358 ?) - (#x6359 ?) - (#x635a ?) - (#x6365 ?g) - (#x6367 ?) - (#x6368 ?) - (#x6369 ?) - (#x636b ?) - (#x636d ?y) - (#x636e ?u) - (#x636f ?r) - (#x6370 ?զ) - (#x6371 ?) - (#x6372 ?) - (#x6375 ?w) - (#x6376 ?) - (#x6377 ?) - (#x6378 ?ա) - (#x637a ?) - (#x637b ?) - (#x637c ?{) - (#x637d ?j) - (#x6380 ?) - (#x6381 ?գ) - (#x6382 ?i) - (#x6383 ?) - (#x6384 ?) - (#x6385 ?բ) - (#x6387 ?s) - (#x6388 ?) - (#x6389 ?) - (#x638a ?h) - (#x638c ?x) - (#x638d ?ե) - (#x638e ?q) - (#x638f ?) - (#x6390 ?t) - (#x6391 ?դ) - (#x6392 ?) - (#x6394 ?R) - (#x6396 ?) - (#x6397 ?o) - (#x6398 ?) - (#x6399 ?) - (#x639b ?) - (#x639c ?x) - (#x639d ?n) - (#x639e ?l) - (#x639f ?~) - (#x63a0 ?) - (#x63a1 ?) - (#x63a2 ?) - (#x63a3 ?w) - (#x63a4 ?|) - (#x63a5 ?) - (#x63a7 ?) - (#x63a8 ?) - (#x63a9 ?) - (#x63aa ?) - (#x63ab ?p) - (#x63ac ?) - (#x63ad ?m) - (#x63ae ?z) - (#x63af ?v) - (#x63b0 ?T) - (#x63b1 ?S) - (#x63bd ?k) - (#x63be ?d) - (#x63c0 ?z) - (#x63c2 ?j) - (#x63c3 ?Y) - (#x63c4 ?g) - (#x63c5 ?w) - (#x63c6 ?}) - (#x63c7 ?k) - (#x63c8 ?n) - (#x63c9 ?|) - (#x63ca ?\) - (#x63cb ?m) - (#x63cc ?l) - (#x63cd ?~) - (#x63ce ?U) - (#x63cf ?y) - (#x63d0 ?) - (#x63d2 ?) - (#x63d3 ?i) - (#x63d5 ?_) - (#x63d6 ?) - (#x63d7 ?p) - (#x63d8 ?h) - (#x63d9 ?q) - (#x63da ?) - (#x63db ?) - (#x63dc ?f) - (#x63dd ?e) - (#x63df ?c) - (#x63e0 ?]) - (#x63e1 ?) - (#x63e3 ?) - (#x63e4 ?ѹ) - (#x63e5 ?V) - (#x63e7 ?ݷ) - (#x63e8 ?W) - (#x63e9 ?{) - (#x63ea ?) - (#x63eb ?y) - (#x63ed ?) - (#x63ee ?) - (#x63ef ?X) - (#x63f0 ?o) - (#x63f1 ?x) - (#x63f2 ?`) - (#x63f3 ?[) - (#x63f4 ?) - (#x63f5 ?a) - (#x63f6 ?^) - (#x63f9 ?) - (#x6406 ?p) - (#x6409 ?|) - (#x640a ?ݱ) - (#x640b ?ݶ) - (#x640c ?ݪ) - (#x640d ?l) - (#x640e ?ݻ) - (#x640f ?i) - (#x6410 ?z) - (#x6412 ?{) - (#x6413 ?b) - (#x6414 ?k) - (#x6415 ?ݤ) - (#x6416 ?n) - (#x6417 ?o) - (#x6418 ?ݥ) - (#x641a ?ݲ) - (#x641b ?ݸ) - (#x641c ?j) - (#x641e ?d) - (#x641f ?ݣ) - (#x6420 ?}) - (#x6421 ?ݺ) - (#x6422 ?ݨ) - (#x6423 ?ݩ) - (#x6424 ?~) - (#x6425 ?ݴ) - (#x6426 ?ݫ) - (#x6427 ?ݵ) - (#x6428 ?ݭ) - (#x642a ?e) - (#x642b ?) - (#x642c ?h) - (#x642d ?f) - (#x642e ?ݹ) - (#x642f ?ݰ) - (#x6430 ?ݬ) - (#x6433 ?ݡ) - (#x6434 ?S) - (#x6435 ?ݯ) - (#x6436 ?m) - (#x6437 ?ݧ) - (#x6439 ?ݦ) - (#x643d ?g) - (#x643e ?c) - (#x643f ?) - (#x6440 ?ݳ) - (#x6441 ?ݮ) - (#x6443 ?ݢ) - (#x644b ?) - (#x644d ?) - (#x644e ?) - (#x6450 ?) - (#x6451 ?Q) - (#x6452 ?) - (#x6453 ?) - (#x6454 ?L) - (#x6458 ?K) - (#x6459 ?) - (#x645b ?) - (#x645c ?) - (#x645d ?) - (#x645e ?) - (#x645f ?O) - (#x6460 ?) - (#x6461 ?b) - (#x6465 ?) - (#x6466 ?) - (#x6467 ?R) - (#x6468 ?) - (#x6469 ?) - (#x646b ?) - (#x646c ?) - (#x646d ?T) - (#x646e ?) - (#x646f ?) - (#x6470 ?) - (#x6472 ?) - (#x6473 ?) - (#x6474 ?) - (#x6475 ?) - (#x6476 ?) - (#x6477 ?) - (#x6478 ?N) - (#x6479 ?) - (#x647a ?P) - (#x647b ?U) - (#x647d ?) - (#x647f ?) - (#x6482 ?) - (#x6485 ?) - (#x6487 ?J) - (#x6488 ?) - (#x6489 ?) - (#x648a ?) - (#x648b ?) - (#x648c ?) - (#x648f ?) - (#x6490 ?) - (#x6492 ?) - (#x6493 ?) - (#x6495 ?) - (#x6496 ?) - (#x6497 ?) - (#x6498 ?) - (#x6499 ?) - (#x649a ?) - (#x649c ?) - (#x649d ?Z) - (#x649e ?) - (#x649f ?) - (#x64a0 ?) - (#x64a2 ?) - (#x64a3 ?) - (#x64a4 ?M) - (#x64a5 ?) - (#x64a6 ?) - (#x64a9 ?) - (#x64ab ?) - (#x64ac ?) - (#x64ad ?) - (#x64ae ?) - (#x64b0 ?) - (#x64b1 ?) - (#x64b2 ?) - (#x64b3 ?) - (#x64bb ?) - (#x64bc ?) - (#x64bd ?) - (#x64be ?) - (#x64bf ?) - (#x64c1 ?) - (#x64c2 ?) - (#x64c3 ?) - (#x64c4 ?) - (#x64c5 ?) - (#x64c7 ?) - (#x64c9 ?) - (#x64ca ?) - (#x64cb ?) - (#x64cd ?) - (#x64ce ?) - (#x64cf ?) - (#x64d0 ?) - (#x64d2 ?) - (#x64d4 ?) - (#x64d6 ?) - (#x64d7 ?) - (#x64d8 ?) - (#x64d9 ?) - (#x64da ?) - (#x64db ?) - (#x64e0 ?) - (#x64e2 ?) - (#x64e3 ?) - (#x64e4 ?) - (#x64e6 ?) - (#x64e8 ?) - (#x64e9 ?) - (#x64eb ?) - (#x64ec ?) - (#x64ed ?) - (#x64ef ?) - (#x64f0 ?) - (#x64f1 ?) - (#x64f2 ?Y) - (#x64f3 ?) - (#x64f4 ?X) - (#x64f7 ?^) - (#x64f8 ?) - (#x64fa ?\) - (#x64fb ?]) - (#x64fc ?) - (#x64fd ?) - (#x64fe ?Z) - (#x64ff ?) - (#x6500 ?k) - (#x6501 ?) - (#x6503 ?) - (#x6504 ?) - (#x6506 ?[) - (#x6507 ?B) - (#x6509 ?E) - (#x650c ?F) - (#x650d ?D) - (#x650e ?G) - (#x650f ?l) - (#x6510 ?C) - (#x6513 ?N) - (#x6514 ?d) - (#x6515 ?M) - (#x6516 ?L) - (#x6517 ?K) - (#x6518 ?c) - (#x6519 ?e) - (#x651b ?) - (#x651c ?) - (#x651d ?) - (#x6520 ?) - (#x6521 ?) - (#x6522 ?) - (#x6523 ?) - (#x6524 ?u) - (#x6525 ?) - (#x6526 ?) - (#x6529 ?) - (#x652a ?) - (#x652b ?) - (#x652c ?) - (#x652d ?) - (#x652e ?) - (#x652f ?) - (#x6532 ?r) - (#x6533 ?) - (#x6536 ?) - (#x6537 ?) - (#x6538 ?) - (#x6539 ?) - (#x653b ?) - (#x653d ?) - (#x653e ?) - (#x653f ?F) - (#x6541 ?) - (#x6543 ?) - (#x6545 ?G) - (#x6546 ?) - (#x6548 ?) - (#x6549 ?) - (#x654a ?) - (#x654f ?) - (#x6551 ?) - (#x6553 ?է) - (#x6554 ?) - (#x6555 ?) - (#x6556 ?) - (#x6557 ?) - (#x6558 ?) - (#x6559 ?) - (#x655c ?v) - (#x655d ?) - (#x655e ?) - (#x6562 ?) - (#x6563 ?) - (#x6564 ?u) - (#x6565 ?x) - (#x6566 ?) - (#x6567 ?s) - (#x6568 ?w) - (#x656a ?t) - (#x656c ?q) - (#x656f ?ݼ) - (#x6572 ?V) - (#x6573 ?) - (#x6574 ?) - (#x6575 ?) - (#x6576 ?) - (#x6577 ?) - (#x6578 ?) - (#x6579 ?) - (#x657a ?) - (#x657b ?) - (#x657c ?) - (#x657f ?) - (#x6580 ?) - (#x6581 ?) - (#x6582 ?) - (#x6583 ?) - (#x6584 ?H) - (#x6587 ?) - (#x658c ?y) - (#x6590 ?) - (#x6591 ?) - (#x6592 ?ݽ) - (#x6594 ?) - (#x6595 ?) - (#x6596 ?) - (#x6597 ?) - (#x6599 ?) - (#x659b ?) - (#x659c ?) - (#x659d ?z) - (#x659e ?{) - (#x659f ?r) - (#x65a0 ?) - (#x65a1 ?W) - (#x65a2 ?) - (#x65a4 ?) - (#x65a5 ?) - (#x65a7 ?) - (#x65a8 ?) - (#x65aa ?) - (#x65ab ?H) - (#x65ac ?) - (#x65ae ?|) - (#x65af ?) - (#x65b0 ?s) - (#x65b2 ?) - (#x65b3 ?) - (#x65b6 ?) - (#x65b7 ?_) - (#x65b8 ?) - (#x65b9 ?) - (#x65bb ?) - (#x65bc ?) - (#x65bd ?I) - (#x65bf ?) - (#x65c1 ?) - (#x65c2 ?) - (#x65c3 ?) - (#x65c4 ?) - (#x65c5 ?) - (#x65c6 ?) - (#x65cb ?) - (#x65cc ?) - (#x65cd ?ը) - (#x65ce ?) - (#x65cf ?) - (#x65d0 ?}) - (#x65d2 ?~) - (#x65d3 ?ݾ) - (#x65d6 ?Y) - (#x65d7 ?X) - (#x65da ?) - (#x65db ?) - (#x65dd ?J) - (#x65de ?I) - (#x65df ?O) - (#x65e1 ?^) - (#x65e2 ?J) - (#x65e5 ?) - (#x65e6 ?) - (#x65e8 ?) - (#x65e9 ?) - (#x65ec ?) - (#x65ed ?) - (#x65ee ?) - (#x65ef ?) - (#x65f0 ?) - (#x65f1 ?) - (#x65f2 ?) - (#x65f3 ?) - (#x65f4 ?) - (#x65f5 ?) - (#x65fa ?) - (#x65fb ?) - (#x65fc ?) - (#x65fd ?) - (#x6600 ?) - (#x6602 ?) - (#x6603 ?) - (#x6604 ?) - (#x6605 ?) - (#x6606 ?) - (#x6607 ?@) - (#x6608 ?) - (#x6609 ?) - (#x660a ?) - (#x660b ?) - (#x660c ?) - (#x660d ?) - (#x660e ?) - (#x660f ?) - (#x6610 ?) - (#x6611 ?) - (#x6612 ?) - (#x6613 ?) - (#x6614 ?) - (#x6615 ?) - (#x661c ?) - (#x661d ?) - (#x661f ?P) - (#x6620 ?M) - (#x6621 ?) - (#x6622 ?) - (#x6624 ?S) - (#x6625 ?K) - (#x6626 ?) - (#x6627 ?N) - (#x6628 ?Q) - (#x662b ?) - (#x662d ?L) - (#x662e ?) - (#x662f ?O) - (#x6631 ?R) - (#x6632 ?) - (#x6633 ?) - (#x6634 ?) - (#x6635 ?) - (#x6636 ?) - (#x6639 ?) - (#x663a ?) - (#x6641 ?) - (#x6642 ?) - (#x6643 ?) - (#x6645 ?) - (#x6647 ?) - (#x6649 ?) - (#x664a ?) - (#x664c ?) - (#x664f ?) - (#x6651 ?) - (#x6652 ?) - (#x6659 ?լ) - (#x665a ?) - (#x665b ?ի) - (#x665c ?խ) - (#x665d ?) - (#x665e ?) - (#x665f ?) - (#x6661 ?ժ) - (#x6662 ?ծ) - (#x6664 ?) - (#x6665 ?թ) - (#x6666 ?) - (#x6668 ?) - (#x666a ?٧) - (#x666c ?٢) - (#x666e ?) - (#x666f ?) - (#x6670 ?) - (#x6671 ?٥) - (#x6672 ?٨) - (#x6674 ?) - (#x6676 ?) - (#x6677 ?) - (#x6678 ?) - (#x6679 ?٦) - (#x667a ?) - (#x667b ?٣) - (#x667c ?١) - (#x667e ?) - (#x6680 ?٤) - (#x6684 ?y) - (#x6686 ?ݿ) - (#x6687 ?v) - (#x6688 ?w) - (#x6689 ?u) - (#x668a ?) - (#x668b ?) - (#x668c ?) - (#x668d ?{) - (#x6690 ?) - (#x6691 ?) - (#x6694 ?) - (#x6695 ?) - (#x6696 ?x) - (#x6697 ?t) - (#x6698 ?z) - (#x6699 ?) - (#x669d ?\) - (#x669f ?) - (#x66a0 ?) - (#x66a1 ?) - (#x66a2 ?Z) - (#x66a8 ?[) - (#x66a9 ?) - (#x66aa ?) - (#x66ab ?) - (#x66ae ?) - (#x66af ?) - (#x66b0 ?) - (#x66b1 ?) - (#x66b2 ?) - (#x66b4 ?) - (#x66b5 ?) - (#x66b7 ?) - (#x66b8 ?) - (#x66b9 ?) - (#x66ba ?) - (#x66bb ?) - (#x66bd ?) - (#x66be ?) - (#x66c0 ?) - (#x66c4 ?) - (#x66c6 ?) - (#x66c7 ?) - (#x66c8 ?) - (#x66c9 ?) - (#x66ca ?) - (#x66cb ?) - (#x66cc ?) - (#x66cf ?) - (#x66d2 ?) - (#x66d6 ?) - (#x66d8 ?) - (#x66d9 ?) - (#x66da ?) - (#x66db ?) - (#x66dc ?`) - (#x66dd ?n) - (#x66de ?K) - (#x66e0 ?m) - (#x66e3 ?Q) - (#x66e4 ?R) - (#x66e6 ?f) - (#x66e8 ?P) - (#x66e9 ?) - (#x66eb ?) - (#x66ec ?) - (#x66ed ?) - (#x66ee ?) - (#x66f0 ?) - (#x66f2 ?) - (#x66f3 ?) - (#x66f4 ?) - (#x66f6 ?) - (#x66f7 ?T) - (#x66f8 ?) - (#x66f9 ?) - (#x66fc ?) - (#x66fe ?) - (#x66ff ?) - (#x6700 ?) - (#x6701 ?٩) - (#x6703 ?|) - (#x6704 ?) - (#x6705 ?) - (#x6708 ?) - (#x6709 ?) - (#x670a ?) - (#x670b ?B) - (#x670d ?A) - (#x670f ?) - (#x6710 ?) - (#x6712 ?) - (#x6713 ?) - (#x6714 ?) - (#x6715 ?) - (#x6717 ?) - (#x6718 ?կ) - (#x671b ?) - (#x671d ?) - (#x671f ?) - (#x6720 ?) - (#x6721 ?z) - (#x6722 ?) - (#x6723 ?) - (#x6726 ?a) - (#x6727 ?g) - (#x6728 ?) - (#x672a ?) - (#x672b ?) - (#x672c ?) - (#x672d ?) - (#x672e ?) - (#x6731 ?) - (#x6733 ?) - (#x6734 ?) - (#x6735 ?) - (#x6738 ?) - (#x6739 ?) - (#x673a ?) - (#x673b ?) - (#x673c ?) - (#x673d ?) - (#x673e ?) - (#x673f ?) - (#x6745 ?) - (#x6746 ?) - (#x6747 ?) - (#x6748 ?C) - (#x6749 ?) - (#x674b ?G) - (#x674c ?B) - (#x674d ?E) - (#x674e ?) - (#x674f ?) - (#x6750 ?) - (#x6751 ?) - (#x6753 ?@) - (#x6755 ?A) - (#x6756 ?) - (#x6757 ?A) - (#x6759 ?@) - (#x675a ?F) - (#x675c ?) - (#x675d ?D) - (#x675e ?) - (#x675f ?) - (#x6760 ?) - (#x676a ?W) - (#x676c ?) - (#x676d ?C) - (#x676f ?M) - (#x6770 ?N) - (#x6771 ?F) - (#x6772 ?X) - (#x6773 ?H) - (#x6774 ?) - (#x6775 ?S) - (#x6776 ?) - (#x6777 ?I) - (#x6778 ?) - (#x6779 ?) - (#x677a ?) - (#x677b ?) - (#x677c ?V) - (#x677d ?) - (#x677e ?Q) - (#x677f ?O) - (#x6781 ?) - (#x6783 ?) - (#x6784 ?) - (#x6785 ?) - (#x6786 ?) - (#x6787 ?J) - (#x6789 ?P) - (#x678b ?D) - (#x678c ?) - (#x678d ?) - (#x678e ?) - (#x6790 ?R) - (#x6791 ?) - (#x6792 ?) - (#x6793 ?U) - (#x6794 ?) - (#x6795 ?E) - (#x6797 ?L) - (#x6798 ?) - (#x6799 ?) - (#x679a ?T) - (#x679c ?G) - (#x679d ?K) - (#x679f ?) - (#x67ae ?[) - (#x67af ?\) - (#x67b0 ?i) - (#x67b2 ?V) - (#x67b3 ?L) - (#x67b4 ?b) - (#x67b5 ?J) - (#x67b6 ?[) - (#x67b7 ?E) - (#x67b8 ?e) - (#x67b9 ?R) - (#x67ba ?) - (#x67bb ?A) - (#x67c0 ?D) - (#x67c1 ?) - (#x67c2 ?Q) - (#x67c3 ?a) - (#x67c4 ?`) - (#x67c5 ?F) - (#x67c6 ?X) - (#x67c8 ?) - (#x67c9 ?_) - (#x67ca ?`) - (#x67cb ?c) - (#x67cc ?Z) - (#x67cd ?K) - (#x67ce ?S) - (#x67cf ?f) - (#x67d0 ?Y) - (#x67d1 ?a) - (#x67d2 ?m) - (#x67d3 ?V) - (#x67d4 ?X) - (#x67d8 ?C) - (#x67d9 ?j) - (#x67da ?c) - (#x67db ?]) - (#x67dc ?@) - (#x67dd ?l) - (#x67de ?g) - (#x67df ?I) - (#x67e2 ?k) - (#x67e3 ?P) - (#x67e4 ?H) - (#x67e5 ?d) - (#x67e6 ?\) - (#x67e7 ?T) - (#x67e9 ?^) - (#x67ea ?b) - (#x67eb ?G) - (#x67ec ?Z) - (#x67ed ?Y) - (#x67ee ?O) - (#x67ef ?_) - (#x67f0 ?U) - (#x67f1 ?W) - (#x67f2 ?) - (#x67f3 ?h) - (#x67f4 ?) - (#x67f5 ?]) - (#x67f6 ?N) - (#x67f7 ?M) - (#x67f8 ?B) - (#x67fa ?^) - (#x67fc ?W) - (#x67ff ?U) - (#x6812 ?) - (#x6813 ?) - (#x6814 ?) - (#x6816 ?) - (#x6817 ?) - (#x6818 ?) - (#x681a ?) - (#x681c ?) - (#x681d ?) - (#x681f ?) - (#x6820 ?) - (#x6821 ?) - (#x6825 ?) - (#x6826 ?) - (#x6828 ?) - (#x6829 ?) - (#x682a ?) - (#x682b ?) - (#x682d ?) - (#x682e ?) - (#x682f ?) - (#x6831 ?) - (#x6832 ?) - (#x6833 ?) - (#x6834 ?) - (#x6835 ?) - (#x6838 ?) - (#x6839 ?) - (#x683a ?) - (#x683b ?) - (#x683c ?) - (#x683d ?) - (#x6840 ?) - (#x6841 ?) - (#x6842 ?) - (#x6843 ?) - (#x6844 ?) - (#x6845 ?) - (#x6846 ?) - (#x6848 ?) - (#x6849 ?) - (#x684b ?) - (#x684c ?) - (#x684d ?) - (#x684e ?) - (#x684f ?) - (#x6850 ?) - (#x6851 ?) - (#x6853 ?) - (#x6854 ?) - (#x686b ?) - (#x686d ?մ) - (#x686e ?յ) - (#x686f ?չ) - (#x6871 ?) - (#x6872 ?) - (#x6874 ?վ) - (#x6875 ?ս) - (#x6876 ?) - (#x6877 ?) - (#x6878 ?) - (#x6879 ?հ) - (#x687b ?) - (#x687c ?) - (#x687d ?) - (#x687e ?) - (#x687f ?) - (#x6880 ?) - (#x6881 ?) - (#x6882 ?) - (#x6883 ?) - (#x6885 ?) - (#x6886 ?) - (#x6887 ?ձ) - (#x6889 ?) - (#x688a ?) - (#x688b ?) - (#x688c ?) - (#x688f ?) - (#x6890 ?ղ) - (#x6891 ?) - (#x6892 ?) - (#x6893 ?) - (#x6894 ?) - (#x6896 ?) - (#x6897 ?) - (#x689b ?) - (#x689c ?ճ) - (#x689d ?) - (#x689f ?) - (#x68a0 ?) - (#x68a1 ?) - (#x68a2 ?) - (#x68a3 ?պ) - (#x68a4 ?) - (#x68a7 ?) - (#x68a8 ?) - (#x68a9 ?ռ) - (#x68aa ?) - (#x68ab ?շ) - (#x68ac ?ջ) - (#x68ad ?) - (#x68ae ?ն) - (#x68af ?) - (#x68b0 ?) - (#x68b1 ?) - (#x68b2 ?տ) - (#x68b3 ?) - (#x68b4 ?) - (#x68b5 ?) - (#x68c4 ?) - (#x68c6 ?) - (#x68c7 ?) - (#x68c8 ?) - (#x68c9 ?) - (#x68cb ?) - (#x68cc ?ٽ) - (#x68cd ?) - (#x68ce ?) - (#x68d0 ?) - (#x68d1 ?) - (#x68d2 ?) - (#x68d3 ?٫) - (#x68d4 ?) - (#x68d5 ?) - (#x68d6 ?ٳ) - (#x68d7 ?) - (#x68d8 ?) - (#x68da ?) - (#x68dc ?٭) - (#x68dd ?) - (#x68de ?) - (#x68df ?) - (#x68e0 ?) - (#x68e1 ?ٻ) - (#x68e3 ?) - (#x68e4 ?ٶ) - (#x68e6 ?) - (#x68e7 ?) - (#x68e8 ?) - (#x68e9 ?) - (#x68ea ?ٰ) - (#x68eb ?ٵ) - (#x68ec ?ٯ) - (#x68ee ?) - (#x68ef ?) - (#x68f0 ?) - (#x68f1 ?ٱ) - (#x68f2 ?) - (#x68f3 ?ٺ) - (#x68f4 ?) - (#x68f5 ?) - (#x68f6 ?ٷ) - (#x68f7 ?ٴ) - (#x68f8 ?) - (#x68f9 ?) - (#x68fa ?) - (#x68fb ?) - (#x68fc ?) - (#x68fd ?) - (#x6904 ?٬) - (#x6905 ?) - (#x6906 ?) - (#x6907 ?ټ) - (#x6908 ?پ) - (#x690a ?) - (#x690b ?) - (#x690c ?٪) - (#x690d ?) - (#x690e ?) - (#x690f ?ٲ) - (#x6910 ?ٹ) - (#x6911 ?) - (#x6912 ?) - (#x6913 ?ٸ) - (#x6914 ?) - (#x6915 ?) - (#x6917 ?) - (#x6925 ?) - (#x692a ?ٮ) - (#x692f ?) - (#x6930 ?) - (#x6932 ?) - (#x6933 ?) - (#x6934 ?) - (#x6935 ?) - (#x6937 ?) - (#x6938 ?) - (#x6939 ?) - (#x693b ?) - (#x693c ?) - (#x693d ?) - (#x693f ?) - (#x6940 ?) - (#x6941 ?) - (#x6942 ?) - (#x6944 ?) - (#x6945 ?) - (#x6948 ?) - (#x6949 ?) - (#x694a ?) - (#x694b ?) - (#x694c ?) - (#x694e ?) - (#x694f ?) - (#x6951 ?) - (#x6952 ?) - (#x6953 ?) - (#x6954 ?) - (#x6956 ?ո) - (#x6957 ?) - (#x6958 ?) - (#x6959 ?) - (#x695a ?) - (#x695b ?) - (#x695c ?) - (#x695d ?) - (#x695e ?) - (#x695f ?) - (#x6960 ?) - (#x6962 ?) - (#x6963 ?) - (#x6965 ?) - (#x6966 ?) - (#x6968 ?) - (#x6969 ?) - (#x696a ?) - (#x696b ?) - (#x696c ?) - (#x696d ?~) - (#x696e ?) - (#x696f ?) - (#x6970 ?ٿ) - (#x6971 ?) - (#x6974 ?) - (#x6975 ?) - (#x6976 ?) - (#x6977 ?) - (#x6978 ?) - (#x6979 ?) - (#x697a ?) - (#x697b ?) - (#x6982 ?) - (#x6983 ?) - (#x6986 ?) - (#x698d ?J) - (#x698e ?H) - (#x6990 ?^) - (#x6991 ?F) - (#x6993 ?X) - (#x6994 ?}) - (#x6995 ?_) - (#x6996 ?B) - (#x6997 ?]) - (#x6999 ?G) - (#x699a ?U) - (#x699b ?d) - (#x699c ?]) - (#x699e ?[) - (#x69a0 ?@) - (#x69a1 ?Z) - (#x69a3 ?o) - (#x69a4 ?Q) - (#x69a5 ?a) - (#x69a6 ?m) - (#x69a7 ?I) - (#x69a8 ?^) - (#x69a9 ?K) - (#x69aa ?Y) - (#x69ab ?g) - (#x69ac ?D) - (#x69ad ?k) - (#x69ae ?a) - (#x69af ?M) - (#x69b0 ?C) - (#x69b1 ?) - (#x69b3 ?W) - (#x69b4 ?h) - (#x69b5 ?`) - (#x69b6 ?) - (#x69b7 ?e) - (#x69b9 ?S) - (#x69bb ?f) - (#x69bc ?E) - (#x69bd ?P) - (#x69be ?L) - (#x69bf ?N) - (#x69c1 ?`) - (#x69c2 ?_) - (#x69c3 ?n) - (#x69c4 ?O) - (#x69c6 ?b) - (#x69c9 ?) - (#x69ca ?T) - (#x69cb ?c) - (#x69cc ?l) - (#x69cd ?j) - (#x69ce ?A) - (#x69cf ?V) - (#x69d0 ?i) - (#x69d3 ?b) - (#x69d4 ?R) - (#x69d9 ?\) - (#x69e2 ?) - (#x69e4 ?) - (#x69e5 ?) - (#x69e6 ?) - (#x69e7 ?) - (#x69e8 ?) - (#x69eb ?) - (#x69ec ?) - (#x69ed ?) - (#x69ee ?) - (#x69f1 ?) - (#x69f2 ?) - (#x69f3 ?) - (#x69f4 ?) - (#x69f6 ?) - (#x69f7 ?) - (#x69f8 ?) - (#x69fb ?) - (#x69fc ?) - (#x69fd ?) - (#x69fe ?) - (#x69ff ?) - (#x6a00 ?) - (#x6a01 ?) - (#x6a02 ?) - (#x6a04 ?) - (#x6a05 ?) - (#x6a06 ?) - (#x6a07 ?) - (#x6a08 ?) - (#x6a09 ?) - (#x6a0a ?) - (#x6a0d ?) - (#x6a0f ?) - (#x6a11 ?) - (#x6a13 ?) - (#x6a14 ?) - (#x6a15 ?) - (#x6a16 ?) - (#x6a17 ?) - (#x6a18 ?) - (#x6a19 ?) - (#x6a1b ?) - (#x6a1d ?) - (#x6a1e ?) - (#x6a1f ?) - (#x6a20 ?) - (#x6a21 ?) - (#x6a23 ?) - (#x6a25 ?) - (#x6a26 ?) - (#x6a27 ?) - (#x6a28 ?) - (#x6a32 ?) - (#x6a34 ?) - (#x6a35 ?) - (#x6a38 ?) - (#x6a39 ?) - (#x6a3a ?) - (#x6a3b ?) - (#x6a3c ?) - (#x6a3d ?) - (#x6a3e ?) - (#x6a3f ?) - (#x6a40 ?) - (#x6a41 ?) - (#x6a44 ?) - (#x6a46 ?) - (#x6a47 ?) - (#x6a48 ?) - (#x6a49 ?) - (#x6a4b ?) - (#x6a4d ?) - (#x6a4e ?) - (#x6a4f ?) - (#x6a50 ?) - (#x6a51 ?) - (#x6a54 ?) - (#x6a55 ?) - (#x6a56 ?) - (#x6a58 ?) - (#x6a59 ?) - (#x6a5a ?) - (#x6a5b ?) - (#x6a5d ?) - (#x6a5e ?) - (#x6a5f ?) - (#x6a60 ?) - (#x6a61 ?) - (#x6a62 ?) - (#x6a64 ?) - (#x6a66 ?) - (#x6a67 ?) - (#x6a68 ?) - (#x6a69 ?) - (#x6a6a ?) - (#x6a6b ?) - (#x6a6d ?) - (#x6a6f ?) - (#x6a76 ?) - (#x6a7e ?) - (#x6a7f ?E) - (#x6a80 ?) - (#x6a81 ?) - (#x6a83 ?A) - (#x6a84 ?) - (#x6a85 ?H) - (#x6a87 ?) - (#x6a89 ?) - (#x6a8c ?I) - (#x6a8d ?) - (#x6a8e ?) - (#x6a90 ?) - (#x6a91 ?D) - (#x6a92 ?J) - (#x6a93 ?) - (#x6a94 ?) - (#x6a95 ?@) - (#x6a96 ?) - (#x6a97 ?) - (#x6a9a ?G) - (#x6a9b ?) - (#x6a9c ?) - (#x6a9e ?) - (#x6a9f ?) - (#x6aa0 ?) - (#x6aa1 ?) - (#x6aa2 ?) - (#x6aa3 ?) - (#x6aa4 ?C) - (#x6aa5 ?) - (#x6aa6 ?F) - (#x6aa8 ?B) - (#x6aac ?c) - (#x6aad ?) - (#x6aae ?h) - (#x6aaf ?i) - (#x6ab3 ?b) - (#x6ab4 ?) - (#x6ab6 ?) - (#x6ab7 ?) - (#x6ab8 ?f) - (#x6ab9 ?) - (#x6aba ?) - (#x6abb ?e) - (#x6abd ?) - (#x6ac2 ?g) - (#x6ac3 ?d) - (#x6ac5 ?) - (#x6ac6 ?) - (#x6ac7 ?) - (#x6acb ?Q) - (#x6acc ?N) - (#x6acd ?W) - (#x6acf ?V) - (#x6ad0 ?T) - (#x6ad1 ?O) - (#x6ad3 ?r) - (#x6ad9 ?P) - (#x6ada ?q) - (#x6adb ?) - (#x6adc ?S) - (#x6add ?p) - (#x6ade ?X) - (#x6adf ?R) - (#x6ae0 ?M) - (#x6ae1 ?) - (#x6ae5 ?o) - (#x6ae7 ?L) - (#x6ae8 ?V) - (#x6aea ?U) - (#x6aeb ?U) - (#x6aec ?h) - (#x6aee ?Y) - (#x6aef ?Z) - (#x6af0 ?T) - (#x6af1 ?X) - (#x6af3 ?S) - (#x6af8 ?) - (#x6af9 ?W) - (#x6afa ?) - (#x6afb ?) - (#x6afc ?) - (#x6b00 ?) - (#x6b02 ?) - (#x6b03 ?) - (#x6b04 ?) - (#x6b08 ?) - (#x6b09 ?) - (#x6b0a ?v) - (#x6b0b ?) - (#x6b0f ?) - (#x6b10 ?) - (#x6b11 ?) - (#x6b12 ?) - (#x6b13 ?) - (#x6b16 ?V) - (#x6b17 ?) - (#x6b18 ?) - (#x6b19 ?) - (#x6b1a ?) - (#x6b1e ?) - (#x6b20 ?) - (#x6b21 ?) - (#x6b23 ?Y) - (#x6b25 ?) - (#x6b28 ?d) - (#x6b2c ?) - (#x6b2d ?) - (#x6b2f ?) - (#x6b31 ?) - (#x6b32 ?) - (#x6b33 ?) - (#x6b34 ?) - (#x6b36 ?) - (#x6b37 ?) - (#x6b38 ?) - (#x6b39 ?) - (#x6b3a ?) - (#x6b3b ?) - (#x6b3c ?) - (#x6b3d ?) - (#x6b3e ?) - (#x6b3f ?) - (#x6b41 ?) - (#x6b42 ?) - (#x6b43 ?) - (#x6b45 ?) - (#x6b46 ?) - (#x6b47 ?) - (#x6b48 ?) - (#x6b49 ?p) - (#x6b4a ?c) - (#x6b4b ?e) - (#x6b4c ?q) - (#x6b4d ?d) - (#x6b4e ?) - (#x6b50 ?) - (#x6b51 ?) - (#x6b54 ?) - (#x6b55 ?) - (#x6b56 ?) - (#x6b59 ?) - (#x6b5b ?K) - (#x6b5c ?) - (#x6b5e ?) - (#x6b5f ?j) - (#x6b60 ?Y) - (#x6b61 ?w) - (#x6b62 ?) - (#x6b63 ?) - (#x6b64 ?) - (#x6b65 ?B) - (#x6b66 ?Z) - (#x6b67 ?[) - (#x6b6a ?n) - (#x6b6d ?) - (#x6b72 ?) - (#x6b76 ?) - (#x6b77 ?) - (#x6b78 ?k) - (#x6b79 ?) - (#x6b7b ?) - (#x6b7e ?) - (#x6b7f ?\) - (#x6b80 ?) - (#x6b82 ?e) - (#x6b83 ?o) - (#x6b84 ?f) - (#x6b86 ?p) - (#x6b88 ?) - (#x6b89 ?) - (#x6b8a ?) - (#x6b8c ?) - (#x6b8d ?) - (#x6b8e ?) - (#x6b8f ?) - (#x6b91 ?) - (#x6b94 ?) - (#x6b95 ?) - (#x6b96 ?) - (#x6b97 ?) - (#x6b98 ?) - (#x6b99 ?) - (#x6b9b ?) - (#x6b9e ?f) - (#x6b9f ?g) - (#x6ba0 ?h) - (#x6ba2 ?) - (#x6ba3 ?) - (#x6ba4 ?) - (#x6ba5 ?) - (#x6ba6 ?) - (#x6ba7 ?) - (#x6baa ?) - (#x6bab ?) - (#x6bad ?L) - (#x6bae ?) - (#x6baf ?l) - (#x6bb0 ?Z) - (#x6bb2 ?) - (#x6bb3 ?_) - (#x6bb5 ?q) - (#x6bb6 ?g) - (#x6bb7 ?) - (#x6bba ?) - (#x6bbc ?) - (#x6bbd ?) - (#x6bbf ?) - (#x6bc0 ?) - (#x6bc3 ?i) - (#x6bc4 ?j) - (#x6bc5 ?) - (#x6bc6 ?) - (#x6bc7 ?) - (#x6bc8 ?) - (#x6bc9 ?) - (#x6bca ?) - (#x6bcb ?) - (#x6bcc ?`) - (#x6bcd ?) - (#x6bcf ?C) - (#x6bd0 ?H) - (#x6bd2 ?r) - (#x6bd3 ?) - (#x6bd4 ?) - (#x6bd6 ?h) - (#x6bd7 ?s) - (#x6bd8 ?i) - (#x6bda ?) - (#x6bdb ?) - (#x6bde ?) - (#x6be0 ?j) - (#x6be2 ?B) - (#x6be3 ?A) - (#x6be4 ?) - (#x6be6 ?) - (#x6be7 ?C) - (#x6be8 ?@) - (#x6beb ?@) - (#x6bec ?A) - (#x6bef ?) - (#x6bf0 ?) - (#x6bf2 ?) - (#x6bf3 ?) - (#x6bf7 ?A) - (#x6bf8 ?B) - (#x6bf9 ?@) - (#x6bfb ?) - (#x6bfc ?) - (#x6bfd ?) - (#x6bfe ?k) - (#x6bff ?) - (#x6c00 ?) - (#x6c01 ?) - (#x6c02 ?) - (#x6c03 ?) - (#x6c04 ?) - (#x6c05 ?) - (#x6c06 ?) - (#x6c08 ?) - (#x6c09 ?M) - (#x6c0b ?) - (#x6c0c ?[) - (#x6c0d ?) - (#x6c0f ?) - (#x6c10 ?) - (#x6c11 ?) - (#x6c13 ?]) - (#x6c14 ?a) - (#x6c15 ?~) - (#x6c16 ?) - (#x6c18 ?) - (#x6c19 ?I) - (#x6c1a ?J) - (#x6c1b ?^) - (#x6c1d ?) - (#x6c1f ?t) - (#x6c20 ?k) - (#x6c21 ?l) - (#x6c23 ?) - (#x6c24 ?) - (#x6c25 ?D) - (#x6c26 ?) - (#x6c27 ?) - (#x6c28 ?) - (#x6c2a ?) - (#x6c2b ?B) - (#x6c2c ?) - (#x6c2e ?) - (#x6c2f ?) - (#x6c30 ?) - (#x6c33 ?r) - (#x6c34 ?) - (#x6c36 ?ɡ) - (#x6c38 ?) - (#x6c3b ?ɤ) - (#x6c3e ?) - (#x6c3f ?ɣ) - (#x6c40 ?) - (#x6c41 ?) - (#x6c42 ?D) - (#x6c43 ?ɢ) - (#x6c46 ?) - (#x6c4a ?) - (#x6c4b ?) - (#x6c4c ?@) - (#x6c4d ?) - (#x6c4e ?) - (#x6c4f ?) - (#x6c50 ?) - (#x6c52 ?) - (#x6c54 ?) - (#x6c55 ?) - (#x6c57 ?) - (#x6c59 ?) - (#x6c5b ?) - (#x6c5c ?) - (#x6c5d ?) - (#x6c5e ?E) - (#x6c5f ?) - (#x6c60 ?) - (#x6c61 ?) - (#x6c65 ?[) - (#x6c66 ?Y) - (#x6c67 ?L) - (#x6c68 ?Q) - (#x6c69 ?S) - (#x6c6a ?L) - (#x6c6b ?M) - (#x6c6d ?U) - (#x6c6f ?R) - (#x6c70 ?O) - (#x6c71 ?Q) - (#x6c72 ?V) - (#x6c73 ?Z) - (#x6c74 ?X) - (#x6c76 ?Z) - (#x6c78 ?K) - (#x6c7a ?M) - (#x6c7b ?\) - (#x6c7d ?T) - (#x6c7e ?W) - (#x6c80 ?E) - (#x6c81 ?G) - (#x6c82 ?^) - (#x6c83 ?U) - (#x6c84 ?N) - (#x6c85 ?J) - (#x6c86 ?Y) - (#x6c87 ?V) - (#x6c88 ?H) - (#x6c89 ?I) - (#x6c8a ?C) - (#x6c8b ?O) - (#x6c8c ?P) - (#x6c8d ?[) - (#x6c8e ?]) - (#x6c8f ?P) - (#x6c90 ?N) - (#x6c92 ?S) - (#x6c93 ?) - (#x6c94 ?\) - (#x6c95 ?W) - (#x6c96 ?R) - (#x6c98 ?]) - (#x6c99 ?F) - (#x6c9a ?T) - (#x6c9b ?K) - (#x6c9c ?X) - (#x6c9d ?D) - (#x6cab ?j) - (#x6cac ?z) - (#x6cad ?) - (#x6cae ?q) - (#x6cb0 ?K) - (#x6cb1 ?b) - (#x6cb3 ?e) - (#x6cb4 ?B) - (#x6cb6 ?) - (#x6cb7 ?) - (#x6cb8 ?m) - (#x6cb9 ?o) - (#x6cba ?) - (#x6cbb ?v) - (#x6cbc ?h) - (#x6cbd ?f) - (#x6cbe ?g) - (#x6cbf ?u) - (#x6cc0 ?G) - (#x6cc1 ?p) - (#x6cc2 ?) - (#x6cc3 ?) - (#x6cc4 ?n) - (#x6cc5 ?s) - (#x6cc6 ?) - (#x6cc7 ?J) - (#x6cc9 ?u) - (#x6cca ?y) - (#x6ccc ?c) - (#x6ccd ?I) - (#x6ccf ?M) - (#x6cd0 ?) - (#x6cd1 ?O) - (#x6cd2 ?@) - (#x6cd3 ?l) - (#x6cd4 ?) - (#x6cd5 ?k) - (#x6cd6 ?}) - (#x6cd7 ?r) - (#x6cd9 ?) - (#x6cda ?u) - (#x6cdb ?x) - (#x6cdc ?|) - (#x6cdd ?A) - (#x6cde ?F) - (#x6ce0 ?~) - (#x6ce1 ?w) - (#x6ce2 ?i) - (#x6ce3 ?_) - (#x6ce5 ?d) - (#x6ce7 ?) - (#x6ce8 ?`) - (#x6ce9 ?N) - (#x6ceb ?) - (#x6cec ?) - (#x6ced ?) - (#x6cee ?) - (#x6cef ?{) - (#x6cf0 ?) - (#x6cf1 ?t) - (#x6cf2 ?) - (#x6cf3 ?a) - (#x6cf5 ?) - (#x6cf9 ?L) - (#x6d00 ?|) - (#x6d01 ?ϡ) - (#x6d03 ?Ϥ) - (#x6d04 ?w) - (#x6d07 ?ϧ) - (#x6d08 ?Ϫ) - (#x6d09 ?Ϭ) - (#x6d0a ?t) - (#x6d0b ?v) - (#x6d0c ?{) - (#x6d0d ?I) - (#x6d0e ?) - (#x6d0f ?ϥ) - (#x6d10 ?ϭ) - (#x6d11 ?{) - (#x6d12 ?s) - (#x6d16 ?d) - (#x6d17 ?~) - (#x6d18 ?Ϣ) - (#x6d19 ?x) - (#x6d1a ?z) - (#x6d1b ?) - (#x6d1d ?}) - (#x6d1e ?}) - (#x6d1f ?p) - (#x6d20 ?Ϩ) - (#x6d22 ?ϫ) - (#x6d25 ?z) - (#x6d27 ?) - (#x6d28 ?m) - (#x6d29 ?) - (#x6d2a ?x) - (#x6d2b ?) - (#x6d2c ?ϩ) - (#x6d2d ?o) - (#x6d2e ?) - (#x6d2f ?^) - (#x6d30 ?H) - (#x6d31 ?|) - (#x6d32 ?w) - (#x6d33 ?v) - (#x6d34 ?n) - (#x6d35 ?) - (#x6d36 ?) - (#x6d37 ?ϣ) - (#x6d38 ?) - (#x6d39 ?) - (#x6d3a ?y) - (#x6d3b ?) - (#x6d3c ?q) - (#x6d3d ?) - (#x6d3e ?) - (#x6d3f ?r) - (#x6d40 ?Ϧ) - (#x6d41 ?y) - (#x6d42 ?~) - (#x6d58 ?L) - (#x6d59 ?) - (#x6d5a ?C) - (#x6d5e ?U) - (#x6d5f ?[) - (#x6d60 ?W) - (#x6d61 ?J) - (#x6d62 ?M) - (#x6d63 ?F) - (#x6d64 ?G) - (#x6d65 ?J) - (#x6d66 ?) - (#x6d67 ?V) - (#x6d68 ?_) - (#x6d69 ?E) - (#x6d6a ?) - (#x6d6c ?@) - (#x6d6d ?N) - (#x6d6e ?B) - (#x6d6f ?O) - (#x6d70 ?Y) - (#x6d74 ?D) - (#x6d75 ?h) - (#x6d76 ?H) - (#x6d77 ?) - (#x6d78 ?) - (#x6d79 ?H) - (#x6d7a ?E) - (#x6d7b ?f) - (#x6d7c ?Z) - (#x6d7d ?g) - (#x6d7e ?a) - (#x6d7f ?S) - (#x6d80 ?b) - (#x6d82 ?\) - (#x6d83 ?e) - (#x6d84 ?c) - (#x6d85 ?I) - (#x6d86 ?T) - (#x6d87 ?) - (#x6d88 ?) - (#x6d89 ?A) - (#x6d8a ?G) - (#x6d8b ?`) - (#x6d8c ?F) - (#x6d8d ?Q) - (#x6d8e ?C) - (#x6d90 ?i) - (#x6d91 ?P) - (#x6d92 ?K) - (#x6d93 ?) - (#x6d94 ?K) - (#x6d95 ?) - (#x6d97 ?X) - (#x6d98 ?]) - (#x6daa ?e) - (#x6dab ?) - (#x6dac ?) - (#x6dae ?R) - (#x6daf ?P) - (#x6db2 ?G) - (#x6db3 ?) - (#x6db4 ?) - (#x6db5 ?[) - (#x6db7 ?) - (#x6db8 ?U) - (#x6dba ?) - (#x6dbb ?G) - (#x6dbc ?D) - (#x6dbd ?) - (#x6dbe ?) - (#x6dbf ?g) - (#x6dc0 ?) - (#x6dc2 ?) - (#x6dc4 ?d) - (#x6dc5 ?X) - (#x6dc6 ?c) - (#x6dc7 ?N) - (#x6dc8 ?) - (#x6dc9 ?) - (#x6dca ?) - (#x6dcb ?O) - (#x6dcc ?I) - (#x6dcd ?E) - (#x6dcf ?) - (#x6dd0 ?@) - (#x6dd1 ?Q) - (#x6dd2 ?Y) - (#x6dd3 ?B) - (#x6dd4 ?) - (#x6dd5 ?) - (#x6dd6 ?) - (#x6dd7 ?D) - (#x6dd8 ?^) - (#x6dd9 ?F) - (#x6dda ?\) - (#x6ddb ?) - (#x6ddc ?) - (#x6ddd ?) - (#x6dde ?S) - (#x6ddf ?) - (#x6de0 ?) - (#x6de1 ?H) - (#x6de2 ?) - (#x6de3 ?F) - (#x6de4 ?J) - (#x6de5 ?) - (#x6de6 ?h) - (#x6de8 ?b) - (#x6de9 ?) - (#x6dea ?_) - (#x6deb ?]) - (#x6dec ?f) - (#x6ded ?) - (#x6dee ?a) - (#x6def ?R) - (#x6df0 ?) - (#x6df1 ?`) - (#x6df2 ?A) - (#x6df3 ?E) - (#x6df4 ?) - (#x6df5 ?W) - (#x6df6 ?) - (#x6df7 ?V) - (#x6df9 ?T) - (#x6dfa ?L) - (#x6dfb ?K) - (#x6dfc ?) - (#x6dfd ?C) - (#x6e00 ?) - (#x6e03 ?) - (#x6e05 ?M) - (#x6e19 ?A) - (#x6e1a ?Z) - (#x6e1b ?) - (#x6e1c ?) - (#x6e1d ?) - (#x6e1f ?) - (#x6e20 ?) - (#x6e21 ?) - (#x6e22 ?I) - (#x6e23 ?) - (#x6e24 ?) - (#x6e25 ?) - (#x6e26 ?) - (#x6e27 ?M) - (#x6e28 ?D) - (#x6e2b ?) - (#x6e2c ?) - (#x6e2d ?) - (#x6e2e ?) - (#x6e2f ?) - (#x6e30 ?J) - (#x6e31 ?C) - (#x6e32 ?) - (#x6e33 ?) - (#x6e34 ?) - (#x6e35 ?U) - (#x6e36 ?V) - (#x6e38 ?) - (#x6e39 ?H) - (#x6e3a ?) - (#x6e3b ?) - (#x6e3c ?) - (#x6e3d ?) - (#x6e3e ?) - (#x6e3f ?) - (#x6e40 ?) - (#x6e41 ?) - (#x6e43 ?) - (#x6e44 ?D) - (#x6e45 ?) - (#x6e46 ?) - (#x6e47 ?) - (#x6e49 ?) - (#x6e4a ?) - (#x6e4b ?) - (#x6e4d ?) - (#x6e4e ?B) - (#x6e51 ?) - (#x6e52 ?S) - (#x6e53 ?K) - (#x6e54 ?) - (#x6e55 ?Q) - (#x6e56 ?) - (#x6e58 ?) - (#x6e5a ?W) - (#x6e5b ?) - (#x6e5c ?A) - (#x6e5d ?) - (#x6e5e ?) - (#x6e5f ?G) - (#x6e60 ?E) - (#x6e61 ?B) - (#x6e62 ?) - (#x6e63 ?C) - (#x6e64 ?O) - (#x6e65 ?L) - (#x6e66 ?T) - (#x6e67 ?) - (#x6e68 ?@) - (#x6e69 ?F) - (#x6e6b ?G) - (#x6e6e ?) - (#x6e6f ?) - (#x6e71 ?F) - (#x6e72 ?E) - (#x6e73 ?) - (#x6e74 ?) - (#x6e77 ?P) - (#x6e78 ?N) - (#x6e79 ?R) - (#x6e88 ?) - (#x6e89 ?@) - (#x6e8d ?a) - (#x6e8e ?`) - (#x6e8f ?F) - (#x6e90 ?) - (#x6e92 ?_) - (#x6e93 ?I) - (#x6e94 ?J) - (#x6e96 ?) - (#x6e97 ?h) - (#x6e98 ?) - (#x6e99 ?^) - (#x6e9b ?C) - (#x6e9c ?) - (#x6e9d ?) - (#x6e9e ?R) - (#x6e9f ?H) - (#x6ea0 ?K) - (#x6ea1 ?c) - (#x6ea2 ?) - (#x6ea3 ?j) - (#x6ea4 ?b) - (#x6ea5 ?) - (#x6ea6 ?W) - (#x6ea7 ?) - (#x6eaa ?) - (#x6eab ?) - (#x6eae ?i) - (#x6eaf ?) - (#x6eb0 ?U) - (#x6eb1 ?L) - (#x6eb2 ?Y) - (#x6eb3 ?e) - (#x6eb4 ?) - (#x6eb6 ?) - (#x6eb7 ?T) - (#x6eb9 ?M) - (#x6eba ?) - (#x6ebc ?) - (#x6ebd ?P) - (#x6ebe ?Z) - (#x6ebf ?d) - (#x6ec0 ?G) - (#x6ec1 ?Q) - (#x6ec2 ?) - (#x6ec3 ?[) - (#x6ec4 ?) - (#x6ec5 ?) - (#x6ec6 ?N) - (#x6ec7 ?) - (#x6ec8 ?E) - (#x6ec9 ?S) - (#x6eca ?g) - (#x6ecb ?) - (#x6ecc ?) - (#x6ecd ?V) - (#x6ece ?l) - (#x6ecf ?X) - (#x6ed0 ?f) - (#x6ed1 ?) - (#x6ed2 ?O) - (#x6ed3 ?) - (#x6ed4 ?) - (#x6ed5 ?) - (#x6ed6 ?D) - (#x6ed8 ?]) - (#x6edc ?\) - (#x6eeb ?) - (#x6eec ?) - (#x6eed ?}) - (#x6eee ?) - (#x6eef ?) - (#x6ef1 ?n) - (#x6ef2 ?) - (#x6ef4 ?w) - (#x6ef5 ?m) - (#x6ef6 ?) - (#x6ef7 ?) - (#x6ef8 ?q) - (#x6ef9 ?) - (#x6efb ?s) - (#x6efc ?) - (#x6efd ?) - (#x6efe ?u) - (#x6eff ?) - (#x6f00 ?S) - (#x6f01 ?) - (#x6f02 ?}) - (#x6f03 ?o) - (#x6f05 ?) - (#x6f06 ?) - (#x6f07 ?) - (#x6f08 ?) - (#x6f09 ?u) - (#x6f0a ?~) - (#x6f0d ?) - (#x6f0e ?) - (#x6f0f ?|) - (#x6f12 ?|) - (#x6f13 ?v) - (#x6f14 ?t) - (#x6f15 ?) - (#x6f18 ?z) - (#x6f19 ?w) - (#x6f1a ?x) - (#x6f1c ?) - (#x6f1e ?) - (#x6f1f ?) - (#x6f20 ?z) - (#x6f21 ?) - (#x6f22 ?~) - (#x6f23 ?) - (#x6f25 ?p) - (#x6f26 ?) - (#x6f27 ?y) - (#x6f29 ?x) - (#x6f2a ?) - (#x6f2b ?) - (#x6f2c ?{) - (#x6f2d ?) - (#x6f2e ?t) - (#x6f2f ?) - (#x6f30 ?) - (#x6f31 ?) - (#x6f32 ?) - (#x6f33 ?s) - (#x6f35 ?) - (#x6f36 ?) - (#x6f37 ?r) - (#x6f38 ?) - (#x6f39 ?) - (#x6f3a ?) - (#x6f3b ?{) - (#x6f3c ?) - (#x6f3e ?y) - (#x6f3f ?) - (#x6f40 ?) - (#x6f41 ?) - (#x6f43 ?) - (#x6f4e ?v) - (#x6f4f ?D) - (#x6f50 ?N) - (#x6f51 ?) - (#x6f52 ?M) - (#x6f53 ?Y) - (#x6f54 ?) - (#x6f55 ?K) - (#x6f57 ?O) - (#x6f58 ?) - (#x6f5a ?F) - (#x6f5b ?) - (#x6f5d ?R) - (#x6f5e ?) - (#x6f5f ?) - (#x6f60 ?) - (#x6f61 ?T) - (#x6f62 ?C) - (#x6f63 ?^) - (#x6f64 ?) - (#x6f66 ?) - (#x6f67 ?W) - (#x6f69 ?[) - (#x6f6a ?`) - (#x6f6b ?U) - (#x6f6c ?I) - (#x6f6d ?) - (#x6f6e ?) - (#x6f6f ?) - (#x6f70 ?) - (#x6f72 ?L) - (#x6f73 ?) - (#x6f76 ?H) - (#x6f77 ?_) - (#x6f78 ?) - (#x6f7a ?) - (#x6f7b ?a) - (#x6f7c ?) - (#x6f7d ?V) - (#x6f7e ?) - (#x6f7f ?\) - (#x6f80 ?) - (#x6f82 ?J) - (#x6f84 ?) - (#x6f85 ?E) - (#x6f86 ?) - (#x6f87 ?) - (#x6f88 ?) - (#x6f89 ?A) - (#x6f8b ?Z) - (#x6f8c ?B) - (#x6f8d ?@) - (#x6f8e ?) - (#x6f90 ?X) - (#x6f92 ?) - (#x6f93 ?Q) - (#x6f94 ?P) - (#x6f95 ?]) - (#x6f96 ?G) - (#x6f97 ?) - (#x6f9e ?) - (#x6fa0 ?I) - (#x6fa1 ?) - (#x6fa2 ?@) - (#x6fa3 ?) - (#x6fa4 ?A) - (#x6fa5 ?) - (#x6fa6 ?H) - (#x6fa7 ?C) - (#x6fa8 ?) - (#x6fa9 ?O) - (#x6faa ?) - (#x6fab ?B) - (#x6fac ?) - (#x6fad ?) - (#x6fae ?) - (#x6faf ?D) - (#x6fb0 ?F) - (#x6fb1 ?) - (#x6fb2 ?E) - (#x6fb3 ?D) - (#x6fb4 ?J) - (#x6fb6 ?G) - (#x6fb8 ?) - (#x6fb9 ?F) - (#x6fba ?) - (#x6fbc ?) - (#x6fbd ?) - (#x6fbf ?) - (#x6fc0 ?E) - (#x6fc1 ?B) - (#x6fc2 ?) - (#x6fc3 ?@) - (#x6fc4 ?) - (#x6fc6 ?) - (#x6fc7 ?) - (#x6fc8 ?) - (#x6fc9 ?A) - (#x6fca ?) - (#x6fcb ?) - (#x6fcc ?N) - (#x6fcd ?C) - (#x6fce ?) - (#x6fcf ?) - (#x6fd4 ?Q) - (#x6fd5 ?) - (#x6fd8 ?) - (#x6fdb ?) - (#x6fdc ?S) - (#x6fdd ?Y) - (#x6fde ?W) - (#x6fdf ?) - (#x6fe0 ?) - (#x6fe1 ?) - (#x6fe2 ?Z) - (#x6fe3 ?R) - (#x6fe4 ?) - (#x6fe6 ?V) - (#x6fe7 ?U) - (#x6fe8 ?[) - (#x6fe9 ?) - (#x6feb ?) - (#x6fec ?) - (#x6fed ?T) - (#x6fee ?) - (#x6fef ?) - (#x6ff0 ?) - (#x6ff1 ?) - (#x6ff2 ?X) - (#x6ff4 ?P) - (#x6ff7 ?) - (#x6ffa ?q) - (#x6ffb ?) - (#x6ffc ?) - (#x6ffe ?o) - (#x6fff ?) - (#x7000 ?) - (#x7001 ?) - (#x7004 ?) - (#x7005 ?) - (#x7006 ?p) - (#x7007 ?) - (#x7009 ?m) - (#x700a ?) - (#x700b ?n) - (#x700c ?) - (#x700d ?) - (#x700e ?) - (#x700f ?s) - (#x7011 ?r) - (#x7014 ?) - (#x7015 ?x) - (#x7016 ?_) - (#x7017 ?e) - (#x7018 ?y) - (#x7019 ?\) - (#x701a ?v) - (#x701b ?s) - (#x701c ?g) - (#x701d ?w) - (#x701f ?t) - (#x7020 ?^) - (#x7021 ?a) - (#x7022 ?b) - (#x7023 ?c) - (#x7024 ?f) - (#x7026 ?) - (#x7027 ?]) - (#x7028 ?u) - (#x7029 ?d) - (#x702a ?h) - (#x702b ?`) - (#x702f ?]) - (#x7030 ?j) - (#x7031 ?`) - (#x7032 ?k) - (#x7033 ?h) - (#x7034 ?_) - (#x7035 ?\) - (#x7037 ?^) - (#x7038 ?b) - (#x7039 ?e) - (#x703a ?d) - (#x703b ?g) - (#x703c ?[) - (#x703e ?i) - (#x703f ?c) - (#x7040 ?f) - (#x7041 ?i) - (#x7042 ?a) - (#x7043 ?) - (#x7044 ?) - (#x7045 ?) - (#x7046 ?) - (#x7048 ?) - (#x7049 ?) - (#x704a ?) - (#x704c ?) - (#x7051 ?x) - (#x7052 ?) - (#x7055 ?) - (#x7056 ?) - (#x7057 ?) - (#x7058 ?y) - (#x705a ?) - (#x705b ?) - (#x705d ?) - (#x705e ?) - (#x705f ?) - (#x7060 ?) - (#x7061 ?) - (#x7062 ?) - (#x7063 ?W) - (#x7064 ?e) - (#x7065 ?) - (#x7066 ?l) - (#x7068 ?) - (#x7069 ?) - (#x706a ?) - (#x706b ?) - (#x7070 ?) - (#x7071 ?A) - (#x7074 ?^) - (#x7076 ?_) - (#x7078 ?b) - (#x707a ?_) - (#x707c ?`) - (#x707d ?a) - (#x7082 ?X) - (#x7083 ?Z) - (#x7084 ?U) - (#x7085 ?R) - (#x7086 ?T) - (#x708a ?) - (#x708e ?) - (#x7091 ?V) - (#x7092 ?) - (#x7093 ?S) - (#x7094 ?P) - (#x7095 ?) - (#x7096 ?W) - (#x7098 ?Q) - (#x7099 ?) - (#x709a ?Y) - (#x709f ?ϯ) - (#x70a1 ?ϳ) - (#x70a4 ?) - (#x70a9 ?϶) - (#x70ab ?) - (#x70ac ?) - (#x70ad ?) - (#x70ae ?) - (#x70af ?) - (#x70b0 ?ϲ) - (#x70b1 ?ϱ) - (#x70b3 ?) - (#x70b4 ?ϴ) - (#x70b5 ?ϵ) - (#x70b7 ?Ϯ) - (#x70b8 ?) - (#x70ba ?) - (#x70be ?ϰ) - (#x70c5 ?w) - (#x70c6 ?x) - (#x70c7 ?y) - (#x70c8 ?P) - (#x70ca ?L) - (#x70cb ?n) - (#x70cd ?v) - (#x70ce ?{) - (#x70cf ?Q) - (#x70d1 ?l) - (#x70d2 ?r) - (#x70d3 ?k) - (#x70d4 ?u) - (#x70d7 ?q) - (#x70d8 ?M) - (#x70d9 ?O) - (#x70da ?z) - (#x70dc ?j) - (#x70dd ?m) - (#x70de ?s) - (#x70e0 ?t) - (#x70e1 ?|) - (#x70e2 ?p) - (#x70e4 ?N) - (#x70ef ?m) - (#x70f0 ?N) - (#x70f3 ?P) - (#x70f4 ?L) - (#x70f6 ?X) - (#x70f7 ?J) - (#x70f8 ?W) - (#x70f9 ?i) - (#x70fa ?H) - (#x70fb ?[) - (#x70fc ?R) - (#x70fd ?l) - (#x70ff ?S) - (#x7100 ?V) - (#x7102 ?Z) - (#x7104 ?O) - (#x7106 ?T) - (#x7109 ?j) - (#x710a ?k) - (#x710b ?Y) - (#x710c ?M) - (#x710d ?I) - (#x710e ?[) - (#x7110 ?Q) - (#x7113 ?U) - (#x7117 ?K) - (#x7119 ?H) - (#x711a ?I) - (#x711b ?e) - (#x711c ?O) - (#x711e ?Y) - (#x711f ?b) - (#x7120 ?X) - (#x7121 ?L) - (#x7122 ?`) - (#x7123 ?^) - (#x7125 ?_) - (#x7126 ?J) - (#x7128 ?c) - (#x712e ?\) - (#x712f ?Z) - (#x7130 ?K) - (#x7131 ?]) - (#x7132 ?a) - (#x7136 ?M) - (#x713a ?d) - (#x7141 ?p) - (#x7142 ?w) - (#x7143 ?y) - (#x7144 ?ޡ) - (#x7146 ?) - (#x7147 ?k) - (#x7149 ?) - (#x714b ?z) - (#x714c ?) - (#x714d ?ޢ) - (#x714e ?) - (#x7150 ?}) - (#x7152 ?m) - (#x7153 ?~) - (#x7154 ?l) - (#x7156 ?) - (#x7158 ?x) - (#x7159 ?) - (#x715a ?ޣ) - (#x715c ?) - (#x715d ?q) - (#x715e ?) - (#x715f ?|) - (#x7160 ?o) - (#x7161 ?v) - (#x7162 ?r) - (#x7163 ?n) - (#x7164 ?) - (#x7165 ?) - (#x7166 ?) - (#x7167 ?) - (#x7168 ?) - (#x7169 ?) - (#x716a ?u) - (#x716c ?) - (#x716e ?N) - (#x7170 ?{) - (#x7172 ?s) - (#x7178 ?t) - (#x717b ?) - (#x717d ?) - (#x7180 ?) - (#x7181 ?) - (#x7182 ?) - (#x7184 ?) - (#x7185 ?) - (#x7186 ?) - (#x7187 ?) - (#x7189 ?) - (#x718a ?) - (#x718f ?) - (#x7190 ?) - (#x7192 ?) - (#x7194 ?) - (#x7197 ?) - (#x7199 ?) - (#x719a ?g) - (#x719b ?d) - (#x719c ?p) - (#x719d ?j) - (#x719e ?l) - (#x719f ?) - (#x71a0 ?f) - (#x71a1 ?n) - (#x71a4 ?m) - (#x71a5 ?k) - (#x71a7 ?q) - (#x71a8 ?) - (#x71a9 ?h) - (#x71aa ?o) - (#x71ac ?) - (#x71af ?c) - (#x71b0 ?e) - (#x71b1 ?) - (#x71b2 ?b) - (#x71b3 ?r) - (#x71b5 ?i) - (#x71b8 ?J) - (#x71b9 ?Q) - (#x71bc ?U) - (#x71bd ?S) - (#x71be ?K) - (#x71bf ?I) - (#x71c0 ?L) - (#x71c1 ?M) - (#x71c2 ?H) - (#x71c3 ?U) - (#x71c4 ?V) - (#x71c5 ?G) - (#x71c6 ?V) - (#x71c7 ?Q) - (#x71c8 ?O) - (#x71c9 ?L) - (#x71ca ?P) - (#x71cb ?N) - (#x71ce ?R) - (#x71cf ?R) - (#x71d0 ?M) - (#x71d2 ?N) - (#x71d4 ?O) - (#x71d5 ?P) - (#x71d6 ?K) - (#x71d8 ?T) - (#x71d9 ?S) - (#x71da ?W) - (#x71db ?X) - (#x71dc ?T) - (#x71df ?) - (#x71e0 ?) - (#x71e1 ?\) - (#x71e2 ?b) - (#x71e4 ?`) - (#x71e5 ?) - (#x71e6 ?) - (#x71e7 ?) - (#x71e8 ?^) - (#x71ec ?) - (#x71ed ?) - (#x71ee ?) - (#x71f0 ?a) - (#x71f1 ?]) - (#x71f2 ?_) - (#x71f4 ?) - (#x71f8 ?w) - (#x71f9 ?) - (#x71fb ?t) - (#x71fc ?u) - (#x71fd ?) - (#x71fe ?v) - (#x71ff ?) - (#x7201 ?) - (#x7202 ?l) - (#x7203 ?) - (#x7205 ?m) - (#x7206 ?z) - (#x7207 ?k) - (#x720a ?j) - (#x720c ?i) - (#x720d ?{) - (#x7210 ?l) - (#x7213 ?j) - (#x7214 ?k) - (#x7219 ?) - (#x721a ?) - (#x721b ?) - (#x721d ?) - (#x721e ?) - (#x721f ?) - (#x7222 ?) - (#x7223 ?) - (#x7226 ?) - (#x7227 ?) - (#x7228 ?y) - (#x7229 ?) - (#x722a ?) - (#x722c ?) - (#x722d ?) - (#x7230 ?) - (#x7235 ?) - (#x7236 ?) - (#x7238 ?) - (#x7239 ?R) - (#x723a ?) - (#x723b ?) - (#x723d ?n) - (#x723e ?) - (#x723f ?b) - (#x7241 ?Ϸ) - (#x7242 ?}) - (#x7244 ?) - (#x7246 ?) - (#x7247 ?) - (#x7248 ?) - (#x7249 ?ϸ) - (#x724a ?Ϲ) - (#x724b ?f) - (#x724c ?P) - (#x724f ?ޤ) - (#x7252 ?) - (#x7253 ?) - (#x7256 ?) - (#x7258 ?|) - (#x7259 ?) - (#x725a ?g) - (#x725b ?) - (#x725d ?) - (#x725e ?B) - (#x725f ?) - (#x7260 ?e) - (#x7261 ?d) - (#x7262 ?c) - (#x7263 ?`) - (#x7267 ?) - (#x7269 ?) - (#x726a ?[) - (#x726c ?Ϻ) - (#x726e ?Ͻ) - (#x726f ?) - (#x7270 ?ϻ) - (#x7272 ?) - (#x7273 ?ϼ) - (#x7274 ?) - (#x7276 ?Ң) - (#x7277 ?ҡ) - (#x7278 ?~) - (#x7279 ?S) - (#x727b ?]) - (#x727c ?^) - (#x727d ?o) - (#x727e ?\) - (#x727f ?_) - (#x7280 ?R) - (#x7281 ?p) - (#x7284 ?Q) - (#x7285 ?k) - (#x7286 ?j) - (#x7288 ?h) - (#x7289 ?i) - (#x728b ?l) - (#x728c ?ަ) - (#x728d ?ޥ) - (#x728e ?ީ) - (#x7290 ?ި) - (#x7291 ?ާ) - (#x7292 ?) - (#x7293 ?) - (#x7295 ?) - (#x7296 ?) - (#x7297 ?) - (#x7298 ?s) - (#x729a ?t) - (#x729b ?) - (#x729d ?Y) - (#x729e ?Z) - (#x72a1 ?r) - (#x72a2 ?}) - (#x72a3 ?q) - (#x72a4 ?p) - (#x72a5 ?n) - (#x72a6 ?o) - (#x72a7 ?) - (#x72a8 ?l) - (#x72a9 ?) - (#x72aa ?) - (#x72ac ?) - (#x72ae ?ɥ) - (#x72af ?) - (#x72b0 ?ɦ) - (#x72b4 ?C) - (#x72b5 ?D) - (#x72ba ?f) - (#x72bd ?b) - (#x72bf ?a) - (#x72c0 ?) - (#x72c1 ?e) - (#x72c2 ?g) - (#x72c3 ?c) - (#x72c4 ?f) - (#x72c5 ?g) - (#x72c6 ?d) - (#x72c9 ?_) - (#x72ca ?Ͼ) - (#x72cb ?]) - (#x72cc ?d) - (#x72ce ?) - (#x72d0 ?) - (#x72d1 ?e) - (#x72d2 ?a) - (#x72d4 ?b) - (#x72d6 ?\) - (#x72d7 ?) - (#x72d8 ?^) - (#x72d9 ?) - (#x72da ?c) - (#x72dc ?`) - (#x72df ?) - (#x72e0 ?) - (#x72e1 ?) - (#x72e3 ?) - (#x72e4 ?Ͽ) - (#x72e6 ?) - (#x72e8 ?) - (#x72e9 ?) - (#x72ea ?) - (#x72eb ?) - (#x72f3 ?Ҩ) - (#x72f4 ?ҥ) - (#x72f6 ?ҧ) - (#x72f7 ?X) - (#x72f8 ?W) - (#x72f9 ?U) - (#x72fa ?Ҥ) - (#x72fb ?ҩ) - (#x72fc ?T) - (#x72fd ?V) - (#x72fe ?Ҧ) - (#x72ff ?g) - (#x7300 ?ң) - (#x7301 ?Ҫ) - (#x7307 ?b) - (#x7308 ?f) - (#x730a ?e) - (#x730b ?n) - (#x730c ?y) - (#x730f ?h) - (#x7311 ?c) - (#x7312 ?m) - (#x7313 ?t) - (#x7316 ?s) - (#x7317 ?a) - (#x7318 ?d) - (#x7319 ?u) - (#x731b ?r) - (#x731c ?q) - (#x731d ?`) - (#x731e ?i) - (#x7322 ?p) - (#x7323 ?w) - (#x7325 ?T) - (#x7326 ?v) - (#x7327 ?s) - (#x7329 ?V) - (#x732d ?u) - (#x7330 ?o) - (#x7331 ?q) - (#x7332 ?t) - (#x7333 ?r) - (#x7334 ?U) - (#x7335 ?x) - (#x7336 ?S) - (#x7337 ?) - (#x733a ?ޭ) - (#x733b ?ެ) - (#x733c ?ު) - (#x733e ?) - (#x733f ?) - (#x7340 ?ޮ) - (#x7342 ?ޫ) - (#x7343 ?) - (#x7344 ?) - (#x7345 ?) - (#x7349 ?ް) - (#x734a ?ޯ) - (#x734c ?) - (#x734d ?) - (#x734e ?) - (#x7350 ?) - (#x7351 ?) - (#x7352 ?v) - (#x7357 ?) - (#x7358 ?u) - (#x7359 ?~) - (#x735a ?}) - (#x735b ?{) - (#x735d ?z) - (#x735e ?w) - (#x735f ?x) - (#x7360 ?y) - (#x7361 ?|) - (#x7362 ?) - (#x7365 ?_) - (#x7366 ?\) - (#x7367 ?]) - (#x7368 ?W) - (#x7369 ?[) - (#x736a ?a) - (#x736b ?`) - (#x736c ?^) - (#x736e ?d) - (#x736f ?e) - (#x7370 ?) - (#x7372 ?) - (#x7373 ?c) - (#x7375 ?y) - (#x7376 ?) - (#x7377 ?x) - (#x7378 ?~) - (#x737a ?á) - (#x737b ?m) - (#x737c ?n) - (#x737d ?m) - (#x737e ?) - (#x737f ?) - (#x7380 ?z) - (#x7381 ?) - (#x7382 ?) - (#x7383 ?) - (#x7384 ?) - (#x7385 ?) - (#x7386 ?Y) - (#x7387 ?v) - (#x7388 ?j) - (#x7389 ?) - (#x738a ?ɧ) - (#x738b ?) - (#x738e ?E) - (#x7392 ?l) - (#x7393 ?j) - (#x7394 ?k) - (#x7395 ?h) - (#x7396 ?h) - (#x7397 ?i) - (#x739d ?m) - (#x739f ?) - (#x73a0 ?k) - (#x73a1 ?g) - (#x73a2 ?j) - (#x73a4 ?f) - (#x73a5 ?) - (#x73a6 ?i) - (#x73a8 ?) - (#x73a9 ?) - (#x73ab ?) - (#x73ac ?l) - (#x73ad ?h) - (#x73b2 ?) - (#x73b3 ?) - (#x73b4 ?) - (#x73b5 ?) - (#x73b6 ?) - (#x73b7 ?) - (#x73b8 ?) - (#x73b9 ?) - (#x73bb ?) - (#x73bc ?ү) - (#x73be ?) - (#x73bf ?) - (#x73c0 ?) - (#x73c2 ?) - (#x73c3 ?) - (#x73c5 ?) - (#x73c6 ?) - (#x73c7 ?) - (#x73c8 ?) - (#x73ca ?) - (#x73cb ?) - (#x73cc ?) - (#x73cd ?) - (#x73d2 ?Ҵ) - (#x73d3 ?ҫ) - (#x73d4 ?Ҷ) - (#x73d6 ?Ү) - (#x73d7 ?ҹ) - (#x73d8 ?Һ) - (#x73d9 ?Ҭ) - (#x73da ?Ҹ) - (#x73db ?ҵ) - (#x73dc ?ҳ) - (#x73dd ?ҷ) - (#x73de ?_) - (#x73e0 ?]) - (#x73e3 ?ұ) - (#x73e5 ?ҭ) - (#x73e7 ?Ұ) - (#x73e8 ?һ) - (#x73e9 ?Ҳ) - (#x73ea ?^) - (#x73eb ?) - (#x73ed ?Z) - (#x73ee ?\) - (#x73f4 ?x) - (#x73f5 ?m) - (#x73f6 ?k) - (#x73f8 ?l) - (#x73fa ?s) - (#x73fc ?t) - (#x73fd ?p) - (#x73fe ?{) - (#x73ff ?u) - (#x7400 ?r) - (#x7401 ?o) - (#x7403 ?y) - (#x7404 ?n) - (#x7405 ?w) - (#x7406 ?z) - (#x7407 ?q) - (#x7408 ?y) - (#x7409 ?[) - (#x740a ?x) - (#x740b ?w) - (#x740c ?v) - (#x740d ?|) - (#x7416 ?~) - (#x741a ?ڡ) - (#x741b ?`) - (#x741d ?ڧ) - (#x7420 ?ک) - (#x7421 ?ڢ) - (#x7422 ?Z) - (#x7423 ?ڦ) - (#x7424 ?ڥ) - (#x7425 ?[) - (#x7426 ?a) - (#x7428 ?b) - (#x7429 ?ڨ) - (#x742a ?X) - (#x742b ?}) - (#x742c ?{) - (#x742d ?ڣ) - (#x742e ?z) - (#x742f ?_) - (#x7430 ?|) - (#x7431 ?ڤ) - (#x7432 ?ڪ) - (#x7433 ?Y) - (#x7434 ?^) - (#x7435 ?\) - (#x7436 ?]) - (#x743a ?W) - (#x743f ?) - (#x7440 ?) - (#x7441 ?) - (#x7442 ?) - (#x7444 ?ޱ) - (#x7446 ?) - (#x744a ?) - (#x744b ?) - (#x744d ?) - (#x744e ?) - (#x744f ?) - (#x7450 ?) - (#x7451 ?) - (#x7452 ?) - (#x7454 ?) - (#x7455 ?) - (#x7457 ?) - (#x7459 ?) - (#x745a ?) - (#x745b ?) - (#x745c ?) - (#x745e ?) - (#x745f ?) - (#x7462 ?) - (#x7463 ?) - (#x7464 ?) - (#x7467 ?) - (#x7469 ?) - (#x746a ?) - (#x746d ?) - (#x746e ?) - (#x746f ?) - (#x7470 ?) - (#x7471 ?) - (#x7472 ?) - (#x7473 ?) - (#x7475 ?) - (#x7479 ?) - (#x747c ?) - (#x747d ?) - (#x747e ?@) - (#x747f ?b) - (#x7480 ?A) - (#x7481 ?) - (#x7483 ?) - (#x7485 ?) - (#x7486 ?) - (#x7487 ?) - (#x7488 ?) - (#x7489 ?) - (#x748a ?) - (#x748b ?) - (#x7490 ?i) - (#x7492 ?f) - (#x7494 ?e) - (#x7495 ?g) - (#x7497 ?f) - (#x7498 ?Z) - (#x749a ?c) - (#x749c ?X) - (#x749e ?\) - (#x749f ?[) - (#x74a0 ?d) - (#x74a1 ?h) - (#x74a3 ?Y) - (#x74a5 ?m) - (#x74a6 ?) - (#x74a7 ?z) - (#x74a8 ?) - (#x74a9 ?) - (#x74aa ?j) - (#x74ab ?h) - (#x74ad ?k) - (#x74af ?n) - (#x74b0 ?) - (#x74b1 ?l) - (#x74b2 ?g) - (#x74b5 ?B) - (#x74b6 ?E) - (#x74b7 ?u) - (#x74b8 ?@) - (#x74ba ?o) - (#x74bb ?F) - (#x74bd ?â) - (#x74be ?D) - (#x74bf ?{) - (#x74c0 ?A) - (#x74c1 ?C) - (#x74c2 ?G) - (#x74c3 ?v) - (#x74c5 ?t) - (#x74ca ?ã) - (#x74cb ?s) - (#x74cf ?n) - (#x74d4 ?) - (#x74d5 ?) - (#x74d6 ?) - (#x74d7 ?) - (#x74d8 ?) - (#x74d9 ?) - (#x74da ?) - (#x74db ?) - (#x74dc ?) - (#x74dd ?n) - (#x74de ?Ҽ) - (#x74df ?ҽ) - (#x74e0 ?}) - (#x74e1 ?) - (#x74e2 ?]) - (#x74e3 ?ä) - (#x74e4 ?{) - (#x74e5 ?) - (#x74e6 ?) - (#x74e8 ?o) - (#x74e9 ?`) - (#x74ec ?) - (#x74ee ?) - (#x74f4 ?Ҿ) - (#x74f5 ?ҿ) - (#x74f6 ?~) - (#x74f7 ?) - (#x74fb ?ګ) - (#x74fd ?) - (#x74fe ?) - (#x74ff ?) - (#x7500 ?) - (#x7502 ?) - (#x7503 ?) - (#x7504 ?) - (#x7507 ?) - (#x7508 ?) - (#x750b ?i) - (#x750c ?^) - (#x750d ?_) - (#x750f ?r) - (#x7510 ?o) - (#x7511 ?p) - (#x7512 ?q) - (#x7513 ?I) - (#x7514 ?H) - (#x7515 ?|) - (#x7516 ?w) - (#x7517 ?) - (#x7518 ?) - (#x751a ?) - (#x751c ?) - (#x751d ?) - (#x751f ?) - (#x7521 ?) - (#x7522 ?) - (#x7525 ?c) - (#x7526 ?d) - (#x7528 ?) - (#x7529 ?) - (#x752a ?F) - (#x752b ?j) - (#x752c ?i) - (#x752d ?) - (#x752e ?) - (#x752f ?ڬ) - (#x7530 ?) - (#x7531 ?) - (#x7532 ?) - (#x7533 ?) - (#x7537 ?k) - (#x7538 ?l) - (#x7539 ?n) - (#x753a ?m) - (#x753d ?) - (#x753e ?r) - (#x753f ?p) - (#x7540 ?q) - (#x7547 ?) - (#x7548 ?) - (#x754b ?) - (#x754c ?) - (#x754e ?) - (#x754f ?) - (#x7554 ?`) - (#x7559 ?d) - (#x755a ?c) - (#x755b ?) - (#x755c ?b) - (#x755d ?a) - (#x755f ?) - (#x7562 ?) - (#x7563 ?{) - (#x7564 ?z) - (#x7565 ?) - (#x7566 ?) - (#x756a ?f) - (#x756b ?e) - (#x756c ?ڮ) - (#x756f ?ڭ) - (#x7570 ?) - (#x7576 ?) - (#x7577 ?) - (#x7578 ?) - (#x7579 ?) - (#x757d ?) - (#x757e ?) - (#x757f ?B) - (#x7580 ?j) - (#x7584 ?s) - (#x7586 ?æ) - (#x7587 ?å) - (#x758a ?|) - (#x758b ?) - (#x758c ?s) - (#x758f ?) - (#x7590 ?) - (#x7591 ?) - (#x7594 ?o) - (#x7595 ?p) - (#x7598 ?t) - (#x7599 ?) - (#x759a ?) - (#x759d ?) - (#x75a2 ?) - (#x75a3 ?) - (#x75a4 ?) - (#x75a5 ?) - (#x75a7 ?) - (#x75aa ?) - (#x75ab ?) - (#x75b0 ?) - (#x75b2 ?h) - (#x75b3 ?i) - (#x75b5 ?) - (#x75b6 ?) - (#x75b8 ?n) - (#x75b9 ?l) - (#x75ba ?) - (#x75bb ?) - (#x75bc ?k) - (#x75bd ?j) - (#x75be ?e) - (#x75bf ?) - (#x75c0 ?) - (#x75c1 ?) - (#x75c2 ?m) - (#x75c4 ?) - (#x75c5 ?f) - (#x75c7 ?g) - (#x75ca ?) - (#x75cb ?֡) - (#x75cc ?֢) - (#x75cd ?) - (#x75ce ?|) - (#x75cf ?~) - (#x75d0 ?֤) - (#x75d1 ?֣) - (#x75d2 ?}) - (#x75d4 ?) - (#x75d5 ?) - (#x75d7 ?ڶ) - (#x75d8 ?k) - (#x75d9 ?j) - (#x75da ?ڰ) - (#x75db ?h) - (#x75dd ?ڳ) - (#x75de ?l) - (#x75df ?ڴ) - (#x75e0 ?m) - (#x75e1 ?ڱ) - (#x75e2 ?g) - (#x75e3 ?i) - (#x75e4 ?ڵ) - (#x75e6 ?ڲ) - (#x75e7 ?گ) - (#x75ed ?) - (#x75ef ?) - (#x75f0 ?) - (#x75f1 ?) - (#x75f2 ?) - (#x75f3 ?) - (#x75f4 ?) - (#x75f5 ?) - (#x75f6 ?) - (#x75f7 ?) - (#x75f8 ?) - (#x75f9 ?) - (#x75fa ?) - (#x75fb ?) - (#x75fc ?) - (#x75fd ?) - (#x75fe ?) - (#x75ff ?) - (#x7600 ?) - (#x7601 ?) - (#x7603 ?) - (#x7608 ?) - (#x7609 ?) - (#x760a ?) - (#x760b ?) - (#x760c ?) - (#x760d ?) - (#x760f ?) - (#x7610 ?) - (#x7611 ?) - (#x7613 ?) - (#x7614 ?) - (#x7615 ?) - (#x7616 ?) - (#x7619 ?) - (#x761a ?) - (#x761b ?) - (#x761c ?) - (#x761d ?) - (#x761e ?) - (#x761f ?E) - (#x7620 ?C) - (#x7621 ?H) - (#x7622 ?I) - (#x7623 ?) - (#x7624 ?F) - (#x7625 ?) - (#x7626 ?G) - (#x7627 ?) - (#x7628 ?) - (#x7629 ?D) - (#x762d ?l) - (#x762f ?k) - (#x7630 ?s) - (#x7631 ?m) - (#x7632 ?r) - (#x7633 ?o) - (#x7634 ?`) - (#x7635 ?q) - (#x7638 ?a) - (#x763a ?b) - (#x763c ?p) - (#x763d ?n) - (#x7642 ?) - (#x7643 ?t) - (#x7646 ?) - (#x7647 ?w) - (#x7648 ?u) - (#x7649 ?v) - (#x764c ?) - (#x7650 ?M) - (#x7652 ?¡) - (#x7653 ?N) - (#x7656 ?}) - (#x7657 ?O) - (#x7658 ?~) - (#x7659 ?L) - (#x765a ?P) - (#x765c ?J) - (#x765f ?ç) - (#x7660 ?x) - (#x7661 ?è) - (#x7662 ?o) - (#x7664 ?K) - (#x7665 ?p) - (#x7669 ?) - (#x766a ?) - (#x766c ?~) - (#x766d ?) - (#x766e ?}) - (#x7670 ?) - (#x7671 ?) - (#x7672 ?) - (#x7675 ?) - (#x7678 ?) - (#x7679 ?) - (#x767b ?n) - (#x767c ?o) - (#x767d ?) - (#x767e ?) - (#x767f ?G) - (#x7681 ?q) - (#x7682 ?m) - (#x7684 ?) - (#x7686 ?) - (#x7687 ?) - (#x7688 ?) - (#x7689 ?֦) - (#x768a ?) - (#x768b ?o) - (#x768e ?) - (#x768f ?֥) - (#x7692 ?ڸ) - (#x7693 ?q) - (#x7695 ?ڷ) - (#x7696 ?p) - (#x7699 ?) - (#x769a ?J) - (#x769b ?) - (#x769c ?) - (#x769d ?) - (#x769e ?) - (#x76a4 ?x) - (#x76a6 ?Q) - (#x76aa ?q) - (#x76ab ?p) - (#x76ad ?) - (#x76ae ?) - (#x76af ?u) - (#x76b0 ?p) - (#x76b4 ?r) - (#x76b5 ?) - (#x76b8 ?) - (#x76ba ?K) - (#x76bb ?t) - (#x76bd ?R) - (#x76be ?r) - (#x76bf ?) - (#x76c2 ?) - (#x76c3 ?) - (#x76c4 ?) - (#x76c5 ?) - (#x76c6 ?) - (#x76c8 ?) - (#x76c9 ?) - (#x76ca ?q) - (#x76cd ?r) - (#x76ce ?s) - (#x76d2 ?) - (#x76d3 ?֧) - (#x76d4 ?) - (#x76da ?ڹ) - (#x76db ?) - (#x76dc ?s) - (#x76dd ?) - (#x76de ?) - (#x76df ?) - (#x76e1 ?) - (#x76e3 ?) - (#x76e4 ?L) - (#x76e5 ?d) - (#x76e6 ?u) - (#x76e7 ?c) - (#x76e9 ?y) - (#x76ea ?) - (#x76ec ?S) - (#x76ed ?s) - (#x76ee ?) - (#x76ef ?n) - (#x76f0 ?x) - (#x76f1 ?w) - (#x76f2 ?) - (#x76f3 ?v) - (#x76f4 ?) - (#x76f5 ?y) - (#x76f7 ?) - (#x76f8 ?) - (#x76f9 ?) - (#x76fa ?) - (#x76fb ?) - (#x76fc ?) - (#x76fe ?) - (#x7701 ?) - (#x7703 ?) - (#x7704 ?) - (#x7705 ?) - (#x7707 ?) - (#x7708 ?) - (#x7709 ?) - (#x770a ?) - (#x770b ?) - (#x7710 ?) - (#x7711 ?) - (#x7712 ?) - (#x7713 ?) - (#x7715 ?) - (#x7719 ?) - (#x771a ?) - (#x771b ?) - (#x771d ?) - (#x771f ?u) - (#x7720 ?v) - (#x7722 ?) - (#x7723 ?) - (#x7725 ?ְ) - (#x7727 ?) - (#x7728 ?w) - (#x7729 ?t) - (#x772d ?֪) - (#x772f ?֩) - (#x7731 ?֫) - (#x7732 ?֬) - (#x7733 ?֮) - (#x7734 ?֭) - (#x7735 ?ֲ) - (#x7736 ?) - (#x7737 ?) - (#x7738 ?) - (#x7739 ?֨) - (#x773a ?) - (#x773b ?ֱ) - (#x773c ?) - (#x773d ?֯) - (#x773e ?) - (#x7744 ?ڼ) - (#x7745 ?ھ) - (#x7746 ?ں) - (#x7747 ?ڻ) - (#x774a ?ڿ) - (#x774b ?) - (#x774c ?) - (#x774d ?ڽ) - (#x774e ?) - (#x774f ?t) - (#x7752 ?) - (#x7754 ?) - (#x7755 ?) - (#x7756 ?) - (#x7759 ?) - (#x775a ?) - (#x775b ?) - (#x775c ?C) - (#x775e ?) - (#x775f ?) - (#x7760 ?) - (#x7761 ?) - (#x7762 ?F) - (#x7763 ?) - (#x7765 ?D) - (#x7766 ?) - (#x7767 ?) - (#x7768 ?E) - (#x7769 ?) - (#x776a ?A) - (#x776b ?) - (#x776c ?B) - (#x776d ?) - (#x776e ?) - (#x776f ?) - (#x7779 ?@) - (#x777c ?) - (#x777d ?) - (#x777e ?) - (#x777f ?) - (#x7780 ?) - (#x7781 ?) - (#x7782 ?) - (#x7783 ?) - (#x7784 ?) - (#x7785 ?) - (#x7787 ?N) - (#x7788 ?) - (#x7789 ?) - (#x778b ?Q) - (#x778c ?O) - (#x778d ?) - (#x778e ?M) - (#x778f ?) - (#x7791 ?P) - (#x7795 ?}) - (#x7797 ?) - (#x7799 ?~) - (#x779a ?v) - (#x779b ?z) - (#x779c ?y) - (#x779d ?w) - (#x779e ?f) - (#x779f ?g) - (#x77a0 ?e) - (#x77a1 ?x) - (#x77a2 ?{) - (#x77a3 ?|) - (#x77a5 ?h) - (#x77a7 ?@) - (#x77a8 ?) - (#x77aa ?) - (#x77ab ?{) - (#x77ac ?) - (#x77ad ?A) - (#x77b0 ?) - (#x77b1 ?) - (#x77b2 ?|) - (#x77b3 ?) - (#x77b4 ?) - (#x77b5 ?z) - (#x77b6 ?~) - (#x77b7 ?}) - (#x77ba ?U) - (#x77bb ?¤) - (#x77bc ?¥) - (#x77bd ?¢) - (#x77bf ?£) - (#x77c2 ?T) - (#x77c4 ?{) - (#x77c7 ?é) - (#x77c9 ?y) - (#x77ca ?z) - (#x77cc ?t) - (#x77cd ?w) - (#x77ce ?u) - (#x77cf ?v) - (#x77d0 ?) - (#x77d3 ?) - (#x77d4 ?) - (#x77d5 ?) - (#x77d7 ?) - (#x77d8 ?) - (#x77d9 ?) - (#x77da ?f) - (#x77db ?) - (#x77dc ?) - (#x77de ?) - (#x77e0 ?) - (#x77e2 ?) - (#x77e3 ?o) - (#x77e5 ?) - (#x77e7 ?) - (#x77e8 ?) - (#x77e9 ?x) - (#x77ec ?) - (#x77ed ?u) - (#x77ee ?G) - (#x77ef ?B) - (#x77f0 ?) - (#x77f1 ?|) - (#x77f2 ?x) - (#x77f3 ?) - (#x77f7 ?͡) - (#x77f8 ?z) - (#x77f9 ?|) - (#x77fa ?~) - (#x77fb ?}) - (#x77fc ?{) - (#x77fd ?) - (#x7802 ?) - (#x7803 ?) - (#x7805 ?) - (#x7806 ?) - (#x7809 ?) - (#x780c ?) - (#x780d ?) - (#x780e ?) - (#x780f ?) - (#x7810 ?) - (#x7811 ?) - (#x7812 ?) - (#x7813 ?) - (#x7814 ?) - (#x781d ?|) - (#x781f ?) - (#x7820 ?) - (#x7821 ?) - (#x7822 ?) - (#x7823 ?) - (#x7825 ?) - (#x7826 ?ֹ) - (#x7827 ?z) - (#x7828 ?) - (#x7829 ?) - (#x782a ?) - (#x782b ?) - (#x782c ?) - (#x782d ?) - (#x782e ?) - (#x782f ?) - (#x7830 ?y) - (#x7831 ?) - (#x7832 ?) - (#x7833 ?) - (#x7834 ?}) - (#x7835 ?) - (#x7837 ?~) - (#x7838 ?{) - (#x7843 ?) - (#x7845 ?ֺ) - (#x7848 ?ֳ) - (#x7849 ?ֵ) - (#x784a ?ַ) - (#x784c ?ָ) - (#x784d ?ֶ) - (#x784e ?) - (#x7850 ?ֻ) - (#x7852 ?ִ) - (#x785c ?) - (#x785d ?v) - (#x785e ?) - (#x7860 ?) - (#x7862 ?) - (#x7864 ?) - (#x7865 ?) - (#x7868 ?) - (#x7869 ?) - (#x786a ?) - (#x786b ?) - (#x786c ?w) - (#x786d ?) - (#x786e ?) - (#x786f ?x) - (#x7870 ?) - (#x7871 ?) - (#x7879 ?) - (#x787b ?) - (#x787c ?N) - (#x787e ?) - (#x787f ?Q) - (#x7880 ?) - (#x7881 ?) - (#x7883 ?) - (#x7884 ?) - (#x7885 ?) - (#x7886 ?) - (#x7887 ?) - (#x7889 ?M) - (#x788c ?L) - (#x788e ?H) - (#x788f ?) - (#x7891 ?O) - (#x7893 ?P) - (#x7894 ?) - (#x7895 ?) - (#x7896 ?) - (#x7897 ?J) - (#x7898 ?K) - (#x7899 ?) - (#x789a ?) - (#x789e ?) - (#x789f ?) - (#x78a0 ?) - (#x78a1 ?) - (#x78a2 ?) - (#x78a3 ?) - (#x78a4 ?) - (#x78a5 ?) - (#x78a7 ?) - (#x78a8 ?) - (#x78a9 ?) - (#x78aa ?) - (#x78ab ?) - (#x78ac ?) - (#x78ad ?) - (#x78b0 ?I) - (#x78b2 ?) - (#x78b3 ?) - (#x78b4 ?) - (#x78ba ?T) - (#x78bb ?) - (#x78bc ?X) - (#x78be ?V) - (#x78c1 ?) - (#x78c3 ?) - (#x78c4 ?) - (#x78c5 ?S) - (#x78c8 ?) - (#x78c9 ?) - (#x78ca ?U) - (#x78cb ?R) - (#x78cc ?) - (#x78cd ?) - (#x78ce ?) - (#x78cf ?) - (#x78d0 ?Y) - (#x78d1 ?) - (#x78d4 ?) - (#x78d5 ?W) - (#x78da ?j) - (#x78db ?) - (#x78dd ?) - (#x78de ?) - (#x78df ?) - (#x78e0 ?) - (#x78e1 ?) - (#x78e2 ?) - (#x78e3 ?) - (#x78e5 ?) - (#x78e7 ?l) - (#x78e8 ?i) - (#x78e9 ?) - (#x78ea ?) - (#x78ec ?k) - (#x78ed ?) - (#x78ef ?F) - (#x78f2 ?) - (#x78f3 ?) - (#x78f4 ?E) - (#x78f7 ?C) - (#x78f9 ?) - (#x78fa ?D) - (#x78fb ?) - (#x78fc ?) - (#x78fd ?) - (#x78fe ?) - (#x78ff ?V) - (#x7901 ?G) - (#x7902 ?) - (#x7904 ?) - (#x7905 ?) - (#x7909 ?Z) - (#x790c ?W) - (#x790e ?¦) - (#x7910 ?[) - (#x7911 ?]) - (#x7912 ?\) - (#x7913 ?X) - (#x7914 ?Y) - (#x7917 ?) - (#x7919 ?ê) - (#x791b ?~) - (#x791c ?) - (#x791d ?}) - (#x791e ?) - (#x7921 ?) - (#x7923 ?z) - (#x7924 ?}) - (#x7925 ?y) - (#x7926 ?q) - (#x7927 ?{) - (#x7928 ?|) - (#x7929 ?~) - (#x792a ?r) - (#x792b ?t) - (#x792c ?s) - (#x792d ?) - (#x792f ?) - (#x7931 ?) - (#x7935 ?) - (#x7938 ?) - (#x7939 ?) - (#x793a ?) - (#x793d ?r) - (#x793e ?) - (#x793f ?ͣ) - (#x7940 ?) - (#x7941 ?) - (#x7942 ?͢) - (#x7944 ?) - (#x7945 ?) - (#x7946 ?) - (#x7947 ?) - (#x7948 ?) - (#x7949 ?) - (#x794a ?) - (#x794b ?) - (#x794c ?) - (#x794f ?) - (#x7950 ?) - (#x7951 ?) - (#x7952 ?) - (#x7953 ?) - (#x7954 ?) - (#x7955 ?) - (#x7956 ?) - (#x7957 ?) - (#x795a ?) - (#x795b ?) - (#x795c ?) - (#x795d ?) - (#x795e ?) - (#x795f ?) - (#x7960 ?) - (#x7961 ?) - (#x7963 ?) - (#x7964 ?ּ) - (#x7965 ?) - (#x7967 ?ֽ) - (#x7968 ?) - (#x7969 ?־) - (#x796a ?ֿ) - (#x796b ?) - (#x796d ?) - (#x7970 ?) - (#x7972 ?) - (#x7973 ?) - (#x7974 ?) - (#x7979 ?) - (#x797a ?R) - (#x797c ?) - (#x797d ?) - (#x797f ?S) - (#x7981 ?T) - (#x7982 ?) - (#x7988 ?A) - (#x798a ?) - (#x798b ?) - (#x798d ?) - (#x798e ?) - (#x798f ?) - (#x7990 ?C) - (#x7992 ?B) - (#x7993 ?) - (#x7994 ?) - (#x7995 ?) - (#x7996 ?) - (#x7997 ?@) - (#x7998 ?) - (#x799a ?) - (#x799b ?) - (#x799c ?) - (#x79a0 ?) - (#x79a1 ?) - (#x79a2 ?) - (#x79a4 ?) - (#x79a6 ?m) - (#x79a7 ?H) - (#x79a8 ?) - (#x79aa ?I) - (#x79ab ?) - (#x79ac ?_) - (#x79ad ?^) - (#x79ae ?§) - (#x79b0 ?) - (#x79b1 ?ë) - (#x79b2 ?) - (#x79b3 ?š) - (#x79b4 ?) - (#x79b6 ?) - (#x79b7 ?) - (#x79b8 ?ɨ) - (#x79b9 ?) - (#x79ba ?) - (#x79bb ?) - (#x79bd ?V) - (#x79be ?) - (#x79bf ?r) - (#x79c0 ?q) - (#x79c1 ?p) - (#x79c5 ?ͤ) - (#x79c8 ?) - (#x79c9 ?) - (#x79cb ?) - (#x79cd ?) - (#x79ce ?) - (#x79cf ?) - (#x79d1 ?) - (#x79d2 ?) - (#x79d5 ?) - (#x79d6 ?) - (#x79d8 ?) - (#x79dc ?) - (#x79dd ?) - (#x79de ?) - (#x79df ?) - (#x79e0 ?) - (#x79e3 ?) - (#x79e4 ?) - (#x79e6 ?) - (#x79e7 ?) - (#x79e9 ?) - (#x79ea ?) - (#x79eb ?) - (#x79ec ?) - (#x79ed ?) - (#x79ee ?) - (#x79f6 ?) - (#x79f7 ?) - (#x79f8 ?) - (#x79fa ?) - (#x79fb ?) - (#x7a00 ?}) - (#x7a02 ?) - (#x7a03 ?) - (#x7a04 ?) - (#x7a05 ?|) - (#x7a08 ?z) - (#x7a0a ?) - (#x7a0b ?{) - (#x7a0c ?) - (#x7a0d ?y) - (#x7a10 ?A) - (#x7a11 ?) - (#x7a12 ?) - (#x7a13 ?) - (#x7a14 ?Z) - (#x7a15 ?) - (#x7a17 ?) - (#x7a18 ?) - (#x7a19 ?) - (#x7a1a ?X) - (#x7a1b ?@) - (#x7a1c ?W) - (#x7a1e ?\) - (#x7a1f ?[) - (#x7a20 ?Y) - (#x7a22 ?) - (#x7a26 ?I) - (#x7a28 ?H) - (#x7a2b ?D) - (#x7a2e ?) - (#x7a2f ?G) - (#x7a30 ?F) - (#x7a31 ?) - (#x7a37 ?^) - (#x7a39 ?) - (#x7a3b ?_) - (#x7a3c ?[) - (#x7a3d ?]) - (#x7a3f ?Z) - (#x7a40 ?\) - (#x7a44 ?) - (#x7a46 ?p) - (#x7a47 ?) - (#x7a48 ?) - (#x7a4a ?E) - (#x7a4b ?r) - (#x7a4c ?q) - (#x7a4d ?n) - (#x7a4e ?o) - (#x7a54 ?) - (#x7a56 ?) - (#x7a57 ?J) - (#x7a58 ?) - (#x7a5a ?) - (#x7a5b ?) - (#x7a5c ?) - (#x7a5f ?`) - (#x7a60 ?ª) - (#x7a61 ?¨) - (#x7a62 ?©) - (#x7a67 ?) - (#x7a68 ?) - (#x7a69 ?í) - (#x7a6b ?ì) - (#x7a6c ?) - (#x7a6d ?) - (#x7a6e ?) - (#x7a70 ?) - (#x7a71 ?) - (#x7a74 ?) - (#x7a75 ?H) - (#x7a76 ?s) - (#x7a78 ?ͥ) - (#x7a79 ?) - (#x7a7a ?) - (#x7a7b ?ͦ) - (#x7a7e ?@) - (#x7a7f ?) - (#x7a80 ?) - (#x7a81 ?) - (#x7a84 ?) - (#x7a85 ?) - (#x7a86 ?) - (#x7a87 ?) - (#x7a88 ?) - (#x7a89 ?) - (#x7a8a ?) - (#x7a8b ?) - (#x7a8c ?) - (#x7a8f ?) - (#x7a90 ?) - (#x7a92 ?) - (#x7a94 ?) - (#x7a95 ?) - (#x7a96 ?) - (#x7a97 ?) - (#x7a98 ?~) - (#x7a99 ?) - (#x7a9e ?D) - (#x7a9f ?]) - (#x7aa0 ?^) - (#x7aa2 ?C) - (#x7aa3 ?B) - (#x7aa8 ?J) - (#x7aa9 ?) - (#x7aaa ?) - (#x7aab ?K) - (#x7aac ?L) - (#x7aae ?a) - (#x7aaf ?`) - (#x7ab1 ?) - (#x7ab2 ?) - (#x7ab3 ?) - (#x7ab4 ?) - (#x7ab5 ?) - (#x7ab6 ?) - (#x7ab7 ?) - (#x7ab8 ?) - (#x7aba ?s) - (#x7abe ?) - (#x7abf ?K) - (#x7ac0 ?) - (#x7ac1 ?) - (#x7ac4 ?«) - (#x7ac5 ?¬) - (#x7ac7 ?u) - (#x7aca ?) - (#x7acb ?) - (#x7ad1 ?A) - (#x7ad8 ?) - (#x7ad9 ?) - (#x7adf ?) - (#x7ae0 ?) - (#x7ae3 ?) - (#x7ae4 ?) - (#x7ae5 ?) - (#x7ae6 ?) - (#x7aeb ?E) - (#x7aed ?) - (#x7aee ?M) - (#x7aef ?) - (#x7af6 ?v) - (#x7af7 ?) - (#x7af9 ?) - (#x7afa ?) - (#x7afb ?ͧ) - (#x7afd ?) - (#x7aff ?) - (#x7b00 ?B) - (#x7b01 ?C) - (#x7b04 ?@) - (#x7b05 ?B) - (#x7b06 ?) - (#x7b08 ?D) - (#x7b09 ?G) - (#x7b0a ?E) - (#x7b0e ?F) - (#x7b0f ?C) - (#x7b10 ?) - (#x7b11 ?) - (#x7b12 ?H) - (#x7b13 ?A) - (#x7b18 ?) - (#x7b19 ?) - (#x7b1a ?) - (#x7b1b ?) - (#x7b1d ?) - (#x7b1e ?) - (#x7b20 ?) - (#x7b22 ?) - (#x7b23 ?) - (#x7b24 ?) - (#x7b25 ?) - (#x7b26 ?) - (#x7b28 ?) - (#x7b2a ?) - (#x7b2b ?) - (#x7b2c ?) - (#x7b2d ?) - (#x7b2e ?) - (#x7b2f ?) - (#x7b30 ?) - (#x7b31 ?) - (#x7b32 ?) - (#x7b33 ?) - (#x7b34 ?) - (#x7b35 ?) - (#x7b38 ?) - (#x7b3b ?) - (#x7b40 ?) - (#x7b44 ?) - (#x7b45 ?) - (#x7b46 ?) - (#x7b47 ?) - (#x7b48 ?) - (#x7b49 ?) - (#x7b4a ?) - (#x7b4b ?) - (#x7b4c ?) - (#x7b4d ?) - (#x7b4e ?) - (#x7b4f ?) - (#x7b50 ?) - (#x7b51 ?) - (#x7b52 ?) - (#x7b54 ?) - (#x7b56 ?) - (#x7b58 ?) - (#x7b60 ?a) - (#x7b61 ?P) - (#x7b63 ?S) - (#x7b64 ?G) - (#x7b65 ?L) - (#x7b66 ?F) - (#x7b67 ?c) - (#x7b69 ?J) - (#x7b6d ?H) - (#x7b6e ?b) - (#x7b70 ?O) - (#x7b71 ?N) - (#x7b72 ?K) - (#x7b73 ?M) - (#x7b74 ?I) - (#x7b75 ?) - (#x7b76 ?R) - (#x7b77 ?_) - (#x7b78 ?Q) - (#x7b82 ?]) - (#x7b84 ?) - (#x7b85 ?X) - (#x7b87 ?) - (#x7b88 ?N) - (#x7b8a ?P) - (#x7b8b ?) - (#x7b8c ?U) - (#x7b8d ?T) - (#x7b8e ?W) - (#x7b8f ?) - (#x7b90 ?R) - (#x7b91 ?Q) - (#x7b94 ?) - (#x7b95 ?) - (#x7b96 ?S) - (#x7b97 ?) - (#x7b98 ?Y) - (#x7b99 ?[) - (#x7b9b ?V) - (#x7b9c ?O) - (#x7b9d ?) - (#x7ba0 ?i) - (#x7ba1 ?) - (#x7ba4 ?\) - (#x7bac ?) - (#x7bad ?b) - (#x7baf ?) - (#x7bb1 ?c) - (#x7bb4 ?e) - (#x7bb5 ?) - (#x7bb7 ?) - (#x7bb8 ?) - (#x7bb9 ?) - (#x7bbe ?) - (#x7bc0 ?`) - (#x7bc1 ?h) - (#x7bc4 ?d) - (#x7bc6 ?f) - (#x7bc7 ?g) - (#x7bc9 ?v) - (#x7bca ?) - (#x7bcb ?) - (#x7bcc ?j) - (#x7bce ?) - (#x7bd4 ?) - (#x7bd5 ?) - (#x7bd8 ?) - (#x7bd9 ?t) - (#x7bda ?) - (#x7bdb ?x) - (#x7bdc ?) - (#x7bdd ?) - (#x7bde ?) - (#x7bdf ?) - (#x7be0 ?Q) - (#x7be1 ?y) - (#x7be2 ?) - (#x7be3 ?) - (#x7be4 ?w) - (#x7be5 ?) - (#x7be6 ?{) - (#x7be7 ?) - (#x7be8 ?) - (#x7be9 ?z) - (#x7bea ?) - (#x7beb ?) - (#x7bf0 ?) - (#x7bf1 ?) - (#x7bf2 ?) - (#x7bf3 ?) - (#x7bf4 ?) - (#x7bf7 ?O) - (#x7bf8 ?) - (#x7bf9 ?) - (#x7bfb ?) - (#x7bfd ?) - (#x7bfe ?N) - (#x7bff ?) - (#x7c00 ?) - (#x7c01 ?) - (#x7c02 ?) - (#x7c03 ?) - (#x7c05 ?) - (#x7c06 ?) - (#x7c07 ?L) - (#x7c09 ?) - (#x7c0a ?) - (#x7c0b ?) - (#x7c0c ?P) - (#x7c0d ?M) - (#x7c0e ?) - (#x7c0f ?) - (#x7c10 ?) - (#x7c11 ?u) - (#x7c19 ?c) - (#x7c1c ?a) - (#x7c1d ?g) - (#x7c1e ?°) - (#x7c1f ?e) - (#x7c20 ?d) - (#x7c21 ?²) - (#x7c22 ?j) - (#x7c23 ?±) - (#x7c25 ?k) - (#x7c26 ?h) - (#x7c27 ?®) - (#x7c28 ?i) - (#x7c29 ?b) - (#x7c2a ?¯) - (#x7c2b ?) - (#x7c2c ?) - (#x7c2d ?f) - (#x7c30 ?l) - (#x7c33 ?) - (#x7c37 ?ò) - (#x7c38 ?ð) - (#x7c39 ?) - (#x7c3b ?) - (#x7c3c ?) - (#x7c3d ?ñ) - (#x7c3e ?î) - (#x7c3f ?ï) - (#x7c40 ?ó) - (#x7c43 ?x) - (#x7c45 ?) - (#x7c47 ?) - (#x7c48 ?) - (#x7c49 ?) - (#x7c4a ?) - (#x7c4c ?w) - (#x7c4d ?y) - (#x7c50 ?) - (#x7c53 ?) - (#x7c54 ?) - (#x7c57 ?) - (#x7c59 ?) - (#x7c5a ?) - (#x7c5b ?) - (#x7c5c ?) - (#x7c5f ?ţ) - (#x7c60 ?Ţ) - (#x7c63 ?) - (#x7c64 ?) - (#x7c65 ?) - (#x7c66 ?) - (#x7c67 ?) - (#x7c69 ?) - (#x7c6a ?) - (#x7c6b ?) - (#x7c6c ?X) - (#x7c6e ?Y) - (#x7c6f ?m) - (#x7c72 ?~) - (#x7c73 ?) - (#x7c75 ?ͨ) - (#x7c78 ?E) - (#x7c79 ?F) - (#x7c7a ?D) - (#x7c7d ?) - (#x7c7f ?G) - (#x7c80 ?H) - (#x7c81 ?I) - (#x7c84 ?I) - (#x7c85 ?O) - (#x7c88 ?M) - (#x7c89 ?) - (#x7c8a ?K) - (#x7c8c ?L) - (#x7c8d ?N) - (#x7c91 ?J) - (#x7c92 ?) - (#x7c94 ?) - (#x7c95 ?) - (#x7c96 ?) - (#x7c97 ?) - (#x7c98 ?) - (#x7c9e ?) - (#x7c9f ?) - (#x7ca1 ?) - (#x7ca2 ?) - (#x7ca3 ?) - (#x7ca5 ?) - (#x7ca7 ?) - (#x7ca8 ?) - (#x7caf ?V) - (#x7cb1 ?d) - (#x7cb2 ?T) - (#x7cb3 ?e) - (#x7cb4 ?U) - (#x7cb5 ?f) - (#x7cb9 ?) - (#x7cba ?a) - (#x7cbb ?^) - (#x7cbc ?`) - (#x7cbd ?) - (#x7cbe ?) - (#x7cbf ?_) - (#x7cc5 ?) - (#x7cc8 ?) - (#x7cca ?k) - (#x7ccb ?) - (#x7ccc ?) - (#x7cce ?a) - (#x7cd0 ?) - (#x7cd1 ?) - (#x7cd2 ?) - (#x7cd4 ?) - (#x7cd5 ?|) - (#x7cd6 ?}) - (#x7cd7 ?) - (#x7cd9 ?W) - (#x7cdc ?S) - (#x7cdd ?X) - (#x7cde ?T) - (#x7cdf ?V) - (#x7ce0 ?R) - (#x7ce2 ?U) - (#x7ce7 ?³) - (#x7ce8 ?) - (#x7cea ?) - (#x7cec ?) - (#x7cee ?) - (#x7cef ?z) - (#x7cf0 ?{) - (#x7cf1 ?A) - (#x7cf2 ?) - (#x7cf4 ?@) - (#x7cf6 ?) - (#x7cf7 ?) - (#x7cf8 ?) - (#x7cfb ?t) - (#x7cfd ?ͩ) - (#x7cfe ?) - (#x7d00 ?) - (#x7d01 ?L) - (#x7d02 ?) - (#x7d03 ?J) - (#x7d04 ?) - (#x7d05 ?) - (#x7d06 ?) - (#x7d07 ?) - (#x7d08 ?K) - (#x7d09 ?) - (#x7d0a ?) - (#x7d0b ?) - (#x7d0c ?Z) - (#x7d0d ?) - (#x7d0e ?S) - (#x7d0f ?Y) - (#x7d10 ?) - (#x7d11 ?R) - (#x7d12 ?X) - (#x7d13 ?V) - (#x7d14 ?) - (#x7d15 ?) - (#x7d16 ?U) - (#x7d17 ?) - (#x7d18 ?T) - (#x7d19 ?) - (#x7d1a ?) - (#x7d1b ?) - (#x7d1c ?) - (#x7d1d ?Q) - (#x7d1e ?P) - (#x7d1f ?W) - (#x7d20 ?) - (#x7d21 ?) - (#x7d22 ?) - (#x7d28 ?) - (#x7d29 ?) - (#x7d2b ?) - (#x7d2c ?) - (#x7d2e ?) - (#x7d2f ?) - (#x7d30 ?) - (#x7d31 ?) - (#x7d32 ?) - (#x7d33 ?) - (#x7d35 ?) - (#x7d36 ?) - (#x7d38 ?) - (#x7d39 ?) - (#x7d3a ?) - (#x7d3b ?) - (#x7d3c ?) - (#x7d3d ?) - (#x7d3e ?) - (#x7d3f ?) - (#x7d40 ?) - (#x7d41 ?) - (#x7d42 ?) - (#x7d43 ?) - (#x7d44 ?) - (#x7d45 ?) - (#x7d46 ?) - (#x7d47 ?) - (#x7d4a ?) - (#x7d4e ?) - (#x7d4f ?) - (#x7d50 ?) - (#x7d51 ?) - (#x7d52 ?) - (#x7d53 ?) - (#x7d54 ?) - (#x7d55 ?) - (#x7d56 ?) - (#x7d58 ?) - (#x7d5b ?l) - (#x7d5c ?) - (#x7d5e ?) - (#x7d5f ?) - (#x7d61 ?) - (#x7d62 ?) - (#x7d63 ?) - (#x7d66 ?) - (#x7d67 ?) - (#x7d68 ?) - (#x7d69 ?) - (#x7d6a ?) - (#x7d6b ?) - (#x7d6d ?) - (#x7d6e ?) - (#x7d6f ?) - (#x7d70 ?) - (#x7d71 ?) - (#x7d72 ?) - (#x7d73 ?) - (#x7d79 ?h) - (#x7d7a ?]) - (#x7d7b ?_) - (#x7d7c ?a) - (#x7d7d ?e) - (#x7d7f ?[) - (#x7d80 ?Y) - (#x7d81 ?j) - (#x7d83 ?`) - (#x7d84 ?d) - (#x7d85 ?\) - (#x7d86 ?X) - (#x7d88 ?W) - (#x7d8c ?b) - (#x7d8d ?Z) - (#x7d8e ?^) - (#x7d8f ?k) - (#x7d91 ?i) - (#x7d92 ?f) - (#x7d93 ?g) - (#x7d94 ?c) - (#x7d96 ?r) - (#x7d9c ?) - (#x7d9d ?j) - (#x7d9e ?x) - (#x7d9f ?t) - (#x7da0 ?) - (#x7da1 ?x) - (#x7da2 ?) - (#x7da3 ?e) - (#x7da6 ?u) - (#x7da7 ?b) - (#x7da9 ?w) - (#x7daa ?f) - (#x7dac ?) - (#x7dad ?) - (#x7dae ?v) - (#x7daf ?p) - (#x7db0 ?) - (#x7db1 ?) - (#x7db2 ?) - (#x7db4 ?) - (#x7db5 ?) - (#x7db7 ?c) - (#x7db8 ?) - (#x7db9 ?q) - (#x7dba ?) - (#x7dbb ?) - (#x7dbc ?s) - (#x7dbd ?) - (#x7dbe ?) - (#x7dbf ?) - (#x7dc0 ?h) - (#x7dc1 ?g) - (#x7dc2 ?d) - (#x7dc4 ?l) - (#x7dc5 ?i) - (#x7dc6 ?m) - (#x7dc7 ?) - (#x7dc9 ?y) - (#x7dca ?) - (#x7dcb ?n) - (#x7dcc ?o) - (#x7dce ?k) - (#x7dd2 ?) - (#x7dd7 ?) - (#x7dd8 ?p) - (#x7dd9 ?y) - (#x7dda ?u) - (#x7ddb ?) - (#x7ddd ?r) - (#x7dde ?v) - (#x7ddf ?) - (#x7de0 ?l) - (#x7de1 ?) - (#x7de3 ?t) - (#x7de6 ?) - (#x7de7 ?) - (#x7de8 ?s) - (#x7de9 ?w) - (#x7dea ?) - (#x7dec ?q) - (#x7dee ?) - (#x7def ?n) - (#x7df0 ?) - (#x7df1 ?) - (#x7df2 ?z) - (#x7df3 ?r) - (#x7df4 ?m) - (#x7df6 ?) - (#x7df7 ?) - (#x7df9 ?{) - (#x7dfa ?) - (#x7dfb ?o) - (#x7e03 ?) - (#x7e08 ?) - (#x7e09 ?) - (#x7e0a ?~) - (#x7e0b ?) - (#x7e0c ?) - (#x7e0d ?) - (#x7e0e ?) - (#x7e0f ?) - (#x7e10 ?) - (#x7e11 ?) - (#x7e12 ?) - (#x7e13 ?) - (#x7e14 ?) - (#x7e15 ?) - (#x7e16 ?) - (#x7e17 ?) - (#x7e1a ?) - (#x7e1b ?) - (#x7e1c ?) - (#x7e1d ?) - (#x7e1e ?) - (#x7e1f ?) - (#x7e20 ?) - (#x7e21 ?) - (#x7e22 ?) - (#x7e23 ?) - (#x7e24 ?) - (#x7e25 ?) - (#x7e29 ?) - (#x7e2a ?) - (#x7e2b ?_) - (#x7e2d ?) - (#x7e2e ?Y) - (#x7e2f ?i) - (#x7e30 ?) - (#x7e31 ?a) - (#x7e32 ?]) - (#x7e33 ?) - (#x7e34 ?d) - (#x7e35 ?g) - (#x7e36 ?) - (#x7e37 ?\) - (#x7e38 ?) - (#x7e39 ?e) - (#x7e3a ?) - (#x7e3b ?) - (#x7e3c ?) - (#x7e3d ?`) - (#x7e3e ?Z) - (#x7e3f ?h) - (#x7e40 ?) - (#x7e41 ?c) - (#x7e42 ?) - (#x7e43 ?^) - (#x7e44 ?) - (#x7e45 ?b) - (#x7e46 ?[) - (#x7e47 ?) - (#x7e48 ?f) - (#x7e49 ?) - (#x7e4c ?) - (#x7e50 ?n) - (#x7e51 ?t) - (#x7e52 ?¹) - (#x7e53 ?w) - (#x7e54 ?´) - (#x7e55 ?µ) - (#x7e56 ?o) - (#x7e57 ?v) - (#x7e58 ?q) - (#x7e59 ?º) - (#x7e5a ?·) - (#x7e5c ?m) - (#x7e5e ?¶) - (#x7e5f ?s) - (#x7e60 ?u) - (#x7e61 ?¸) - (#x7e62 ?r) - (#x7e63 ?p) - (#x7e68 ?) - (#x7e69 ?÷) - (#x7e6a ?ø) - (#x7e6b ?ô) - (#x7e6d ?õ) - (#x7e6f ?) - (#x7e70 ?) - (#x7e72 ?) - (#x7e73 ?ú) - (#x7e74 ?) - (#x7e75 ?) - (#x7e76 ?) - (#x7e77 ?) - (#x7e78 ?) - (#x7e79 ?ö) - (#x7e7a ?) - (#x7e7b ?) - (#x7e7c ?~) - (#x7e7d ?}) - (#x7e7e ?) - (#x7e80 ?) - (#x7e81 ?) - (#x7e82 ?ġ) - (#x7e86 ?) - (#x7e87 ?) - (#x7e88 ?) - (#x7e8a ?) - (#x7e8b ?) - (#x7e8c ?) - (#x7e8d ?) - (#x7e8f ?) - (#x7e91 ?B) - (#x7e93 ?) - (#x7e94 ?) - (#x7e95 ?) - (#x7e96 ?) - (#x7e97 ?) - (#x7e98 ?@) - (#x7e99 ?B) - (#x7e9a ?) - (#x7e9b ?A) - (#x7e9c ?l) - (#x7f36 ?) - (#x7f38 ?) - (#x7f39 ?o) - (#x7f3a ?) - (#x7f3d ?) - (#x7f3e ?) - (#x7f3f ?) - (#x7f43 ?) - (#x7f44 ?j) - (#x7f45 ?) - (#x7f48 ?») - (#x7f4a ?) - (#x7f4b ?) - (#x7f4c ?Ģ) - (#x7f4d ?) - (#x7f4f ?C) - (#x7f50 ?) - (#x7f51 ?I) - (#x7f54 ?) - (#x7f55 ?u) - (#x7f58 ?M) - (#x7f5b ?`) - (#x7f5c ?[) - (#x7f5d ?_) - (#x7f5e ?]) - (#x7f5f ?) - (#x7f60 ?^) - (#x7f61 ?\) - (#x7f63 ?) - (#x7f65 ?) - (#x7f66 ?@) - (#x7f67 ?i) - (#x7f68 ?j) - (#x7f69 ?n) - (#x7f6a ?o) - (#x7f6b ?h) - (#x7f6c ?k) - (#x7f6d ?g) - (#x7f6e ?m) - (#x7f70 ?@) - (#x7f72 ?p) - (#x7f73 ?z) - (#x7f75 ?|) - (#x7f76 ?) - (#x7f77 ?}) - (#x7f79 ?) - (#x7f7a ?) - (#x7f7b ?) - (#x7f7c ?) - (#x7f7d ?) - (#x7f7e ?) - (#x7f7f ?) - (#x7f83 ?) - (#x7f85 ?ù) - (#x7f86 ?) - (#x7f87 ?D) - (#x7f88 ?) - (#x7f89 ?) - (#x7f8a ?) - (#x7f8b ?) - (#x7f8c ?) - (#x7f8d ?O) - (#x7f8e ?) - (#x7f91 ?N) - (#x7f92 ?b) - (#x7f94 ?) - (#x7f95 ?) - (#x7f96 ?a) - (#x7f9a ?) - (#x7f9b ?) - (#x7f9c ?) - (#x7f9d ?) - (#x7f9e ?) - (#x7fa0 ?B) - (#x7fa1 ?C) - (#x7fa2 ?A) - (#x7fa4 ?s) - (#x7fa5 ?m) - (#x7fa6 ?l) - (#x7fa7 ?n) - (#x7fa8 ?r) - (#x7fa9 ?q) - (#x7fac ?) - (#x7fad ?) - (#x7faf ?~) - (#x7fb0 ?) - (#x7fb1 ?) - (#x7fb2 ?) - (#x7fb3 ?y) - (#x7fb5 ?x) - (#x7fb6 ?û) - (#x7fb7 ?) - (#x7fb8 ?ý) - (#x7fb9 ?ü) - (#x7fba ?) - (#x7fbb ?) - (#x7fbc ?) - (#x7fbd ?) - (#x7fbe ?P) - (#x7fbf ?) - (#x7fc0 ?e) - (#x7fc1 ?) - (#x7fc2 ?d) - (#x7fc3 ?c) - (#x7fc5 ?) - (#x7fc7 ?) - (#x7fc9 ?) - (#x7fca ?) - (#x7fcb ?) - (#x7fcc ?) - (#x7fcd ?) - (#x7fce ?) - (#x7fcf ?) - (#x7fd0 ?) - (#x7fd1 ?) - (#x7fd2 ?) - (#x7fd4 ?) - (#x7fd5 ?) - (#x7fd7 ?D) - (#x7fdb ?o) - (#x7fdc ?p) - (#x7fde ?~) - (#x7fdf ?C) - (#x7fe0 ?A) - (#x7fe1 ?B) - (#x7fe2 ?{) - (#x7fe3 ?|) - (#x7fe5 ?}) - (#x7fe6 ?) - (#x7fe8 ?) - (#x7fe9 ?) - (#x7fea ?) - (#x7feb ?) - (#x7fec ?) - (#x7fed ?) - (#x7fee ?) - (#x7fef ?) - (#x7ff0 ?) - (#x7ff1 ?) - (#x7ff2 ?) - (#x7ff3 ?k) - (#x7ff4 ?) - (#x7ff5 ?) - (#x7ff7 ?z) - (#x7ff8 ?{) - (#x7ff9 ?¼) - (#x7ffb ?½) - (#x7ffc ?l) - (#x7ffd ?) - (#x7ffe ?) - (#x7fff ?) - (#x8000 ?ģ) - (#x8001 ?) - (#x8003 ?) - (#x8004 ?) - (#x8005 ?) - (#x8006 ?) - (#x8007 ?Q) - (#x800b ?) - (#x800c ?) - (#x800d ?A) - (#x800e ?R) - (#x800f ?S) - (#x8010 ?@) - (#x8011 ?B) - (#x8012 ?) - (#x8014 ?T) - (#x8015 ?) - (#x8016 ?f) - (#x8017 ?) - (#x8018 ?) - (#x8019 ?) - (#x801b ?A) - (#x801c ?) - (#x801e ?@) - (#x801f ?) - (#x8021 ?q) - (#x8024 ?) - (#x8026 ?) - (#x8028 ?) - (#x8029 ?) - (#x802a ?) - (#x802c ?) - (#x8030 ?) - (#x8033 ?) - (#x8034 ?s) - (#x8035 ?ͪ) - (#x8036 ?C) - (#x8037 ?U) - (#x8039 ?h) - (#x803d ?) - (#x803e ?g) - (#x803f ?) - (#x8043 ?C) - (#x8046 ?) - (#x8047 ?B) - (#x8048 ?D) - (#x804a ?) - (#x804f ?F) - (#x8050 ?G) - (#x8051 ?E) - (#x8052 ?) - (#x8056 ?t) - (#x8058 ?u) - (#x805a ?E) - (#x805c ?) - (#x805d ?) - (#x805e ?D) - (#x8064 ?) - (#x8067 ?) - (#x806c ?) - (#x806f ?p) - (#x8070 ?o) - (#x8071 ?m) - (#x8072 ?n) - (#x8073 ?q) - (#x8075 ?|) - (#x8076 ?¿) - (#x8077 ?¾) - (#x8078 ?) - (#x8079 ?) - (#x807d ?ť) - (#x807e ?Ť) - (#x807f ?) - (#x8082 ?) - (#x8084 ?w) - (#x8085 ?) - (#x8086 ?v) - (#x8087 ?F) - (#x8089 ?) - (#x808a ?ɩ) - (#x808b ?) - (#x808c ?) - (#x808f ?ͫ) - (#x8090 ?v) - (#x8092 ?w) - (#x8093 ?w) - (#x8095 ?t) - (#x8096 ?v) - (#x8098 ?y) - (#x8099 ?u) - (#x809a ?{) - (#x809b ?z) - (#x809c ?x) - (#x809d ?x) - (#x80a1 ?) - (#x80a2 ?) - (#x80a3 ?ͭ) - (#x80a5 ?) - (#x80a9 ?) - (#x80aa ?) - (#x80ab ?) - (#x80ad ?Ͱ) - (#x80ae ?ͬ) - (#x80af ?) - (#x80b1 ?) - (#x80b2 ?|) - (#x80b4 ?) - (#x80b5 ?ͯ) - (#x80b8 ?ͮ) - (#x80ba ?) - (#x80c2 ?[) - (#x80c3 ?G) - (#x80c4 ?H) - (#x80c5 ?]) - (#x80c7 ?W) - (#x80c8 ?Z) - (#x80c9 ?c) - (#x80ca ?a) - (#x80cc ?I) - (#x80cd ?g) - (#x80ce ?L) - (#x80cf ?d) - (#x80d0 ?\) - (#x80d1 ?Y) - (#x80d4 ?I) - (#x80d5 ?b) - (#x80d6 ?D) - (#x80d7 ?e) - (#x80d8 ?V) - (#x80d9 ?_) - (#x80da ?F) - (#x80db ?K) - (#x80dc ?`) - (#x80dd ?O) - (#x80de ?M) - (#x80e0 ?X) - (#x80e1 ?J) - (#x80e3 ?^) - (#x80e4 ?N) - (#x80e5 ?E) - (#x80e6 ?f) - (#x80ed ?) - (#x80ef ?) - (#x80f0 ?) - (#x80f1 ?) - (#x80f2 ?j) - (#x80f3 ?) - (#x80f4 ?) - (#x80f5 ?l) - (#x80f8 ?) - (#x80f9 ?k) - (#x80fa ?i) - (#x80fb ?n) - (#x80fc ?) - (#x80fd ?) - (#x80fe ?H) - (#x8100 ?o) - (#x8101 ?m) - (#x8102 ?) - (#x8105 ?) - (#x8106 ?) - (#x8108 ?) - (#x810a ?) - (#x8115 ?N) - (#x8116 ?) - (#x8118 ?E) - (#x8119 ?G) - (#x811b ?H) - (#x811d ?P) - (#x811e ?L) - (#x811f ?J) - (#x8121 ?M) - (#x8122 ?Q) - (#x8123 ?) - (#x8124 ?) - (#x8125 ?F) - (#x8127 ?O) - (#x8129 ?) - (#x812b ?) - (#x812c ?K) - (#x812d ?I) - (#x812f ?) - (#x8130 ?) - (#x8139 ?) - (#x813a ?Q) - (#x813d ?O) - (#x813e ?) - (#x8143 ?J) - (#x8144 ?ߡ) - (#x8146 ?) - (#x8147 ?N) - (#x814a ?K) - (#x814b ?) - (#x814c ?) - (#x814d ?P) - (#x814e ?) - (#x814f ?M) - (#x8150 ?G) - (#x8151 ?) - (#x8152 ?L) - (#x8153 ?) - (#x8154 ?) - (#x8155 ?) - (#x815b ?w) - (#x815c ?u) - (#x815e ?{) - (#x8160 ?s) - (#x8161 ?ߢ) - (#x8162 ?x) - (#x8164 ?r) - (#x8165 ?{) - (#x8166 ?) - (#x8167 ?}) - (#x8169 ?v) - (#x816b ?~) - (#x816e ?|) - (#x816f ?~) - (#x8170 ?y) - (#x8171 ?x) - (#x8172 ?y) - (#x8173 ?}) - (#x8174 ?) - (#x8176 ?|) - (#x8177 ?t) - (#x8178 ?z) - (#x8179 ?) - (#x817a ?) - (#x817f ?L) - (#x8180 ?H) - (#x8182 ?M) - (#x8183 ?) - (#x8186 ?) - (#x8187 ?) - (#x8188 ?J) - (#x8189 ?) - (#x818a ?K) - (#x818b ?) - (#x818c ?) - (#x818d ?) - (#x818f ?I) - (#x8195 ?A) - (#x8197 ?D) - (#x8198 ?) - (#x8199 ?C) - (#x819a ?) - (#x819b ?) - (#x819c ?) - (#x819d ?) - (#x819e ?@) - (#x819f ?) - (#x81a0 ?) - (#x81a2 ?B) - (#x81a3 ?) - (#x81a6 ?) - (#x81a7 ?) - (#x81a8 ?) - (#x81a9 ?) - (#x81ab ?) - (#x81ac ?) - (#x81ae ?) - (#x81b0 ?) - (#x81b1 ?) - (#x81b2 ?) - (#x81b3 ?) - (#x81b4 ?) - (#x81b5 ?) - (#x81b7 ?) - (#x81b9 ?) - (#x81ba ?t) - (#x81bb ?) - (#x81bc ?) - (#x81bd ?x) - (#x81be ?z) - (#x81bf ?w) - (#x81c0 ?v) - (#x81c2 ?u) - (#x81c3 ?s) - (#x81c4 ?) - (#x81c5 ?) - (#x81c6 ?r) - (#x81c7 ?) - (#x81c9 ?y) - (#x81ca ?) - (#x81cc ?) - (#x81cd ?) - (#x81cf ?) - (#x81d0 ?) - (#x81d1 ?}) - (#x81d2 ?~) - (#x81d5 ?) - (#x81d7 ?) - (#x81d8 ?þ) - (#x81d9 ?) - (#x81da ?Ĥ) - (#x81db ?) - (#x81dd ?) - (#x81de ?E) - (#x81df ?Ŧ) - (#x81e0 ?C) - (#x81e1 ?D) - (#x81e2 ?) - (#x81e3 ?) - (#x81e5 ?) - (#x81e6 ?R) - (#x81e7 ?N) - (#x81e8 ?{) - (#x81e9 ?) - (#x81ea ?) - (#x81ec ?) - (#x81ed ?) - (#x81ee ?S) - (#x81f2 ?) - (#x81f3 ?) - (#x81f4 ?P) - (#x81f7 ?T) - (#x81f8 ?U) - (#x81f9 ?V) - (#x81fa ?O) - (#x81fb ?) - (#x81fc ?) - (#x81fe ?) - (#x81ff ?h) - (#x8200 ?) - (#x8201 ?p) - (#x8202 ?) - (#x8204 ?W) - (#x8205 ?) - (#x8207 ?P) - (#x8208 ?) - (#x8209 ?|) - (#x820a ?) - (#x820b ?) - (#x820c ?) - (#x820d ?) - (#x8210 ?) - (#x8211 ?R) - (#x8212 ?) - (#x8214 ?Q) - (#x8215 ?) - (#x8216 ?E) - (#x821b ?) - (#x821c ?) - (#x821d ?ߣ) - (#x821e ?R) - (#x821f ?) - (#x8220 ?ͱ) - (#x8221 ?i) - (#x8222 ?Q) - (#x8225 ?r) - (#x8228 ?) - (#x822a ?) - (#x822b ?) - (#x822c ?) - (#x822f ?q) - (#x8232 ?W) - (#x8233 ?T) - (#x8234 ?V) - (#x8235 ?) - (#x8236 ?) - (#x8237 ?) - (#x8238 ?S) - (#x8239 ?) - (#x823a ?U) - (#x823c ?X) - (#x823d ?Y) - (#x823f ?Z) - (#x8240 ?ߦ) - (#x8242 ?ߧ) - (#x8244 ?ߥ) - (#x8245 ?ߨ) - (#x8247 ?) - (#x8249 ?ߤ) - (#x824b ?S) - (#x824e ?J) - (#x824f ?F) - (#x8250 ?I) - (#x8251 ?K) - (#x8252 ?H) - (#x8253 ?G) - (#x8255 ?) - (#x8256 ?) - (#x8257 ?) - (#x8258 ?) - (#x8259 ?) - (#x825a ?) - (#x825b ?) - (#x825c ?) - (#x825e ?) - (#x825f ?) - (#x8261 ?) - (#x8263 ?) - (#x8264 ?) - (#x8266 ?ĥ) - (#x8268 ?) - (#x8269 ?) - (#x826b ?F) - (#x826c ?) - (#x826d ?) - (#x826e ?) - (#x826f ?}) - (#x8271 ?}) - (#x8272 ?) - (#x8274 ?X) - (#x8275 ?[) - (#x8277 ?A) - (#x8278 ?J) - (#x827c ?K) - (#x827d ?M) - (#x827e ?) - (#x827f ?N) - (#x8280 ?L) - (#x8283 ?ˢ) - (#x8284 ?ˣ) - (#x8285 ?{) - (#x828a ?ˡ) - (#x828b ?) - (#x828d ?) - (#x828e ?|) - (#x828f ?z) - (#x8290 ?y) - (#x8291 ?}) - (#x8292 ?~) - (#x8293 ?~) - (#x8294 ?j) - (#x8298 ?Ͷ) - (#x8299 ?) - (#x829a ?͵) - (#x829b ?ͷ) - (#x829d ?) - (#x829e ?ͼ) - (#x829f ?) - (#x82a0 ?Ͳ) - (#x82a1 ?) - (#x82a2 ?) - (#x82a3 ?) - (#x82a4 ?) - (#x82a5 ?) - (#x82a7 ?) - (#x82a8 ?Ϳ) - (#x82a9 ?) - (#x82ab ?ʹ) - (#x82ac ?) - (#x82ad ?) - (#x82ae ?ͺ) - (#x82af ?) - (#x82b0 ?) - (#x82b1 ?) - (#x82b3 ?) - (#x82b4 ?;) - (#x82b5 ?) - (#x82b6 ?) - (#x82b7 ?) - (#x82b8 ?) - (#x82b9 ?) - (#x82ba ?ͽ) - (#x82bb ?) - (#x82bc ?ͻ) - (#x82bd ?) - (#x82be ?) - (#x82c0 ?ͳ) - (#x82c2 ?) - (#x82c3 ?) - (#x82d1 ?b) - (#x82d2 ?\) - (#x82d3 ?d) - (#x82d4 ?a) - (#x82d5 ?q) - (#x82d6 ?t) - (#x82d7 ?]) - (#x82d9 ?k) - (#x82db ?V) - (#x82dc ?`) - (#x82de ?c) - (#x82df ?e) - (#x82e0 ?Т) - (#x82e1 ?w) - (#x82e3 ?U) - (#x82e4 ?С) - (#x82e5 ?Y) - (#x82e6 ?W) - (#x82e7 ?R) - (#x82e8 ?o) - (#x82ea ?~) - (#x82eb ?s) - (#x82ec ?v) - (#x82ed ?Х) - (#x82ef ?f) - (#x82f0 ?}) - (#x82f1 ?^) - (#x82f2 ?x) - (#x82f3 ?Ф) - (#x82f4 ?u) - (#x82f5 ?y) - (#x82f6 ?|) - (#x82f9 ?m) - (#x82fa ?У) - (#x82fb ?{) - (#x82fe ?l) - (#x8300 ?p) - (#x8301 ?_) - (#x8302 ?Z) - (#x8303 ?S) - (#x8304 ?X) - (#x8305 ?T) - (#x8306 ?g) - (#x8307 ?n) - (#x8308 ?ӥ) - (#x8309 ?[) - (#x830c ?z) - (#x830d ?A) - (#x8316 ?Ө) - (#x8317 ?) - (#x8319 ?v) - (#x831b ?ӣ) - (#x831c ?}) - (#x831e ?Ӳ) - (#x8320 ?Ӫ) - (#x8322 ?~) - (#x8324 ?ө) - (#x8325 ?x) - (#x8326 ?|) - (#x8327 ?ӵ) - (#x8328 ?) - (#x8329 ?ӭ) - (#x832a ?Ӥ) - (#x832b ?) - (#x832c ?ӳ) - (#x832d ?t) - (#x832f ?Ӭ) - (#x8331 ?) - (#x8332 ?) - (#x8333 ?s) - (#x8334 ?) - (#x8335 ?) - (#x8336 ?) - (#x8337 ?ӫ) - (#x8338 ?) - (#x8339 ?) - (#x833a ?r) - (#x833b ?\) - (#x833c ?Ӧ) - (#x833f ?z) - (#x8340 ?) - (#x8341 ?{) - (#x8342 ?ӡ) - (#x8343 ?) - (#x8344 ?u) - (#x8345 ?ӯ) - (#x8347 ?Ӯ) - (#x8348 ?Ӷ) - (#x8349 ?) - (#x834a ?) - (#x834b ?Ӵ) - (#x834c ?Ӱ) - (#x834d ?ӧ) - (#x834e ?Ӣ) - (#x834f ?) - (#x8350 ?) - (#x8351 ?w) - (#x8352 ?) - (#x8353 ?ӱ) - (#x8354 ?) - (#x8356 ?y) - (#x8373 ?^) - (#x8374 ?`) - (#x8375 ?e) - (#x8376 ?y) - (#x8377 ?) - (#x8378 ?) - (#x837a ?]) - (#x837b ?) - (#x837c ?) - (#x837d ?h) - (#x837e ?o) - (#x837f ?u) - (#x8381 ?b) - (#x8383 ?i) - (#x8386 ?@) - (#x8387 ?w) - (#x8388 ?r) - (#x8389 ?) - (#x838a ?) - (#x838b ?n) - (#x838c ?j) - (#x838d ?\) - (#x838e ?) - (#x838f ?a) - (#x8390 ?Y) - (#x8392 ?) - (#x8393 ?) - (#x8394 ?f) - (#x8395 ?c) - (#x8396 ?) - (#x8397 ?s) - (#x8398 ?) - (#x8399 ?d) - (#x839a ?z) - (#x839b ?l) - (#x839d ?k) - (#x839e ?) - (#x83a0 ?) - (#x83a2 ?) - (#x83a3 ?Z) - (#x83a4 ?_) - (#x83a5 ?p) - (#x83a6 ?v) - (#x83a7 ?A) - (#x83a8 ?[) - (#x83a9 ?g) - (#x83aa ?m) - (#x83ab ?) - (#x83ae ?x) - (#x83af ?q) - (#x83b0 ?t) - (#x83bd ?) - (#x83bf ?l) - (#x83c0 ?`) - (#x83c1 ?) - (#x83c2 ?}) - (#x83c3 ?ۧ) - (#x83c4 ?۪) - (#x83c5 ?) - (#x83c6 ?h) - (#x83c7 ?ۣ) - (#x83c8 ?i) - (#x83c9 ?w) - (#x83ca ?) - (#x83cb ?s) - (#x83cc ?) - (#x83ce ?t) - (#x83cf ?]) - (#x83d1 ?ۤ) - (#x83d4 ?) - (#x83d5 ?ۡ) - (#x83d6 ?u) - (#x83d7 ?۬) - (#x83d8 ?p) - (#x83d9 ?) - (#x83db ?ۯ) - (#x83dc ?) - (#x83dd ?n) - (#x83de ?z) - (#x83df ?) - (#x83e0 ?) - (#x83e1 ?r) - (#x83e2 ?ۭ) - (#x83e3 ?k) - (#x83e4 ?d) - (#x83e5 ?o) - (#x83e7 ?c) - (#x83e8 ?a) - (#x83e9 ?) - (#x83ea ?ۥ) - (#x83eb ?j) - (#x83ec ?ۨ) - (#x83ee ?۩) - (#x83ef ?) - (#x83f0 ?) - (#x83f1 ?) - (#x83f2 ?) - (#x83f3 ?~) - (#x83f4 ?) - (#x83f5 ?v) - (#x83f6 ?f) - (#x83f8 ?) - (#x83f9 ?^) - (#x83fa ?ۢ) - (#x83fb ?۫) - (#x83fc ?e) - (#x83fd ?) - (#x83fe ?۰) - (#x83ff ?q) - (#x8401 ?m) - (#x8403 ?) - (#x8404 ?) - (#x8406 ?|) - (#x8407 ?) - (#x8409 ?x) - (#x840a ?) - (#x840b ?) - (#x840c ?) - (#x840d ?) - (#x840e ?) - (#x840f ?y) - (#x8410 ?g) - (#x8411 ?{) - (#x8412 ?b) - (#x8413 ?ۦ) - (#x841b ?ۮ) - (#x8423 ?_) - (#x8429 ?) - (#x842b ?) - (#x842c ?U) - (#x842d ?) - (#x842f ?) - (#x8430 ?ߵ) - (#x8431 ?) - (#x8432 ?) - (#x8433 ?) - (#x8434 ?) - (#x8435 ?) - (#x8436 ?) - (#x8437 ?߿) - (#x8438 ?) - (#x8439 ?) - (#x843a ?) - (#x843b ?) - (#x843c ?) - (#x843d ?) - (#x843f ?ߪ) - (#x8440 ?߲) - (#x8442 ?) - (#x8443 ?) - (#x8444 ?) - (#x8445 ?) - (#x8446 ?) - (#x8447 ?) - (#x8449 ?) - (#x844b ?) - (#x844c ?) - (#x844d ?߶) - (#x844e ?) - (#x8450 ?) - (#x8451 ?߱) - (#x8452 ?) - (#x8454 ?) - (#x8456 ?߫) - (#x8457 ?) - (#x8459 ?߹) - (#x845a ?߸) - (#x845b ?) - (#x845d ?) - (#x845e ?߾) - (#x845f ?) - (#x8460 ?) - (#x8461 ?) - (#x8463 ?) - (#x8465 ?߰) - (#x8466 ?) - (#x8467 ?ߴ) - (#x8468 ?) - (#x8469 ?) - (#x846b ?) - (#x846c ?) - (#x846d ?) - (#x846e ?) - (#x846f ?) - (#x8470 ?) - (#x8473 ?) - (#x8474 ?ߺ) - (#x8475 ?) - (#x8476 ?߬) - (#x8477 ?) - (#x8478 ?) - (#x8479 ?߭) - (#x847a ?) - (#x847d ?߷) - (#x847e ?) - (#x8482 ?) - (#x8486 ?߳) - (#x848d ?߯) - (#x848e ?) - (#x848f ?߮) - (#x8490 ?`) - (#x8491 ?) - (#x8494 ?) - (#x8497 ?) - (#x8498 ?) - (#x8499 ?X) - (#x849a ?) - (#x849b ?) - (#x849c ?[) - (#x849d ?) - (#x849e ?Y) - (#x849f ?) - (#x84a0 ?) - (#x84a1 ?) - (#x84a2 ?) - (#x84a4 ?) - (#x84a7 ?) - (#x84a8 ?) - (#x84a9 ?) - (#x84aa ?) - (#x84ab ?) - (#x84ac ?) - (#x84ae ?) - (#x84af ?) - (#x84b0 ?) - (#x84b1 ?) - (#x84b2 ?Z) - (#x84b4 ?) - (#x84b6 ?) - (#x84b8 ?]) - (#x84b9 ?) - (#x84ba ?) - (#x84bb ?) - (#x84bc ?a) - (#x84bf ?U) - (#x84c0 ?^) - (#x84c1 ?) - (#x84c2 ?) - (#x84c4 ?W) - (#x84c5 ?) - (#x84c6 ?V) - (#x84c7 ?) - (#x84c9 ?T) - (#x84ca ?c) - (#x84cb ?\) - (#x84cc ?) - (#x84cd ?) - (#x84ce ?) - (#x84cf ?) - (#x84d0 ?) - (#x84d1 ?b) - (#x84d2 ?) - (#x84d3 ?_) - (#x84d4 ?) - (#x84d6 ?) - (#x84d7 ?) - (#x84db ?) - (#x84e7 ?s) - (#x84e8 ?t) - (#x84e9 ?g) - (#x84ea ?f) - (#x84eb ?b) - (#x84ec ?) - (#x84ee ?) - (#x84ef ?v) - (#x84f0 ?u) - (#x84f1 ?ߩ) - (#x84f2 ?_) - (#x84f3 ?c) - (#x84f4 ?]) - (#x84f6 ?p) - (#x84f7 ?a) - (#x84f9 ?w) - (#x84fa ?Z) - (#x84fb ?X) - (#x84fc ?d) - (#x84fd ?n) - (#x84fe ?i) - (#x84ff ?) - (#x8500 ?O) - (#x8502 ?m) - (#x8506 ?) - (#x8507 ?߽) - (#x8508 ?[) - (#x8509 ?R) - (#x850a ?U) - (#x850b ?{) - (#x850c ?\) - (#x850d ?S) - (#x850e ?Q) - (#x850f ?N) - (#x8511 ?) - (#x8512 ?e) - (#x8513 ?) - (#x8514 ?) - (#x8515 ?`) - (#x8516 ?h) - (#x8517 ?) - (#x8518 ?x) - (#x8519 ?|) - (#x851a ?) - (#x851c ?W) - (#x851d ?k) - (#x851e ?o) - (#x851f ?T) - (#x8520 ?y) - (#x8521 ?) - (#x8523 ?) - (#x8524 ?L) - (#x8525 ?) - (#x8526 ?r) - (#x8527 ?V) - (#x8528 ?j) - (#x8529 ?P) - (#x852a ?^) - (#x852b ?Y) - (#x852c ?) - (#x852d ?) - (#x852e ?l) - (#x852f ?}) - (#x8530 ?z) - (#x8531 ?q) - (#x853b ?M) - (#x853d ?) - (#x853e ?I) - (#x8540 ?@) - (#x8541 ?C) - (#x8543 ?) - (#x8544 ?E) - (#x8545 ?) - (#x8546 ?A) - (#x8547 ?G) - (#x8548 ?) - (#x8549 ?) - (#x854a ?) - (#x854d ?) - (#x854e ?L) - (#x8551 ?F) - (#x8553 ?) - (#x8554 ?U) - (#x8555 ?O) - (#x8556 ?) - (#x8557 ?F) - (#x8558 ?) - (#x8559 ?) - (#x855b ?J) - (#x855d ?T) - (#x855e ?) - (#x8560 ?Q) - (#x8561 ?) - (#x8562 ?D) - (#x8563 ?H) - (#x8564 ?B) - (#x8565 ?V) - (#x8566 ?S) - (#x8567 ?P) - (#x8568 ?) - (#x8569 ?) - (#x856a ?) - (#x856b ?) - (#x856c ?W) - (#x856d ?) - (#x856e ?M) - (#x8571 ?K) - (#x8575 ?N) - (#x8576 ?S) - (#x8577 ?@) - (#x8578 ?E) - (#x8579 ?R) - (#x857a ?D) - (#x857b ?) - (#x857c ?A) - (#x857e ?) - (#x8580 ?) - (#x8581 ?M) - (#x8582 ?O) - (#x8583 ?) - (#x8584 ?) - (#x8585 ?Q) - (#x8586 ?I) - (#x8587 ?) - (#x8588 ?P) - (#x8589 ?B) - (#x858a ?) - (#x858b ?) - (#x858c ?R) - (#x858d ?J) - (#x858e ?G) - (#x858f ?) - (#x8590 ?U) - (#x8591 ?) - (#x8594 ?) - (#x8595 ?) - (#x8596 ?H) - (#x8598 ?T) - (#x8599 ?K) - (#x859a ?) - (#x859b ?) - (#x859c ?) - (#x859d ?L) - (#x859e ?) - (#x859f ?V) - (#x85a0 ?) - (#x85a1 ?C) - (#x85a2 ?N) - (#x85a3 ?) - (#x85a4 ?) - (#x85a6 ?) - (#x85a7 ?) - (#x85a8 ?) - (#x85a9 ?) - (#x85aa ?~) - (#x85af ?) - (#x85b0 ?) - (#x85b1 ?) - (#x85b3 ?) - (#x85b4 ?) - (#x85b5 ?) - (#x85b6 ?) - (#x85b7 ?) - (#x85b8 ?) - (#x85b9 ?) - (#x85ba ?) - (#x85bd ?) - (#x85be ?) - (#x85bf ?) - (#x85c0 ?) - (#x85c2 ?) - (#x85c3 ?) - (#x85c4 ?) - (#x85c5 ?) - (#x85c6 ?) - (#x85c7 ?) - (#x85c8 ?) - (#x85c9 ?) - (#x85cb ?) - (#x85cd ?) - (#x85ce ?) - (#x85cf ?) - (#x85d0 ?) - (#x85d1 ?) - (#x85d2 ?) - (#x85d5 ?) - (#x85d7 ?) - (#x85d8 ?) - (#x85d9 ?) - (#x85da ?) - (#x85dc ?) - (#x85dd ?) - (#x85de ?) - (#x85df ?) - (#x85e1 ?) - (#x85e2 ?) - (#x85e3 ?) - (#x85e4 ?) - (#x85e5 ?) - (#x85e6 ?) - (#x85e8 ?) - (#x85e9 ?ÿ) - (#x85ea ?) - (#x85eb ?) - (#x85ec ?) - (#x85ed ?) - (#x85ef ?) - (#x85f0 ?) - (#x85f1 ?) - (#x85f2 ?) - (#x85f6 ?) - (#x85f7 ?) - (#x85f8 ?) - (#x85f9 ?ħ) - (#x85fa ?ĩ) - (#x85fb ?Ħ) - (#x85fd ?) - (#x85fe ?) - (#x85ff ?) - (#x8600 ?) - (#x8601 ?) - (#x8604 ?) - (#x8605 ?) - (#x8606 ?Ī) - (#x8607 ?Ĭ) - (#x8609 ?) - (#x860a ?ĭ) - (#x860b ?ī) - (#x860c ?) - (#x8611 ?Ĩ) - (#x8617 ?) - (#x8618 ?) - (#x8619 ?) - (#x861a ?) - (#x861b ?) - (#x861c ?) - (#x861e ?) - (#x861f ?) - (#x8620 ?) - (#x8621 ?) - (#x8622 ?) - (#x8623 ?) - (#x8624 ?) - (#x8625 ?) - (#x8626 ?) - (#x8627 ?) - (#x8629 ?) - (#x862a ?) - (#x862c ?J) - (#x862d ?) - (#x862e ?) - (#x8631 ?) - (#x8632 ?K) - (#x8633 ?I) - (#x8634 ?G) - (#x8635 ?H) - (#x8636 ?L) - (#x8638 ?) - (#x8639 ?) - (#x863a ?) - (#x863b ?) - (#x863c ?) - (#x863e ?) - (#x863f ?) - (#x8640 ?) - (#x8643 ?) - (#x8646 ?E) - (#x8647 ?F) - (#x8648 ?G) - (#x864b ?) - (#x864c ?) - (#x864d ?O) - (#x864e ?) - (#x8650 ?h) - (#x8652 ?Ӹ) - (#x8653 ?ӷ) - (#x8654 ?@) - (#x8655 ?B) - (#x8656 ?|) - (#x8659 ?{) - (#x865b ?) - (#x865c ?) - (#x865e ?) - (#x865f ?) - (#x8661 ?) - (#x8662 ?~) - (#x8663 ?X) - (#x8664 ?Z) - (#x8665 ?Y) - (#x8667 ?) - (#x8668 ?W) - (#x8669 ?) - (#x866a ?) - (#x866b ?) - (#x866d ?) - (#x866e ?) - (#x866f ?) - (#x8670 ?) - (#x8671 ?) - (#x8673 ?Щ) - (#x8674 ?Ч) - (#x8677 ?Ц) - (#x8679 ?i) - (#x867a ?k) - (#x867b ?j) - (#x867c ?Ш) - (#x8685 ?) - (#x8686 ?) - (#x8687 ?ӿ) - (#x868a ?A) - (#x868b ?) - (#x868c ?F) - (#x868d ?Ӽ) - (#x868e ?) - (#x8690 ?) - (#x8691 ?ӽ) - (#x8693 ?C) - (#x8694 ?) - (#x8695 ?) - (#x8696 ?ӻ) - (#x8697 ?) - (#x8698 ?) - (#x8699 ?) - (#x869a ?) - (#x869c ?H) - (#x869d ?) - (#x869e ?Ӿ) - (#x86a1 ?) - (#x86a2 ?ӹ) - (#x86a3 ?G) - (#x86a4 ?D) - (#x86a5 ?) - (#x86a7 ?) - (#x86a8 ?Ӻ) - (#x86a9 ?E) - (#x86aa ?B) - (#x86af ?L) - (#x86b0 ?ץ) - (#x86b1 ?K) - (#x86b3 ?ר) - (#x86b4 ?) - (#x86b5 ?H) - (#x86b6 ?F) - (#x86b7 ?~) - (#x86b8 ?ש) - (#x86b9 ?ק) - (#x86ba ?פ) - (#x86bb ?) - (#x86bc ?) - (#x86bd ?ׯ) - (#x86be ?װ) - (#x86bf ?}) - (#x86c0 ?E) - (#x86c1 ?ע) - (#x86c2 ?ס) - (#x86c3 ?) - (#x86c4 ?G) - (#x86c5 ?ף) - (#x86c6 ?I) - (#x86c7 ?D) - (#x86c8 ?צ) - (#x86c9 ?M) - (#x86cb ?J) - (#x86cc ?ת) - (#x86d0 ?) - (#x86d1 ?ۿ) - (#x86d3 ?۴) - (#x86d4 ?) - (#x86d6 ?) - (#x86d7 ?۽) - (#x86d8 ?۱) - (#x86d9 ?) - (#x86da ?۶) - (#x86db ?) - (#x86dc ?ۺ) - (#x86dd ?۸) - (#x86de ?) - (#x86df ?) - (#x86e2 ?۲) - (#x86e3 ?۵) - (#x86e4 ?) - (#x86e6 ?۳) - (#x86e8 ?۾) - (#x86e9 ?ۼ) - (#x86ea ?۷) - (#x86eb ?۹) - (#x86ec ?ۻ) - (#x86ed ?) - (#x86f5 ?) - (#x86f6 ?) - (#x86f7 ?) - (#x86f8 ?) - (#x86f9 ?) - (#x86fa ?) - (#x86fb ?) - (#x86fe ?) - (#x8700 ?) - (#x8701 ?) - (#x8702 ?) - (#x8703 ?) - (#x8704 ?) - (#x8705 ?) - (#x8706 ?) - (#x8707 ?) - (#x8708 ?) - (#x8709 ?) - (#x870a ?) - (#x870b ?) - (#x870c ?) - (#x870d ?) - (#x870e ?) - (#x8711 ?) - (#x8712 ?) - (#x8713 ?) - (#x8718 ?j) - (#x8719 ?) - (#x871a ?) - (#x871b ?) - (#x871c ?e) - (#x871e ?) - (#x8720 ?) - (#x8721 ?) - (#x8722 ?g) - (#x8723 ?) - (#x8724 ?) - (#x8725 ?h) - (#x8726 ?) - (#x8727 ?) - (#x8728 ?) - (#x8729 ?m) - (#x872a ?) - (#x872c ?) - (#x872d ?) - (#x872e ?) - (#x8730 ?) - (#x8731 ?) - (#x8732 ?) - (#x8733 ?) - (#x8734 ?i) - (#x8735 ?) - (#x8737 ?l) - (#x8738 ?) - (#x873a ?) - (#x873b ?f) - (#x873c ?) - (#x873e ?) - (#x873f ?d) - (#x8740 ?) - (#x8741 ?) - (#x8742 ?) - (#x8743 ?) - (#x8746 ?) - (#x874c ?) - (#x874d ?) - (#x874e ?) - (#x874f ?) - (#x8750 ?) - (#x8751 ?) - (#x8752 ?) - (#x8753 ?) - (#x8754 ?) - (#x8755 ?k) - (#x8756 ?) - (#x8757 ?) - (#x8758 ?) - (#x8759 ?) - (#x875a ?) - (#x875b ?) - (#x875c ?) - (#x875d ?) - (#x875e ?) - (#x875f ?) - (#x8760 ?) - (#x8761 ?) - (#x8762 ?) - (#x8763 ?) - (#x8764 ?) - (#x8765 ?) - (#x8766 ?) - (#x8767 ?) - (#x8768 ?) - (#x8769 ?) - (#x876a ?) - (#x876b ?) - (#x876c ?) - (#x876d ?) - (#x876e ?) - (#x876f ?) - (#x8773 ?) - (#x8774 ?) - (#x8775 ?) - (#x8776 ?) - (#x8777 ?) - (#x8778 ?) - (#x8779 ?d) - (#x877a ?) - (#x877b ?) - (#x8781 ?a) - (#x8782 ?) - (#x8783 ?) - (#x8784 ?k) - (#x8785 ?g) - (#x8787 ?e) - (#x8788 ?`) - (#x8789 ?o) - (#x878d ?) - (#x878f ?\) - (#x8790 ?h) - (#x8791 ?i) - (#x8792 ?_) - (#x8793 ?^) - (#x8794 ?l) - (#x8796 ?b) - (#x8797 ?]) - (#x8798 ?c) - (#x879a ?n) - (#x879b ?[) - (#x879c ?m) - (#x879d ?j) - (#x879e ?) - (#x879f ?) - (#x87a2 ?) - (#x87a3 ?f) - (#x87a4 ?) - (#x87aa ?Y) - (#x87ab ?) - (#x87ac ?]) - (#x87ad ?Z) - (#x87ae ?a) - (#x87af ?g) - (#x87b0 ?\) - (#x87b2 ?p) - (#x87b3 ?) - (#x87b4 ?j) - (#x87b5 ?_) - (#x87b6 ?k) - (#x87b7 ?f) - (#x87b8 ?m) - (#x87b9 ?^) - (#x87ba ?) - (#x87bb ?) - (#x87bc ?`) - (#x87bd ?n) - (#x87be ?X) - (#x87bf ?l) - (#x87c0 ?) - (#x87c2 ?d) - (#x87c3 ?c) - (#x87c4 ?h) - (#x87c5 ?[) - (#x87c6 ?) - (#x87c8 ?) - (#x87c9 ?b) - (#x87ca ?i) - (#x87cb ?) - (#x87cc ?e) - (#x87d1 ?) - (#x87d2 ?) - (#x87d3 ?) - (#x87d4 ?) - (#x87d7 ?) - (#x87d8 ?) - (#x87d9 ?) - (#x87db ?) - (#x87dc ?) - (#x87dd ?) - (#x87de ?o) - (#x87df ?) - (#x87e0 ?) - (#x87e1 ?) - (#x87e2 ?) - (#x87e3 ?) - (#x87e4 ?) - (#x87e5 ?) - (#x87e6 ?) - (#x87e7 ?) - (#x87e8 ?) - (#x87ea ?) - (#x87eb ?) - (#x87ec ?) - (#x87ed ?) - (#x87ef ?) - (#x87f2 ?) - (#x87f3 ?) - (#x87f4 ?) - (#x87f6 ?) - (#x87f7 ?) - (#x87f9 ?) - (#x87fa ?) - (#x87fb ?) - (#x87fc ?) - (#x87fe ?) - (#x87ff ?) - (#x8800 ?) - (#x8801 ?) - (#x8802 ?) - (#x8803 ?) - (#x8805 ?) - (#x8806 ?) - (#x8808 ?) - (#x8809 ?) - (#x880a ?) - (#x880b ?) - (#x880c ?) - (#x880d ?) - (#x8810 ?) - (#x8811 ?) - (#x8813 ?) - (#x8814 ?Į) - (#x8815 ?į) - (#x8816 ?) - (#x8817 ?) - (#x8819 ?) - (#x881b ?B) - (#x881c ?E) - (#x881d ?A) - (#x881f ?) - (#x8820 ?C) - (#x8821 ?) - (#x8822 ?) - (#x8823 ?) - (#x8824 ?D) - (#x8825 ?Q) - (#x8826 ?O) - (#x8828 ?N) - (#x8829 ?@) - (#x882a ?P) - (#x882b ?F) - (#x882c ?M) - (#x882e ?) - (#x882f ?) - (#x8830 ?) - (#x8831 ?) - (#x8832 ?) - (#x8833 ?) - (#x8835 ?) - (#x8836 ?) - (#x8837 ?) - (#x8838 ?) - (#x8839 ?) - (#x883b ?Z) - (#x883c ?n) - (#x883d ?) - (#x883e ?) - (#x883f ?) - (#x8840 ?) - (#x8841 ?Ъ) - (#x8843 ?) - (#x8844 ?) - (#x8848 ?) - (#x884a ?G) - (#x884b ?) - (#x884c ?) - (#x884d ?l) - (#x884e ?Ы) - (#x8852 ?ױ) - (#x8853 ?N) - (#x8855 ?) - (#x8856 ?) - (#x8857 ?) - (#x8859 ?) - (#x885a ?) - (#x885b ?) - (#x885d ?) - (#x8861 ?) - (#x8862 ?) - (#x8863 ?) - (#x8867 ?Ь) - (#x8868 ?) - (#x8869 ?Ю) - (#x886a ?Э) - (#x886b ?m) - (#x886d ?) - (#x886f ?) - (#x8870 ?I) - (#x8871 ?) - (#x8872 ?) - (#x8874 ?) - (#x8875 ?) - (#x8876 ?) - (#x8877 ?J) - (#x8879 ?N) - (#x887c ?) - (#x887d ?M) - (#x887e ?) - (#x887f ?) - (#x8880 ?) - (#x8881 ?K) - (#x8882 ?L) - (#x8883 ?) - (#x8888 ?P) - (#x8889 ?ײ) - (#x888b ?U) - (#x888c ?) - (#x888d ?T) - (#x888e ?) - (#x8891 ?) - (#x8892 ?R) - (#x8893 ?) - (#x8895 ?׳) - (#x8896 ?S) - (#x8897 ?) - (#x8898 ?) - (#x8899 ?) - (#x889a ?) - (#x889b ?) - (#x889e ?O) - (#x889f ?) - (#x88a1 ?) - (#x88a2 ?) - (#x88a4 ?) - (#x88a7 ?) - (#x88a8 ?״) - (#x88aa ?) - (#x88ab ?Q) - (#x88ac ?) - (#x88b1 ?) - (#x88b2 ?) - (#x88b6 ?) - (#x88b7 ?) - (#x88b8 ?) - (#x88b9 ?) - (#x88ba ?) - (#x88bc ?) - (#x88bd ?) - (#x88be ?) - (#x88c0 ?) - (#x88c1 ?) - (#x88c2 ?) - (#x88c9 ?) - (#x88ca ?) - (#x88cb ?) - (#x88cc ?) - (#x88cd ?) - (#x88ce ?) - (#x88cf ?) - (#x88d0 ?) - (#x88d2 ?) - (#x88d4 ?) - (#x88d5 ?) - (#x88d6 ?) - (#x88d7 ?) - (#x88d8 ?) - (#x88d9 ?) - (#x88da ?) - (#x88db ?) - (#x88dc ?) - (#x88dd ?) - (#x88de ?) - (#x88df ?) - (#x88e1 ?) - (#x88e7 ?) - (#x88e8 ?t) - (#x88eb ?B) - (#x88ec ?A) - (#x88ee ?) - (#x88ef ?v) - (#x88f0 ?@) - (#x88f1 ?) - (#x88f2 ?) - (#x88f3 ?n) - (#x88f4 ?p) - (#x88f6 ?) - (#x88f7 ?) - (#x88f8 ?r) - (#x88f9 ?q) - (#x88fa ?) - (#x88fb ?) - (#x88fc ?) - (#x88fd ?s) - (#x88fe ?) - (#x8901 ?) - (#x8902 ?o) - (#x8905 ?) - (#x8906 ?) - (#x8907 ?) - (#x8909 ?) - (#x890a ?) - (#x890b ?) - (#x890c ?) - (#x890e ?) - (#x8910 ?) - (#x8911 ?) - (#x8912 ?) - (#x8913 ?) - (#x8914 ?) - (#x8915 ?) - (#x8916 ?) - (#x8917 ?) - (#x8918 ?) - (#x8919 ?) - (#x891a ?u) - (#x891e ?p) - (#x891f ?|) - (#x8921 ?) - (#x8922 ?w) - (#x8923 ?y) - (#x8925 ?) - (#x8926 ?q) - (#x8927 ?u) - (#x8929 ?x) - (#x892a ?) - (#x892b ?) - (#x892c ?{) - (#x892d ?s) - (#x892e ?t) - (#x892f ?z) - (#x8930 ?r) - (#x8931 ?v) - (#x8932 ?) - (#x8933 ?r) - (#x8935 ?q) - (#x8936 ?) - (#x8937 ?w) - (#x8938 ?) - (#x893b ?) - (#x893c ?s) - (#x893d ?) - (#x893e ?t) - (#x8941 ?u) - (#x8942 ?x) - (#x8944 ?) - (#x8946 ?) - (#x8949 ?) - (#x894b ?) - (#x894c ?) - (#x894f ?) - (#x8950 ?) - (#x8951 ?) - (#x8952 ?v) - (#x8953 ?) - (#x8956 ?) - (#x8957 ?) - (#x8958 ?) - (#x8959 ?) - (#x895a ?) - (#x895b ?) - (#x895c ?) - (#x895d ?) - (#x895e ?) - (#x895f ?) - (#x8960 ?) - (#x8961 ?) - (#x8962 ?) - (#x8963 ?) - (#x8964 ?İ) - (#x8966 ?) - (#x8969 ?I) - (#x896a ?) - (#x896b ?K) - (#x896c ?) - (#x896d ?H) - (#x896e ?J) - (#x896f ?Ũ) - (#x8971 ?R) - (#x8972 ?ŧ) - (#x8973 ?) - (#x8974 ?) - (#x8976 ?) - (#x8979 ?H) - (#x897a ?I) - (#x897b ?K) - (#x897c ?J) - (#x897e ?P) - (#x897f ?) - (#x8981 ?n) - (#x8982 ?) - (#x8983 ?) - (#x8985 ?) - (#x8986 ?) - (#x8988 ?) - (#x898b ?) - (#x898f ?W) - (#x8993 ?V) - (#x8995 ?) - (#x8996 ?) - (#x8997 ?) - (#x8998 ?) - (#x899b ?) - (#x899c ?) - (#x899d ?C) - (#x899e ?F) - (#x899f ?E) - (#x89a1 ?D) - (#x89a2 ?) - (#x89a3 ?) - (#x89a4 ?) - (#x89a6 ?) - (#x89aa ?) - (#x89ac ?) - (#x89ad ?y) - (#x89ae ?{) - (#x89af ?z) - (#x89b2 ?) - (#x89b6 ?) - (#x89b7 ?) - (#x89b9 ?) - (#x89ba ?ı) - (#x89bd ?) - (#x89be ?T) - (#x89bf ?S) - (#x89c0 ?[) - (#x89d2 ?) - (#x89d3 ?Я) - (#x89d4 ?o) - (#x89d5 ?) - (#x89d6 ?) - (#x89d9 ?) - (#x89da ?) - (#x89db ?) - (#x89dc ?C) - (#x89dd ?) - (#x89df ?) - (#x89e0 ?A) - (#x89e1 ?@) - (#x89e2 ?B) - (#x89e3 ?) - (#x89e4 ?) - (#x89e5 ?) - (#x89e6 ?D) - (#x89e8 ?I) - (#x89e9 ?G) - (#x89eb ?H) - (#x89ec ?) - (#x89ed ?) - (#x89f0 ?) - (#x89f1 ?}) - (#x89f2 ?|) - (#x89f3 ?}) - (#x89f4 ?) - (#x89f6 ?) - (#x89f7 ?) - (#x89f8 ?IJ) - (#x89fa ?L) - (#x89fb ?U) - (#x89fc ?ũ) - (#x89fe ?) - (#x89ff ?L) - (#x8a00 ?) - (#x8a02 ?q) - (#x8a03 ?r) - (#x8a04 ?а) - (#x8a07 ?б) - (#x8a08 ?p) - (#x8a0a ?T) - (#x8a0c ?R) - (#x8a0e ?Q) - (#x8a0f ?X) - (#x8a10 ?P) - (#x8a11 ?Y) - (#x8a12 ?) - (#x8a13 ?V) - (#x8a15 ?S) - (#x8a16 ?W) - (#x8a17 ?U) - (#x8a18 ?O) - (#x8a1b ?_) - (#x8a1d ?Y) - (#x8a1e ?) - (#x8a1f ?^) - (#x8a22 ?`) - (#x8a23 ?Z) - (#x8a25 ?[) - (#x8a27 ?) - (#x8a2a ?X) - (#x8a2c ?) - (#x8a2d ?]) - (#x8a30 ?) - (#x8a31 ?\) - (#x8a34 ?D) - (#x8a36 ?F) - (#x8a39 ?) - (#x8a3a ?E) - (#x8a3b ?) - (#x8a3c ?) - (#x8a3e ?) - (#x8a3f ?I) - (#x8a40 ?) - (#x8a41 ?) - (#x8a44 ?) - (#x8a45 ?) - (#x8a46 ?C) - (#x8a48 ?) - (#x8a4a ?) - (#x8a4c ?) - (#x8a4d ?) - (#x8a4e ?) - (#x8a4f ?) - (#x8a50 ?B) - (#x8a51 ?) - (#x8a52 ?) - (#x8a54 ?@) - (#x8a55 ?) - (#x8a56 ?G) - (#x8a57 ?) - (#x8a58 ?) - (#x8a59 ?) - (#x8a5b ?A) - (#x8a5e ?) - (#x8a60 ?) - (#x8a61 ?H) - (#x8a62 ?) - (#x8a63 ?) - (#x8a66 ?) - (#x8a68 ?) - (#x8a69 ?) - (#x8a6b ?) - (#x8a6c ?) - (#x8a6d ?) - (#x8a6e ?) - (#x8a70 ?) - (#x8a71 ?) - (#x8a72 ?) - (#x8a73 ?) - (#x8a74 ?P) - (#x8a75 ?M) - (#x8a76 ?E) - (#x8a77 ?J) - (#x8a79 ?) - (#x8a7a ?Q) - (#x8a7b ?) - (#x8a7c ?) - (#x8a7f ?G) - (#x8a81 ?O) - (#x8a82 ?K) - (#x8a83 ?N) - (#x8a84 ?L) - (#x8a85 ?) - (#x8a86 ?F) - (#x8a87 ?) - (#x8a8b ?L) - (#x8a8c ?x) - (#x8a8d ?{) - (#x8a8f ?N) - (#x8a91 ?) - (#x8a92 ?M) - (#x8a93 ?}) - (#x8a95 ?) - (#x8a96 ?O) - (#x8a98 ?) - (#x8a99 ?K) - (#x8a9a ?) - (#x8a9e ?y) - (#x8aa0 ?) - (#x8aa1 ?|) - (#x8aa3 ?z) - (#x8aa4 ?~) - (#x8aa5 ?) - (#x8aa6 ?w) - (#x8aa7 ?) - (#x8aa8 ?) - (#x8aaa ?) - (#x8aab ?J) - (#x8ab0 ?) - (#x8ab2 ?) - (#x8ab6 ?) - (#x8ab8 ?) - (#x8ab9 ?) - (#x8aba ?) - (#x8abb ?) - (#x8abc ?) - (#x8abd ?) - (#x8abe ?) - (#x8abf ?) - (#x8ac0 ?) - (#x8ac2 ?) - (#x8ac3 ?) - (#x8ac4 ?) - (#x8ac5 ?) - (#x8ac6 ?) - (#x8ac7 ?) - (#x8ac8 ?) - (#x8ac9 ?) - (#x8acb ?) - (#x8acd ?) - (#x8acf ?) - (#x8ad1 ?) - (#x8ad2 ?) - (#x8ad3 ?) - (#x8ad4 ?) - (#x8ad5 ?) - (#x8ad6 ?) - (#x8ad7 ?) - (#x8ad8 ?) - (#x8ad9 ?) - (#x8adb ?) - (#x8adc ?) - (#x8add ?) - (#x8ade ?) - (#x8adf ?) - (#x8ae0 ?~) - (#x8ae1 ?) - (#x8ae2 ?) - (#x8ae4 ?) - (#x8ae6 ?) - (#x8ae7 ?) - (#x8ae8 ?) - (#x8aeb ?) - (#x8aed ?) - (#x8aee ?) - (#x8aef ?) - (#x8af0 ?) - (#x8af1 ?) - (#x8af2 ?) - (#x8af3 ?) - (#x8af4 ?) - (#x8af5 ?) - (#x8af6 ?) - (#x8af7 ?) - (#x8af8 ?) - (#x8afa ?) - (#x8afb ?) - (#x8afc ?) - (#x8afe ?) - (#x8aff ?) - (#x8b00 ?) - (#x8b01 ?) - (#x8b02 ?) - (#x8b04 ?) - (#x8b05 ?) - (#x8b06 ?) - (#x8b07 ?) - (#x8b08 ?) - (#x8b0a ?) - (#x8b0b ?) - (#x8b0d ?) - (#x8b0e ?) - (#x8b0f ?) - (#x8b10 ?) - (#x8b11 ?) - (#x8b12 ?) - (#x8b13 ?) - (#x8b14 ?) - (#x8b15 ?) - (#x8b16 ?) - (#x8b17 ?) - (#x8b18 ?) - (#x8b19 ?) - (#x8b1a ?) - (#x8b1b ?) - (#x8b1c ?) - (#x8b1d ?) - (#x8b1e ?~) - (#x8b20 ?) - (#x8b22 ?) - (#x8b23 ?) - (#x8b24 ?) - (#x8b25 ?) - (#x8b26 ?) - (#x8b27 ?) - (#x8b28 ?) - (#x8b2a ?) - (#x8b2b ?) - (#x8b2c ?) - (#x8b2e ?) - (#x8b2f ?) - (#x8b30 ?) - (#x8b31 ?) - (#x8b33 ?) - (#x8b35 ?) - (#x8b36 ?) - (#x8b37 ?) - (#x8b39 ?) - (#x8b3a ?) - (#x8b3b ?) - (#x8b3c ?) - (#x8b3d ?) - (#x8b3e ?) - (#x8b40 ?) - (#x8b41 ?) - (#x8b42 ?A) - (#x8b45 ?O) - (#x8b46 ?) - (#x8b47 ?) - (#x8b48 ?) - (#x8b49 ?) - (#x8b4a ?) - (#x8b4b ?) - (#x8b4e ?) - (#x8b4f ?) - (#x8b50 ?) - (#x8b51 ?@) - (#x8b52 ?B) - (#x8b53 ?) - (#x8b54 ?) - (#x8b55 ?) - (#x8b56 ?) - (#x8b57 ?C) - (#x8b58 ?) - (#x8b59 ?) - (#x8b5a ?) - (#x8b5c ?) - (#x8b5d ?) - (#x8b5f ?ķ) - (#x8b60 ?) - (#x8b63 ?) - (#x8b65 ?) - (#x8b66 ?ĵ) - (#x8b67 ?) - (#x8b68 ?) - (#x8b6a ?) - (#x8b6b ?ĸ) - (#x8b6c ?Ĵ) - (#x8b6d ?) - (#x8b6f ?Ķ) - (#x8b70 ?ij) - (#x8b74 ?) - (#x8b77 ?@) - (#x8b78 ?N) - (#x8b79 ?M) - (#x8b7a ?P) - (#x8b7b ?Q) - (#x8b7d ?A) - (#x8b7e ?V) - (#x8b7f ?[) - (#x8b80 ?Ū) - (#x8b82 ?X) - (#x8b84 ?W) - (#x8b85 ?Z) - (#x8b86 ?Y) - (#x8b88 ?C) - (#x8b8a ?) - (#x8b8b ?B) - (#x8b8c ?@) - (#x8b8e ?A) - (#x8b92 ?) - (#x8b93 ?) - (#x8b94 ?) - (#x8b95 ?) - (#x8b96 ?@) - (#x8b98 ?M) - (#x8b99 ?N) - (#x8b9a ?g) - (#x8b9c ?m) - (#x8b9e ?) - (#x8b9f ?) - (#x8c37 ?) - (#x8c39 ?) - (#x8c3b ?) - (#x8c3c ?R) - (#x8c3d ?P) - (#x8c3e ?) - (#x8c3f ?) - (#x8c41 ?) - (#x8c42 ?) - (#x8c43 ?D) - (#x8c45 ?D) - (#x8c46 ?) - (#x8c47 ?) - (#x8c48 ?Z) - (#x8c49 ?a) - (#x8c4a ?T) - (#x8c4b ?S) - (#x8c4c ?) - (#x8c4d ?) - (#x8c4e ?) - (#x8c4f ?) - (#x8c50 ?) - (#x8c54 ?v) - (#x8c55 ?) - (#x8c56 ?) - (#x8c57 ?) - (#x8c5a ?b) - (#x8c5c ?) - (#x8c5d ?) - (#x8c5f ?) - (#x8c61 ?H) - (#x8c62 ?) - (#x8c64 ?V) - (#x8c65 ?U) - (#x8c66 ?W) - (#x8c68 ?Q) - (#x8c69 ?R) - (#x8c6a ?) - (#x8c6b ?) - (#x8c6c ?) - (#x8c6d ?) - (#x8c6f ?) - (#x8c70 ?) - (#x8c71 ?) - (#x8c72 ?) - (#x8c73 ?) - (#x8c75 ?) - (#x8c76 ?F) - (#x8c77 ?E) - (#x8c78 ?ˤ) - (#x8c79 ?\) - (#x8c7a ?[) - (#x8c7b ?) - (#x8c7d ?) - (#x8c80 ?) - (#x8c81 ?) - (#x8c82 ?I) - (#x8c84 ?Y) - (#x8c85 ?Z) - (#x8c86 ?X) - (#x8c89 ?) - (#x8c8a ?) - (#x8c8c ?) - (#x8c8d ?) - (#x8c8f ?) - (#x8c90 ?) - (#x8c91 ?) - (#x8c92 ?) - (#x8c93 ?) - (#x8c94 ?) - (#x8c95 ?) - (#x8c97 ?) - (#x8c98 ?) - (#x8c99 ?) - (#x8c9a ?G) - (#x8c9c ?) - (#x8c9d ?) - (#x8c9e ?s) - (#x8ca0 ?t) - (#x8ca1 ?]) - (#x8ca2 ?^) - (#x8ca3 ?) - (#x8ca4 ?) - (#x8ca5 ?) - (#x8ca7 ?h) - (#x8ca8 ?f) - (#x8ca9 ?c) - (#x8caa ?g) - (#x8cab ?e) - (#x8cac ?d) - (#x8caf ?J) - (#x8cb0 ?) - (#x8cb2 ?) - (#x8cb3 ?L) - (#x8cb4 ?Q) - (#x8cb5 ?) - (#x8cb6 ?S) - (#x8cb7 ?R) - (#x8cb8 ?U) - (#x8cb9 ?) - (#x8cba ?) - (#x8cbb ?O) - (#x8cbc ?K) - (#x8cbd ?M) - (#x8cbe ?) - (#x8cbf ?T) - (#x8cc0 ?P) - (#x8cc1 ?N) - (#x8cc2 ?) - (#x8cc3 ?) - (#x8cc4 ?) - (#x8cc5 ?) - (#x8cc7 ?) - (#x8cc8 ?) - (#x8cca ?) - (#x8ccc ?[) - (#x8ccf ?T) - (#x8cd1 ?) - (#x8cd2 ?) - (#x8cd3 ?) - (#x8cd5 ?S) - (#x8cd7 ?U) - (#x8cd9 ?) - (#x8cda ?) - (#x8cdc ?) - (#x8cdd ?) - (#x8cde ?) - (#x8cdf ?) - (#x8ce0 ?) - (#x8ce1 ?) - (#x8ce2 ?) - (#x8ce3 ?) - (#x8ce4 ?) - (#x8ce5 ?) - (#x8ce6 ?) - (#x8ce7 ?) - (#x8ce8 ?) - (#x8cea ?) - (#x8cec ?) - (#x8ced ?) - (#x8cee ?) - (#x8cf0 ?) - (#x8cf1 ?) - (#x8cf3 ?) - (#x8cf4 ?) - (#x8cf5 ?) - (#x8cf8 ?) - (#x8cf9 ?) - (#x8cfa ?) - (#x8cfb ?) - (#x8cfc ?) - (#x8cfd ?) - (#x8cfe ?) - (#x8d00 ?) - (#x8d02 ?) - (#x8d04 ?) - (#x8d05 ?) - (#x8d06 ?H) - (#x8d07 ?I) - (#x8d08 ?) - (#x8d09 ?J) - (#x8d0a ?) - (#x8d0d ?ĺ) - (#x8d0f ?Ĺ) - (#x8d10 ?R) - (#x8d13 ?B) - (#x8d14 ?S) - (#x8d15 ?\) - (#x8d16 ?ū) - (#x8d17 ?Ŭ) - (#x8d19 ?E) - (#x8d1b ?B) - (#x8d64 ?) - (#x8d66 ?j) - (#x8d67 ?i) - (#x8d68 ?\) - (#x8d69 ?]) - (#x8d6b ?) - (#x8d6c ?) - (#x8d6d ?) - (#x8d6e ?) - (#x8d6f ?) - (#x8d70 ?) - (#x8d72 ?в) - (#x8d73 ?v) - (#x8d74 ?u) - (#x8d76 ?) - (#x8d77 ?_) - (#x8d78 ?) - (#x8d79 ?) - (#x8d7b ?) - (#x8d7d ?) - (#x8d80 ?) - (#x8d81 ?X) - (#x8d84 ?) - (#x8d85 ?W) - (#x8d89 ?) - (#x8d8a ?V) - (#x8d8c ?_) - (#x8d8d ?b) - (#x8d8e ?`) - (#x8d8f ?a) - (#x8d90 ?e) - (#x8d91 ?^) - (#x8d92 ?f) - (#x8d93 ?c) - (#x8d94 ?d) - (#x8d95 ?) - (#x8d96 ?V) - (#x8d99 ?) - (#x8d9b ?) - (#x8d9c ?) - (#x8d9f ?) - (#x8da0 ?) - (#x8da1 ?) - (#x8da3 ?) - (#x8da5 ?) - (#x8da7 ?) - (#x8da8 ?) - (#x8daa ?L) - (#x8dab ?N) - (#x8dac ?K) - (#x8dad ?M) - (#x8dae ?) - (#x8daf ?T) - (#x8db2 ?o) - (#x8db3 ?) - (#x8db4 ?w) - (#x8db5 ?) - (#x8db6 ?) - (#x8db7 ?) - (#x8db9 ?) - (#x8dba ?l) - (#x8dbc ?) - (#x8dbe ?k) - (#x8dbf ?) - (#x8dc1 ?) - (#x8dc2 ?) - (#x8dc5 ?) - (#x8dc6 ?`) - (#x8dc7 ?) - (#x8dc8 ?) - (#x8dcb ?[) - (#x8dcc ?^) - (#x8dcd ?) - (#x8dce ?Y) - (#x8dcf ?) - (#x8dd0 ?l) - (#x8dd1 ?]) - (#x8dd3 ?) - (#x8dd5 ?) - (#x8dd6 ?) - (#x8dd7 ?) - (#x8dd8 ?) - (#x8dd9 ?) - (#x8dda ?\) - (#x8ddb ?_) - (#x8ddc ?) - (#x8ddd ?Z) - (#x8ddf ?) - (#x8de0 ?h) - (#x8de1 ?) - (#x8de2 ?o) - (#x8de3 ?n) - (#x8de4 ?) - (#x8de6 ?) - (#x8de7 ?p) - (#x8de8 ?) - (#x8de9 ?m) - (#x8dea ?) - (#x8deb ?r) - (#x8dec ?i) - (#x8dee ?k) - (#x8def ?) - (#x8df0 ?g) - (#x8df1 ?j) - (#x8df2 ?q) - (#x8df3 ?) - (#x8df4 ?s) - (#x8dfa ?) - (#x8dfc ?) - (#x8dfd ?[) - (#x8dfe ?a) - (#x8dff ?Y) - (#x8e00 ?b) - (#x8e02 ?X) - (#x8e03 ?]) - (#x8e04 ?c) - (#x8e05 ?`) - (#x8e06 ?_) - (#x8e07 ?^) - (#x8e09 ?W) - (#x8e0a ?\) - (#x8e0d ?Z) - (#x8e0f ?) - (#x8e10 ?) - (#x8e11 ?) - (#x8e12 ?A) - (#x8e13 ?C) - (#x8e14 ?@) - (#x8e15 ?) - (#x8e16 ?) - (#x8e17 ?E) - (#x8e18 ?B) - (#x8e19 ?) - (#x8e1a ?F) - (#x8e1b ?) - (#x8e1c ?D) - (#x8e1d ?) - (#x8e1e ?) - (#x8e1f ?) - (#x8e20 ?) - (#x8e21 ?) - (#x8e22 ?) - (#x8e23 ?) - (#x8e24 ?) - (#x8e25 ?) - (#x8e26 ?) - (#x8e27 ?) - (#x8e29 ?) - (#x8e2b ?) - (#x8e2e ?) - (#x8e30 ?) - (#x8e31 ?) - (#x8e33 ?) - (#x8e34 ?) - (#x8e35 ?) - (#x8e36 ?) - (#x8e38 ?) - (#x8e39 ?) - (#x8e3c ?) - (#x8e3d ?) - (#x8e3e ?) - (#x8e3f ?) - (#x8e40 ?) - (#x8e41 ?) - (#x8e42 ?) - (#x8e44 ?) - (#x8e45 ?) - (#x8e47 ?) - (#x8e48 ?) - (#x8e49 ?) - (#x8e4a ?) - (#x8e4b ?) - (#x8e4c ?) - (#x8e4d ?) - (#x8e4e ?) - (#x8e50 ?) - (#x8e53 ?) - (#x8e54 ?E) - (#x8e55 ?) - (#x8e56 ?) - (#x8e57 ?) - (#x8e59 ?) - (#x8e5a ?A) - (#x8e5b ?@) - (#x8e5c ?) - (#x8e5d ?C) - (#x8e5e ?) - (#x8e5f ?) - (#x8e60 ?) - (#x8e61 ?B) - (#x8e62 ?) - (#x8e63 ?) - (#x8e64 ?) - (#x8e65 ?) - (#x8e66 ?) - (#x8e67 ?) - (#x8e69 ?D) - (#x8e6a ?R) - (#x8e6c ?) - (#x8e6d ?O) - (#x8e6f ?S) - (#x8e72 ?) - (#x8e73 ?Q) - (#x8e74 ?) - (#x8e76 ?) - (#x8e78 ?P) - (#x8e7a ?) - (#x8e7b ?T) - (#x8e7c ?) - (#x8e81 ?ļ) - (#x8e82 ?ľ) - (#x8e84 ?) - (#x8e85 ?Ľ) - (#x8e86 ?) - (#x8e87 ?) - (#x8e88 ?) - (#x8e89 ?Ļ) - (#x8e8a ?C) - (#x8e8b ?E) - (#x8e8c ?V) - (#x8e8d ?D) - (#x8e8e ?U) - (#x8e90 ?a) - (#x8e91 ?ŭ) - (#x8e92 ?`) - (#x8e93 ?Ů) - (#x8e94 ?^) - (#x8e95 ?]) - (#x8e96 ?b) - (#x8e97 ?c) - (#x8e98 ?F) - (#x8e9a ?_) - (#x8e9d ?) - (#x8e9e ?) - (#x8e9f ?) - (#x8ea0 ?) - (#x8ea1 ?\) - (#x8ea3 ?Q) - (#x8ea4 ?P) - (#x8ea5 ?O) - (#x8ea6 ?p) - (#x8ea8 ?) - (#x8ea9 ?) - (#x8eaa ?n) - (#x8eab ?) - (#x8eac ?`) - (#x8eb2 ?) - (#x8eba ?) - (#x8ebd ?) - (#x8ec0 ?) - (#x8ec2 ?U) - (#x8ec9 ?) - (#x8eca ?) - (#x8ecb ?) - (#x8ecc ?y) - (#x8ecd ?x) - (#x8ecf ?c) - (#x8ed1 ?) - (#x8ed2 ?a) - (#x8ed3 ?) - (#x8ed4 ?b) - (#x8ed7 ?) - (#x8ed8 ?) - (#x8edb ?m) - (#x8edc ?) - (#x8edd ?) - (#x8ede ?) - (#x8edf ?n) - (#x8ee0 ?) - (#x8ee1 ?) - (#x8ee5 ?C) - (#x8ee6 ?A) - (#x8ee7 ?E) - (#x8ee8 ?F) - (#x8ee9 ?L) - (#x8eeb ?H) - (#x8eec ?J) - (#x8eee ?B) - (#x8eef ?) - (#x8ef1 ?I) - (#x8ef4 ?K) - (#x8ef5 ?D) - (#x8ef6 ?G) - (#x8ef7 ?) - (#x8ef8 ?b) - (#x8ef9 ?@) - (#x8efa ?) - (#x8efb ?a) - (#x8efc ?c) - (#x8efe ?) - (#x8eff ?u) - (#x8f00 ?w) - (#x8f01 ?v) - (#x8f02 ?{) - (#x8f03 ?) - (#x8f05 ?x) - (#x8f06 ?t) - (#x8f07 ?y) - (#x8f08 ?z) - (#x8f09 ?) - (#x8f0a ?) - (#x8f0b ?|) - (#x8f0d ?g) - (#x8f0e ?f) - (#x8f10 ?d) - (#x8f11 ?e) - (#x8f12 ?) - (#x8f13 ?) - (#x8f14 ?) - (#x8f15 ?) - (#x8f16 ?M) - (#x8f17 ?N) - (#x8f18 ?I) - (#x8f1a ?J) - (#x8f1b ?) - (#x8f1c ?) - (#x8f1d ?) - (#x8f1e ?) - (#x8f1f ?) - (#x8f20 ?K) - (#x8f23 ?L) - (#x8f24 ?H) - (#x8f25 ?@) - (#x8f26 ?) - (#x8f29 ?) - (#x8f2a ?) - (#x8f2c ?G) - (#x8f2e ?) - (#x8f2f ?) - (#x8f32 ?) - (#x8f33 ?) - (#x8f34 ?) - (#x8f35 ?) - (#x8f36 ?) - (#x8f37 ?) - (#x8f38 ?) - (#x8f39 ?) - (#x8f3b ?) - (#x8f3e ?) - (#x8f3f ?) - (#x8f40 ?) - (#x8f42 ?) - (#x8f43 ?) - (#x8f44 ?) - (#x8f45 ?) - (#x8f46 ?F) - (#x8f47 ?G) - (#x8f48 ?H) - (#x8f49 ?) - (#x8f4b ?I) - (#x8f4d ?) - (#x8f4e ?) - (#x8f4f ?X) - (#x8f50 ?Y) - (#x8f51 ?W) - (#x8f52 ?V) - (#x8f53 ?Z) - (#x8f54 ?) - (#x8f55 ?) - (#x8f56 ?) - (#x8f57 ?) - (#x8f58 ?) - (#x8f59 ?) - (#x8f5a ?) - (#x8f5b ?X) - (#x8f5d ?Y) - (#x8f5e ?W) - (#x8f5f ?F) - (#x8f60 ?d) - (#x8f61 ?ů) - (#x8f62 ?e) - (#x8f63 ?H) - (#x8f64 ?G) - (#x8f9b ?) - (#x8f9c ?d) - (#x8f9f ?@) - (#x8fa3 ?) - (#x8fa6 ?) - (#x8fa8 ?) - (#x8fad ?) - (#x8fae ?|) - (#x8faf ?G) - (#x8fb0 ?) - (#x8fb1 ?d) - (#x8fb2 ?A) - (#x8fb4 ?[) - (#x8fbf ?˦) - (#x8fc2 ?) - (#x8fc4 ?) - (#x8fc5 ?) - (#x8fc6 ?) - (#x8fc9 ?˥) - (#x8fcb ?) - (#x8fcd ?) - (#x8fce ?) - (#x8fd1 ?) - (#x8fd2 ?) - (#x8fd3 ?) - (#x8fd4 ?) - (#x8fd5 ?) - (#x8fd6 ?) - (#x8fd7 ?) - (#x8fe0 ?ж) - (#x8fe1 ?д) - (#x8fe2 ?|) - (#x8fe3 ?г) - (#x8fe4 ?) - (#x8fe5 ?~) - (#x8fe6 ?{) - (#x8fe8 ?) - (#x8fea ?}) - (#x8feb ?) - (#x8fed ?) - (#x8fee ?е) - (#x8ff0 ?z) - (#x8ff4 ?j) - (#x8ff5 ?) - (#x8ff6 ?) - (#x8ff7 ?g) - (#x8ff8 ?n) - (#x8ffa ?i) - (#x8ffb ?) - (#x8ffc ?) - (#x8ffd ?l) - (#x8ffe ?) - (#x8fff ?) - (#x9000 ?h) - (#x9001 ?e) - (#x9002 ?) - (#x9003 ?k) - (#x9004 ?) - (#x9005 ?m) - (#x9006 ?f) - (#x900b ?) - (#x900c ?) - (#x900d ?p) - (#x900f ?z) - (#x9010 ?v) - (#x9011 ?) - (#x9014 ?~) - (#x9015 ?w) - (#x9016 ?|) - (#x9017 ?r) - (#x9019 ?o) - (#x901a ?q) - (#x901b ?}) - (#x901c ?) - (#x901d ?u) - (#x901e ?x) - (#x901f ?t) - (#x9020 ?y) - (#x9021 ?) - (#x9022 ?{) - (#x9023 ?s) - (#x9024 ?) - (#x902d ?M) - (#x902e ?e) - (#x902f ?O) - (#x9031 ?g) - (#x9032 ?i) - (#x9034 ?N) - (#x9035 ?f) - (#x9036 ?j) - (#x9038 ?h) - (#x903c ?G) - (#x903d ?) - (#x903e ?O) - (#x903f ?~) - (#x9041 ?P) - (#x9042 ?E) - (#x9044 ?) - (#x9047 ?J) - (#x9049 ?) - (#x904a ?C) - (#x904b ?B) - (#x904d ?M) - (#x904e ?L) - (#x904f ?K) - (#x9050 ?I) - (#x9051 ?N) - (#x9052 ?}) - (#x9053 ?D) - (#x9054 ?F) - (#x9055 ?H) - (#x9058 ?) - (#x9059 ?) - (#x905b ?) - (#x905c ?) - (#x905d ?) - (#x905e ?) - (#x9060 ?) - (#x9062 ?) - (#x9063 ?) - (#x9067 ?R) - (#x9068 ?C) - (#x9069 ?A) - (#x906b ?S) - (#x906d ?D) - (#x906e ?B) - (#x906f ?Q) - (#x9070 ?P) - (#x9072 ?) - (#x9073 ?O) - (#x9074 ?) - (#x9075 ?) - (#x9076 ?) - (#x9077 ?E) - (#x9078 ?) - (#x9079 ?) - (#x907a ?) - (#x907b ?) - (#x907c ?) - (#x907d ?) - (#x907e ?) - (#x907f ?) - (#x9080 ?) - (#x9081 ?) - (#x9082 ?) - (#x9083 ?) - (#x9084 ?) - (#x9085 ?) - (#x9086 ?) - (#x9087 ?) - (#x9088 ?) - (#x908a ?) - (#x908b ?) - (#x908d ?) - (#x908f ?) - (#x9090 ?) - (#x9091 ?) - (#x9094 ?U) - (#x9095 ?o) - (#x9097 ?R) - (#x9098 ?S) - (#x9099 ?Q) - (#x909b ?T) - (#x909e ?˪) - (#x909f ?˧) - (#x90a0 ?ˬ) - (#x90a1 ?˨) - (#x90a2 ?) - (#x90a3 ?) - (#x90a5 ?˩) - (#x90a6 ?) - (#x90a7 ?˫) - (#x90aa ?) - (#x90af ?) - (#x90b0 ?) - (#x90b1 ?) - (#x90b2 ?) - (#x90b3 ?) - (#x90b4 ?) - (#x90b5 ?) - (#x90b6 ?) - (#x90b8 ?) - (#x90bd ?и) - (#x90be ?м) - (#x90bf ?й) - (#x90c1 ?) - (#x90c3 ?) - (#x90c5 ?л) - (#x90c7 ?н) - (#x90c8 ?п) - (#x90ca ?) - (#x90cb ?о) - (#x90ce ?) - (#x90d4 ?) - (#x90d5 ?к) - (#x90d6 ?) - (#x90d7 ?) - (#x90d8 ?) - (#x90d9 ?) - (#x90da ?) - (#x90db ?) - (#x90dc ?) - (#x90dd ?q) - (#x90df ?) - (#x90e0 ?) - (#x90e1 ?p) - (#x90e2 ?r) - (#x90e3 ?) - (#x90e4 ?) - (#x90e5 ?) - (#x90e8 ?) - (#x90e9 ?) - (#x90ea ?) - (#x90eb ?) - (#x90ec ?) - (#x90ed ?) - (#x90ef ?) - (#x90f0 ?) - (#x90f1 ?з) - (#x90f2 ?) - (#x90f3 ?) - (#x90f4 ?) - (#x90f5 ?l) - (#x90f9 ?V) - (#x90fa ?) - (#x90fb ?W) - (#x90fc ?T) - (#x90fd ?) - (#x90fe ?n) - (#x90ff ?S) - (#x9100 ?Y) - (#x9101 ?X) - (#x9102 ?k) - (#x9103 ?\) - (#x9104 ?R) - (#x9105 ?[) - (#x9106 ?P) - (#x9107 ?Z) - (#x9108 ?U) - (#x9109 ?m) - (#x910b ?) - (#x910d ?) - (#x910e ?) - (#x910f ?) - (#x9110 ?) - (#x9111 ?) - (#x9112 ?Q) - (#x9114 ?) - (#x9116 ?) - (#x9117 ?R) - (#x9118 ?) - (#x9119 ?) - (#x911a ?n) - (#x911b ?q) - (#x911c ?i) - (#x911d ?m) - (#x911e ?) - (#x911f ?l) - (#x9120 ?j) - (#x9121 ?p) - (#x9122 ?k) - (#x9123 ?h) - (#x9124 ?o) - (#x9126 ?Y) - (#x9127 ?H) - (#x9128 ?J) - (#x9129 ?V) - (#x912a ?W) - (#x912b ?U) - (#x912c ?Q) - (#x912d ?G) - (#x912e ?Z) - (#x912f ?T) - (#x9130 ?F) - (#x9131 ?I) - (#x9132 ?X) - (#x9133 ?) - (#x9134 ?) - (#x9135 ?) - (#x9136 ?) - (#x9138 ?) - (#x9139 ?) - (#x913a ?K) - (#x913b ?L) - (#x913e ?M) - (#x913f ?]) - (#x9140 ?\) - (#x9141 ?) - (#x9143 ?) - (#x9144 ?[) - (#x9145 ?\) - (#x9146 ?Z) - (#x9147 ?f) - (#x9148 ?Ű) - (#x9149 ?) - (#x914a ?) - (#x914b ?) - (#x914c ?u) - (#x914d ?t) - (#x914e ?@) - (#x914f ?A) - (#x9150 ?) - (#x9152 ?s) - (#x9153 ?) - (#x9155 ?) - (#x9156 ?) - (#x9157 ?) - (#x9158 ?) - (#x915a ?) - (#x915f ?_) - (#x9160 ?a) - (#x9161 ?]) - (#x9162 ?`) - (#x9163 ?o) - (#x9164 ?^) - (#x9165 ?p) - (#x9168 ?s) - (#x9169 ?U) - (#x916a ?T) - (#x916c ?S) - (#x916e ?) - (#x916f ?) - (#x9172 ?s) - (#x9173 ?u) - (#x9174 ?) - (#x9175 ?) - (#x9177 ?) - (#x9178 ?) - (#x9179 ?t) - (#x917a ?r) - (#x9180 ?a) - (#x9181 ?^) - (#x9182 ?_) - (#x9183 ?M) - (#x9184 ?`) - (#x9185 ?[) - (#x9186 ?\) - (#x9187 ?J) - (#x9189 ?K) - (#x918a ?]) - (#x918b ?L) - (#x918d ?) - (#x918f ?) - (#x9190 ?) - (#x9191 ?) - (#x9192 ?) - (#x9193 ?) - (#x9199 ?) - (#x919a ?) - (#x919b ?) - (#x919c ?) - (#x919d ?) - (#x919e ?) - (#x919f ?) - (#x91a0 ?) - (#x91a1 ?) - (#x91a2 ?) - (#x91a3 ?) - (#x91a5 ?O) - (#x91a7 ?P) - (#x91a8 ?N) - (#x91aa ?R) - (#x91ab ?) - (#x91ac ?) - (#x91ad ?_) - (#x91ae ?) - (#x91af ?Q) - (#x91b0 ?^) - (#x91b1 ?) - (#x91b2 ?) - (#x91b3 ?) - (#x91b4 ?Ŀ) - (#x91b5 ?) - (#x91b7 ?) - (#x91b9 ?]) - (#x91ba ?H) - (#x91bc ?I) - (#x91bd ?) - (#x91be ?) - (#x91c0 ?C) - (#x91c1 ?]) - (#x91c2 ?) - (#x91c3 ?q) - (#x91c5 ?o) - (#x91c6 ?) - (#x91c7 ?) - (#x91c9 ?V) - (#x91cb ?) - (#x91cc ?) - (#x91cd ?) - (#x91ce ?) - (#x91cf ?q) - (#x91d0 ?) - (#x91d1 ?) - (#x91d3 ?) - (#x91d4 ?) - (#x91d5 ?B) - (#x91d7 ?x) - (#x91d8 ?v) - (#x91d9 ?z) - (#x91da ?D) - (#x91dc ?y) - (#x91dd ?w) - (#x91e2 ?C) - (#x91e3 ?) - (#x91e4 ?) - (#x91e6 ?) - (#x91e7 ?) - (#x91e8 ?B) - (#x91e9 ?) - (#x91ea ?) - (#x91eb ?@) - (#x91ec ?) - (#x91ed ?) - (#x91ee ?C) - (#x91f1 ?) - (#x91f3 ?) - (#x91f4 ?) - (#x91f5 ?) - (#x91f7 ?A) - (#x91f8 ?) - (#x91f9 ?) - (#x91fd ?m) - (#x91ff ?l) - (#x9200 ?j) - (#x9201 ?b) - (#x9202 ?q) - (#x9203 ?e) - (#x9204 ?o) - (#x9205 ?v) - (#x9206 ?n) - (#x9207 ?y) - (#x9209 ?u) - (#x920a ?c) - (#x920c ?i) - (#x920d ?w) - (#x920f ?h) - (#x9210 ?x) - (#x9211 ?z) - (#x9212 ?k) - (#x9214 ?r) - (#x9215 ?s) - (#x9216 ?w) - (#x9217 ?u) - (#x9219 ?t) - (#x921a ?f) - (#x921c ?r) - (#x921e ?v) - (#x9223 ?t) - (#x9224 ?s) - (#x9225 ?d) - (#x9226 ?g) - (#x9227 ?p) - (#x922d ?) - (#x922e ?) - (#x9230 ?) - (#x9231 ?) - (#x9232 ?) - (#x9233 ?) - (#x9234 ?a) - (#x9236 ?) - (#x9237 ?W) - (#x9238 ?Y) - (#x9239 ?e) - (#x923a ?) - (#x923d ?Z) - (#x923e ?\) - (#x923f ?f) - (#x9240 ?[) - (#x9245 ?d) - (#x9246 ?) - (#x9248 ?) - (#x9249 ?b) - (#x924a ?) - (#x924b ?^) - (#x924c ?) - (#x924d ?c) - (#x924e ?) - (#x924f ?) - (#x9250 ?) - (#x9251 ?`) - (#x9252 ?) - (#x9253 ?) - (#x9254 ?) - (#x9256 ?) - (#x9257 ?X) - (#x925a ?g) - (#x925b ?]) - (#x925e ?) - (#x9260 ?) - (#x9261 ?) - (#x9263 ?) - (#x9264 ?_) - (#x9265 ?) - (#x9266 ?) - (#x9267 ?) - (#x926c ?) - (#x926d ?) - (#x926f ?) - (#x9270 ?) - (#x9272 ?) - (#x9276 ?x) - (#x9278 ?) - (#x9279 ?) - (#x927a ?z) - (#x927b ?) - (#x927c ?) - (#x927d ?) - (#x927e ?) - (#x927f ?) - (#x9280 ?) - (#x9282 ?) - (#x9283 ?) - (#x9285 ?) - (#x9286 ?) - (#x9287 ?) - (#x9288 ?) - (#x928a ?) - (#x928b ?) - (#x928c ?) - (#x928d ?~) - (#x928e ?) - (#x9291 ?) - (#x9293 ?) - (#x9294 ?|) - (#x9295 ?) - (#x9296 ?) - (#x9297 ?) - (#x9298 ?) - (#x9299 ?) - (#x929a ?) - (#x929b ?y) - (#x929c ?) - (#x929d ?) - (#x92a0 ?{) - (#x92a1 ?) - (#x92a2 ?) - (#x92a3 ?) - (#x92a4 ?w) - (#x92a5 ?v) - (#x92a6 ?) - (#x92a7 ?) - (#x92a8 ?) - (#x92a9 ?) - (#x92aa ?}) - (#x92ab ?) - (#x92ac ?R) - (#x92b2 ?Z) - (#x92b3 ?U) - (#x92b4 ?) - (#x92b5 ?) - (#x92b6 ?g) - (#x92b7 ?P) - (#x92b9 ?) - (#x92bb ?O) - (#x92bc ?V) - (#x92c0 ?e) - (#x92c1 ?T) - (#x92c2 ?q) - (#x92c3 ?c) - (#x92c4 ?d) - (#x92c5 ?N) - (#x92c6 ?) - (#x92c7 ?X) - (#x92c8 ?t) - (#x92c9 ?y) - (#x92ca ?s) - (#x92cb ?) - (#x92cc ?o) - (#x92cd ?w) - (#x92ce ?u) - (#x92cf ?h) - (#x92d0 ?b) - (#x92d1 ?}) - (#x92d2 ?W) - (#x92d3 ?~) - (#x92d5 ?x) - (#x92d7 ?m) - (#x92d8 ?k) - (#x92d9 ?f) - (#x92dd ?n) - (#x92de ?{) - (#x92df ?j) - (#x92e0 ?z) - (#x92e1 ?) - (#x92e4 ?S) - (#x92e6 ?v) - (#x92e7 ?|) - (#x92e8 ?r) - (#x92e9 ?l) - (#x92ea ?Q) - (#x92ee ?) - (#x92ef ?p) - (#x92f0 ?Y) - (#x92f1 ?i) - (#x92f7 ?) - (#x92f8 ?) - (#x92f9 ?) - (#x92fa ?) - (#x92fb ?D) - (#x92fc ?) - (#x92fe ?A) - (#x92ff ?) - (#x9300 ?C) - (#x9301 ?) - (#x9302 ?) - (#x9304 ?) - (#x9306 ?) - (#x9308 ?) - (#x9309 ?B) - (#x930b ?@) - (#x930c ?) - (#x930d ?) - (#x930e ?) - (#x930f ?) - (#x9310 ?@) - (#x9312 ?) - (#x9313 ?) - (#x9314 ?) - (#x9315 ?C) - (#x9316 ?E) - (#x9318 ?) - (#x9319 ?E) - (#x931a ?) - (#x931b ?) - (#x931d ?) - (#x931e ?) - (#x931f ?) - (#x9320 ?) - (#x9321 ?B) - (#x9322 ?) - (#x9323 ?) - (#x9324 ?) - (#x9325 ?) - (#x9326 ?A) - (#x9327 ?) - (#x9328 ?) - (#x9329 ?) - (#x932a ?) - (#x932b ?) - (#x932d ?) - (#x932e ?D) - (#x932f ?) - (#x9333 ?) - (#x9334 ?) - (#x9335 ?) - (#x9336 ?) - (#x9338 ?) - (#x9339 ?) - (#x933c ?) - (#x9346 ?) - (#x9347 ?) - (#x9349 ?) - (#x934a ?) - (#x934b ?) - (#x934c ?) - (#x934d ?) - (#x934e ?) - (#x934f ?) - (#x9350 ?) - (#x9351 ?) - (#x9352 ?) - (#x9354 ?) - (#x9355 ?) - (#x9356 ?) - (#x9357 ?) - (#x9358 ?) - (#x9359 ?) - (#x935a ?) - (#x935b ?) - (#x935c ?) - (#x935e ?) - (#x9360 ?) - (#x9361 ?) - (#x9363 ?) - (#x9364 ?) - (#x9365 ?) - (#x9367 ?) - (#x936a ?) - (#x936c ?) - (#x936d ?) - (#x9370 ?) - (#x9371 ?) - (#x9375 ?) - (#x9376 ?) - (#x9377 ?) - (#x9379 ?) - (#x937a ?) - (#x937b ?) - (#x937c ?) - (#x937e ?) - (#x9380 ?) - (#x9382 ?) - (#x9383 ?) - (#x9388 ?`) - (#x9389 ?Y) - (#x938a ?) - (#x938c ?T) - (#x938d ?c) - (#x938e ?[) - (#x938f ?) - (#x9391 ?e) - (#x9392 ?U) - (#x9394 ?) - (#x9395 ?_) - (#x9396 ?) - (#x9397 ?) - (#x9398 ?) - (#x9399 ?a) - (#x939a ?) - (#x939b ?W) - (#x939d ?X) - (#x939e ?]) - (#x939f ?b) - (#x93a1 ?) - (#x93a2 ?) - (#x93a3 ?j) - (#x93a4 ?g) - (#x93a5 ?k) - (#x93a6 ?^) - (#x93a7 ?Z) - (#x93a8 ?h) - (#x93a9 ?j) - (#x93aa ?\) - (#x93ac ?) - (#x93ae ?) - (#x93af ?) - (#x93b0 ?) - (#x93b1 ?d) - (#x93b2 ?f) - (#x93b3 ?) - (#x93b4 ?i) - (#x93b5 ?S) - (#x93b7 ?V) - (#x93c0 ?s) - (#x93c2 ?c) - (#x93c3 ?) - (#x93c4 ?q) - (#x93c7 ?a) - (#x93c8 ?) - (#x93ca ?l) - (#x93cc ?h) - (#x93cd ?) - (#x93ce ?r) - (#x93cf ?b) - (#x93d0 ?e) - (#x93d1 ?) - (#x93d2 ?t) - (#x93d4 ?m) - (#x93d5 ?p) - (#x93d6 ?) - (#x93d7 ?) - (#x93d8 ?) - (#x93d9 ?i) - (#x93da ?d) - (#x93dc ?) - (#x93dd ?) - (#x93de ?`) - (#x93df ?) - (#x93e1 ?) - (#x93e2 ?) - (#x93e3 ?o) - (#x93e4 ?) - (#x93e6 ?k) - (#x93e7 ?u) - (#x93e8 ?) - (#x93ec ?g) - (#x93ee ?n) - (#x93f5 ?) - (#x93f6 ?B) - (#x93f7 ?) - (#x93f8 ?) - (#x93f9 ?f) - (#x93fa ?) - (#x93fb ?) - (#x93fc ?@) - (#x93fd ?) - (#x93fe ?) - (#x93ff ?) - (#x9400 ?) - (#x9403 ?) - (#x9406 ?D) - (#x9407 ?) - (#x9409 ?) - (#x940a ?) - (#x940b ?) - (#x940c ?A) - (#x940d ?) - (#x940e ?) - (#x940f ?) - (#x9410 ?) - (#x9411 ?C) - (#x9412 ?) - (#x9413 ?) - (#x9414 ?) - (#x9415 ?) - (#x9416 ?) - (#x9418 ?) - (#x9419 ?) - (#x9420 ?) - (#x9428 ?) - (#x9429 ?a) - (#x942a ?f) - (#x942b ?O) - (#x942c ?h) - (#x942e ?I) - (#x9430 ?d) - (#x9431 ?j) - (#x9432 ?N) - (#x9433 ?J) - (#x9435 ?K) - (#x9436 ?`) - (#x9437 ?g) - (#x9438 ?M) - (#x9439 ?e) - (#x943a ?L) - (#x943b ?_) - (#x943c ?c) - (#x943d ?b) - (#x943f ?^) - (#x9440 ?i) - (#x9444 ?ű) - (#x9445 ?m) - (#x9446 ?p) - (#x9447 ?l) - (#x9448 ?n) - (#x9449 ?o) - (#x944a ?i) - (#x944b ?j) - (#x944c ?g) - (#x944f ?k) - (#x9450 ?h) - (#x9451 ?Ų) - (#x9452 ?ų) - (#x9455 ?K) - (#x9457 ?M) - (#x945d ?L) - (#x945e ?N) - (#x9460 ?) - (#x9462 ?J) - (#x9463 ?) - (#x9464 ?) - (#x9468 ?) - (#x9469 ?) - (#x946a ?D) - (#x946b ?) - (#x946d ?S) - (#x946e ?R) - (#x946f ?T) - (#x9470 ?_) - (#x9471 ?U) - (#x9472 ?^) - (#x9473 ?V) - (#x9474 ?r) - (#x9475 ?u) - (#x9476 ?t) - (#x9477 ?h) - (#x9478 ?s) - (#x947c ?r) - (#x947d ?p) - (#x947e ?q) - (#x947f ?w) - (#x9480 ?) - (#x9481 ?) - (#x9482 ?) - (#x9483 ?) - (#x9577 ?) - (#x957a ?D) - (#x957b ?x) - (#x957c ?) - (#x957d ?v) - (#x9580 ?) - (#x9582 ?) - (#x9583 ?{) - (#x9586 ?E) - (#x9588 ?F) - (#x9589 ?) - (#x958b ?}) - (#x958c ?z) - (#x958d ?y) - (#x958e ?) - (#x958f ?|) - (#x9590 ?{) - (#x9591 ?~) - (#x9592 ?) - (#x9593 ?) - (#x9594 ?{) - (#x9598 ?h) - (#x959b ?) - (#x959c ?) - (#x959e ?) - (#x959f ?) - (#x95a1 ?) - (#x95a3 ?) - (#x95a4 ?) - (#x95a5 ?) - (#x95a8 ?) - (#x95a9 ?) - (#x95ab ?) - (#x95ac ?) - (#x95ad ?[) - (#x95ae ?) - (#x95b0 ?) - (#x95b1 ?\) - (#x95b5 ?M) - (#x95b6 ?K) - (#x95b7 ?) - (#x95b9 ?I) - (#x95ba ?J) - (#x95bb ?F) - (#x95bc ?F) - (#x95bd ?N) - (#x95be ?H) - (#x95bf ?L) - (#x95c0 ?) - (#x95c3 ?) - (#x95c5 ?) - (#x95c6 ?) - (#x95c7 ?) - (#x95c8 ?) - (#x95c9 ?) - (#x95ca ?) - (#x95cb ?) - (#x95cc ?) - (#x95cd ?G) - (#x95d0 ?) - (#x95d1 ?n) - (#x95d2 ?l) - (#x95d3 ?m) - (#x95d4 ?) - (#x95d5 ?) - (#x95d6 ?) - (#x95da ?w) - (#x95db ?x) - (#x95dc ?) - (#x95de ?E) - (#x95df ?G) - (#x95e0 ?F) - (#x95e1 ?) - (#x95e2 ?P) - (#x95e3 ?m) - (#x95e4 ?l) - (#x95e5 ?k) - (#x961c ?) - (#x961e ?ɪ) - (#x9620 ?X) - (#x9621 ?) - (#x9622 ?V) - (#x9623 ?Y) - (#x9624 ?W) - (#x9628 ?ˮ) - (#x962a ?) - (#x962c ?) - (#x962d ?˰) - (#x962e ?) - (#x962f ?˯) - (#x9630 ?˭) - (#x9631 ?) - (#x9632 ?) - (#x9639 ?) - (#x963a ?) - (#x963b ?) - (#x963c ?) - (#x963d ?) - (#x963f ?) - (#x9640 ?) - (#x9642 ?@) - (#x9643 ?) - (#x9644 ?) - (#x964a ?) - (#x964b ?) - (#x964c ?) - (#x964d ?) - (#x964e ?) - (#x964f ?) - (#x9650 ?) - (#x9651 ?) - (#x9653 ?) - (#x9654 ?) - (#x9658 ?) - (#x965b ?) - (#x965c ?E) - (#x965d ?) - (#x965e ?) - (#x965f ?F) - (#x9661 ?~) - (#x9662 ?|) - (#x9663 ?}) - (#x9664 ?) - (#x966a ?) - (#x966b ?I) - (#x966c ?) - (#x966d ?H) - (#x966f ?K) - (#x9670 ?) - (#x9671 ?J) - (#x9672 ?) - (#x9673 ?) - (#x9674 ?) - (#x9675 ?) - (#x9676 ?) - (#x9677 ?) - (#x9678 ?) - (#x967c ?G) - (#x967d ?) - (#x967e ?}) - (#x9680 ?ܣ) - (#x9683 ?ܢ) - (#x9684 ?) - (#x9685 ?) - (#x9686 ?) - (#x9687 ?|) - (#x9688 ?~) - (#x9689 ?ܡ) - (#x968a ?) - (#x968b ?) - (#x968d ?) - (#x968e ?) - (#x9691 ?) - (#x9692 ?) - (#x9693 ?) - (#x9694 ?j) - (#x9695 ?k) - (#x9697 ?) - (#x9698 ?i) - (#x9699 ?) - (#x969b ?) - (#x969c ?) - (#x969e ?) - (#x96a1 ?) - (#x96a2 ?) - (#x96a4 ?) - (#x96a7 ?G) - (#x96a8 ?H) - (#x96a9 ?O) - (#x96aa ?I) - (#x96ac ?) - (#x96ae ?) - (#x96b0 ?) - (#x96b1 ?) - (#x96b3 ?o) - (#x96b4 ?) - (#x96b8 ?) - (#x96b9 ?A) - (#x96bb ?) - (#x96bc ?G) - (#x96bf ?L) - (#x96c0 ?) - (#x96c1 ?) - (#x96c2 ?ܤ) - (#x96c3 ?ܦ) - (#x96c4 ?) - (#x96c5 ?) - (#x96c6 ?) - (#x96c7 ?) - (#x96c8 ?ܥ) - (#x96c9 ?n) - (#x96ca ?o) - (#x96cb ?m) - (#x96cc ?) - (#x96cd ?l) - (#x96ce ?) - (#x96d2 ?) - (#x96d3 ?) - (#x96d4 ?P) - (#x96d5 ?J) - (#x96d6 ?) - (#x96d7 ?p) - (#x96d8 ?t) - (#x96d9 ?) - (#x96da ?q) - (#x96db ?) - (#x96dc ?) - (#x96dd ?u) - (#x96de ?) - (#x96df ?s) - (#x96e1 ?y) - (#x96e2 ?) - (#x96e3 ?) - (#x96e5 ?) - (#x96e8 ?B) - (#x96e9 ?) - (#x96ea ?) - (#x96ef ?) - (#x96f0 ?ܨ) - (#x96f1 ?ܧ) - (#x96f2 ?) - (#x96f5 ?) - (#x96f6 ?s) - (#x96f7 ?p) - (#x96f8 ?) - (#x96f9 ?r) - (#x96fa ?) - (#x96fb ?q) - (#x96fd ?) - (#x96ff ?) - (#x9700 ?) - (#x9702 ?) - (#x9704 ?]) - (#x9705 ?) - (#x9706 ?^) - (#x9707 ?_) - (#x9708 ?) - (#x9709 ?`) - (#x970b ?Q) - (#x970d ?N) - (#x970e ?K) - (#x970f ?P) - (#x9710 ?S) - (#x9711 ?L) - (#x9712 ?R) - (#x9713 ?O) - (#x9716 ?M) - (#x9718 ?) - (#x9719 ?) - (#x971c ?) - (#x971d ?) - (#x971e ?) - (#x971f ?) - (#x9720 ?) - (#x9722 ?w) - (#x9723 ?v) - (#x9724 ?) - (#x9725 ?x) - (#x9726 ?~) - (#x9727 ?) - (#x9728 ?}) - (#x9729 ?z) - (#x972a ?) - (#x972b ?{) - (#x972c ?|) - (#x972e ?H) - (#x972f ?I) - (#x9730 ?) - (#x9732 ?S) - (#x9735 ?n) - (#x9738 ?Q) - (#x9739 ?R) - (#x973a ?o) - (#x973d ?Ŵ) - (#x973e ?ŵ) - (#x973f ?q) - (#x9742 ?E) - (#x9743 ?) - (#x9744 ?G) - (#x9746 ?) - (#x9747 ?) - (#x9748 ?F) - (#x9749 ?W) - (#x974b ?) - (#x9752 ?C) - (#x9756 ?t) - (#x9758 ?) - (#x975a ?) - (#x975b ?Q) - (#x975c ?R) - (#x975e ?D) - (#x9760 ?a) - (#x9761 ?) - (#x9762 ?) - (#x9766 ?S) - (#x9768 ?) - (#x9769 ?) - (#x976a ?M) - (#x976c ?ܩ) - (#x976e ?ܫ) - (#x9770 ?ܪ) - (#x9772 ?) - (#x9773 ?) - (#x9774 ?u) - (#x9776 ?v) - (#x9777 ?) - (#x9778 ?) - (#x977a ?) - (#x977b ?) - (#x977c ?) - (#x977d ?) - (#x977e ?) - (#x977f ?) - (#x9780 ?) - (#x9781 ?) - (#x9782 ?) - (#x9783 ?) - (#x9784 ?) - (#x9785 ?) - (#x9788 ?) - (#x978a ?) - (#x978b ?c) - (#x978d ?b) - (#x978e ?) - (#x978f ?d) - (#x9794 ?V) - (#x9797 ?U) - (#x9798 ?T) - (#x9799 ?T) - (#x979a ?) - (#x979c ?) - (#x979d ?A) - (#x979e ?@) - (#x97a0 ?) - (#x97a1 ?) - (#x97a2 ?) - (#x97a3 ?) - (#x97a4 ?}) - (#x97a5 ?) - (#x97a6 ?) - (#x97a8 ?{) - (#x97aa ?~) - (#x97ab ?|) - (#x97ac ?y) - (#x97ad ?@) - (#x97ae ?z) - (#x97b3 ?) - (#x97b6 ?) - (#x97b7 ?) - (#x97b9 ?J) - (#x97bb ?K) - (#x97bf ?p) - (#x97c1 ?ŷ) - (#x97c3 ?Ŷ) - (#x97c4 ?O) - (#x97c5 ?P) - (#x97c6 ?H) - (#x97c7 ?) - (#x97c9 ?i) - (#x97cb ?) - (#x97cc ?) - (#x97cd ?) - (#x97ce ?) - (#x97cf ?) - (#x97d0 ?) - (#x97d3 ?) - (#x97d4 ?C) - (#x97d5 ?B) - (#x97d6 ?) - (#x97d7 ?) - (#x97d8 ?) - (#x97d9 ?) - (#x97dc ?) - (#x97dd ?) - (#x97de ?) - (#x97df ?) - (#x97e1 ?q) - (#x97e3 ?r) - (#x97e5 ?) - (#x97ed ?) - (#x97f0 ?W) - (#x97f1 ?D) - (#x97f3 ?) - (#x97f6 ?) - (#x97f8 ?X) - (#x97f9 ?A) - (#x97fa ?) - (#x97fb ?) - (#x97fd ?L) - (#x97fe ?M) - (#x97ff ?T) - (#x9800 ?Q) - (#x9801 ?) - (#x9802 ?) - (#x9803 ?) - (#x9804 ?N) - (#x9805 ?) - (#x9806 ?) - (#x9807 ?ܬ) - (#x9808 ?) - (#x980a ?z) - (#x980c ?|) - (#x980d ?) - (#x980e ?) - (#x980f ?) - (#x9810 ?w) - (#x9811 ?x) - (#x9812 ?{) - (#x9813 ?y) - (#x9816 ?) - (#x9817 ?) - (#x9818 ?) - (#x981b ?) - (#x981c ?g) - (#x981d ?) - (#x981e ?) - (#x9820 ?) - (#x9821 ?e) - (#x9824 ?[) - (#x9826 ?) - (#x9827 ?) - (#x9828 ?) - (#x9829 ?) - (#x982b ?f) - (#x982d ?Y) - (#x982f ?Z) - (#x9830 ?U) - (#x9832 ?[) - (#x9835 ?Y) - (#x9837 ?X) - (#x9838 ?V) - (#x9839 ?Z) - (#x983b ?W) - (#x9841 ?E) - (#x9843 ?J) - (#x9844 ?F) - (#x9845 ?I) - (#x9846 ?) - (#x9848 ?) - (#x9849 ?H) - (#x984a ?G) - (#x984c ?D) - (#x984d ?B) - (#x984e ?E) - (#x984f ?C) - (#x9850 ?) - (#x9851 ?) - (#x9852 ?) - (#x9853 ?F) - (#x9857 ?) - (#x9858 ?@) - (#x9859 ?) - (#x985b ?A) - (#x985c ?) - (#x985d ?) - (#x985e ?) - (#x985f ?Q) - (#x9860 ?N) - (#x9862 ?O) - (#x9863 ?P) - (#x9864 ?r) - (#x9865 ?V) - (#x9867 ?U) - (#x9869 ?t) - (#x986a ?s) - (#x986b ?Ÿ) - (#x986f ?) - (#x9870 ?I) - (#x9871 ?`) - (#x9872 ?X) - (#x9873 ?) - (#x9874 ?) - (#x98a8 ?) - (#x98a9 ?ܭ) - (#x98ac ?) - (#x98ad ?) - (#x98ae ?) - (#x98af ?) - (#x98b1 ?) - (#x98b2 ?) - (#x98b3 ?h) - (#x98b6 ?) - (#x98b8 ?) - (#x98ba ?G) - (#x98bb ?) - (#x98bc ?B) - (#x98bd ?) - (#x98be ?) - (#x98bf ?) - (#x98c0 ?u) - (#x98c1 ?R) - (#x98c2 ?S) - (#x98c4 ?) - (#x98c6 ?t) - (#x98c9 ?s) - (#x98cb ?u) - (#x98cc ?) - (#x98db ?) - (#x98df ?) - (#x98e2 ?) - (#x98e3 ?H) - (#x98e5 ?O) - (#x98e7 ?) - (#x98e9 ?) - (#x98ea ?) - (#x98eb ?ܮ) - (#x98ed ?) - (#x98ef ?) - (#x98f2 ?) - (#x98f4 ?~) - (#x98f6 ?) - (#x98f9 ?) - (#x98fa ?) - (#x98fc ?}) - (#x98fd ?) - (#x98fe ?) - (#x9900 ?) - (#x9902 ?) - (#x9903 ?) - (#x9905 ?) - (#x9907 ?) - (#x9908 ?) - (#x9909 ?) - (#x990a ?i) - (#x990c ?) - (#x9910 ?\) - (#x9911 ?) - (#x9912 ?k) - (#x9913 ?j) - (#x9914 ?) - (#x9915 ?) - (#x9916 ?) - (#x9917 ?) - (#x9918 ?l) - (#x991a ?a) - (#x991b ?_) - (#x991e ?^) - (#x991f ?]) - (#x9921 ?`) - (#x9924 ?\) - (#x9925 ?K) - (#x9927 ?^) - (#x9928 ?]) - (#x9929 ?_) - (#x992a ?N) - (#x992b ?L) - (#x992c ?M) - (#x992d ?R) - (#x992e ?K) - (#x992f ?Q) - (#x9930 ?T) - (#x9931 ?S) - (#x9932 ?P) - (#x9933 ?O) - (#x9935 ?) - (#x993a ?) - (#x993c ?) - (#x993d ?J) - (#x993e ?H) - (#x993f ?I) - (#x9941 ?) - (#x9943 ?) - (#x9945 ?C) - (#x9947 ?) - (#x9948 ?) - (#x9949 ?D) - (#x994b ?X) - (#x994c ?W) - (#x994e ?U) - (#x9950 ?T) - (#x9951 ?) - (#x9952 ?) - (#x9953 ?Y) - (#x9954 ?v) - (#x9955 ?Ź) - (#x9956 ?w) - (#x9957 ?W) - (#x9958 ?v) - (#x9959 ?V) - (#x995b ?w) - (#x995c ?) - (#x995e ?a) - (#x995f ?Y) - (#x9961 ?) - (#x9996 ?) - (#x9997 ?P) - (#x9998 ?U) - (#x9999 ?) - (#x999c ?) - (#x999d ?) - (#x999e ?`) - (#x99a1 ?W) - (#x99a3 ?V) - (#x99a5 ?L) - (#x99a6 ?) - (#x99a7 ?) - (#x99a8 ?) - (#x99ab ?) - (#x99ac ?) - (#x99ad ?) - (#x99ae ?) - (#x99af ?) - (#x99b0 ?) - (#x99b1 ?) - (#x99b2 ?) - (#x99b3 ?) - (#x99b4 ?) - (#x99b5 ?) - (#x99b9 ?) - (#x99ba ?) - (#x99bb ?) - (#x99bd ?) - (#x99c1 ?) - (#x99c2 ?) - (#x99c3 ?) - (#x99c7 ?) - (#x99c9 ?) - (#x99cb ?) - (#x99cc ?) - (#x99cd ?) - (#x99ce ?) - (#x99cf ?) - (#x99d0 ?n) - (#x99d1 ?q) - (#x99d2 ?s) - (#x99d3 ?) - (#x99d4 ?) - (#x99d5 ?r) - (#x99d6 ?) - (#x99d7 ?) - (#x99d8 ?) - (#x99d9 ?t) - (#x99db ?p) - (#x99dc ?) - (#x99dd ?m) - (#x99df ?o) - (#x99e2 ?c) - (#x99e3 ?f) - (#x99e4 ?d) - (#x99e5 ?c) - (#x99e7 ?i) - (#x99e9 ?h) - (#x99ea ?g) - (#x99ec ?b) - (#x99ed ?b) - (#x99ee ?a) - (#x99f0 ?e) - (#x99f1 ?d) - (#x99f4 ?Z) - (#x99f6 ?^) - (#x99f7 ?[) - (#x99f8 ?]) - (#x99f9 ?\) - (#x99fa ?Y) - (#x99fb ?_) - (#x99fc ?b) - (#x99fd ?`) - (#x99fe ?a) - (#x99ff ?@) - (#x9a01 ?) - (#x9a02 ?X) - (#x9a03 ?c) - (#x9a04 ?) - (#x9a05 ?) - (#x9a06 ?) - (#x9a07 ?) - (#x9a09 ?) - (#x9a0a ?) - (#x9a0b ?) - (#x9a0d ?) - (#x9a0e ?M) - (#x9a0f ?) - (#x9a11 ?) - (#x9a14 ?) - (#x9a15 ?) - (#x9a16 ?E) - (#x9a19 ?F) - (#x9a1a ?) - (#x9a1b ?) - (#x9a1c ?) - (#x9a1d ?) - (#x9a1e ?) - (#x9a20 ?) - (#x9a22 ?) - (#x9a23 ?) - (#x9a24 ?) - (#x9a25 ?) - (#x9a27 ?) - (#x9a29 ?`) - (#x9a2a ?^) - (#x9a2b ?) - (#x9a2c ?]) - (#x9a2d ?c) - (#x9a2e ?a) - (#x9a30 ?) - (#x9a31 ?\) - (#x9a32 ?Z) - (#x9a34 ?[) - (#x9a35 ?) - (#x9a36 ?_) - (#x9a37 ?) - (#x9a38 ?b) - (#x9a39 ?x) - (#x9a3a ?~) - (#x9a3d ?y) - (#x9a3e ?[) - (#x9a3f ?) - (#x9a40 ?Z) - (#x9a41 ?}) - (#x9a42 ?|) - (#x9a43 ?Y) - (#x9a44 ?{) - (#x9a45 ?X) - (#x9a46 ?z) - (#x9a48 ?}) - (#x9a49 ?) - (#x9a4a ?~) - (#x9a4c ?{) - (#x9a4d ?Ż) - (#x9a4e ?x) - (#x9a4f ?|) - (#x9a50 ?) - (#x9a52 ?) - (#x9a53 ?y) - (#x9a54 ?z) - (#x9a55 ?ź) - (#x9a56 ?R) - (#x9a57 ?) - (#x9a59 ?S) - (#x9a5a ?) - (#x9a5b ?) - (#x9a5e ?) - (#x9a5f ?J) - (#x9a60 ?v) - (#x9a62 ?j) - (#x9a64 ?) - (#x9a65 ?k) - (#x9a66 ?) - (#x9a67 ?) - (#x9a68 ?) - (#x9a69 ?) - (#x9a6a ?z) - (#x9a6b ?) - (#x9aa8 ?) - (#x9aab ?) - (#x9aad ?) - (#x9aaf ?) - (#x9ab0 ?) - (#x9ab1 ?) - (#x9ab3 ?) - (#x9ab4 ?l) - (#x9ab7 ?u) - (#x9ab8 ?e) - (#x9ab9 ?j) - (#x9abb ?m) - (#x9abc ?f) - (#x9abe ?d) - (#x9abf ?k) - (#x9ac0 ?) - (#x9ac1 ?N) - (#x9ac2 ?) - (#x9ac6 ?f) - (#x9ac7 ?d) - (#x9aca ?e) - (#x9acd ?) - (#x9acf ?\) - (#x9ad0 ?) - (#x9ad1 ?) - (#x9ad2 ?ż) - (#x9ad3 ?) - (#x9ad4 ?) - (#x9ad5 ?) - (#x9ad6 ?b) - (#x9ad8 ?) - (#x9adc ?) - (#x9adf ?I) - (#x9ae1 ?) - (#x9ae3 ?) - (#x9ae6 ?) - (#x9ae7 ?) - (#x9aeb ?) - (#x9aec ?) - (#x9aed ?h) - (#x9aee ?v) - (#x9aef ?w) - (#x9af1 ?) - (#x9af2 ?) - (#x9af3 ?) - (#x9af6 ?n) - (#x9af7 ?q) - (#x9af9 ?p) - (#x9afa ?o) - (#x9afb ?g) - (#x9afc ?h) - (#x9afd ?f) - (#x9afe ?e) - (#x9b01 ?g) - (#x9b03 ?O) - (#x9b04 ?) - (#x9b05 ?) - (#x9b06 ?P) - (#x9b08 ?) - (#x9b0a ?) - (#x9b0b ?) - (#x9b0c ?) - (#x9b0d ?G) - (#x9b0e ?) - (#x9b10 ?g) - (#x9b11 ?i) - (#x9b12 ?h) - (#x9b15 ?) - (#x9b16 ?) - (#x9b17 ?) - (#x9b18 ?) - (#x9b19 ?) - (#x9b1a ?Ž) - (#x9b1e ?T) - (#x9b1f ?U) - (#x9b20 ?V) - (#x9b22 ?K) - (#x9b23 ?c) - (#x9b24 ?) - (#x9b25 ?) - (#x9b27 ?x) - (#x9b28 ?i) - (#x9b29 ?) - (#x9b2b ?) - (#x9b2e ?) - (#x9b2f ?J) - (#x9b31 ?{) - (#x9b32 ?) - (#x9b33 ?r) - (#x9b35 ?) - (#x9b37 ?) - (#x9b3a ?) - (#x9b3b ?) - (#x9b3c ?) - (#x9b3e ?) - (#x9b3f ?) - (#x9b41 ?) - (#x9b42 ?) - (#x9b43 ?) - (#x9b44 ?z) - (#x9b45 ?y) - (#x9b46 ?) - (#x9b48 ?i) - (#x9b4a ?) - (#x9b4b ?) - (#x9b4c ?) - (#x9b4d ?S) - (#x9b4e ?R) - (#x9b4f ?Q) - (#x9b51 ?^) - (#x9b52 ?) - (#x9b54 ?]) - (#x9b55 ?) - (#x9b56 ?) - (#x9b58 ?L) - (#x9b59 ?) - (#x9b5a ?) - (#x9b5b ?) - (#x9b5f ?) - (#x9b60 ?) - (#x9b61 ?) - (#x9b64 ?) - (#x9b66 ?) - (#x9b67 ?) - (#x9b68 ?) - (#x9b6c ?) - (#x9b6f ?|) - (#x9b70 ?) - (#x9b71 ?) - (#x9b74 ?) - (#x9b75 ?) - (#x9b76 ?) - (#x9b77 ?{) - (#x9b7a ?}) - (#x9b7b ?x) - (#x9b7c ?v) - (#x9b7d ?) - (#x9b7e ?w) - (#x9b80 ?s) - (#x9b82 ?y) - (#x9b85 ?t) - (#x9b86 ?r) - (#x9b87 ?u) - (#x9b88 ?) - (#x9b90 ?|) - (#x9b91 ?j) - (#x9b92 ?{) - (#x9b93 ?z) - (#x9b95 ?~) - (#x9b9a ?j) - (#x9b9b ?m) - (#x9b9e ?l) - (#x9ba0 ?t) - (#x9ba1 ?o) - (#x9ba2 ?s) - (#x9ba4 ?q) - (#x9ba5 ?p) - (#x9ba6 ?n) - (#x9ba8 ?k) - (#x9baa ?C) - (#x9bab ?B) - (#x9bad ?D) - (#x9bae ?A) - (#x9baf ?u) - (#x9bb5 ?) - (#x9bb6 ?) - (#x9bb8 ?) - (#x9bb9 ?) - (#x9bbd ?) - (#x9bbf ?) - (#x9bc0 ?X) - (#x9bc1 ?) - (#x9bc3 ?) - (#x9bc4 ?) - (#x9bc6 ?) - (#x9bc7 ?) - (#x9bc8 ?W) - (#x9bc9 ?U) - (#x9bca ?T) - (#x9bd3 ?) - (#x9bd4 ?) - (#x9bd5 ?) - (#x9bd6 ?J) - (#x9bd7 ?) - (#x9bd9 ?) - (#x9bda ?) - (#x9bdb ?K) - (#x9bdc ?) - (#x9bde ?) - (#x9be0 ?) - (#x9be1 ?) - (#x9be2 ?) - (#x9be4 ?) - (#x9be5 ?) - (#x9be6 ?) - (#x9be7 ?I) - (#x9be8 ?H) - (#x9bea ?) - (#x9beb ?) - (#x9bec ?) - (#x9bf0 ?) - (#x9bf7 ?l) - (#x9bf8 ?o) - (#x9bfd ?V) - (#x9c05 ?m) - (#x9c06 ?s) - (#x9c07 ?q) - (#x9c08 ?k) - (#x9c09 ?v) - (#x9c0b ?j) - (#x9c0d ?) - (#x9c0e ?r) - (#x9c12 ?n) - (#x9c13 ?) - (#x9c14 ?u) - (#x9c17 ?t) - (#x9c1c ?) - (#x9c1d ?) - (#x9c21 ?) - (#x9c23 ?) - (#x9c24 ?) - (#x9c25 ?`) - (#x9c28 ?) - (#x9c29 ?) - (#x9c2b ?) - (#x9c2c ?) - (#x9c2d ?_) - (#x9c31 ?ſ) - (#x9c32 ?) - (#x9c33 ?) - (#x9c34 ?) - (#x9c36 ?) - (#x9c37 ?) - (#x9c39 ?) - (#x9c3b ?) - (#x9c3c ?) - (#x9c3d ?) - (#x9c3e ?) - (#x9c3f ?) - (#x9c40 ?p) - (#x9c41 ?) - (#x9c44 ?) - (#x9c46 ?) - (#x9c48 ?) - (#x9c49 ?ž) - (#x9c4a ?Z) - (#x9c4b ?\) - (#x9c4c ?_) - (#x9c4d ?[) - (#x9c4e ?`) - (#x9c50 ?Y) - (#x9c52 ?W) - (#x9c54 ?) - (#x9c55 ?]) - (#x9c56 ?) - (#x9c57 ?) - (#x9c58 ?X) - (#x9c59 ?^) - (#x9c5e ?) - (#x9c5f ?M) - (#x9c60 ?) - (#x9c62 ?) - (#x9c63 ?) - (#x9c66 ?) - (#x9c67 ?) - (#x9c68 ?Z) - (#x9c6d ?\) - (#x9c6e ?[) - (#x9c71 ?y) - (#x9c73 ?x) - (#x9c74 ?w) - (#x9c75 ?z) - (#x9c77 ?s) - (#x9c78 ?t) - (#x9c79 ?) - (#x9c7a ?) - (#x9ce5 ?) - (#x9ce6 ?ܯ) - (#x9ce7 ?) - (#x9ce9 ?) - (#x9cea ?) - (#x9ced ?) - (#x9cf1 ?) - (#x9cf2 ?) - (#x9cf3 ?) - (#x9cf4 ?) - (#x9cf5 ?) - (#x9cf6 ?) - (#x9cf7 ?) - (#x9cf9 ?) - (#x9cfa ?) - (#x9cfb ?) - (#x9cfc ?) - (#x9cfd ?) - (#x9cff ?) - (#x9d00 ?) - (#x9d03 ?) - (#x9d04 ?) - (#x9d05 ?) - (#x9d06 ?}) - (#x9d07 ?) - (#x9d08 ?) - (#x9d09 ?~) - (#x9d10 ?) - (#x9d12 ?o) - (#x9d14 ?) - (#x9d15 ?k) - (#x9d17 ?) - (#x9d18 ?) - (#x9d19 ?) - (#x9d1b ?p) - (#x9d1d ?) - (#x9d1e ?) - (#x9d1f ?) - (#x9d20 ?) - (#x9d22 ?) - (#x9d23 ?l) - (#x9d25 ?) - (#x9d26 ?m) - (#x9d28 ?n) - (#x9d29 ?) - (#x9d2d ?) - (#x9d2e ?z) - (#x9d2f ?{) - (#x9d30 ?~) - (#x9d31 ?|) - (#x9d33 ?v) - (#x9d36 ?y) - (#x9d37 ?) - (#x9d38 ?}) - (#x9d3b ?E) - (#x9d3d ?) - (#x9d3e ?) - (#x9d3f ?F) - (#x9d40 ?) - (#x9d41 ?w) - (#x9d42 ?) - (#x9d43 ?) - (#x9d45 ?) - (#x9d4a ?) - (#x9d4b ?) - (#x9d4c ?) - (#x9d4f ?) - (#x9d51 ?Y) - (#x9d52 ?) - (#x9d53 ?) - (#x9d54 ?) - (#x9d56 ?) - (#x9d57 ?) - (#x9d58 ?) - (#x9d59 ?) - (#x9d5a ?) - (#x9d5b ?) - (#x9d5c ?) - (#x9d5d ?Z) - (#x9d5f ?) - (#x9d60 ?[) - (#x9d61 ?M) - (#x9d67 ?x) - (#x9d68 ?) - (#x9d69 ?) - (#x9d6a ?O) - (#x9d6b ?) - (#x9d6c ?P) - (#x9d6f ?) - (#x9d70 ?) - (#x9d71 ?) - (#x9d72 ?N) - (#x9d73 ?) - (#x9d74 ?) - (#x9d75 ?) - (#x9d77 ?) - (#x9d78 ?) - (#x9d79 ?) - (#x9d7b ?) - (#x9d7d ?) - (#x9d7f ?) - (#x9d80 ?) - (#x9d81 ?) - (#x9d82 ?) - (#x9d84 ?) - (#x9d85 ?) - (#x9d86 ?) - (#x9d87 ?) - (#x9d88 ?) - (#x9d89 ?L) - (#x9d8a ?) - (#x9d8b ?) - (#x9d8c ?) - (#x9d90 ?}) - (#x9d92 ?{) - (#x9d94 ?) - (#x9d96 ?) - (#x9d97 ?) - (#x9d98 ?|) - (#x9d99 ?x) - (#x9d9a ?) - (#x9d9b ?~) - (#x9d9c ?) - (#x9d9d ?z) - (#x9d9e ?) - (#x9d9f ?w) - (#x9da0 ?) - (#x9da1 ?) - (#x9da2 ?) - (#x9da3 ?) - (#x9da4 ?y) - (#x9da6 ?) - (#x9da7 ?) - (#x9da8 ?) - (#x9da9 ?) - (#x9daa ?) - (#x9dac ?) - (#x9dad ?) - (#x9daf ?a) - (#x9db1 ?) - (#x9db2 ?) - (#x9db3 ?) - (#x9db4 ?b) - (#x9db5 ?) - (#x9db6 ?) - (#x9db7 ?) - (#x9db8 ?d) - (#x9db9 ?) - (#x9dba ?) - (#x9dbb ?) - (#x9dbc ?) - (#x9dbe ?) - (#x9dbf ?) - (#x9dc1 ?) - (#x9dc2 ?c) - (#x9dc3 ?) - (#x9dc5 ?) - (#x9dc7 ?) - (#x9dc8 ?) - (#x9dca ?) - (#x9dcb ?) - (#x9dcc ?) - (#x9dcd ?) - (#x9dce ?) - (#x9dcf ?) - (#x9dd0 ?) - (#x9dd1 ?) - (#x9dd2 ?) - (#x9dd3 ?) - (#x9dd5 ?) - (#x9dd6 ?) - (#x9dd7 ?) - (#x9dd8 ?) - (#x9dd9 ?) - (#x9dda ?) - (#x9ddb ?) - (#x9ddc ?) - (#x9ddd ?) - (#x9dde ?) - (#x9ddf ?) - (#x9de1 ?i) - (#x9de2 ?n) - (#x9de3 ?d) - (#x9de4 ?g) - (#x9de5 ?) - (#x9de6 ?k) - (#x9de8 ?r) - (#x9de9 ?) - (#x9deb ?e) - (#x9dec ?o) - (#x9ded ?s) - (#x9dee ?j) - (#x9def ?c) - (#x9df0 ?m) - (#x9df2 ?l) - (#x9df3 ?q) - (#x9df4 ?p) - (#x9df5 ?) - (#x9df6 ?h) - (#x9df7 ?b) - (#x9df8 ?f) - (#x9df9 ?N) - (#x9dfa ?O) - (#x9dfb ?a) - (#x9dfd ?) - (#x9dfe ?) - (#x9dff ?) - (#x9e00 ?) - (#x9e01 ?) - (#x9e02 ?) - (#x9e03 ?) - (#x9e04 ?) - (#x9e05 ?) - (#x9e06 ?) - (#x9e07 ?) - (#x9e09 ?) - (#x9e0b ?]) - (#x9e0d ?^) - (#x9e0f ?`) - (#x9e10 ?_) - (#x9e11 ?b) - (#x9e12 ?a) - (#x9e13 ?|) - (#x9e14 ?{) - (#x9e15 ?) - (#x9e17 ?) - (#x9e19 ?) - (#x9e1a ?x) - (#x9e1b ?|) - (#x9e1d ?) - (#x9e1e ?}) - (#x9e75 ?) - (#x9e79 ?) - (#x9e7a ?) - (#x9e7c ?P) - (#x9e7d ?Q) - (#x9e7f ?) - (#x9e80 ?) - (#x9e82 ?) - (#x9e83 ?) - (#x9e86 ?) - (#x9e87 ?) - (#x9e88 ?) - (#x9e89 ?) - (#x9e8a ?) - (#x9e8b ?G) - (#x9e8c ?) - (#x9e8d ?) - (#x9e8e ?) - (#x9e91 ?) - (#x9e92 ?Q) - (#x9e93 ?S) - (#x9e94 ?) - (#x9e97 ?R) - (#x9e99 ?) - (#x9e9a ?) - (#x9e9b ?) - (#x9e9c ?) - (#x9e9d ?e) - (#x9e9f ?) - (#x9ea0 ?) - (#x9ea1 ?c) - (#x9ea4 ?) - (#x9ea5 ?) - (#x9ea7 ?) - (#x9ea9 ?) - (#x9ead ?) - (#x9eae ?) - (#x9eb0 ?) - (#x9eb4 ?T) - (#x9eb5 ?) - (#x9eb6 ?) - (#x9eb7 ?) - (#x9ebb ?) - (#x9ebc ?) - (#x9ebe ?) - (#x9ec0 ?) - (#x9ec2 ?t) - (#x9ec3 ?) - (#x9ec8 ?) - (#x9ecc ?d) - (#x9ecd ?) - (#x9ece ?) - (#x9ecf ?H) - (#x9ed0 ?u) - (#x9ed1 ?) - (#x9ed3 ?) - (#x9ed4 ?r) - (#x9ed5 ?) - (#x9ed6 ?) - (#x9ed8 ?q) - (#x9eda ?) - (#x9edb ?L) - (#x9edc ?J) - (#x9edd ?K) - (#x9ede ?I) - (#x9edf ?) - (#x9ee0 ?\) - (#x9ee4 ?) - (#x9ee5 ?) - (#x9ee6 ?) - (#x9ee7 ?) - (#x9ee8 ?) - (#x9eeb ?) - (#x9eed ?) - (#x9eee ?) - (#x9eef ?f) - (#x9ef0 ?) - (#x9ef2 ?v) - (#x9ef3 ?w) - (#x9ef4 ?) - (#x9ef5 ?d) - (#x9ef6 ?}) - (#x9ef7 ?u) - (#x9ef9 ?ܰ) - (#x9efa ?) - (#x9efb ?) - (#x9efc ?) - (#x9efd ?) - (#x9eff ?) - (#x9f00 ?) - (#x9f01 ?) - (#x9f06 ?x) - (#x9f07 ?R) - (#x9f09 ?e) - (#x9f0a ?~) - (#x9f0e ?) - (#x9f0f ?) - (#x9f10 ?) - (#x9f12 ?) - (#x9f13 ?) - (#x9f15 ?]) - (#x9f16 ?) - (#x9f18 ?) - (#x9f19 ?g) - (#x9f1a ?) - (#x9f1b ?) - (#x9f1c ?y) - (#x9f1e ?) - (#x9f20 ?) - (#x9f22 ?) - (#x9f23 ?) - (#x9f24 ?) - (#x9f25 ?) - (#x9f28 ?) - (#x9f29 ?) - (#x9f2a ?) - (#x9f2b ?) - (#x9f2c ?^) - (#x9f2d ?) - (#x9f2e ?) - (#x9f2f ?) - (#x9f30 ?) - (#x9f31 ?) - (#x9f32 ?) - (#x9f33 ?) - (#x9f34 ?) - (#x9f35 ?) - (#x9f36 ?|) - (#x9f37 ?{) - (#x9f38 ?z) - (#x9f3b ?) - (#x9f3d ?) - (#x9f3e ?M) - (#x9f40 ?) - (#x9f41 ?) - (#x9f42 ?) - (#x9f43 ?}) - (#x9f46 ?) - (#x9f47 ?f) - (#x9f48 ?) - (#x9f49 ?) - (#x9f4a ?) - (#x9f4b ?N) - (#x9f4c ?) - (#x9f4d ?) - (#x9f4e ?) - (#x9f4f ?~) - (#x9f52 ?) - (#x9f54 ?) - (#x9f55 ?) - (#x9f56 ?) - (#x9f57 ?) - (#x9f58 ?) - (#x9f59 ?) - (#x9f5b ?) - (#x9f5c ?h) - (#x9f5d ?) - (#x9f5e ?) - (#x9f5f ?) - (#x9f60 ?) - (#x9f61 ?) - (#x9f63 ?) - (#x9f64 ?) - (#x9f65 ?) - (#x9f66 ?i) - (#x9f67 ?j) - (#x9f6a ?) - (#x9f6b ?) - (#x9f6c ?) - (#x9f6e ?) - (#x9f6f ?) - (#x9f70 ?) - (#x9f71 ?) - (#x9f72 ?T) - (#x9f74 ?) - (#x9f75 ?) - (#x9f76 ?) - (#x9f77 ?S) - (#x9f78 ?g) - (#x9f79 ?j) - (#x9f7a ?i) - (#x9f7b ?h) - (#x9f7e ?) - (#x9f8d ?s) - (#x9f90 ?e) - (#x9f91 ?) - (#x9f92 ?) - (#x9f94 ?) - (#x9f95 ?) - (#x9f98 ?) - (#x9f9c ?t) - (#x9fa0 ?) - (#x9fa2 ?) - (#x9fa4 ?) - (#xf6b1 ?ơ) - (#xf6b2 ?Ƣ) - (#xf6b3 ?ƣ) - (#xf6b4 ?Ƥ) - (#xf6b5 ?ƥ) - (#xf6b6 ?Ʀ) - (#xf6b7 ?Ƨ) - (#xf6b8 ?ƨ) - (#xf6b9 ?Ʃ) - (#xf6ba ?ƪ) - (#xf6bb ?ƫ) - (#xf6bc ?Ƭ) - (#xf6bd ?ƭ) - (#xf6be ?Ʈ) - (#xf6bf ?Ư) - (#xf6c0 ?ư) - (#xf6c1 ?Ʊ) - (#xf6c2 ?Ʋ) - (#xf6c3 ?Ƴ) - (#xf6c4 ?ƴ) - (#xf6c5 ?Ƶ) - (#xf6c6 ?ƶ) - (#xf6c7 ?Ʒ) - (#xf6c8 ?Ƹ) - (#xf6c9 ?ƹ) - (#xf6ca ?ƺ) - (#xf6cb ?ƻ) - (#xf6cc ?Ƽ) - (#xf6cd ?ƽ) - (#xf6ce ?ƾ) - (#xf6cf ?ƿ) - (#xf6d0 ?) - (#xf6d1 ?) - (#xf6d2 ?) - (#xf6d3 ?) - (#xf6d4 ?) - (#xf6d5 ?) - (#xf6d6 ?) - (#xf6d7 ?) - (#xf6d8 ?) - (#xf6d9 ?) - (#xf6da ?) - (#xf6db ?) - (#xf6dc ?) - (#xf6dd ?) - (#xf6de ?) - (#xf6df ?) - (#xf6e0 ?) - (#xf6e1 ?) - (#xf6e2 ?) - (#xf6e3 ?) - (#xf6e4 ?) - (#xf6e5 ?) - (#xf6e6 ?) - (#xf6e7 ?) - (#xf6e8 ?) - (#xf6e9 ?) - (#xf6ea ?) - (#xf6eb ?) - (#xf6ec ?) - (#xf6ed ?) - (#xf6ee ?) - (#xf6ef ?) - (#xf6f0 ?) - (#xf6f1 ?) - (#xf6f2 ?) - (#xf6f3 ?) - (#xf6f4 ?) - (#xf6f5 ?) - (#xf6f6 ?) - (#xf6f7 ?) - (#xf6f8 ?) - (#xf6f9 ?) - (#xf6fa ?) - (#xf6fb ?) - (#xf6fc ?) - (#xf6fd ?) - (#xf6fe ?) - (#xf6ff ?) - (#xf700 ?) - (#xf701 ?) - (#xf702 ?) - (#xf703 ?) - (#xf704 ?) - (#xf705 ?) - (#xf706 ?) - (#xf707 ?) - (#xf708 ?) - (#xf709 ?) - (#xf70a ?) - (#xf70b ?) - (#xf70c ?) - (#xf70d ?) - (#xf70e ?) - (#xf70f ?@) - (#xf710 ?A) - (#xf711 ?B) - (#xf712 ?C) - (#xf713 ?D) - (#xf714 ?E) - (#xf715 ?F) - (#xf716 ?G) - (#xf717 ?H) - (#xf718 ?I) - (#xf719 ?J) - (#xf71a ?K) - (#xf71b ?L) - (#xf71c ?M) - (#xf71d ?N) - (#xf71e ?O) - (#xf71f ?P) - (#xf720 ?Q) - (#xf721 ?R) - (#xf722 ?S) - (#xf723 ?T) - (#xf724 ?U) - (#xf725 ?V) - (#xf726 ?W) - (#xf727 ?X) - (#xf728 ?Y) - (#xf729 ?Z) - (#xf72a ?[) - (#xf72b ?\) - (#xf72c ?]) - (#xf72d ?^) - (#xf72e ?_) - (#xf72f ?`) - (#xf730 ?a) - (#xf731 ?b) - (#xf732 ?c) - (#xf733 ?d) - (#xf734 ?e) - (#xf735 ?f) - (#xf736 ?g) - (#xf737 ?h) - (#xf738 ?i) - (#xf739 ?j) - (#xf73a ?k) - (#xf73b ?l) - (#xf73c ?m) - (#xf73d ?n) - (#xf73e ?o) - (#xf73f ?p) - (#xf740 ?q) - (#xf741 ?r) - (#xf742 ?s) - (#xf743 ?t) - (#xf744 ?u) - (#xf745 ?v) - (#xf746 ?w) - (#xf747 ?x) - (#xf748 ?y) - (#xf749 ?z) - (#xf74a ?{) - (#xf74b ?|) - (#xf74c ?}) - (#xf74d ?~) - (#xf74e ?ǡ) - (#xf74f ?Ǣ) - (#xf750 ?ǣ) - (#xf751 ?Ǥ) - (#xf752 ?ǥ) - (#xf753 ?Ǧ) - (#xf754 ?ǧ) - (#xf755 ?Ǩ) - (#xf756 ?ǩ) - (#xf757 ?Ǫ) - (#xf758 ?ǫ) - (#xf759 ?Ǭ) - (#xf75a ?ǭ) - (#xf75b ?Ǯ) - (#xf75c ?ǯ) - (#xf75d ?ǰ) - (#xf75e ?DZ) - (#xf75f ?Dz) - (#xf760 ?dz) - (#xf761 ?Ǵ) - (#xf762 ?ǵ) - (#xf763 ?Ƕ) - (#xf764 ?Ƿ) - (#xf765 ?Ǹ) - (#xf766 ?ǹ) - (#xf767 ?Ǻ) - (#xf768 ?ǻ) - (#xf769 ?Ǽ) - (#xf76a ?ǽ) - (#xf76b ?Ǿ) - (#xf76c ?ǿ) - (#xf76d ?) - (#xf76e ?) - (#xf76f ?) - (#xf770 ?) - (#xf771 ?) - (#xf772 ?) - (#xf773 ?) - (#xf774 ?) - (#xf775 ?) - (#xf776 ?) - (#xf777 ?) - (#xf778 ?) - (#xf779 ?) - (#xf77a ?) - (#xf77b ?) - (#xf77c ?) - (#xf77d ?) - (#xf77e ?) - (#xf77f ?) - (#xf780 ?) - (#xf781 ?) - (#xf782 ?) - (#xf783 ?) - (#xf784 ?) - (#xf785 ?) - (#xf786 ?) - (#xf787 ?) - (#xf788 ?) - (#xf789 ?) - (#xf78a ?) - (#xf78b ?) - (#xf78c ?) - (#xf78d ?) - (#xf78e ?) - (#xf78f ?) - (#xf790 ?) - (#xf791 ?) - (#xf792 ?) - (#xf793 ?) - (#xf794 ?) - (#xf795 ?) - (#xf796 ?) - (#xf797 ?) - (#xf798 ?) - (#xf799 ?) - (#xf79a ?) - (#xf79b ?) - (#xf79c ?) - (#xf79d ?) - (#xf79e ?) - (#xf79f ?) - (#xf7a0 ?) - (#xf7a1 ?) - (#xf7a2 ?) - (#xf7a3 ?) - (#xf7a4 ?) - (#xf7a5 ?) - (#xf7a6 ?) - (#xf7a7 ?) - (#xf7a8 ?) - (#xf7a9 ?) - (#xf7aa ?) - (#xf7ab ?) - (#xf7ac ?@) - (#xf7ad ?A) - (#xf7ae ?B) - (#xf7af ?C) - (#xf7b0 ?D) - (#xf7b1 ?E) - (#xf7b2 ?F) - (#xf7b3 ?G) - (#xf7b4 ?H) - (#xf7b5 ?I) - (#xf7b6 ?J) - (#xf7b7 ?K) - (#xf7b8 ?L) - (#xf7b9 ?M) - (#xf7ba ?N) - (#xf7bb ?O) - (#xf7bc ?P) - (#xf7bd ?Q) - (#xf7be ?R) - (#xf7bf ?S) - (#xf7c0 ?T) - (#xf7c1 ?U) - (#xf7c2 ?V) - (#xf7c3 ?W) - (#xf7c4 ?X) - (#xf7c5 ?Y) - (#xf7c6 ?Z) - (#xf7c7 ?[) - (#xf7c8 ?\) - (#xf7c9 ?]) - (#xf7ca ?^) - (#xf7cb ?_) - (#xf7cc ?`) - (#xf7cd ?a) - (#xf7ce ?b) - (#xf7cf ?c) - (#xf7d0 ?d) - (#xf7d1 ?e) - (#xf7d2 ?f) - (#xf7d3 ?g) - (#xf7d4 ?h) - (#xf7d5 ?i) - (#xf7d6 ?j) - (#xf7d7 ?k) - (#xf7d8 ?l) - (#xf7d9 ?m) - (#xf7da ?n) - (#xf7db ?o) - (#xf7dc ?p) - (#xf7dd ?q) - (#xf7de ?r) - (#xf7df ?s) - (#xf7e0 ?t) - (#xf7e1 ?u) - (#xf7e2 ?v) - (#xf7e3 ?w) - (#xf7e4 ?x) - (#xf7e5 ?y) - (#xf7e6 ?z) - (#xf7e7 ?{) - (#xf7e8 ?|) - (#xf7e9 ?}) - (#xf7ea ?~) - (#xf7eb ?ȡ) - (#xf7ec ?Ȣ) - (#xf7ed ?ȣ) - (#xf7ee ?Ȥ) - (#xf7ef ?ȥ) - (#xf7f0 ?Ȧ) - (#xf7f1 ?ȧ) - (#xf7f2 ?Ȩ) - (#xf7f3 ?ȩ) - (#xf7f4 ?Ȫ) - (#xf7f5 ?ȫ) - (#xf7f6 ?Ȭ) - (#xf7f7 ?ȭ) - (#xf7f8 ?Ȯ) - (#xf7f9 ?ȯ) - (#xf7fa ?Ȱ) - (#xf7fb ?ȱ) - (#xf7fc ?Ȳ) - (#xf7fd ?ȳ) - (#xf7fe ?ȴ) - (#xf7ff ?ȵ) - (#xf800 ?ȶ) - (#xf801 ?ȷ) - (#xf802 ?ȸ) - (#xf803 ?ȹ) - (#xf804 ?Ⱥ) - (#xf805 ?Ȼ) - (#xf806 ?ȼ) - (#xf807 ?Ƚ) - (#xf808 ?Ⱦ) - (#xf809 ?ȿ) - (#xf80a ?) - (#xf80b ?) - (#xf80c ?) - (#xf80d ?) - (#xf80e ?) - (#xf80f ?) - (#xf810 ?) - (#xf811 ?) - (#xf812 ?) - (#xf813 ?) - (#xf814 ?) - (#xf815 ?) - (#xf816 ?) - (#xf817 ?) - (#xf818 ?) - (#xf819 ?) - (#xf81a ?) - (#xf81b ?) - (#xf81c ?) - (#xf81d ?) - (#xf81e ?) - (#xf81f ?) - (#xf820 ?) - (#xf821 ?) - (#xf822 ?) - (#xf823 ?) - (#xf824 ?) - (#xf825 ?) - (#xf826 ?) - (#xf827 ?) - (#xf828 ?) - (#xf829 ?) - (#xf82a ?) - (#xf82b ?) - (#xf82c ?) - (#xf82d ?) - (#xf82e ?) - (#xf82f ?) - (#xf830 ?) - (#xf831 ?) - (#xf832 ?) - (#xf833 ?) - (#xf834 ?) - (#xf835 ?) - (#xf836 ?) - (#xf837 ?) - (#xf838 ?) - (#xf839 ?) - (#xf83a ?) - (#xf83b ?) - (#xf83c ?) - (#xf83d ?) - (#xf83e ?) - (#xf83f ?) - (#xf840 ?) - (#xf841 ?) - (#xf842 ?) - (#xf843 ?) - (#xf844 ?) - (#xf845 ?) - (#xf846 ?) - (#xf847 ?) - (#xf848 ?) - (#xfa0c ?J) - (#xfa0d ?) - (#xfe30 ?J) - (#xfe31 ?W) - (#xfe33 ?Y) - (#xfe34 ?[) - (#xfe35 ?_) - (#xfe36 ?`) - (#xfe37 ?c) - (#xfe38 ?d) - (#xfe39 ?g) - (#xfe3a ?h) - (#xfe3b ?k) - (#xfe3c ?l) - (#xfe3d ?o) - (#xfe3e ?p) - (#xfe3f ?s) - (#xfe40 ?t) - (#xfe41 ?w) - (#xfe42 ?x) - (#xfe43 ?{) - (#xfe44 ?|) - (#xfe49 ?) - (#xfe4a ?) - (#xfe4b ?) - (#xfe4c ?) - (#xfe4d ?) - (#xfe4e ?) - (#xfe4f ?\) - (#xfe50 ?M) - (#xfe51 ?N) - (#xfe52 ?O) - (#xfe54 ?Q) - (#xfe55 ?R) - (#xfe56 ?S) - (#xfe57 ?T) - (#xfe59 ?}) - (#xfe5a ?~) - (#xfe5b ?) - (#xfe5c ?) - (#xfe5d ?) - (#xfe5e ?) - (#xfe5f ?) - (#xfe60 ?) - (#xfe61 ?) - (#xfe62 ?) - (#xfe63 ?) - (#xfe64 ?) - (#xfe65 ?) - (#xfe66 ?) - (#xfe68 ?B) - (#xfe69 ?L) - (#xfe6a ?M) - (#xfe6b ?N) - (#xff01 ?I) - (#xff03 ?) - (#xff04 ?C) - (#xff05 ?H) - (#xff06 ?) - (#xff08 ?\]) - (#xff09 ?\^) - (#xff0a ?) - (#xff0b ?) - (#xff0c ?A) - (#xff0d ?) - (#xff0e ?D) - (#xff0f ?) - (#xff10 ?) - (#xff11 ?) - (#xff12 ?) - (#xff13 ?) - (#xff14 ?) - (#xff15 ?) - (#xff16 ?) - (#xff17 ?) - (#xff18 ?) - (#xff19 ?) - (#xff1a ?G) - (#xff1b ?F) - (#xff1c ?) - (#xff1d ?) - (#xff1e ?) - (#xff1f ?H) - (#xff20 ?I) - (#xff21 ?) - (#xff22 ?) - (#xff23 ?) - (#xff24 ?) - (#xff25 ?) - (#xff26 ?) - (#xff27 ?) - (#xff28 ?) - (#xff29 ?) - (#xff2a ?) - (#xff2b ?) - (#xff2c ?) - (#xff2d ?) - (#xff2e ?) - (#xff2f ?) - (#xff30 ?) - (#xff31 ?) - (#xff32 ?) - (#xff33 ?) - (#xff34 ?) - (#xff35 ?) - (#xff36 ?) - (#xff37 ?) - (#xff38 ?) - (#xff39 ?) - (#xff3a ?) - (#xff3c ?@) - (#xff3f ?) - (#xff41 ?) - (#xff42 ?) - (#xff43 ?) - (#xff44 ?) - (#xff45 ?) - (#xff46 ?) - (#xff47 ?) - (#xff48 ?) - (#xff49 ?) - (#xff4a ?) - (#xff4b ?) - (#xff4c ?) - (#xff4d ?) - (#xff4e ?) - (#xff4f ?) - (#xff50 ?) - (#xff51 ?) - (#xff52 ?) - (#xff53 ?) - (#xff54 ?) - (#xff55 ?) - (#xff56 ?) - (#xff57 ?@) - (#xff58 ?A) - (#xff59 ?B) - (#xff5a ?C) - (#xff5b ?\a) - (#xff5c ?U) - (#xff5d ?\b) - (#xff5e ?) - (#xffe0 ?F) - (#xffe1 ?G) - (#xffe3 ?) - (#xffe5 ?D))) - -;;; arch-tag: 4fbf5312-bb44-4f23-8ae2-7ab2ee1c540f -;;; subst-big5.el ends here diff --git a/lisp/international/subst-gb2312.el b/lisp/international/subst-gb2312.el deleted file mode 100644 index 3c604b6308a..00000000000 --- a/lisp/international/subst-gb2312.el +++ /dev/null @@ -1,7486 +0,0 @@ -;;; subst-gb2312.el --- Unicode/GB2312 translation -*-coding: euc-china;-*- - -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; This file 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 3, or (at your option) -;; any later version. - -;; This file 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. - -;;; Commentary: - -;; Provides translation tables between Unicode and chinese-gb2312 for -;; use by the `utf-translate-cjk-mode' option. See subst-jis.el for the -;; method used. - -;;; Code: - -(mapc - (lambda (pair) - (let ((unicode (car pair)) - (char (cadr pair))) - ;; exclude non-supporting components from decode table - (if (utf-translate-cjk-substitutable-p unicode) - (puthash unicode char ucs-unicode-to-mule-cjk)) - (puthash char unicode ucs-mule-cjk-to-unicode))) - '((#xa4 ?) - (#xa7 ?) - (#xa8 ?) - (#xb0 ?) - (#xb1 ?) - (#xd7 ?) - (#xe0 ?) - (#xe1 ?) - (#xe8 ?) - (#xe9 ?) - (#xea ?) - (#xec ?) - (#xed ?) - (#xf2 ?) - (#xf3 ?) - (#xf7 ?) - (#xf9 ?) - (#xfa ?) - (#xfc ?) - (#x101 ?) - (#x113 ?) - (#x11b ?) - (#x12b ?) - (#x14d ?) - (#x16b ?) - (#x1ce ?) - (#x1d0 ?) - (#x1d2 ?) - (#x1d4 ?) - (#x1d6 ?) - (#x1d8 ?) - (#x1da ?) - (#x1dc ?) - (#x2c7 ?) - (#x2c9 ?) - (#x391 ?) - (#x392 ?) - (#x393 ?) - (#x394 ?) - (#x395 ?) - (#x396 ?) - (#x397 ?) - (#x398 ?) - (#x399 ?) - (#x39a ?) - (#x39b ?) - (#x39c ?) - (#x39d ?) - (#x39e ?) - (#x39f ?) - (#x3a0 ?) - (#x3a1 ?) - (#x3a3 ?) - (#x3a4 ?) - (#x3a5 ?) - (#x3a6 ?) - (#x3a7 ?) - (#x3a8 ?) - (#x3a9 ?) - (#x3b1 ?) - (#x3b2 ?) - (#x3b3 ?) - (#x3b4 ?) - (#x3b5 ?) - (#x3b6 ?) - (#x3b7 ?) - (#x3b8 ?) - (#x3b9 ?) - (#x3ba ?) - (#x3bb ?) - (#x3bc ?) - (#x3bd ?) - (#x3be ?) - (#x3bf ?) - (#x3c0 ?) - (#x3c1 ?) - (#x3c3 ?) - (#x3c4 ?) - (#x3c5 ?) - (#x3c6 ?) - (#x3c7 ?) - (#x3c8 ?) - (#x3c9 ?) - (#x401 ?) - (#x410 ?) - (#x411 ?) - (#x412 ?) - (#x413 ?) - (#x414 ?) - (#x415 ?) - (#x416 ?) - (#x417 ?) - (#x418 ?) - (#x419 ?) - (#x41a ?) - (#x41b ?) - (#x41c ?) - (#x41d ?) - (#x41e ?) - (#x41f ?) - (#x420 ?) - (#x421 ?) - (#x422 ?) - (#x423 ?) - (#x424 ?) - (#x425 ?) - (#x426 ?) - (#x427 ?) - (#x428 ?) - (#x429 ?) - (#x42a ?) - (#x42b ?) - (#x42c ?) - (#x42d ?) - (#x42e ?) - (#x42f ?) - (#x430 ?) - (#x431 ?) - (#x432 ?) - (#x433 ?) - (#x434 ?) - (#x435 ?) - (#x436 ?) - (#x437 ?) - (#x438 ?) - (#x439 ?) - (#x43a ?) - (#x43b ?) - (#x43c ?) - (#x43d ?) - (#x43e ?) - (#x43f ?) - (#x440 ?) - (#x441 ?) - (#x442 ?) - (#x443 ?) - (#x444 ?) - (#x445 ?) - (#x446 ?) - (#x447 ?) - (#x448 ?) - (#x449 ?) - (#x44a ?) - (#x44b ?) - (#x44c ?) - (#x44d ?) - (#x44e ?) - (#x44f ?) - (#x451 ?) - (#x2015 ?) - (#x2016 ?) - (#x2018 ?) - (#x2019 ?) - (#x201c ?) - (#x201d ?) - (#x2026 ?) - (#x2030 ?) - (#x2032 ?) - (#x2033 ?) - (#x203b ?) - (#x2103 ?) - (#x2116 ?) - (#x2160 ?) - (#x2161 ?) - (#x2162 ?) - (#x2163 ?) - (#x2164 ?) - (#x2165 ?) - (#x2166 ?) - (#x2167 ?) - (#x2168 ?) - (#x2169 ?) - (#x216a ?) - (#x216b ?) - (#x2190 ?) - (#x2191 ?) - (#x2192 ?) - (#x2193 ?) - (#x2208 ?) - (#x220f ?) - (#x2211 ?) - (#x221a ?) - (#x221d ?) - (#x221e ?) - (#x2220 ?) - (#x2225 ?) - (#x2227 ?) - (#x2228 ?) - (#x2229 ?) - (#x222a ?) - (#x222b ?) - (#x222e ?) - (#x2234 ?) - (#x2235 ?) - (#x2236 ?) - (#x2237 ?) - (#x223d ?) - (#x2248 ?) - (#x224c ?) - (#x2260 ?) - (#x2261 ?) - (#x2264 ?) - (#x2265 ?) - (#x226e ?) - (#x226f ?) - (#x2299 ?) - (#x22a5 ?) - (#x2312 ?) - (#x2460 ?) - (#x2461 ?) - (#x2462 ?) - (#x2463 ?) - (#x2464 ?) - (#x2465 ?) - (#x2466 ?) - (#x2467 ?) - (#x2468 ?) - (#x2469 ?) - (#x2474 ?) - (#x2475 ?) - (#x2476 ?) - (#x2477 ?) - (#x2478 ?) - (#x2479 ?) - (#x247a ?) - (#x247b ?) - (#x247c ?) - (#x247d ?) - (#x247e ?) - (#x247f ?) - (#x2480 ?) - (#x2481 ?) - (#x2482 ?) - (#x2483 ?) - (#x2484 ?) - (#x2485 ?) - (#x2486 ?) - (#x2487 ?) - (#x2488 ?) - (#x2489 ?) - (#x248a ?) - (#x248b ?) - (#x248c ?) - (#x248d ?) - (#x248e ?) - (#x248f ?) - (#x2490 ?) - (#x2491 ?) - (#x2492 ?) - (#x2493 ?) - (#x2494 ?) - (#x2495 ?) - (#x2496 ?) - (#x2497 ?) - (#x2498 ?) - (#x2499 ?) - (#x249a ?) - (#x249b ?) - (#x2500 ?) - (#x2501 ?) - (#x2502 ?) - (#x2503 ?) - (#x2504 ?) - (#x2505 ?) - (#x2506 ?) - (#x2507 ?) - (#x2508 ?) - (#x2509 ?) - (#x250a ?) - (#x250b ?) - (#x250c ?) - (#x250d ?) - (#x250e ?) - (#x250f ?) - (#x2510 ?) - (#x2511 ?) - (#x2512 ?) - (#x2513 ?) - (#x2514 ?) - (#x2515 ?) - (#x2516 ?) - (#x2517 ?) - (#x2518 ?) - (#x2519 ?) - (#x251a ?) - (#x251b ?) - (#x251c ?) - (#x251d ?) - (#x251e ?) - (#x251f ?) - (#x2520 ?) - (#x2521 ?) - (#x2522 ?) - (#x2523 ?) - (#x2524 ?) - (#x2525 ?) - (#x2526 ?) - (#x2527 ?) - (#x2528 ?) - (#x2529 ?) - (#x252a ?) - (#x252b ?) - (#x252c ?) - (#x252d ?) - (#x252e ?) - (#x252f ?) - (#x2530 ?) - (#x2531 ?) - (#x2532 ?) - (#x2533 ?) - (#x2534 ?) - (#x2535 ?) - (#x2536 ?) - (#x2537 ?) - (#x2538 ?) - (#x2539 ?) - (#x253a ?) - (#x253b ?) - (#x253c ?) - (#x253d ?) - (#x253e ?) - (#x253f ?) - (#x2540 ?) - (#x2541 ?) - (#x2542 ?) - (#x2543 ?) - (#x2544 ?) - (#x2545 ?) - (#x2546 ?) - (#x2547 ?) - (#x2548 ?) - (#x2549 ?) - (#x254a ?) - (#x254b ?) - (#x25a0 ?) - (#x25a1 ?) - (#x25b2 ?) - (#x25b3 ?) - (#x25c6 ?) - (#x25c7 ?) - (#x25cb ?) - (#x25ce ?) - (#x25cf ?) - (#x2605 ?) - (#x2606 ?) - (#x2640 ?) - (#x2642 ?) - (#x3000 ?) - (#x3001 ?) - (#x3002 ?) - (#x3003 ?) - (#x3005 ?) - (#x3008 ?\) - (#x3009 ?\) - (#x300a ?\) - (#x300b ?\) - (#x300c ?\) - (#x300d ?\) - (#x300e ?\) - (#x300f ?\) - (#x3010 ?\) - (#x3011 ?\) - (#x3013 ?) - (#x3014 ?\) - (#x3015 ?\) - (#x3016 ?\) - (#x3017 ?\) - (#x3041 ?) - (#x3042 ?) - (#x3043 ?) - (#x3044 ?) - (#x3045 ?) - (#x3046 ?) - (#x3047 ?) - (#x3048 ?) - (#x3049 ?) - (#x304a ?) - (#x304b ?) - (#x304c ?) - (#x304d ?) - (#x304e ?) - (#x304f ?) - (#x3050 ?) - (#x3051 ?) - (#x3052 ?) - (#x3053 ?) - (#x3054 ?) - (#x3055 ?) - (#x3056 ?) - (#x3057 ?) - (#x3058 ?) - (#x3059 ?) - (#x305a ?) - (#x305b ?) - (#x305c ?) - (#x305d ?) - (#x305e ?) - (#x305f ?) - (#x3060 ?) - (#x3061 ?) - (#x3062 ?) - (#x3063 ?) - (#x3064 ?) - (#x3065 ?) - (#x3066 ?) - (#x3067 ?) - (#x3068 ?) - (#x3069 ?) - (#x306a ?) - (#x306b ?) - (#x306c ?) - (#x306d ?) - (#x306e ?) - (#x306f ?) - (#x3070 ?) - (#x3071 ?) - (#x3072 ?) - (#x3073 ?) - (#x3074 ?) - (#x3075 ?) - (#x3076 ?) - (#x3077 ?) - (#x3078 ?) - (#x3079 ?) - (#x307a ?) - (#x307b ?) - (#x307c ?) - (#x307d ?) - (#x307e ?) - (#x307f ?) - (#x3080 ?) - (#x3081 ?) - (#x3082 ?) - (#x3083 ?) - (#x3084 ?) - (#x3085 ?) - (#x3086 ?) - (#x3087 ?) - (#x3088 ?) - (#x3089 ?) - (#x308a ?) - (#x308b ?) - (#x308c ?) - (#x308d ?) - (#x308e ?) - (#x308f ?) - (#x3090 ?) - (#x3091 ?) - (#x3092 ?) - (#x3093 ?) - (#x30a1 ?) - (#x30a2 ?) - (#x30a3 ?) - (#x30a4 ?) - (#x30a5 ?) - (#x30a6 ?) - (#x30a7 ?) - (#x30a8 ?) - (#x30a9 ?) - (#x30aa ?) - (#x30ab ?) - (#x30ac ?) - (#x30ad ?) - (#x30ae ?) - (#x30af ?) - (#x30b0 ?) - (#x30b1 ?) - (#x30b2 ?) - (#x30b3 ?) - (#x30b4 ?) - (#x30b5 ?) - (#x30b6 ?) - (#x30b7 ?) - (#x30b8 ?) - (#x30b9 ?) - (#x30ba ?) - (#x30bb ?) - (#x30bc ?) - (#x30bd ?) - (#x30be ?) - (#x30bf ?) - (#x30c0 ?) - (#x30c1 ?) - (#x30c2 ?) - (#x30c3 ?) - (#x30c4 ?) - (#x30c5 ?) - (#x30c6 ?) - (#x30c7 ?) - (#x30c8 ?) - (#x30c9 ?) - (#x30ca ?) - (#x30cb ?) - (#x30cc ?) - (#x30cd ?) - (#x30ce ?) - (#x30cf ?) - (#x30d0 ?) - (#x30d1 ?) - (#x30d2 ?) - (#x30d3 ?) - (#x30d4 ?) - (#x30d5 ?) - (#x30d6 ?) - (#x30d7 ?) - (#x30d8 ?) - (#x30d9 ?) - (#x30da ?) - (#x30db ?) - (#x30dc ?) - (#x30dd ?) - (#x30de ?) - (#x30df ?) - (#x30e0 ?) - (#x30e1 ?) - (#x30e2 ?) - (#x30e3 ?) - (#x30e4 ?) - (#x30e5 ?) - (#x30e6 ?) - (#x30e7 ?) - (#x30e8 ?) - (#x30e9 ?) - (#x30ea ?) - (#x30eb ?) - (#x30ec ?) - (#x30ed ?) - (#x30ee ?) - (#x30ef ?) - (#x30f0 ?) - (#x30f1 ?) - (#x30f2 ?) - (#x30f3 ?) - (#x30f4 ?) - (#x30f5 ?) - (#x30f6 ?) - (#x30fb ?) - (#x3105 ?) - (#x3106 ?) - (#x3107 ?) - (#x3108 ?) - (#x3109 ?) - (#x310a ?) - (#x310b ?) - (#x310c ?) - (#x310d ?) - (#x310e ?) - (#x310f ?) - (#x3110 ?) - (#x3111 ?) - (#x3112 ?) - (#x3113 ?) - (#x3114 ?) - (#x3115 ?) - (#x3116 ?) - (#x3117 ?) - (#x3118 ?) - (#x3119 ?) - (#x311a ?) - (#x311b ?) - (#x311c ?) - (#x311d ?) - (#x311e ?) - (#x311f ?) - (#x3120 ?) - (#x3121 ?) - (#x3122 ?) - (#x3123 ?) - (#x3124 ?) - (#x3125 ?) - (#x3126 ?) - (#x3127 ?) - (#x3128 ?) - (#x3129 ?) - (#x3220 ?) - (#x3221 ?) - (#x3222 ?) - (#x3223 ?) - (#x3224 ?) - (#x3225 ?) - (#x3226 ?) - (#x3227 ?) - (#x3228 ?) - (#x3229 ?) - (#x4e00 ?һ) - (#x4e01 ?) - (#x4e03 ?) - (#x4e07 ?) - (#x4e08 ?) - (#x4e09 ?) - (#x4e0a ?) - (#x4e0b ?) - (#x4e0c ?آ) - (#x4e0d ?) - (#x4e0e ?) - (#x4e10 ?ؤ) - (#x4e11 ?) - (#x4e13 ?ר) - (#x4e14 ?) - (#x4e15 ?ا) - (#x4e16 ?) - (#x4e18 ?) - (#x4e19 ?) - (#x4e1a ?ҵ) - (#x4e1b ?) - (#x4e1c ?) - (#x4e1d ?˿) - (#x4e1e ?ة) - (#x4e22 ?) - (#x4e24 ?) - (#x4e25 ?) - (#x4e27 ?ɥ) - (#x4e28 ?ح) - (#x4e2a ?) - (#x4e2b ?Ѿ) - (#x4e2c ?) - (#x4e2d ?) - (#x4e30 ?) - (#x4e32 ?) - (#x4e34 ?) - (#x4e36 ?ؼ) - (#x4e38 ?) - (#x4e39 ?) - (#x4e3a ?Ϊ) - (#x4e3b ?) - (#x4e3d ?) - (#x4e3e ?) - (#x4e3f ?د) - (#x4e43 ?) - (#x4e45 ?) - (#x4e47 ?ر) - (#x4e48 ?ô) - (#x4e49 ?) - (#x4e4b ?֮) - (#x4e4c ?) - (#x4e4d ?է) - (#x4e4e ?) - (#x4e4f ?) - (#x4e50 ?) - (#x4e52 ?ƹ) - (#x4e53 ?) - (#x4e54 ?) - (#x4e56 ?) - (#x4e58 ?) - (#x4e59 ?) - (#x4e5c ?ؿ) - (#x4e5d ?) - (#x4e5e ?) - (#x4e5f ?Ҳ) - (#x4e60 ?ϰ) - (#x4e61 ?) - (#x4e66 ?) - (#x4e69 ?) - (#x4e70 ?) - (#x4e71 ?) - (#x4e73 ?) - (#x4e7e ?Ǭ) - (#x4e86 ?) - (#x4e88 ?) - (#x4e89 ?) - (#x4e8b ?) - (#x4e8c ?) - (#x4e8d ?ء) - (#x4e8e ?) - (#x4e8f ?) - (#x4e91 ?) - (#x4e92 ?) - (#x4e93 ?) - (#x4e94 ?) - (#x4e95 ?) - (#x4e98 ?ب) - (#x4e9a ?) - (#x4e9b ?Щ) - (#x4e9f ?ؽ) - (#x4ea0 ?) - (#x4ea1 ?) - (#x4ea2 ?) - (#x4ea4 ?) - (#x4ea5 ?) - (#x4ea6 ?) - (#x4ea7 ?) - (#x4ea8 ?) - (#x4ea9 ?Ķ) - (#x4eab ?) - (#x4eac ?) - (#x4ead ?ͤ) - (#x4eae ?) - (#x4eb2 ?) - (#x4eb3 ?) - (#x4eb5 ?) - (#x4eba ?) - (#x4ebb ?) - (#x4ebf ?) - (#x4ec0 ?ʲ) - (#x4ec1 ?) - (#x4ec2 ?) - (#x4ec3 ?) - (#x4ec4 ?) - (#x4ec5 ?) - (#x4ec6 ?) - (#x4ec7 ?) - (#x4ec9 ?) - (#x4eca ?) - (#x4ecb ?) - (#x4ecd ?) - (#x4ece ?) - (#x4ed1 ?) - (#x4ed3 ?) - (#x4ed4 ?) - (#x4ed5 ?) - (#x4ed6 ?) - (#x4ed7 ?) - (#x4ed8 ?) - (#x4ed9 ?) - (#x4edd ?) - (#x4ede ?) - (#x4edf ?Ǫ) - (#x4ee1 ?) - (#x4ee3 ?) - (#x4ee4 ?) - (#x4ee5 ?) - (#x4ee8 ?) - (#x4eea ?) - (#x4eeb ?) - (#x4eec ?) - (#x4ef0 ?) - (#x4ef2 ?) - (#x4ef3 ?) - (#x4ef5 ?) - (#x4ef6 ?) - (#x4ef7 ?) - (#x4efb ?) - (#x4efd ?) - (#x4eff ?) - (#x4f01 ?) - (#x4f09 ?) - (#x4f0a ?) - (#x4f0d ?) - (#x4f0e ?) - (#x4f0f ?) - (#x4f10 ?) - (#x4f11 ?) - (#x4f17 ?) - (#x4f18 ?) - (#x4f19 ?) - (#x4f1a ?) - (#x4f1b ?) - (#x4f1e ?ɡ) - (#x4f1f ?ΰ) - (#x4f20 ?) - (#x4f22 ?) - (#x4f24 ?) - (#x4f25 ?) - (#x4f26 ?) - (#x4f27 ?) - (#x4f2a ?α) - (#x4f2b ?) - (#x4f2f ?) - (#x4f30 ?) - (#x4f32 ?٣) - (#x4f34 ?) - (#x4f36 ?) - (#x4f38 ?) - (#x4f3a ?) - (#x4f3c ?) - (#x4f3d ?٤) - (#x4f43 ?) - (#x4f46 ?) - (#x4f4d ?λ) - (#x4f4e ?) - (#x4f4f ?ס) - (#x4f50 ?) - (#x4f51 ?) - (#x4f53 ?) - (#x4f55 ?) - (#x4f57 ?٢) - (#x4f58 ?) - (#x4f59 ?) - (#x4f5a ?) - (#x4f5b ?) - (#x4f5c ?) - (#x4f5d ?) - (#x4f5e ?) - (#x4f5f ?١) - (#x4f60 ?) - (#x4f63 ?Ӷ) - (#x4f64 ?) - (#x4f65 ?) - (#x4f67 ?) - (#x4f69 ?) - (#x4f6c ?) - (#x4f6f ?) - (#x4f70 ?) - (#x4f73 ?) - (#x4f74 ?٦) - (#x4f76 ?٥) - (#x4f7b ?٬) - (#x4f7c ?ٮ) - (#x4f7e ?٫) - (#x4f7f ?ʹ) - (#x4f83 ?٩) - (#x4f84 ?ֶ) - (#x4f88 ?) - (#x4f89 ?٨) - (#x4f8b ?) - (#x4f8d ?) - (#x4f8f ?٪) - (#x4f91 ?٧) - (#x4f94 ?ٰ) - (#x4f97 ?) - (#x4f9b ?) - (#x4f9d ?) - (#x4fa0 ?) - (#x4fa3 ?) - (#x4fa5 ?) - (#x4fa6 ?) - (#x4fa7 ?) - (#x4fa8 ?) - (#x4fa9 ?) - (#x4faa ?٭) - (#x4fac ?ٯ) - (#x4fae ?) - (#x4faf ?) - (#x4fb5 ?) - (#x4fbf ?) - (#x4fc3 ?) - (#x4fc4 ?) - (#x4fc5 ?ٴ) - (#x4fca ?) - (#x4fce ?) - (#x4fcf ?) - (#x4fd0 ?) - (#x4fd1 ?ٸ) - (#x4fd7 ?) - (#x4fd8 ?) - (#x4fda ?ٵ) - (#x4fdc ?ٷ) - (#x4fdd ?) - (#x4fde ?) - (#x4fdf ?ٹ) - (#x4fe1 ?) - (#x4fe3 ?ٶ) - (#x4fe6 ?ٱ) - (#x4fe8 ?ٲ) - (#x4fe9 ?) - (#x4fea ?ٳ) - (#x4fed ?) - (#x4fee ?) - (#x4fef ?) - (#x4ff1 ?) - (#x4ff3 ?ٽ) - (#x4ff8 ?ٺ) - (#x4ffa ?) - (#x4ffe ?) - (#x500c ?) - (#x500d ?) - (#x500f ?ٿ) - (#x5012 ?) - (#x5014 ?) - (#x5018 ?) - (#x5019 ?) - (#x501a ?) - (#x501c ?) - (#x501f ?) - (#x5021 ?) - (#x5025 ?) - (#x5026 ?) - (#x5028 ?) - (#x5029 ?ٻ) - (#x502a ?) - (#x502c ?پ) - (#x502d ?) - (#x502e ?) - (#x503a ?ծ) - (#x503c ?ֵ) - (#x503e ?) - (#x5043 ?) - (#x5047 ?) - (#x5048 ?) - (#x504c ?ټ) - (#x504e ?) - (#x504f ?ƫ) - (#x5055 ?) - (#x505a ?) - (#x505c ?ͣ) - (#x5065 ?) - (#x506c ?) - (#x5076 ?ż) - (#x5077 ?͵) - (#x507b ?) - (#x507e ?) - (#x507f ?) - (#x5080 ?) - (#x5085 ?) - (#x5088 ?) - (#x508d ?) - (#x50a3 ?) - (#x50a5 ?) - (#x50a7 ?) - (#x50a8 ?) - (#x50a9 ?) - (#x50ac ?) - (#x50b2 ?) - (#x50ba ?) - (#x50bb ?ɵ) - (#x50cf ?) - (#x50d6 ?) - (#x50da ?) - (#x50e6 ?) - (#x50e7 ?ɮ) - (#x50ec ?) - (#x50ed ?) - (#x50ee ?) - (#x50f3 ?) - (#x50f5 ?) - (#x50fb ?Ƨ) - (#x5106 ?) - (#x5107 ?) - (#x510b ?) - (#x5112 ?) - (#x5121 ?) - (#x513f ?) - (#x5140 ?أ) - (#x5141 ?) - (#x5143 ?Ԫ) - (#x5144 ?) - (#x5145 ?) - (#x5146 ?) - (#x5148 ?) - (#x5149 ?) - (#x514b ?) - (#x514d ?) - (#x5151 ?) - (#x5154 ?) - (#x5155 ?) - (#x5156 ?) - (#x515a ?) - (#x515c ?) - (#x5162 ?) - (#x5165 ?) - (#x5168 ?ȫ) - (#x516b ?) - (#x516c ?) - (#x516d ?) - (#x516e ?) - (#x5170 ?) - (#x5171 ?) - (#x5173 ?) - (#x5174 ?) - (#x5175 ?) - (#x5176 ?) - (#x5177 ?) - (#x5178 ?) - (#x5179 ?) - (#x517b ?) - (#x517c ?) - (#x517d ?) - (#x5180 ?) - (#x5181 ?) - (#x5182 ?) - (#x5185 ?) - (#x5188 ?) - (#x5189 ?Ƚ) - (#x518c ?) - (#x518d ?) - (#x5192 ?ð) - (#x5195 ?) - (#x5196 ?ڢ) - (#x5197 ?) - (#x5199 ?д) - (#x519b ?) - (#x519c ?ũ) - (#x51a0 ?) - (#x51a2 ?ڣ) - (#x51a4 ?ԩ) - (#x51a5 ?ڤ) - (#x51ab ?) - (#x51ac ?) - (#x51af ?) - (#x51b0 ?) - (#x51b1 ?) - (#x51b2 ?) - (#x51b3 ?) - (#x51b5 ?) - (#x51b6 ?ұ) - (#x51b7 ?) - (#x51bb ?) - (#x51bc ?) - (#x51bd ?) - (#x51c0 ?) - (#x51c4 ?) - (#x51c6 ?) - (#x51c7 ?ڡ) - (#x51c9 ?) - (#x51cb ?) - (#x51cc ?) - (#x51cf ?) - (#x51d1 ?) - (#x51db ?) - (#x51dd ?) - (#x51e0 ?) - (#x51e1 ?) - (#x51e4 ?) - (#x51eb ?) - (#x51ed ?ƾ) - (#x51ef ?) - (#x51f0 ?) - (#x51f3 ?) - (#x51f5 ?) - (#x51f6 ?) - (#x51f8 ?) - (#x51f9 ?) - (#x51fa ?) - (#x51fb ?) - (#x51fc ?) - (#x51fd ?) - (#x51ff ?) - (#x5200 ?) - (#x5201 ?) - (#x5202 ?) - (#x5203 ?) - (#x5206 ?) - (#x5207 ?) - (#x5208 ?) - (#x520a ?) - (#x520d ?ۻ) - (#x520e ?) - (#x5211 ?) - (#x5212 ?) - (#x5216 ?) - (#x5217 ?) - (#x5218 ?) - (#x5219 ?) - (#x521a ?) - (#x521b ?) - (#x521d ?) - (#x5220 ?ɾ) - (#x5224 ?) - (#x5228 ?) - (#x5229 ?) - (#x522b ?) - (#x522d ?) - (#x522e ?) - (#x5230 ?) - (#x5233 ?) - (#x5236 ?) - (#x5237 ?ˢ) - (#x5238 ?ȯ) - (#x5239 ?ɲ) - (#x523a ?) - (#x523b ?) - (#x523d ?) - (#x523f ?) - (#x5240 ?) - (#x5241 ?) - (#x5242 ?) - (#x5243 ?) - (#x524a ?) - (#x524c ?) - (#x524d ?ǰ) - (#x5250 ?) - (#x5251 ?) - (#x5254 ?) - (#x5256 ?) - (#x525c ?) - (#x525e ?) - (#x5261 ?) - (#x5265 ?) - (#x5267 ?) - (#x5269 ?ʣ) - (#x526a ?) - (#x526f ?) - (#x5272 ?) - (#x527d ?) - (#x527f ?) - (#x5281 ?) - (#x5282 ?) - (#x5288 ?) - (#x5290 ?) - (#x5293 ?) - (#x529b ?) - (#x529d ?Ȱ) - (#x529e ?) - (#x529f ?) - (#x52a0 ?) - (#x52a1 ?) - (#x52a2 ?۽) - (#x52a3 ?) - (#x52a8 ?) - (#x52a9 ?) - (#x52aa ?Ŭ) - (#x52ab ?) - (#x52ac ?۾) - (#x52ad ?ۿ) - (#x52b1 ?) - (#x52b2 ?) - (#x52b3 ?) - (#x52be ?) - (#x52bf ?) - (#x52c3 ?) - (#x52c7 ?) - (#x52c9 ?) - (#x52cb ?ѫ) - (#x52d0 ?) - (#x52d2 ?) - (#x52d6 ?) - (#x52d8 ?) - (#x52df ?ļ) - (#x52e4 ?) - (#x52f0 ?) - (#x52f9 ?) - (#x52fa ?) - (#x52fe ?) - (#x52ff ?) - (#x5300 ?) - (#x5305 ?) - (#x5306 ?) - (#x5308 ?) - (#x530d ?) - (#x530f ?) - (#x5310 ?) - (#x5315 ?ذ) - (#x5316 ?) - (#x5317 ?) - (#x5319 ?) - (#x531a ?) - (#x531d ?) - (#x5320 ?) - (#x5321 ?) - (#x5323 ?ϻ) - (#x5326 ?) - (#x532a ?) - (#x532e ?) - (#x5339 ?ƥ) - (#x533a ?) - (#x533b ?ҽ) - (#x533e ?) - (#x533f ?) - (#x5341 ?ʮ) - (#x5343 ?ǧ) - (#x5345 ?ئ) - (#x5347 ?) - (#x5348 ?) - (#x5349 ?) - (#x534a ?) - (#x534e ?) - (#x534f ?Э) - (#x5351 ?) - (#x5352 ?) - (#x5353 ?) - (#x5355 ?) - (#x5356 ?) - (#x5357 ?) - (#x535a ?) - (#x535c ?) - (#x535e ?) - (#x535f ?߲) - (#x5360 ?ռ) - (#x5361 ?) - (#x5362 ?¬) - (#x5363 ?) - (#x5364 ?±) - (#x5366 ?) - (#x5367 ?) - (#x5369 ?) - (#x536b ?) - (#x536e ?ش) - (#x536f ?î) - (#x5370 ?ӡ) - (#x5371 ?Σ) - (#x5373 ?) - (#x5374 ?ȴ) - (#x5375 ?) - (#x5377 ?) - (#x5378 ?ж) - (#x537a ?) - (#x537f ?) - (#x5382 ?) - (#x5384 ?) - (#x5385 ?) - (#x5386 ?) - (#x5389 ?) - (#x538b ?ѹ) - (#x538c ?) - (#x538d ?) - (#x5395 ?) - (#x5398 ?) - (#x539a ?) - (#x539d ?) - (#x539f ?ԭ) - (#x53a2 ?) - (#x53a3 ?) - (#x53a5 ?) - (#x53a6 ?) - (#x53a8 ?) - (#x53a9 ?) - (#x53ae ?) - (#x53b6 ?) - (#x53bb ?ȥ) - (#x53bf ?) - (#x53c1 ?) - (#x53c2 ?) - (#x53c8 ?) - (#x53c9 ?) - (#x53ca ?) - (#x53cb ?) - (#x53cc ?˫) - (#x53cd ?) - (#x53d1 ?) - (#x53d4 ?) - (#x53d6 ?ȡ) - (#x53d7 ?) - (#x53d8 ?) - (#x53d9 ?) - (#x53db ?) - (#x53df ?) - (#x53e0 ?) - (#x53e3 ?) - (#x53e4 ?) - (#x53e5 ?) - (#x53e6 ?) - (#x53e8 ?߶) - (#x53e9 ?ߵ) - (#x53ea ?ֻ) - (#x53eb ?) - (#x53ec ?) - (#x53ed ?) - (#x53ee ?) - (#x53ef ?) - (#x53f0 ?̨) - (#x53f1 ?߳) - (#x53f2 ?ʷ) - (#x53f3 ?) - (#x53f5 ?) - (#x53f6 ?Ҷ) - (#x53f7 ?) - (#x53f8 ?˾) - (#x53f9 ?̾) - (#x53fb ?߷) - (#x53fc ?) - (#x53fd ?ߴ) - (#x5401 ?) - (#x5403 ?) - (#x5404 ?) - (#x5406 ?ߺ) - (#x5408 ?) - (#x5409 ?) - (#x540a ?) - (#x540c ?ͬ) - (#x540d ?) - (#x540e ?) - (#x540f ?) - (#x5410 ?) - (#x5411 ?) - (#x5412 ?߸) - (#x5413 ?) - (#x5415 ?) - (#x5416 ?߹) - (#x5417 ?) - (#x541b ?) - (#x541d ?) - (#x541e ?) - (#x541f ?) - (#x5420 ?) - (#x5421 ?) - (#x5423 ?) - (#x5426 ?) - (#x5427 ?) - (#x5428 ?) - (#x5429 ?) - (#x542b ?) - (#x542c ?) - (#x542d ?) - (#x542e ?˱) - (#x542f ?) - (#x5431 ?֨) - (#x5432 ?) - (#x5434 ?) - (#x5435 ?) - (#x5438 ?) - (#x5439 ?) - (#x543b ?) - (#x543c ?) - (#x543e ?) - (#x5440 ?ѽ) - (#x5443 ?) - (#x5446 ?) - (#x5448 ?) - (#x544a ?) - (#x544b ?) - (#x5450 ?) - (#x5452 ?) - (#x5453 ?߽) - (#x5454 ?߾) - (#x5455 ?Ż) - (#x5456 ?߿) - (#x5457 ?) - (#x5458 ?Ա) - (#x5459 ?) - (#x545b ?Ǻ) - (#x545c ?) - (#x5462 ?) - (#x5464 ?) - (#x5466 ?) - (#x5468 ?) - (#x5471 ?) - (#x5472 ?) - (#x5473 ?ζ) - (#x5475 ?) - (#x5476 ?) - (#x5477 ?) - (#x5478 ?) - (#x547b ?) - (#x547c ?) - (#x547d ?) - (#x5480 ?) - (#x5482 ?) - (#x5484 ?) - (#x5486 ?) - (#x548b ?զ) - (#x548c ?) - (#x548e ?) - (#x548f ?ӽ) - (#x5490 ?) - (#x5492 ?) - (#x5494 ?) - (#x5495 ?) - (#x5496 ?) - (#x5499 ?) - (#x549a ?) - (#x549b ?) - (#x549d ?) - (#x54a3 ?) - (#x54a4 ?) - (#x54a6 ?) - (#x54a7 ?) - (#x54a8 ?) - (#x54a9 ?) - (#x54aa ?) - (#x54ab ?) - (#x54ac ?ҧ) - (#x54ad ?) - (#x54af ?) - (#x54b1 ?) - (#x54b3 ?) - (#x54b4 ?) - (#x54b8 ?) - (#x54bb ?) - (#x54bd ?) - (#x54bf ?) - (#x54c0 ?) - (#x54c1 ?Ʒ) - (#x54c2 ?) - (#x54c4 ?) - (#x54c6 ?) - (#x54c7 ?) - (#x54c8 ?) - (#x54c9 ?) - (#x54cc ?) - (#x54cd ?) - (#x54ce ?) - (#x54cf ?) - (#x54d0 ?) - (#x54d1 ?) - (#x54d2 ?) - (#x54d3 ?) - (#x54d4 ?) - (#x54d5 ?) - (#x54d7 ?) - (#x54d9 ?) - (#x54da ?) - (#x54dc ?) - (#x54dd ?) - (#x54de ?) - (#x54df ?Ӵ) - (#x54e5 ?) - (#x54e6 ?Ŷ) - (#x54e7 ?) - (#x54e8 ?) - (#x54e9 ?) - (#x54ea ?) - (#x54ed ?) - (#x54ee ?) - (#x54f2 ?) - (#x54f3 ?) - (#x54fa ?) - (#x54fc ?) - (#x54fd ?) - (#x54ff ?) - (#x5501 ?) - (#x5506 ?) - (#x5507 ?) - (#x5509 ?) - (#x550f ?) - (#x5510 ?) - (#x5511 ?) - (#x5514 ?) - (#x551b ?) - (#x5520 ?) - (#x5522 ?) - (#x5523 ?) - (#x5524 ?) - (#x5527 ?) - (#x552a ?) - (#x552c ?) - (#x552e ?) - (#x552f ?Ψ) - (#x5530 ?) - (#x5531 ?) - (#x5533 ?) - (#x5537 ?) - (#x553c ?) - (#x553e ?) - (#x553f ?) - (#x5541 ?) - (#x5543 ?) - (#x5544 ?) - (#x5546 ?) - (#x5549 ?) - (#x554a ?) - (#x5550 ?) - (#x5555 ?) - (#x5556 ?) - (#x555c ?) - (#x5561 ?) - (#x5564 ?ơ) - (#x5565 ?ɶ) - (#x5566 ?) - (#x5567 ?) - (#x556a ?ž) - (#x556c ?) - (#x556d ?) - (#x556e ?) - (#x5575 ?) - (#x5576 ?) - (#x5577 ?) - (#x5578 ?Х) - (#x557b ?) - (#x557c ?) - (#x557e ?) - (#x5580 ?) - (#x5581 ?) - (#x5582 ?ι) - (#x5583 ?) - (#x5584 ?) - (#x5587 ?) - (#x5588 ?) - (#x5589 ?) - (#x558a ?) - (#x558b ?) - (#x558f ?) - (#x5591 ?) - (#x5594 ?) - (#x5598 ?) - (#x5599 ?) - (#x559c ?ϲ) - (#x559d ?) - (#x559f ?) - (#x55a7 ?) - (#x55b1 ?) - (#x55b3 ?) - (#x55b5 ?) - (#x55b7 ?) - (#x55b9 ?) - (#x55bb ?) - (#x55bd ?) - (#x55be ?) - (#x55c4 ?) - (#x55c5 ?) - (#x55c9 ?) - (#x55cc ?) - (#x55cd ?) - (#x55d1 ?) - (#x55d2 ?) - (#x55d3 ?ɤ) - (#x55d4 ?) - (#x55d6 ?) - (#x55dc ?) - (#x55dd ?) - (#x55df ?) - (#x55e1 ?) - (#x55e3 ?) - (#x55e4 ?) - (#x55e5 ?) - (#x55e6 ?) - (#x55e8 ?) - (#x55ea ?) - (#x55eb ?) - (#x55ec ?) - (#x55ef ?) - (#x55f2 ?) - (#x55f3 ?) - (#x55f5 ?) - (#x55f7 ?) - (#x55fd ?) - (#x55fe ?) - (#x5600 ?) - (#x5601 ?) - (#x5608 ?) - (#x5609 ?) - (#x560c ?) - (#x560e ?) - (#x560f ?) - (#x5618 ?) - (#x561b ?) - (#x561e ?) - (#x561f ?) - (#x5623 ?) - (#x5624 ?) - (#x5627 ?) - (#x562c ?) - (#x562d ?) - (#x5631 ?) - (#x5632 ?) - (#x5634 ?) - (#x5636 ?˻) - (#x5639 ?) - (#x563b ?) - (#x563f ?) - (#x564c ?) - (#x564d ?) - (#x564e ?ҭ) - (#x5654 ?) - (#x5657 ?) - (#x5658 ?) - (#x5659 ?) - (#x565c ?) - (#x5662 ?) - (#x5664 ?) - (#x5668 ?) - (#x5669 ?ج) - (#x566a ?) - (#x566b ?) - (#x566c ?) - (#x5671 ?) - (#x5676 ?) - (#x567b ?) - (#x567c ?) - (#x5685 ?) - (#x5686 ?) - (#x568e ?) - (#x568f ?) - (#x5693 ?) - (#x56a3 ?) - (#x56af ?) - (#x56b7 ?) - (#x56bc ?) - (#x56ca ?) - (#x56d4 ?) - (#x56d7 ?) - (#x56da ?) - (#x56db ?) - (#x56dd ?) - (#x56de ?) - (#x56df ?ض) - (#x56e0 ?) - (#x56e1 ?) - (#x56e2 ?) - (#x56e4 ?) - (#x56eb ?) - (#x56ed ?) - (#x56f0 ?) - (#x56f1 ?) - (#x56f4 ?Χ) - (#x56f5 ?) - (#x56f9 ?) - (#x56fa ?) - (#x56fd ?) - (#x56fe ?ͼ) - (#x56ff ?) - (#x5703 ?) - (#x5704 ?) - (#x5706 ?Բ) - (#x5708 ?Ȧ) - (#x5709 ?) - (#x570a ?) - (#x571c ?) - (#x571f ?) - (#x5723 ?ʥ) - (#x5728 ?) - (#x5729 ?) - (#x572a ?) - (#x572c ?) - (#x572d ?) - (#x572e ?) - (#x572f ?) - (#x5730 ?) - (#x5733 ?) - (#x5739 ?) - (#x573a ?) - (#x573b ?) - (#x573e ?) - (#x5740 ?ַ) - (#x5742 ?) - (#x5747 ?) - (#x574a ?) - (#x574c ?) - (#x574d ?̮) - (#x574e ?) - (#x574f ?) - (#x5750 ?) - (#x5751 ?) - (#x5757 ?) - (#x575a ?) - (#x575b ?̳) - (#x575c ?) - (#x575d ?) - (#x575e ?) - (#x575f ?) - (#x5760 ?) - (#x5761 ?) - (#x5764 ?) - (#x5766 ?̹) - (#x5768 ?) - (#x5769 ?) - (#x576a ?ƺ) - (#x576b ?) - (#x576d ?) - (#x576f ?) - (#x5773 ?) - (#x5776 ?) - (#x5777 ?) - (#x577b ?) - (#x577c ?) - (#x5782 ?) - (#x5783 ?) - (#x5784 ?¢) - (#x5785 ?) - (#x5786 ?) - (#x578b ?) - (#x578c ?) - (#x5792 ?) - (#x5793 ?) - (#x579b ?) - (#x57a0 ?) - (#x57a1 ?) - (#x57a2 ?) - (#x57a3 ?ԫ) - (#x57a4 ?) - (#x57a6 ?) - (#x57a7 ?) - (#x57a9 ?) - (#x57ab ?) - (#x57ad ?) - (#x57ae ?) - (#x57b2 ?) - (#x57b4 ?) - (#x57b8 ?) - (#x57c2 ?) - (#x57c3 ?) - (#x57cb ?) - (#x57ce ?) - (#x57cf ?) - (#x57d2 ?) - (#x57d4 ?) - (#x57d5 ?) - (#x57d8 ?) - (#x57d9 ?) - (#x57da ?) - (#x57dd ?) - (#x57df ?) - (#x57e0 ?) - (#x57e4 ?) - (#x57ed ?ܤ) - (#x57ef ?) - (#x57f4 ?) - (#x57f8 ?) - (#x57f9 ?) - (#x57fa ?) - (#x57fd ?ܣ) - (#x5800 ?ܥ) - (#x5802 ?) - (#x5806 ?) - (#x5807 ?) - (#x580b ?ܡ) - (#x580d ?ܢ) - (#x5811 ?ǵ) - (#x5815 ?) - (#x5819 ?ܧ) - (#x581e ?ܦ) - (#x5820 ?ܩ) - (#x5821 ?) - (#x5824 ?) - (#x582a ?) - (#x5830 ?) - (#x5835 ?) - (#x5844 ?ܨ) - (#x584c ?) - (#x584d ?) - (#x5851 ?) - (#x5854 ?) - (#x5858 ?) - (#x585e ?) - (#x5865 ?ܪ) - (#x586b ?) - (#x586c ?ܫ) - (#x587e ?) - (#x5880 ?ܯ) - (#x5881 ?ܬ) - (#x5883 ?) - (#x5885 ?) - (#x5889 ?ܭ) - (#x5892 ?) - (#x5893 ?Ĺ) - (#x5899 ?ǽ) - (#x589a ?ܮ) - (#x589e ?) - (#x589f ?) - (#x58a8 ?ī) - (#x58a9 ?) - (#x58bc ?) - (#x58c1 ?) - (#x58c5 ?) - (#x58d1 ?) - (#x58d5 ?) - (#x58e4 ?) - (#x58eb ?ʿ) - (#x58ec ?) - (#x58ee ?׳) - (#x58f0 ?) - (#x58f3 ?) - (#x58f6 ?) - (#x58f9 ?Ҽ) - (#x5902 ?) - (#x5904 ?) - (#x5907 ?) - (#x590d ?) - (#x590f ?) - (#x5914 ?) - (#x5915 ?Ϧ) - (#x5916 ?) - (#x5919 ?) - (#x591a ?) - (#x591c ?ҹ) - (#x591f ?) - (#x5924 ?) - (#x5925 ?) - (#x5927 ?) - (#x5929 ?) - (#x592a ?̫) - (#x592b ?) - (#x592d ?ز) - (#x592e ?) - (#x592f ?) - (#x5931 ?ʧ) - (#x5934 ?ͷ) - (#x5937 ?) - (#x5938 ?) - (#x5939 ?) - (#x593a ?) - (#x593c ?) - (#x5941 ?) - (#x5942 ?ۼ) - (#x5944 ?) - (#x5947 ?) - (#x5948 ?) - (#x5949 ?) - (#x594b ?) - (#x594e ?) - (#x594f ?) - (#x5951 ?) - (#x5954 ?) - (#x5955 ?) - (#x5956 ?) - (#x5957 ?) - (#x5958 ?) - (#x595a ?) - (#x5960 ?) - (#x5962 ?) - (#x5965 ?) - (#x5973 ?Ů) - (#x5974 ?ū) - (#x5976 ?) - (#x5978 ?) - (#x5979 ?) - (#x597d ?) - (#x5981 ?) - (#x5982 ?) - (#x5983 ?) - (#x5984 ?) - (#x5986 ?ױ) - (#x5987 ?) - (#x5988 ?) - (#x598a ?) - (#x598d ?) - (#x5992 ?) - (#x5993 ?) - (#x5996 ?) - (#x5997 ?) - (#x5999 ?) - (#x599e ?) - (#x59a3 ?) - (#x59a4 ?) - (#x59a5 ?) - (#x59a8 ?) - (#x59a9 ?) - (#x59aa ?) - (#x59ab ?) - (#x59ae ?) - (#x59af ?) - (#x59b2 ?) - (#x59b9 ?) - (#x59bb ?) - (#x59be ?) - (#x59c6 ?ķ) - (#x59ca ?) - (#x59cb ?ʼ) - (#x59d0 ?) - (#x59d1 ?) - (#x59d2 ?) - (#x59d3 ?) - (#x59d4 ?ί) - (#x59d7 ?) - (#x59d8 ?) - (#x59da ?Ҧ) - (#x59dc ?) - (#x59dd ?) - (#x59e3 ?) - (#x59e5 ?) - (#x59e8 ?) - (#x59ec ?) - (#x59f9 ?) - (#x59fb ?) - (#x59ff ?) - (#x5a01 ?) - (#x5a03 ?) - (#x5a04 ?¦) - (#x5a05 ?) - (#x5a06 ?) - (#x5a07 ?) - (#x5a08 ?) - (#x5a09 ?) - (#x5a0c ?) - (#x5a11 ?) - (#x5a13 ?) - (#x5a18 ?) - (#x5a1c ?) - (#x5a1f ?) - (#x5a20 ?) - (#x5a23 ?) - (#x5a25 ?) - (#x5a29 ?) - (#x5a31 ?) - (#x5a32 ?) - (#x5a34 ?) - (#x5a36 ?Ȣ) - (#x5a3c ?) - (#x5a40 ?) - (#x5a46 ?) - (#x5a49 ?) - (#x5a4a ?) - (#x5a55 ?) - (#x5a5a ?) - (#x5a62 ?) - (#x5a67 ?) - (#x5a6a ?) - (#x5a74 ?Ӥ) - (#x5a75 ?) - (#x5a76 ?) - (#x5a77 ?) - (#x5a7a ?) - (#x5a7f ?) - (#x5a92 ?ý) - (#x5a9a ?) - (#x5a9b ?) - (#x5aaa ?) - (#x5ab2 ?) - (#x5ab3 ?ϱ) - (#x5ab5 ?) - (#x5ab8 ?) - (#x5abe ?) - (#x5ac1 ?) - (#x5ac2 ?ɩ) - (#x5ac9 ?) - (#x5acc ?) - (#x5ad2 ?) - (#x5ad4 ?) - (#x5ad6 ?) - (#x5ad8 ?) - (#x5adc ?) - (#x5ae0 ?) - (#x5ae1 ?) - (#x5ae3 ?) - (#x5ae6 ?) - (#x5ae9 ?) - (#x5aeb ?) - (#x5af1 ?) - (#x5b09 ?) - (#x5b16 ?) - (#x5b17 ?) - (#x5b32 ?) - (#x5b34 ?) - (#x5b37 ?) - (#x5b40 ?) - (#x5b50 ?) - (#x5b51 ?) - (#x5b53 ?) - (#x5b54 ?) - (#x5b55 ?) - (#x5b57 ?) - (#x5b58 ?) - (#x5b59 ?) - (#x5b5a ?) - (#x5b5b ?) - (#x5b5c ?) - (#x5b5d ?Т) - (#x5b5f ?) - (#x5b62 ?) - (#x5b63 ?) - (#x5b64 ?) - (#x5b65 ?) - (#x5b66 ?ѧ) - (#x5b69 ?) - (#x5b6a ?) - (#x5b6c ?ث) - (#x5b70 ?) - (#x5b71 ?) - (#x5b73 ?) - (#x5b75 ?) - (#x5b7a ?) - (#x5b7d ?) - (#x5b80 ?) - (#x5b81 ?) - (#x5b83 ?) - (#x5b84 ?) - (#x5b85 ?լ) - (#x5b87 ?) - (#x5b88 ?) - (#x5b89 ?) - (#x5b8b ?) - (#x5b8c ?) - (#x5b8f ?) - (#x5b93 ?) - (#x5b95 ?) - (#x5b97 ?) - (#x5b98 ?) - (#x5b99 ?) - (#x5b9a ?) - (#x5b9b ?) - (#x5b9c ?) - (#x5b9d ?) - (#x5b9e ?ʵ) - (#x5ba0 ?) - (#x5ba1 ?) - (#x5ba2 ?) - (#x5ba3 ?) - (#x5ba4 ?) - (#x5ba5 ?) - (#x5ba6 ?) - (#x5baa ?) - (#x5bab ?) - (#x5bb0 ?) - (#x5bb3 ?) - (#x5bb4 ?) - (#x5bb5 ?) - (#x5bb6 ?) - (#x5bb8 ?) - (#x5bb9 ?) - (#x5bbd ?) - (#x5bbe ?) - (#x5bbf ?) - (#x5bc2 ?) - (#x5bc4 ?) - (#x5bc5 ?) - (#x5bc6 ?) - (#x5bc7 ?) - (#x5bcc ?) - (#x5bd0 ?) - (#x5bd2 ?) - (#x5bd3 ?Ԣ) - (#x5bdd ?) - (#x5bde ?į) - (#x5bdf ?) - (#x5be1 ?) - (#x5be4 ?) - (#x5be5 ?) - (#x5be8 ?կ) - (#x5bee ?) - (#x5bf0 ?) - (#x5bf8 ?) - (#x5bf9 ?) - (#x5bfa ?) - (#x5bfb ?Ѱ) - (#x5bfc ?) - (#x5bff ?) - (#x5c01 ?) - (#x5c04 ?) - (#x5c06 ?) - (#x5c09 ?ξ) - (#x5c0a ?) - (#x5c0f ?С) - (#x5c11 ?) - (#x5c14 ?) - (#x5c15 ?) - (#x5c16 ?) - (#x5c18 ?) - (#x5c1a ?) - (#x5c1c ?) - (#x5c1d ?) - (#x5c22 ?) - (#x5c24 ?) - (#x5c25 ?) - (#x5c27 ?Ң) - (#x5c2c ?) - (#x5c31 ?) - (#x5c34 ?) - (#x5c38 ?ʬ) - (#x5c39 ?) - (#x5c3a ?) - (#x5c3b ?) - (#x5c3c ?) - (#x5c3d ?) - (#x5c3e ?β) - (#x5c3f ?) - (#x5c40 ?) - (#x5c41 ?ƨ) - (#x5c42 ?) - (#x5c45 ?) - (#x5c48 ?) - (#x5c49 ?) - (#x5c4a ?) - (#x5c4b ?) - (#x5c4e ?ʺ) - (#x5c4f ?) - (#x5c50 ?) - (#x5c51 ?м) - (#x5c55 ?չ) - (#x5c59 ?) - (#x5c5e ?) - (#x5c60 ?) - (#x5c61 ?) - (#x5c63 ?) - (#x5c65 ?) - (#x5c66 ?) - (#x5c6e ?) - (#x5c6f ?) - (#x5c71 ?ɽ) - (#x5c79 ?) - (#x5c7a ?) - (#x5c7f ?) - (#x5c81 ?) - (#x5c82 ?) - (#x5c88 ?) - (#x5c8c ?) - (#x5c8d ?) - (#x5c90 ?) - (#x5c91 ?) - (#x5c94 ?) - (#x5c96 ?) - (#x5c97 ?) - (#x5c98 ?) - (#x5c99 ?) - (#x5c9a ?) - (#x5c9b ?) - (#x5c9c ?) - (#x5ca2 ?) - (#x5ca3 ?) - (#x5ca9 ?) - (#x5cab ?) - (#x5cac ?) - (#x5cad ?) - (#x5cb1 ?) - (#x5cb3 ?) - (#x5cb5 ?) - (#x5cb7 ?) - (#x5cb8 ?) - (#x5cbd ?) - (#x5cbf ?) - (#x5cc1 ?) - (#x5cc4 ?) - (#x5ccb ?) - (#x5cd2 ?) - (#x5cd9 ?) - (#x5ce1 ?Ͽ) - (#x5ce4 ?) - (#x5ce5 ?) - (#x5ce6 ?) - (#x5ce8 ?) - (#x5cea ?) - (#x5ced ?) - (#x5cf0 ?) - (#x5cfb ?) - (#x5d02 ?) - (#x5d03 ?) - (#x5d06 ?) - (#x5d07 ?) - (#x5d0e ?) - (#x5d14 ?) - (#x5d16 ?) - (#x5d1b ?) - (#x5d1e ?) - (#x5d24 ?) - (#x5d26 ?) - (#x5d27 ?) - (#x5d29 ?) - (#x5d2d ?ո) - (#x5d2e ?) - (#x5d34 ?) - (#x5d3d ?) - (#x5d3e ?) - (#x5d47 ?) - (#x5d4a ?) - (#x5d4b ?) - (#x5d4c ?Ƕ) - (#x5d58 ?) - (#x5d5b ?) - (#x5d5d ?) - (#x5d69 ?) - (#x5d6b ?) - (#x5d6c ?) - (#x5d6f ?) - (#x5d74 ?) - (#x5d82 ?) - (#x5d99 ?) - (#x5d9d ?) - (#x5db7 ?) - (#x5dc5 ?) - (#x5dcd ?Ρ) - (#x5ddb ?) - (#x5ddd ?) - (#x5dde ?) - (#x5de1 ?Ѳ) - (#x5de2 ?) - (#x5de5 ?) - (#x5de6 ?) - (#x5de7 ?) - (#x5de8 ?) - (#x5de9 ?) - (#x5deb ?) - (#x5dee ?) - (#x5def ?) - (#x5df1 ?) - (#x5df2 ?) - (#x5df3 ?) - (#x5df4 ?) - (#x5df7 ?) - (#x5dfd ?) - (#x5dfe ?) - (#x5e01 ?) - (#x5e02 ?) - (#x5e03 ?) - (#x5e05 ?˧) - (#x5e06 ?) - (#x5e08 ?ʦ) - (#x5e0c ?ϣ) - (#x5e0f ?) - (#x5e10 ?) - (#x5e11 ?) - (#x5e14 ?) - (#x5e15 ?) - (#x5e16 ?) - (#x5e18 ?) - (#x5e19 ?) - (#x5e1a ?) - (#x5e1b ?) - (#x5e1c ?) - (#x5e1d ?) - (#x5e26 ?) - (#x5e27 ?֡) - (#x5e2d ?ϯ) - (#x5e2e ?) - (#x5e31 ?) - (#x5e37 ?) - (#x5e38 ?) - (#x5e3b ?) - (#x5e3c ?) - (#x5e3d ?ñ) - (#x5e42 ?) - (#x5e44 ?) - (#x5e45 ?) - (#x5e4c ?) - (#x5e54 ?) - (#x5e55 ?Ļ) - (#x5e5b ?) - (#x5e5e ?) - (#x5e61 ?) - (#x5e62 ?) - (#x5e72 ?) - (#x5e73 ?ƽ) - (#x5e74 ?) - (#x5e76 ?) - (#x5e78 ?) - (#x5e7a ?) - (#x5e7b ?) - (#x5e7c ?) - (#x5e7d ?) - (#x5e7f ?) - (#x5e80 ?) - (#x5e84 ?ׯ) - (#x5e86 ?) - (#x5e87 ?) - (#x5e8a ?) - (#x5e8b ?) - (#x5e8f ?) - (#x5e90 ?®) - (#x5e91 ?) - (#x5e93 ?) - (#x5e94 ?Ӧ) - (#x5e95 ?) - (#x5e96 ?) - (#x5e97 ?) - (#x5e99 ?) - (#x5e9a ?) - (#x5e9c ?) - (#x5e9e ?) - (#x5e9f ?) - (#x5ea0 ?) - (#x5ea5 ?) - (#x5ea6 ?) - (#x5ea7 ?) - (#x5ead ?ͥ) - (#x5eb3 ?) - (#x5eb5 ?) - (#x5eb6 ?) - (#x5eb7 ?) - (#x5eb8 ?ӹ) - (#x5eb9 ?) - (#x5ebe ?) - (#x5ec9 ?) - (#x5eca ?) - (#x5ed1 ?) - (#x5ed2 ?) - (#x5ed3 ?) - (#x5ed6 ?) - (#x5edb ?) - (#x5ee8 ?) - (#x5eea ?) - (#x5ef4 ?) - (#x5ef6 ?) - (#x5ef7 ?͢) - (#x5efa ?) - (#x5efe ?) - (#x5eff ?إ) - (#x5f00 ?) - (#x5f01 ?) - (#x5f02 ?) - (#x5f03 ?) - (#x5f04 ?Ū) - (#x5f08 ?) - (#x5f0a ?) - (#x5f0b ?߮) - (#x5f0f ?ʽ) - (#x5f11 ?߱) - (#x5f13 ?) - (#x5f15 ?) - (#x5f17 ?) - (#x5f18 ?) - (#x5f1b ?) - (#x5f1f ?) - (#x5f20 ?) - (#x5f25 ?) - (#x5f26 ?) - (#x5f27 ?) - (#x5f29 ?) - (#x5f2a ?) - (#x5f2d ?) - (#x5f2f ?) - (#x5f31 ?) - (#x5f39 ?) - (#x5f3a ?ǿ) - (#x5f3c ?) - (#x5f40 ?) - (#x5f50 ?) - (#x5f52 ?) - (#x5f53 ?) - (#x5f55 ?¼) - (#x5f56 ?) - (#x5f57 ?) - (#x5f58 ?) - (#x5f5d ?) - (#x5f61 ?) - (#x5f62 ?) - (#x5f64 ?ͮ) - (#x5f66 ?) - (#x5f69 ?) - (#x5f6a ?) - (#x5f6c ?) - (#x5f6d ?) - (#x5f70 ?) - (#x5f71 ?Ӱ) - (#x5f73 ?) - (#x5f77 ?) - (#x5f79 ?) - (#x5f7b ?) - (#x5f7c ?) - (#x5f80 ?) - (#x5f81 ?) - (#x5f82 ?) - (#x5f84 ?) - (#x5f85 ?) - (#x5f87 ?) - (#x5f88 ?) - (#x5f89 ?) - (#x5f8a ?) - (#x5f8b ?) - (#x5f8c ?) - (#x5f90 ?) - (#x5f92 ?ͽ) - (#x5f95 ?) - (#x5f97 ?) - (#x5f98 ?) - (#x5f99 ?) - (#x5f9c ?) - (#x5fa1 ?) - (#x5fa8 ?) - (#x5faa ?ѭ) - (#x5fad ?) - (#x5fae ?) - (#x5fb5 ?) - (#x5fb7 ?) - (#x5fbc ?) - (#x5fbd ?) - (#x5fc3 ?) - (#x5fc4 ?) - (#x5fc5 ?) - (#x5fc6 ?) - (#x5fc9 ?) - (#x5fcc ?) - (#x5fcd ?) - (#x5fcf ?) - (#x5fd0 ?) - (#x5fd1 ?) - (#x5fd2 ?߯) - (#x5fd6 ?) - (#x5fd7 ?־) - (#x5fd8 ?) - (#x5fd9 ?æ) - (#x5fdd ?) - (#x5fe0 ?) - (#x5fe1 ?) - (#x5fe4 ?) - (#x5fe7 ?) - (#x5fea ?) - (#x5feb ?) - (#x5fed ?) - (#x5fee ?) - (#x5ff1 ?) - (#x5ff5 ?) - (#x5ff8 ?) - (#x5ffb ?) - (#x5ffd ?) - (#x5ffe ?) - (#x5fff ?) - (#x6000 ?) - (#x6001 ?̬) - (#x6002 ?) - (#x6003 ?) - (#x6004 ?) - (#x6005 ?) - (#x6006 ?) - (#x600a ?) - (#x600d ?) - (#x600e ?) - (#x600f ?) - (#x6012 ?ŭ) - (#x6014 ?) - (#x6015 ?) - (#x6016 ?) - (#x6019 ?) - (#x601b ?) - (#x601c ?) - (#x601d ?˼) - (#x6020 ?) - (#x6021 ?) - (#x6025 ?) - (#x6026 ?) - (#x6027 ?) - (#x6028 ?Թ) - (#x6029 ?) - (#x602a ?) - (#x602b ?) - (#x602f ?) - (#x6035 ?) - (#x603b ?) - (#x603c ?) - (#x603f ?) - (#x6041 ?) - (#x6042 ?) - (#x6043 ?) - (#x604b ?) - (#x604d ?) - (#x6050 ?) - (#x6052 ?) - (#x6055 ?ˡ) - (#x6059 ?) - (#x605a ?) - (#x605d ?) - (#x6062 ?) - (#x6063 ?) - (#x6064 ?) - (#x6067 ?) - (#x6068 ?) - (#x6069 ?) - (#x606a ?) - (#x606b ?) - (#x606c ?) - (#x606d ?) - (#x606f ?Ϣ) - (#x6070 ?ǡ) - (#x6073 ?) - (#x6076 ?) - (#x6078 ?) - (#x6079 ?) - (#x607a ?) - (#x607b ?) - (#x607c ?) - (#x607d ?) - (#x607f ?) - (#x6083 ?) - (#x6084 ?) - (#x6089 ?Ϥ) - (#x608c ?) - (#x608d ?) - (#x6092 ?) - (#x6094 ?) - (#x6096 ?) - (#x609a ?) - (#x609b ?) - (#x609d ?) - (#x609f ?) - (#x60a0 ?) - (#x60a3 ?) - (#x60a6 ?) - (#x60a8 ?) - (#x60ab ?) - (#x60ac ?) - (#x60ad ?) - (#x60af ?) - (#x60b1 ?) - (#x60b2 ?) - (#x60b4 ?) - (#x60b8 ?) - (#x60bb ?) - (#x60bc ?) - (#x60c5 ?) - (#x60c6 ?) - (#x60ca ?) - (#x60cb ?) - (#x60d1 ?) - (#x60d5 ?) - (#x60d8 ?) - (#x60da ?) - (#x60dc ?ϧ) - (#x60dd ?) - (#x60df ?Ω) - (#x60e0 ?) - (#x60e6 ?) - (#x60e7 ?) - (#x60e8 ?) - (#x60e9 ?) - (#x60eb ?) - (#x60ec ?) - (#x60ed ?) - (#x60ee ?) - (#x60ef ?) - (#x60f0 ?) - (#x60f3 ?) - (#x60f4 ?) - (#x60f6 ?) - (#x60f9 ?) - (#x60fa ?) - (#x6100 ?) - (#x6101 ?) - (#x6106 ?) - (#x6108 ?) - (#x6109 ?) - (#x610d ?) - (#x610e ?) - (#x610f ?) - (#x6115 ?) - (#x611a ?) - (#x611f ?) - (#x6120 ?) - (#x6123 ?) - (#x6124 ?) - (#x6126 ?) - (#x6127 ?) - (#x612b ?) - (#x613f ?Ը) - (#x6148 ?) - (#x614a ?) - (#x614c ?) - (#x614e ?) - (#x6151 ?) - (#x6155 ?Ľ) - (#x615d ?) - (#x6162 ?) - (#x6167 ?) - (#x6168 ?) - (#x6170 ?ο) - (#x6175 ?) - (#x6177 ?) - (#x618b ?) - (#x618e ?) - (#x6194 ?) - (#x619d ?) - (#x61a7 ?) - (#x61a8 ?) - (#x61a9 ?) - (#x61ac ?) - (#x61b7 ?) - (#x61be ?) - (#x61c2 ?) - (#x61c8 ?и) - (#x61ca ?) - (#x61cb ?) - (#x61d1 ?) - (#x61d2 ?) - (#x61d4 ?) - (#x61e6 ?ų) - (#x61f5 ?) - (#x61ff ?ܲ) - (#x6206 ?) - (#x6208 ?) - (#x620a ?) - (#x620b ?) - (#x620c ?) - (#x620d ?) - (#x620e ?) - (#x620f ?Ϸ) - (#x6210 ?) - (#x6211 ?) - (#x6212 ?) - (#x6215 ?) - (#x6216 ?) - (#x6217 ?) - (#x6218 ?ս) - (#x621a ?) - (#x621b ?) - (#x621f ?) - (#x6221 ?) - (#x6222 ?) - (#x6224 ?) - (#x6225 ?) - (#x622a ?) - (#x622c ?) - (#x622e ?¾) - (#x6233 ?) - (#x6234 ?) - (#x6237 ?) - (#x623d ?) - (#x623e ?) - (#x623f ?) - (#x6240 ?) - (#x6241 ?) - (#x6243 ?) - (#x6247 ?) - (#x6248 ?) - (#x6249 ?) - (#x624b ?) - (#x624c ?) - (#x624d ?) - (#x624e ?) - (#x6251 ?) - (#x6252 ?) - (#x6253 ?) - (#x6254 ?) - (#x6258 ?) - (#x625b ?) - (#x6263 ?) - (#x6266 ?Ǥ) - (#x6267 ?ִ) - (#x6269 ?) - (#x626a ?) - (#x626b ?ɨ) - (#x626c ?) - (#x626d ?Ť) - (#x626e ?) - (#x626f ?) - (#x6270 ?) - (#x6273 ?) - (#x6276 ?) - (#x6279 ?) - (#x627c ?) - (#x627e ?) - (#x627f ?) - (#x6280 ?) - (#x6284 ?) - (#x6289 ?) - (#x628a ?) - (#x6291 ?) - (#x6292 ?) - (#x6293 ?ץ) - (#x6295 ?Ͷ) - (#x6296 ?) - (#x6297 ?) - (#x6298 ?) - (#x629a ?) - (#x629b ?) - (#x629f ?) - (#x62a0 ?) - (#x62a1 ?) - (#x62a2 ?) - (#x62a4 ?) - (#x62a5 ?) - (#x62a8 ?) - (#x62ab ?) - (#x62ac ?̧) - (#x62b1 ?) - (#x62b5 ?) - (#x62b9 ?Ĩ) - (#x62bb ?) - (#x62bc ?Ѻ) - (#x62bd ?) - (#x62bf ?) - (#x62c2 ?) - (#x62c4 ?) - (#x62c5 ?) - (#x62c6 ?) - (#x62c7 ?Ĵ) - (#x62c8 ?) - (#x62c9 ?) - (#x62ca ?) - (#x62cc ?) - (#x62cd ?) - (#x62ce ?) - (#x62d0 ?) - (#x62d2 ?) - (#x62d3 ?) - (#x62d4 ?) - (#x62d6 ?) - (#x62d7 ?) - (#x62d8 ?) - (#x62d9 ?) - (#x62da ?) - (#x62db ?) - (#x62dc ?) - (#x62df ?) - (#x62e2 ?£) - (#x62e3 ?) - (#x62e5 ?ӵ) - (#x62e6 ?) - (#x62e7 ?š) - (#x62e8 ?) - (#x62e9 ?) - (#x62ec ?) - (#x62ed ?) - (#x62ee ?) - (#x62ef ?) - (#x62f1 ?) - (#x62f3 ?ȭ) - (#x62f4 ?˩) - (#x62f6 ?) - (#x62f7 ?) - (#x62fc ?ƴ) - (#x62fd ?ק) - (#x62fe ?ʰ) - (#x62ff ?) - (#x6301 ?) - (#x6302 ?) - (#x6307 ?ָ) - (#x6308 ?) - (#x6309 ?) - (#x630e ?) - (#x6311 ?) - (#x6316 ?) - (#x631a ?ֿ) - (#x631b ?) - (#x631d ?) - (#x631e ?̢) - (#x631f ?Ю) - (#x6320 ?) - (#x6321 ?) - (#x6322 ?) - (#x6323 ?) - (#x6324 ?) - (#x6325 ?) - (#x6328 ?) - (#x632a ?Ų) - (#x632b ?) - (#x632f ?) - (#x6332 ?) - (#x6339 ?) - (#x633a ?ͦ) - (#x633d ?) - (#x6342 ?) - (#x6343 ?) - (#x6345 ?ͱ) - (#x6346 ?) - (#x6349 ?) - (#x634b ?) - (#x634c ?) - (#x634d ?) - (#x634e ?) - (#x634f ?) - (#x6350 ?) - (#x6355 ?) - (#x635e ?) - (#x635f ?) - (#x6361 ?) - (#x6362 ?) - (#x6363 ?) - (#x6367 ?) - (#x6369 ?) - (#x636d ?) - (#x636e ?) - (#x6371 ?) - (#x6376 ?) - (#x6377 ?) - (#x637a ?) - (#x637b ?) - (#x6380 ?) - (#x6382 ?) - (#x6387 ?) - (#x6388 ?) - (#x6389 ?) - (#x638a ?) - (#x638c ?) - (#x638e ?) - (#x638f ?) - (#x6390 ?) - (#x6392 ?) - (#x6396 ?Ҵ) - (#x6398 ?) - (#x63a0 ?) - (#x63a2 ?̽) - (#x63a3 ?) - (#x63a5 ?) - (#x63a7 ?) - (#x63a8 ?) - (#x63a9 ?) - (#x63aa ?) - (#x63ac ?) - (#x63ad ?) - (#x63ae ?) - (#x63b0 ?) - (#x63b3 ?°) - (#x63b4 ?) - (#x63b7 ?) - (#x63b8 ?) - (#x63ba ?) - (#x63bc ?) - (#x63be ?) - (#x63c4 ?) - (#x63c6 ?) - (#x63c9 ?) - (#x63cd ?) - (#x63ce ?) - (#x63cf ?) - (#x63d0 ?) - (#x63d2 ?) - (#x63d6 ?Ҿ) - (#x63de ?) - (#x63e0 ?) - (#x63e1 ?) - (#x63e3 ?) - (#x63e9 ?) - (#x63ea ?) - (#x63ed ?) - (#x63f2 ?) - (#x63f4 ?Ԯ) - (#x63f6 ?) - (#x63f8 ?) - (#x63fd ?) - (#x63ff ?) - (#x6400 ?) - (#x6401 ?) - (#x6402 ?§) - (#x6405 ?) - (#x640b ?) - (#x640c ?) - (#x640f ?) - (#x6410 ?) - (#x6413 ?) - (#x6414 ?ɦ) - (#x641b ?) - (#x641c ?) - (#x641e ?) - (#x6420 ?) - (#x6421 ?) - (#x6426 ?) - (#x642a ?) - (#x642c ?) - (#x642d ?) - (#x6434 ?) - (#x643a ?Я) - (#x643d ?) - (#x643f ?) - (#x6441 ?) - (#x6444 ?) - (#x6445 ?) - (#x6446 ?) - (#x6447 ?ҡ) - (#x6448 ?) - (#x644a ?̯) - (#x6452 ?) - (#x6454 ?ˤ) - (#x6458 ?ժ) - (#x645e ?) - (#x6467 ?) - (#x6469 ?Ħ) - (#x646d ?) - (#x6478 ?) - (#x6479 ?ġ) - (#x647a ?ߡ) - (#x6482 ?) - (#x6484 ?) - (#x6485 ?) - (#x6487 ?Ʋ) - (#x6491 ?) - (#x6492 ?) - (#x6495 ?˺) - (#x6496 ?) - (#x6499 ?ߤ) - (#x649e ?ײ) - (#x64a4 ?) - (#x64a9 ?) - (#x64ac ?) - (#x64ad ?) - (#x64ae ?) - (#x64b0 ?) - (#x64b5 ?) - (#x64b7 ?ߢ) - (#x64b8 ?ߣ) - (#x64ba ?ߥ) - (#x64bc ?) - (#x64c0 ?ߦ) - (#x64c2 ?) - (#x64c5 ?) - (#x64cd ?) - (#x64ce ?) - (#x64d0 ?ߧ) - (#x64d2 ?) - (#x64d7 ?ߨ) - (#x64d8 ?) - (#x64de ?) - (#x64e2 ?ߪ) - (#x64e4 ?ߩ) - (#x64e6 ?) - (#x6500 ?) - (#x6509 ?߫) - (#x6512 ?) - (#x6518 ?) - (#x6525 ?߬) - (#x652b ?) - (#x652e ?߭) - (#x652f ?֧) - (#x6534 ?) - (#x6535 ?) - (#x6536 ?) - (#x6538 ?) - (#x6539 ?) - (#x653b ?) - (#x653e ?) - (#x653f ?) - (#x6545 ?) - (#x6548 ?Ч) - (#x6549 ?) - (#x654c ?) - (#x654f ?) - (#x6551 ?) - (#x6555 ?) - (#x6556 ?) - (#x6559 ?) - (#x655b ?) - (#x655d ?) - (#x655e ?) - (#x6562 ?) - (#x6563 ?ɢ) - (#x6566 ?) - (#x656b ?) - (#x656c ?) - (#x6570 ?) - (#x6572 ?) - (#x6574 ?) - (#x6577 ?) - (#x6587 ?) - (#x658b ?ի) - (#x658c ?) - (#x6590 ?) - (#x6591 ?) - (#x6593 ?) - (#x6597 ?) - (#x6599 ?) - (#x659b ?) - (#x659c ?б) - (#x659f ?) - (#x65a1 ?) - (#x65a4 ?) - (#x65a5 ?) - (#x65a7 ?) - (#x65a9 ?ն) - (#x65ab ?) - (#x65ad ?) - (#x65af ?˹) - (#x65b0 ?) - (#x65b9 ?) - (#x65bc ?) - (#x65bd ?ʩ) - (#x65c1 ?) - (#x65c3 ?) - (#x65c4 ?) - (#x65c5 ?) - (#x65c6 ?) - (#x65cb ?) - (#x65cc ?) - (#x65ce ?) - (#x65cf ?) - (#x65d2 ?) - (#x65d6 ?) - (#x65d7 ?) - (#x65e0 ?) - (#x65e2 ?) - (#x65e5 ?) - (#x65e6 ?) - (#x65e7 ?) - (#x65e8 ?ּ) - (#x65e9 ?) - (#x65ec ?Ѯ) - (#x65ed ?) - (#x65ee ?) - (#x65ef ?) - (#x65f0 ?) - (#x65f1 ?) - (#x65f6 ?ʱ) - (#x65f7 ?) - (#x65fa ?) - (#x6600 ?) - (#x6602 ?) - (#x6603 ?) - (#x6606 ?) - (#x660a ?) - (#x660c ?) - (#x660e ?) - (#x660f ?) - (#x6613 ?) - (#x6614 ?) - (#x6615 ?) - (#x6619 ?) - (#x661d ?) - (#x661f ?) - (#x6620 ?ӳ) - (#x6625 ?) - (#x6627 ?) - (#x6628 ?) - (#x662d ?) - (#x662f ?) - (#x6631 ?) - (#x6634 ?) - (#x6635 ?) - (#x6636 ?) - (#x663c ?) - (#x663e ?) - (#x6641 ?) - (#x6643 ?) - (#x664b ?) - (#x664c ?) - (#x664f ?) - (#x6652 ?ɹ) - (#x6653 ?) - (#x6654 ?) - (#x6655 ?) - (#x6656 ?) - (#x6657 ?) - (#x665a ?) - (#x665f ?) - (#x6661 ?) - (#x6664 ?) - (#x6666 ?) - (#x6668 ?) - (#x666e ?) - (#x666f ?) - (#x6670 ?) - (#x6674 ?) - (#x6676 ?) - (#x6677 ?) - (#x667a ?) - (#x667e ?) - (#x6682 ?) - (#x6684 ?) - (#x6687 ?Ͼ) - (#x668c ?) - (#x6691 ?) - (#x6696 ?ů) - (#x6697 ?) - (#x669d ?) - (#x66a7 ?) - (#x66a8 ?) - (#x66ae ?ĺ) - (#x66b4 ?) - (#x66b9 ?) - (#x66be ?) - (#x66d9 ?) - (#x66db ?) - (#x66dc ?) - (#x66dd ?) - (#x66e6 ?) - (#x66e9 ?) - (#x66f0 ?Ի) - (#x66f2 ?) - (#x66f3 ?ҷ) - (#x66f4 ?) - (#x66f7 ?) - (#x66f9 ?) - (#x66fc ?) - (#x66fe ?) - (#x66ff ?) - (#x6700 ?) - (#x6708 ?) - (#x6709 ?) - (#x670a ?) - (#x670b ?) - (#x670d ?) - (#x6710 ?) - (#x6714 ?˷) - (#x6715 ?) - (#x6717 ?) - (#x671b ?) - (#x671d ?) - (#x671f ?) - (#x6726 ?) - (#x6728 ?ľ) - (#x672a ?δ) - (#x672b ?ĩ) - (#x672c ?) - (#x672d ?) - (#x672f ?) - (#x6731 ?) - (#x6734 ?) - (#x6735 ?) - (#x673a ?) - (#x673d ?) - (#x6740 ?ɱ) - (#x6742 ?) - (#x6743 ?Ȩ) - (#x6746 ?) - (#x6748 ?) - (#x6749 ?ɼ) - (#x674c ?) - (#x674e ?) - (#x674f ?) - (#x6750 ?) - (#x6751 ?) - (#x6753 ?) - (#x6756 ?) - (#x675c ?) - (#x675e ?) - (#x675f ?) - (#x6760 ?) - (#x6761 ?) - (#x6765 ?) - (#x6768 ?) - (#x6769 ?) - (#x676a ?) - (#x676d ?) - (#x676f ?) - (#x6770 ?) - (#x6772 ?) - (#x6773 ?) - (#x6775 ?) - (#x6777 ?) - (#x677c ?) - (#x677e ?) - (#x677f ?) - (#x6781 ?) - (#x6784 ?) - (#x6787 ?) - (#x6789 ?) - (#x678b ?) - (#x6790 ?) - (#x6795 ?) - (#x6797 ?) - (#x6798 ?) - (#x679a ?ö) - (#x679c ?) - (#x679d ?֦) - (#x679e ?) - (#x67a2 ?) - (#x67a3 ?) - (#x67a5 ?) - (#x67a7 ?) - (#x67a8 ?) - (#x67aa ?ǹ) - (#x67ab ?) - (#x67ad ?) - (#x67af ?) - (#x67b0 ?) - (#x67b3 ?) - (#x67b5 ?) - (#x67b6 ?) - (#x67b7 ?) - (#x67b8 ?) - (#x67c1 ?) - (#x67c3 ?) - (#x67c4 ?) - (#x67cf ?) - (#x67d0 ?ij) - (#x67d1 ?) - (#x67d2 ?) - (#x67d3 ?Ⱦ) - (#x67d4 ?) - (#x67d8 ?) - (#x67d9 ?) - (#x67da ?) - (#x67dc ?) - (#x67dd ?) - (#x67de ?) - (#x67e0 ?) - (#x67e2 ?) - (#x67e5 ?) - (#x67e9 ?) - (#x67ec ?) - (#x67ef ?) - (#x67f0 ?) - (#x67f1 ?) - (#x67f3 ?) - (#x67f4 ?) - (#x67fd ?) - (#x67ff ?) - (#x6800 ?) - (#x6805 ?դ) - (#x6807 ?) - (#x6808 ?ջ) - (#x6809 ?) - (#x680a ?) - (#x680b ?) - (#x680c ?) - (#x680e ?) - (#x680f ?) - (#x6811 ?) - (#x6813 ?˨) - (#x6816 ?) - (#x6817 ?) - (#x681d ?) - (#x6821 ?У) - (#x6829 ?) - (#x682a ?) - (#x6832 ?) - (#x6833 ?) - (#x6837 ?) - (#x6838 ?) - (#x6839 ?) - (#x683c ?) - (#x683d ?) - (#x683e ?) - (#x6840 ?) - (#x6841 ?) - (#x6842 ?) - (#x6843 ?) - (#x6844 ?) - (#x6845 ?Φ) - (#x6846 ?) - (#x6848 ?) - (#x6849 ?) - (#x684a ?) - (#x684c ?) - (#x684e ?) - (#x6850 ?ͩ) - (#x6851 ?ɣ) - (#x6853 ?) - (#x6854 ?) - (#x6855 ?) - (#x6860 ?) - (#x6861 ?) - (#x6862 ?) - (#x6863 ?) - (#x6864 ?) - (#x6865 ?) - (#x6866 ?) - (#x6867 ?) - (#x6868 ?) - (#x6869 ?) - (#x686b ?) - (#x6874 ?) - (#x6876 ?Ͱ) - (#x6877 ?) - (#x6881 ?) - (#x6883 ?) - (#x6885 ?÷) - (#x6886 ?) - (#x688f ?) - (#x6893 ?) - (#x6897 ?) - (#x68a2 ?) - (#x68a6 ?) - (#x68a7 ?) - (#x68a8 ?) - (#x68ad ?) - (#x68af ?) - (#x68b0 ?е) - (#x68b3 ?) - (#x68b5 ?) - (#x68c0 ?) - (#x68c2 ?) - (#x68c9 ?) - (#x68cb ?) - (#x68cd ?) - (#x68d2 ?) - (#x68d5 ?) - (#x68d8 ?) - (#x68da ?) - (#x68e0 ?) - (#x68e3 ?) - (#x68ee ?ɭ) - (#x68f0 ?) - (#x68f1 ?) - (#x68f5 ?) - (#x68f9 ?) - (#x68fa ?) - (#x68fc ?) - (#x6901 ?) - (#x6905 ?) - (#x690b ?) - (#x690d ?ֲ) - (#x690e ?) - (#x6910 ?) - (#x6912 ?) - (#x691f ?) - (#x6920 ?) - (#x6924 ?) - (#x692d ?) - (#x6930 ?Ҭ) - (#x6934 ?) - (#x6939 ?) - (#x693d ?) - (#x693f ?) - (#x6942 ?) - (#x6954 ?Ш) - (#x6957 ?) - (#x695a ?) - (#x695d ?) - (#x695e ?) - (#x6960 ?) - (#x6963 ?) - (#x6966 ?) - (#x696b ?) - (#x696e ?) - (#x6971 ?) - (#x6977 ?) - (#x6978 ?) - (#x6979 ?) - (#x697c ?¥) - (#x6980 ?) - (#x6982 ?) - (#x6984 ?) - (#x6986 ?) - (#x6987 ?) - (#x6988 ?) - (#x6989 ?) - (#x698d ?) - (#x6994 ?) - (#x6995 ?) - (#x6998 ?) - (#x699b ?) - (#x699c ?) - (#x69a7 ?) - (#x69a8 ?ե) - (#x69ab ?) - (#x69ad ?) - (#x69b1 ?) - (#x69b4 ?) - (#x69b7 ?ȶ) - (#x69bb ?) - (#x69c1 ?) - (#x69ca ?) - (#x69cc ?) - (#x69ce ?) - (#x69d0 ?) - (#x69d4 ?) - (#x69db ?) - (#x69df ?) - (#x69e0 ?) - (#x69ed ?) - (#x69f2 ?) - (#x69fd ?) - (#x69ff ?) - (#x6a0a ?) - (#x6a17 ?) - (#x6a18 ?) - (#x6a1f ?) - (#x6a21 ?ģ) - (#x6a28 ?) - (#x6a2a ?) - (#x6a2f ?) - (#x6a31 ?ӣ) - (#x6a35 ?) - (#x6a3d ?) - (#x6a3e ?) - (#x6a44 ?) - (#x6a47 ?) - (#x6a50 ?) - (#x6a58 ?) - (#x6a59 ?) - (#x6a5b ?) - (#x6a61 ?) - (#x6a65 ?) - (#x6a71 ?) - (#x6a79 ?) - (#x6a7c ?) - (#x6a80 ?̴) - (#x6a84 ?ϭ) - (#x6a8e ?) - (#x6a90 ?) - (#x6a91 ?) - (#x6a97 ?) - (#x6aa0 ?) - (#x6aa9 ?) - (#x6aab ?) - (#x6aac ?) - (#x6b20 ?Ƿ) - (#x6b21 ?) - (#x6b22 ?) - (#x6b23 ?) - (#x6b24 ?) - (#x6b27 ?ŷ) - (#x6b32 ?) - (#x6b37 ?) - (#x6b39 ?) - (#x6b3a ?) - (#x6b3e ?) - (#x6b43 ?) - (#x6b46 ?) - (#x6b47 ?Ъ) - (#x6b49 ?Ǹ) - (#x6b4c ?) - (#x6b59 ?) - (#x6b62 ?ֹ) - (#x6b63 ?) - (#x6b64 ?) - (#x6b65 ?) - (#x6b66 ?) - (#x6b67 ?) - (#x6b6a ?) - (#x6b79 ?) - (#x6b7b ?) - (#x6b7c ?) - (#x6b81 ?) - (#x6b82 ?) - (#x6b83 ?) - (#x6b84 ?) - (#x6b86 ?) - (#x6b87 ?) - (#x6b89 ?ѳ) - (#x6b8a ?) - (#x6b8b ?) - (#x6b8d ?) - (#x6b92 ?) - (#x6b93 ?) - (#x6b96 ?ֳ) - (#x6b9a ?) - (#x6b9b ?) - (#x6ba1 ?) - (#x6baa ?) - (#x6bb3 ?) - (#x6bb4 ?Ź) - (#x6bb5 ?) - (#x6bb7 ?) - (#x6bbf ?) - (#x6bc1 ?) - (#x6bc2 ?) - (#x6bc5 ?) - (#x6bcb ?) - (#x6bcd ?ĸ) - (#x6bcf ?ÿ) - (#x6bd2 ?) - (#x6bd3 ?ع) - (#x6bd4 ?) - (#x6bd5 ?) - (#x6bd6 ?) - (#x6bd7 ?) - (#x6bd9 ?) - (#x6bdb ?ë) - (#x6be1 ?ձ) - (#x6bea ?) - (#x6beb ?) - (#x6bef ?̺) - (#x6bf3 ?) - (#x6bf5 ?) - (#x6bf9 ?) - (#x6bfd ?) - (#x6c05 ?) - (#x6c06 ?) - (#x6c07 ?) - (#x6c0d ?) - (#x6c0f ?) - (#x6c10 ?ص) - (#x6c11 ?) - (#x6c13 ?å) - (#x6c14 ?) - (#x6c15 ?) - (#x6c16 ?) - (#x6c18 ?) - (#x6c19 ?) - (#x6c1a ?) - (#x6c1b ?) - (#x6c1f ?) - (#x6c21 ?) - (#x6c22 ?) - (#x6c24 ?) - (#x6c26 ?) - (#x6c27 ?) - (#x6c28 ?) - (#x6c29 ?) - (#x6c2a ?) - (#x6c2e ?) - (#x6c2f ?) - (#x6c30 ?) - (#x6c32 ?) - (#x6c34 ?ˮ) - (#x6c35 ?) - (#x6c38 ?) - (#x6c3d ?) - (#x6c40 ?͡) - (#x6c41 ?֭) - (#x6c42 ?) - (#x6c46 ?) - (#x6c47 ?) - (#x6c49 ?) - (#x6c4a ?) - (#x6c50 ?ϫ) - (#x6c54 ?) - (#x6c55 ?) - (#x6c57 ?) - (#x6c5b ?Ѵ) - (#x6c5c ?) - (#x6c5d ?) - (#x6c5e ?) - (#x6c5f ?) - (#x6c60 ?) - (#x6c61 ?) - (#x6c64 ?) - (#x6c68 ?) - (#x6c69 ?) - (#x6c6a ?) - (#x6c70 ?̭) - (#x6c72 ?) - (#x6c74 ?) - (#x6c76 ?) - (#x6c79 ?) - (#x6c7d ?) - (#x6c7e ?) - (#x6c81 ?) - (#x6c82 ?) - (#x6c83 ?) - (#x6c85 ?) - (#x6c86 ?) - (#x6c88 ?) - (#x6c89 ?) - (#x6c8c ?) - (#x6c8f ?) - (#x6c90 ?) - (#x6c93 ?) - (#x6c94 ?) - (#x6c99 ?ɳ) - (#x6c9b ?) - (#x6c9f ?) - (#x6ca1 ?û) - (#x6ca3 ?) - (#x6ca4 ?Ž) - (#x6ca5 ?) - (#x6ca6 ?) - (#x6ca7 ?) - (#x6ca9 ?) - (#x6caa ?) - (#x6cab ?ĭ) - (#x6cad ?) - (#x6cae ?) - (#x6cb1 ?) - (#x6cb2 ?) - (#x6cb3 ?) - (#x6cb8 ?) - (#x6cb9 ?) - (#x6cbb ?) - (#x6cbc ?) - (#x6cbd ?) - (#x6cbe ?մ) - (#x6cbf ?) - (#x6cc4 ?й) - (#x6cc5 ?) - (#x6cc9 ?Ȫ) - (#x6cca ?) - (#x6ccc ?) - (#x6cd0 ?) - (#x6cd3 ?) - (#x6cd4 ?) - (#x6cd5 ?) - (#x6cd6 ?) - (#x6cd7 ?) - (#x6cdb ?) - (#x6cde ?Ţ) - (#x6ce0 ?) - (#x6ce1 ?) - (#x6ce2 ?) - (#x6ce3 ?) - (#x6ce5 ?) - (#x6ce8 ?ע) - (#x6cea ?) - (#x6ceb ?) - (#x6cee ?) - (#x6cef ?) - (#x6cf0 ?̩) - (#x6cf1 ?) - (#x6cf3 ?Ӿ) - (#x6cf5 ?) - (#x6cf6 ?) - (#x6cf7 ?) - (#x6cf8 ?) - (#x6cfa ?) - (#x6cfb ?к) - (#x6cfc ?) - (#x6cfd ?) - (#x6cfe ?) - (#x6d01 ?) - (#x6d04 ?) - (#x6d07 ?) - (#x6d0b ?) - (#x6d0c ?) - (#x6d0e ?) - (#x6d12 ?) - (#x6d17 ?ϴ) - (#x6d19 ?) - (#x6d1a ?) - (#x6d1b ?) - (#x6d1e ?) - (#x6d25 ?) - (#x6d27 ?) - (#x6d2a ?) - (#x6d2b ?) - (#x6d2e ?) - (#x6d31 ?) - (#x6d32 ?) - (#x6d33 ?) - (#x6d35 ?) - (#x6d39 ?) - (#x6d3b ?) - (#x6d3c ?) - (#x6d3d ?Ǣ) - (#x6d3e ?) - (#x6d41 ?) - (#x6d43 ?) - (#x6d45 ?dz) - (#x6d46 ?) - (#x6d47 ?) - (#x6d48 ?) - (#x6d4a ?) - (#x6d4b ?) - (#x6d4d ?) - (#x6d4e ?) - (#x6d4f ?) - (#x6d51 ?) - (#x6d52 ?) - (#x6d53 ?Ũ) - (#x6d54 ?) - (#x6d59 ?) - (#x6d5a ?) - (#x6d5c ?) - (#x6d5e ?) - (#x6d60 ?) - (#x6d63 ?) - (#x6d66 ?) - (#x6d69 ?) - (#x6d6a ?) - (#x6d6e ?) - (#x6d6f ?) - (#x6d74 ?ԡ) - (#x6d77 ?) - (#x6d78 ?) - (#x6d7c ?) - (#x6d82 ?Ϳ) - (#x6d85 ?) - (#x6d88 ?) - (#x6d89 ?) - (#x6d8c ?ӿ) - (#x6d8e ?) - (#x6d91 ?) - (#x6d93 ?) - (#x6d94 ?) - (#x6d95 ?) - (#x6d9b ?) - (#x6d9d ?) - (#x6d9e ?) - (#x6d9f ?) - (#x6da0 ?) - (#x6da1 ?) - (#x6da3 ?) - (#x6da4 ?) - (#x6da6 ?) - (#x6da7 ?) - (#x6da8 ?) - (#x6da9 ?ɬ) - (#x6daa ?) - (#x6dab ?) - (#x6dae ?) - (#x6daf ?) - (#x6db2 ?Һ) - (#x6db5 ?) - (#x6db8 ?) - (#x6dbf ?) - (#x6dc0 ?) - (#x6dc4 ?) - (#x6dc5 ?) - (#x6dc6 ?) - (#x6dc7 ?) - (#x6dcb ?) - (#x6dcc ?) - (#x6dd1 ?) - (#x6dd6 ?) - (#x6dd8 ?) - (#x6dd9 ?) - (#x6ddd ?) - (#x6dde ?) - (#x6de0 ?) - (#x6de1 ?) - (#x6de4 ?) - (#x6de6 ?) - (#x6deb ?) - (#x6dec ?) - (#x6dee ?) - (#x6df1 ?) - (#x6df3 ?) - (#x6df7 ?) - (#x6df9 ?) - (#x6dfb ?) - (#x6dfc ?) - (#x6e05 ?) - (#x6e0a ?Ԩ) - (#x6e0c ?) - (#x6e0d ?) - (#x6e0e ?) - (#x6e10 ?) - (#x6e11 ?) - (#x6e14 ?) - (#x6e16 ?) - (#x6e17 ?) - (#x6e1a ?) - (#x6e1d ?) - (#x6e20 ?) - (#x6e21 ?) - (#x6e23 ?) - (#x6e24 ?) - (#x6e25 ?) - (#x6e29 ?) - (#x6e2b ?) - (#x6e2d ?μ) - (#x6e2f ?) - (#x6e32 ?) - (#x6e34 ?) - (#x6e38 ?) - (#x6e3a ?) - (#x6e43 ?) - (#x6e44 ?) - (#x6e4d ?) - (#x6e4e ?) - (#x6e53 ?) - (#x6e54 ?) - (#x6e56 ?) - (#x6e58 ?) - (#x6e5b ?տ) - (#x6e5f ?) - (#x6e6b ?) - (#x6e6e ?) - (#x6e7e ?) - (#x6e7f ?ʪ) - (#x6e83 ?) - (#x6e85 ?) - (#x6e86 ?) - (#x6e89 ?) - (#x6e8f ?) - (#x6e90 ?Դ) - (#x6e98 ?) - (#x6e9c ?) - (#x6e9f ?) - (#x6ea2 ?) - (#x6ea5 ?) - (#x6ea7 ?) - (#x6eaa ?Ϫ) - (#x6eaf ?) - (#x6eb1 ?) - (#x6eb2 ?) - (#x6eb4 ?) - (#x6eb6 ?) - (#x6eb7 ?) - (#x6eba ?) - (#x6ebb ?) - (#x6ebd ?) - (#x6ec1 ?) - (#x6ec2 ?) - (#x6ec7 ?) - (#x6ecb ?) - (#x6ecf ?) - (#x6ed1 ?) - (#x6ed3 ?) - (#x6ed4 ?) - (#x6ed5 ?) - (#x6ed7 ?) - (#x6eda ?) - (#x6ede ?) - (#x6edf ?) - (#x6ee0 ?) - (#x6ee1 ?) - (#x6ee2 ?) - (#x6ee4 ?) - (#x6ee5 ?) - (#x6ee6 ?) - (#x6ee8 ?) - (#x6ee9 ?̲) - (#x6ef4 ?) - (#x6ef9 ?) - (#x6f02 ?Ư) - (#x6f06 ?) - (#x6f09 ?) - (#x6f0f ?©) - (#x6f13 ?) - (#x6f14 ?) - (#x6f15 ?) - (#x6f20 ?Į) - (#x6f24 ?) - (#x6f29 ?) - (#x6f2a ?) - (#x6f2b ?) - (#x6f2d ?) - (#x6f2f ?) - (#x6f31 ?) - (#x6f33 ?) - (#x6f36 ?) - (#x6f3e ?) - (#x6f46 ?) - (#x6f47 ?) - (#x6f4b ?) - (#x6f4d ?Ϋ) - (#x6f58 ?) - (#x6f5c ?DZ) - (#x6f5e ?º) - (#x6f62 ?) - (#x6f66 ?) - (#x6f6d ?̶) - (#x6f6e ?) - (#x6f72 ?) - (#x6f74 ?) - (#x6f78 ?) - (#x6f7a ?) - (#x6f7c ?) - (#x6f84 ?) - (#x6f88 ?) - (#x6f89 ?) - (#x6f8c ?) - (#x6f8d ?) - (#x6f8e ?) - (#x6f9c ?) - (#x6fa1 ?) - (#x6fa7 ?) - (#x6fb3 ?) - (#x6fb6 ?) - (#x6fb9 ?) - (#x6fc0 ?) - (#x6fc2 ?) - (#x6fc9 ?) - (#x6fd1 ?) - (#x6fd2 ?) - (#x6fde ?) - (#x6fe0 ?) - (#x6fe1 ?) - (#x6fee ?) - (#x6fef ?) - (#x7011 ?) - (#x701a ?) - (#x701b ?) - (#x7023 ?) - (#x7035 ?) - (#x7039 ?) - (#x704c ?) - (#x704f ?) - (#x705e ?) - (#x706b ?) - (#x706c ?) - (#x706d ?) - (#x706f ?) - (#x7070 ?) - (#x7075 ?) - (#x7076 ?) - (#x7078 ?) - (#x707c ?) - (#x707e ?) - (#x707f ?) - (#x7080 ?) - (#x7085 ?) - (#x7089 ?¯) - (#x708a ?) - (#x708e ?) - (#x7092 ?) - (#x7094 ?Ȳ) - (#x7095 ?) - (#x7096 ?) - (#x7099 ?) - (#x709c ?) - (#x709d ?) - (#x70ab ?) - (#x70ac ?) - (#x70ad ?̿) - (#x70ae ?) - (#x70af ?) - (#x70b1 ?) - (#x70b3 ?) - (#x70b7 ?) - (#x70b8 ?ը) - (#x70b9 ?) - (#x70bb ?) - (#x70bc ?) - (#x70bd ?) - (#x70c0 ?) - (#x70c1 ?˸) - (#x70c2 ?) - (#x70c3 ?) - (#x70c8 ?) - (#x70ca ?) - (#x70d8 ?) - (#x70d9 ?) - (#x70db ?) - (#x70df ?) - (#x70e4 ?) - (#x70e6 ?) - (#x70e7 ?) - (#x70e8 ?) - (#x70e9 ?) - (#x70eb ?) - (#x70ec ?) - (#x70ed ?) - (#x70ef ?ϩ) - (#x70f7 ?) - (#x70f9 ?) - (#x70fd ?) - (#x7109 ?) - (#x710a ?) - (#x7110 ?) - (#x7113 ?) - (#x7115 ?) - (#x7116 ?) - (#x7118 ?) - (#x7119 ?) - (#x711a ?) - (#x7126 ?) - (#x712f ?) - (#x7130 ?) - (#x7131 ?) - (#x7136 ?Ȼ) - (#x7145 ?) - (#x714a ?) - (#x714c ?) - (#x714e ?) - (#x715c ?) - (#x715e ?ɷ) - (#x7164 ?ú) - (#x7166 ?) - (#x7167 ?) - (#x7168 ?) - (#x716e ?) - (#x7172 ?) - (#x7173 ?) - (#x7178 ?) - (#x717a ?) - (#x717d ?ɿ) - (#x7184 ?Ϩ) - (#x718a ?) - (#x718f ?Ѭ) - (#x7194 ?) - (#x7198 ?) - (#x7199 ?) - (#x719f ?) - (#x71a0 ?) - (#x71a8 ?) - (#x71ac ?) - (#x71b3 ?) - (#x71b5 ?) - (#x71b9 ?) - (#x71c3 ?ȼ) - (#x71ce ?) - (#x71d4 ?) - (#x71d5 ?) - (#x71e0 ?) - (#x71e5 ?) - (#x71e7 ?) - (#x71ee ?) - (#x71f9 ?) - (#x7206 ?) - (#x721d ?) - (#x7228 ?) - (#x722a ?צ) - (#x722c ?) - (#x7230 ?) - (#x7231 ?) - (#x7235 ?) - (#x7236 ?) - (#x7237 ?ү) - (#x7238 ?) - (#x7239 ?) - (#x723b ?س) - (#x723d ?ˬ) - (#x723f ?) - (#x7247 ?Ƭ) - (#x7248 ?) - (#x724c ?) - (#x724d ?) - (#x7252 ?) - (#x7256 ?) - (#x7259 ?) - (#x725b ?ţ) - (#x725d ?) - (#x725f ?IJ) - (#x7261 ?ĵ) - (#x7262 ?) - (#x7266 ?) - (#x7267 ?) - (#x7269 ?) - (#x726e ?) - (#x726f ?) - (#x7272 ?) - (#x7275 ?ǣ) - (#x7279 ?) - (#x727a ?) - (#x727e ?) - (#x727f ?) - (#x7280 ?Ϭ) - (#x7281 ?) - (#x7284 ?) - (#x728a ?) - (#x728b ?) - (#x728d ?) - (#x728f ?) - (#x7292 ?) - (#x729f ?) - (#x72ac ?Ȯ) - (#x72ad ?) - (#x72af ?) - (#x72b0 ?) - (#x72b4 ?) - (#x72b6 ?״) - (#x72b7 ?) - (#x72b8 ?) - (#x72b9 ?) - (#x72c1 ?) - (#x72c2 ?) - (#x72c3 ?) - (#x72c4 ?) - (#x72c8 ?) - (#x72cd ?) - (#x72ce ?) - (#x72d0 ?) - (#x72d2 ?) - (#x72d7 ?) - (#x72d9 ?) - (#x72de ?) - (#x72e0 ?) - (#x72e1 ?) - (#x72e8 ?) - (#x72e9 ?) - (#x72ec ?) - (#x72ed ?) - (#x72ee ?ʨ) - (#x72ef ?) - (#x72f0 ?) - (#x72f1 ?) - (#x72f2 ?) - (#x72f3 ?) - (#x72f4 ?) - (#x72f7 ?) - (#x72f8 ?) - (#x72fa ?) - (#x72fb ?) - (#x72fc ?) - (#x7301 ?) - (#x7303 ?) - (#x730a ?) - (#x730e ?) - (#x7313 ?) - (#x7315 ?) - (#x7316 ?) - (#x7317 ?) - (#x731b ?) - (#x731c ?) - (#x731d ?) - (#x731e ?) - (#x7321 ?) - (#x7322 ?) - (#x7325 ?) - (#x7329 ?) - (#x732a ?) - (#x732b ?è) - (#x732c ?) - (#x732e ?) - (#x7331 ?) - (#x7334 ?) - (#x7337 ?) - (#x7338 ?) - (#x7339 ?) - (#x733e ?) - (#x733f ?Գ) - (#x734d ?) - (#x7350 ?) - (#x7352 ?) - (#x7357 ?) - (#x7360 ?) - (#x736c ?) - (#x736d ?̡) - (#x736f ?) - (#x737e ?) - (#x7384 ?) - (#x7387 ?) - (#x7389 ?) - (#x738b ?) - (#x738e ?) - (#x7391 ?) - (#x7396 ?) - (#x739b ?) - (#x739f ?) - (#x73a2 ?) - (#x73a9 ?) - (#x73ab ?õ) - (#x73ae ?) - (#x73af ?) - (#x73b0 ?) - (#x73b2 ?) - (#x73b3 ?) - (#x73b7 ?) - (#x73ba ?) - (#x73bb ?) - (#x73c0 ?) - (#x73c2 ?) - (#x73c8 ?) - (#x73c9 ?) - (#x73ca ?ɺ) - (#x73cd ?) - (#x73cf ?) - (#x73d0 ?) - (#x73d1 ?) - (#x73d9 ?) - (#x73de ?) - (#x73e0 ?) - (#x73e5 ?) - (#x73e7 ?) - (#x73e9 ?) - (#x73ed ?) - (#x73f2 ?) - (#x7403 ?) - (#x7405 ?) - (#x7406 ?) - (#x7409 ?) - (#x740a ?) - (#x740f ?) - (#x7410 ?) - (#x741a ?) - (#x741b ?) - (#x7422 ?) - (#x7425 ?) - (#x7426 ?) - (#x7428 ?) - (#x742a ?) - (#x742c ?) - (#x742e ?) - (#x7430 ?) - (#x7433 ?) - (#x7434 ?) - (#x7435 ?) - (#x7436 ?) - (#x743c ?) - (#x7441 ?) - (#x7455 ?) - (#x7457 ?) - (#x7459 ?) - (#x745a ?) - (#x745b ?) - (#x745c ?) - (#x745e ?) - (#x745f ?ɪ) - (#x746d ?) - (#x7470 ?) - (#x7476 ?) - (#x7477 ?) - (#x747e ?) - (#x7480 ?) - (#x7481 ?) - (#x7483 ?) - (#x7487 ?) - (#x748b ?) - (#x748e ?) - (#x7490 ?) - (#x749c ?) - (#x749e ?) - (#x74a7 ?) - (#x74a8 ?) - (#x74a9 ?) - (#x74ba ?) - (#x74d2 ?) - (#x74dc ?) - (#x74de ?) - (#x74e0 ?) - (#x74e2 ?ư) - (#x74e3 ?) - (#x74e4 ?ȿ) - (#x74e6 ?) - (#x74ee ?) - (#x74ef ?) - (#x74f4 ?) - (#x74f6 ?ƿ) - (#x74f7 ?) - (#x74ff ?) - (#x7504 ?) - (#x750d ?) - (#x750f ?) - (#x7511 ?) - (#x7513 ?) - (#x7518 ?) - (#x7519 ?߰) - (#x751a ?) - (#x751c ?) - (#x751f ?) - (#x7525 ?) - (#x7528 ?) - (#x7529 ?˦) - (#x752b ?) - (#x752c ?) - (#x752d ?) - (#x752f ?) - (#x7530 ?) - (#x7531 ?) - (#x7532 ?) - (#x7533 ?) - (#x7535 ?) - (#x7537 ?) - (#x7538 ?) - (#x753a ?) - (#x753b ?) - (#x753e ?) - (#x7540 ?) - (#x7545 ?) - (#x7548 ?) - (#x754b ?) - (#x754c ?) - (#x754e ?) - (#x754f ?η) - (#x7554 ?) - (#x7559 ?) - (#x755a ?) - (#x755b ?) - (#x755c ?) - (#x7565 ?) - (#x7566 ?) - (#x756a ?) - (#x7572 ?) - (#x7574 ?) - (#x7578 ?) - (#x7579 ?) - (#x757f ?) - (#x7583 ?) - (#x7586 ?) - (#x758b ?) - (#x758f ?) - (#x7591 ?) - (#x7592 ?) - (#x7594 ?) - (#x7596 ?) - (#x7597 ?) - (#x7599 ?) - (#x759a ?) - (#x759d ?) - (#x759f ?ű) - (#x75a0 ?) - (#x75a1 ?) - (#x75a3 ?) - (#x75a4 ?) - (#x75a5 ?) - (#x75ab ?) - (#x75ac ?) - (#x75ae ?) - (#x75af ?) - (#x75b0 ?) - (#x75b1 ?) - (#x75b2 ?ƣ) - (#x75b3 ?) - (#x75b4 ?) - (#x75b5 ?) - (#x75b8 ?) - (#x75b9 ?) - (#x75bc ?) - (#x75bd ?) - (#x75be ?) - (#x75c2 ?) - (#x75c3 ?) - (#x75c4 ?) - (#x75c5 ?) - (#x75c7 ?֢) - (#x75c8 ?Ӹ) - (#x75c9 ?) - (#x75ca ?Ȭ) - (#x75cd ?) - (#x75d2 ?) - (#x75d4 ?) - (#x75d5 ?) - (#x75d6 ?) - (#x75d8 ?) - (#x75db ?ʹ) - (#x75de ?Ʀ) - (#x75e2 ?) - (#x75e3 ?) - (#x75e4 ?) - (#x75e6 ?) - (#x75e7 ?) - (#x75e8 ?) - (#x75ea ?) - (#x75eb ?) - (#x75f0 ?̵) - (#x75f1 ?) - (#x75f4 ?) - (#x75f9 ?) - (#x75fc ?) - (#x75ff ?) - (#x7600 ?) - (#x7601 ?) - (#x7603 ?) - (#x7605 ?) - (#x760a ?) - (#x760c ?) - (#x7610 ?) - (#x7615 ?) - (#x7617 ?) - (#x7618 ?) - (#x7619 ?) - (#x761b ?) - (#x761f ?) - (#x7620 ?) - (#x7622 ?) - (#x7624 ?) - (#x7625 ?) - (#x7626 ?) - (#x7629 ?) - (#x762a ?) - (#x762b ?̱) - (#x762d ?) - (#x7630 ?) - (#x7633 ?) - (#x7634 ?) - (#x7635 ?) - (#x7638 ?ȳ) - (#x763c ?) - (#x763e ?) - (#x763f ?) - (#x7640 ?) - (#x7643 ?) - (#x764c ?) - (#x764d ?) - (#x7654 ?) - (#x7656 ?) - (#x765c ?) - (#x765e ?) - (#x7663 ?Ѣ) - (#x766b ?) - (#x766f ?) - (#x7678 ?) - (#x767b ?) - (#x767d ?) - (#x767e ?) - (#x7682 ?) - (#x7684 ?) - (#x7686 ?) - (#x7687 ?) - (#x7688 ?) - (#x768b ?) - (#x768e ?) - (#x7691 ?) - (#x7693 ?) - (#x7696 ?) - (#x7699 ?) - (#x76a4 ?) - (#x76ae ?Ƥ) - (#x76b1 ?) - (#x76b2 ?) - (#x76b4 ?) - (#x76bf ?) - (#x76c2 ?) - (#x76c5 ?) - (#x76c6 ?) - (#x76c8 ?ӯ) - (#x76ca ?) - (#x76cd ?) - (#x76ce ?) - (#x76cf ?յ) - (#x76d0 ?) - (#x76d1 ?) - (#x76d2 ?) - (#x76d4 ?) - (#x76d6 ?) - (#x76d7 ?) - (#x76d8 ?) - (#x76db ?ʢ) - (#x76df ?) - (#x76e5 ?) - (#x76ee ?Ŀ) - (#x76ef ?) - (#x76f1 ?) - (#x76f2 ?ä) - (#x76f4 ?ֱ) - (#x76f8 ?) - (#x76f9 ?) - (#x76fc ?) - (#x76fe ?) - (#x7701 ?ʡ) - (#x7704 ?) - (#x7707 ?) - (#x7708 ?) - (#x7709 ?ü) - (#x770b ?) - (#x770d ?) - (#x7719 ?) - (#x771a ?) - (#x771f ?) - (#x7720 ?) - (#x7722 ?) - (#x7726 ?) - (#x7728 ?գ) - (#x7729 ?ѣ) - (#x772d ?) - (#x772f ?) - (#x7735 ?) - (#x7736 ?) - (#x7737 ?) - (#x7738 ?) - (#x773a ?) - (#x773c ?) - (#x7740 ?) - (#x7741 ?) - (#x7743 ?) - (#x7747 ?) - (#x7750 ?) - (#x7751 ?) - (#x775a ?) - (#x775b ?) - (#x7761 ?˯) - (#x7762 ?) - (#x7763 ?) - (#x7765 ?) - (#x7766 ?) - (#x7768 ?) - (#x776b ?) - (#x776c ?) - (#x7779 ?) - (#x777d ?) - (#x777e ?غ) - (#x777f ?) - (#x7780 ?) - (#x7784 ?) - (#x7785 ?) - (#x778c ?) - (#x778d ?) - (#x778e ?Ϲ) - (#x7791 ?) - (#x7792 ?) - (#x779f ?) - (#x77a0 ?) - (#x77a2 ?ޫ) - (#x77a5 ?Ƴ) - (#x77a7 ?) - (#x77a9 ?) - (#x77aa ?) - (#x77ac ?˲) - (#x77b0 ?) - (#x77b3 ?ͫ) - (#x77b5 ?) - (#x77bb ?հ) - (#x77bd ?) - (#x77bf ?) - (#x77cd ?) - (#x77d7 ?) - (#x77db ?ì) - (#x77dc ?) - (#x77e2 ?ʸ) - (#x77e3 ?) - (#x77e5 ?֪) - (#x77e7 ?) - (#x77e9 ?) - (#x77eb ?) - (#x77ec ?) - (#x77ed ?) - (#x77ee ?) - (#x77f3 ?ʯ) - (#x77f6 ?) - (#x77f8 ?) - (#x77fd ?) - (#x77fe ?) - (#x77ff ?) - (#x7800 ?) - (#x7801 ?) - (#x7802 ?ɰ) - (#x7809 ?) - (#x780c ?) - (#x780d ?) - (#x7811 ?) - (#x7812 ?) - (#x7814 ?) - (#x7816 ?ש) - (#x7817 ?) - (#x7818 ?) - (#x781a ?) - (#x781c ?) - (#x781d ?) - (#x781f ?) - (#x7823 ?) - (#x7825 ?) - (#x7826 ?) - (#x7827 ?) - (#x7829 ?) - (#x782c ?) - (#x782d ?) - (#x7830 ?) - (#x7834 ?) - (#x7837 ?) - (#x7838 ?) - (#x7839 ?) - (#x783a ?) - (#x783b ?) - (#x783c ?) - (#x783e ?) - (#x7840 ?) - (#x7845 ?) - (#x7847 ?) - (#x784c ?) - (#x784e ?) - (#x7850 ?) - (#x7852 ?) - (#x7855 ?˶) - (#x7856 ?) - (#x7857 ?) - (#x785d ?) - (#x786a ?) - (#x786b ?) - (#x786c ?Ӳ) - (#x786d ?) - (#x786e ?ȷ) - (#x7877 ?) - (#x787c ?) - (#x7887 ?) - (#x7889 ?) - (#x788c ?µ) - (#x788d ?) - (#x788e ?) - (#x7891 ?) - (#x7893 ?) - (#x7897 ?) - (#x7898 ?) - (#x789a ?) - (#x789b ?) - (#x789c ?) - (#x789f ?) - (#x78a1 ?) - (#x78a3 ?) - (#x78a5 ?) - (#x78a7 ?) - (#x78b0 ?) - (#x78b1 ?) - (#x78b2 ?) - (#x78b3 ?̼) - (#x78b4 ?) - (#x78b9 ?) - (#x78be ?) - (#x78c1 ?) - (#x78c5 ?) - (#x78c9 ?) - (#x78ca ?) - (#x78cb ?) - (#x78d0 ?) - (#x78d4 ?) - (#x78d5 ?) - (#x78d9 ?) - (#x78e8 ?ĥ) - (#x78ec ?) - (#x78f2 ?) - (#x78f4 ?) - (#x78f7 ?) - (#x78fa ?) - (#x7901 ?) - (#x7905 ?) - (#x7913 ?) - (#x791e ?) - (#x7924 ?) - (#x7934 ?) - (#x793a ?ʾ) - (#x793b ?) - (#x793c ?) - (#x793e ?) - (#x7940 ?) - (#x7941 ?) - (#x7946 ?) - (#x7948 ?) - (#x7949 ?) - (#x7953 ?) - (#x7956 ?) - (#x7957 ?) - (#x795a ?) - (#x795b ?) - (#x795c ?) - (#x795d ?ף) - (#x795e ?) - (#x795f ?) - (#x7960 ?) - (#x7962 ?) - (#x7965 ?) - (#x7967 ?) - (#x7968 ?Ʊ) - (#x796d ?) - (#x796f ?) - (#x7977 ?) - (#x7978 ?) - (#x797a ?) - (#x7980 ?) - (#x7981 ?) - (#x7984 ?») - (#x7985 ?) - (#x798a ?) - (#x798f ?) - (#x799a ?) - (#x79a7 ?) - (#x79b3 ?) - (#x79b9 ?) - (#x79ba ?خ) - (#x79bb ?) - (#x79bd ?) - (#x79be ?) - (#x79c0 ?) - (#x79c1 ?˽) - (#x79c3 ?ͺ) - (#x79c6 ?) - (#x79c9 ?) - (#x79cb ?) - (#x79cd ?) - (#x79d1 ?) - (#x79d2 ?) - (#x79d5 ?) - (#x79d8 ?) - (#x79df ?) - (#x79e3 ?) - (#x79e4 ?) - (#x79e6 ?) - (#x79e7 ?) - (#x79e9 ?) - (#x79eb ?) - (#x79ed ?) - (#x79ef ?) - (#x79f0 ?) - (#x79f8 ?) - (#x79fb ?) - (#x79fd ?) - (#x7a00 ?ϡ) - (#x7a02 ?) - (#x7a03 ?) - (#x7a06 ?) - (#x7a0b ?) - (#x7a0d ?) - (#x7a0e ?˰) - (#x7a14 ?) - (#x7a17 ?) - (#x7a1a ?) - (#x7a1e ?) - (#x7a20 ?) - (#x7a23 ?) - (#x7a33 ?) - (#x7a37 ?) - (#x7a39 ?) - (#x7a3b ?) - (#x7a3c ?) - (#x7a3d ?) - (#x7a3f ?) - (#x7a46 ?) - (#x7a51 ?) - (#x7a57 ?) - (#x7a70 ?) - (#x7a74 ?Ѩ) - (#x7a76 ?) - (#x7a77 ?) - (#x7a78 ?) - (#x7a79 ?) - (#x7a7a ?) - (#x7a7f ?) - (#x7a80 ?) - (#x7a81 ?ͻ) - (#x7a83 ?) - (#x7a84 ?խ) - (#x7a86 ?) - (#x7a88 ?) - (#x7a8d ?) - (#x7a91 ?Ҥ) - (#x7a92 ?) - (#x7a95 ?) - (#x7a96 ?) - (#x7a97 ?) - (#x7a98 ?) - (#x7a9c ?) - (#x7a9d ?) - (#x7a9f ?) - (#x7aa0 ?) - (#x7aa5 ?) - (#x7aa6 ?) - (#x7aa8 ?) - (#x7aac ?) - (#x7aad ?) - (#x7ab3 ?) - (#x7abf ?) - (#x7acb ?) - (#x7ad6 ?) - (#x7ad9 ?վ) - (#x7ade ?) - (#x7adf ?) - (#x7ae0 ?) - (#x7ae3 ?) - (#x7ae5 ?ͯ) - (#x7ae6 ?) - (#x7aed ?) - (#x7aef ?) - (#x7af9 ?) - (#x7afa ?) - (#x7afd ?) - (#x7aff ?) - (#x7b03 ?) - (#x7b04 ?) - (#x7b06 ?) - (#x7b08 ?) - (#x7b0a ?) - (#x7b0b ?) - (#x7b0f ?) - (#x7b11 ?Ц) - (#x7b14 ?) - (#x7b15 ?) - (#x7b19 ?) - (#x7b1b ?) - (#x7b1e ?) - (#x7b20 ?) - (#x7b24 ?) - (#x7b25 ?) - (#x7b26 ?) - (#x7b28 ?) - (#x7b2a ?) - (#x7b2b ?) - (#x7b2c ?) - (#x7b2e ?) - (#x7b31 ?) - (#x7b33 ?) - (#x7b38 ?) - (#x7b3a ?) - (#x7b3c ?) - (#x7b3e ?) - (#x7b45 ?) - (#x7b47 ?) - (#x7b49 ?) - (#x7b4b ?) - (#x7b4c ?) - (#x7b4f ?) - (#x7b50 ?) - (#x7b51 ?) - (#x7b52 ?Ͳ) - (#x7b54 ?) - (#x7b56 ?) - (#x7b58 ?) - (#x7b5a ?) - (#x7b5b ?ɸ) - (#x7b5d ?) - (#x7b60 ?) - (#x7b62 ?) - (#x7b6e ?) - (#x7b71 ?) - (#x7b72 ?) - (#x7b75 ?) - (#x7b77 ?) - (#x7b79 ?) - (#x7b7b ?) - (#x7b7e ?ǩ) - (#x7b80 ?) - (#x7b85 ?) - (#x7b8d ?) - (#x7b90 ?) - (#x7b94 ?) - (#x7b95 ?) - (#x7b97 ?) - (#x7b9c ?) - (#x7b9d ?) - (#x7ba1 ?) - (#x7ba2 ?) - (#x7ba6 ?) - (#x7ba7 ?) - (#x7ba8 ?) - (#x7ba9 ?) - (#x7baa ?) - (#x7bab ?) - (#x7bac ?) - (#x7bad ?) - (#x7bb1 ?) - (#x7bb4 ?) - (#x7bb8 ?) - (#x7bc1 ?) - (#x7bc6 ?) - (#x7bc7 ?ƪ) - (#x7bcc ?) - (#x7bd1 ?) - (#x7bd3 ?¨) - (#x7bd9 ?) - (#x7bda ?) - (#x7bdd ?) - (#x7be1 ?) - (#x7be5 ?) - (#x7be6 ?) - (#x7bea ?) - (#x7bee ?) - (#x7bf1 ?) - (#x7bf7 ?) - (#x7bfc ?) - (#x7bfe ?) - (#x7c07 ?) - (#x7c0b ?) - (#x7c0c ?) - (#x7c0f ?) - (#x7c16 ?) - (#x7c1f ?) - (#x7c26 ?) - (#x7c27 ?) - (#x7c2a ?) - (#x7c38 ?) - (#x7c3f ?) - (#x7c40 ?) - (#x7c41 ?) - (#x7c4d ?) - (#x7c73 ?) - (#x7c74 ?) - (#x7c7b ?) - (#x7c7c ?) - (#x7c7d ?) - (#x7c89 ?) - (#x7c91 ?) - (#x7c92 ?) - (#x7c95 ?) - (#x7c97 ?) - (#x7c98 ?ճ) - (#x7c9c ?) - (#x7c9d ?) - (#x7c9e ?) - (#x7c9f ?) - (#x7ca2 ?) - (#x7ca4 ?) - (#x7ca5 ?) - (#x7caa ?) - (#x7cae ?) - (#x7cb1 ?) - (#x7cb2 ?) - (#x7cb3 ?) - (#x7cb9 ?) - (#x7cbc ?) - (#x7cbd ?) - (#x7cbe ?) - (#x7cc1 ?) - (#x7cc5 ?) - (#x7cc7 ?) - (#x7cc8 ?) - (#x7cca ?) - (#x7ccc ?) - (#x7ccd ?) - (#x7cd5 ?) - (#x7cd6 ?) - (#x7cd7 ?) - (#x7cd9 ?) - (#x7cdc ?) - (#x7cdf ?) - (#x7ce0 ?) - (#x7ce8 ?) - (#x7cef ?Ŵ) - (#x7cf8 ?) - (#x7cfb ?ϵ) - (#x7d0a ?) - (#x7d20 ?) - (#x7d22 ?) - (#x7d27 ?) - (#x7d2b ?) - (#x7d2f ?) - (#x7d6e ?) - (#x7d77 ?) - (#x7da6 ?) - (#x7dae ?) - (#x7e3b ?) - (#x7e41 ?) - (#x7e47 ?) - (#x7e82 ?) - (#x7e9b ?) - (#x7e9f ?) - (#x7ea0 ?) - (#x7ea1 ?) - (#x7ea2 ?) - (#x7ea3 ?) - (#x7ea4 ?) - (#x7ea5 ?) - (#x7ea6 ?Լ) - (#x7ea7 ?) - (#x7ea8 ?) - (#x7ea9 ?) - (#x7eaa ?) - (#x7eab ?) - (#x7eac ?γ) - (#x7ead ?) - (#x7eaf ?) - (#x7eb0 ?) - (#x7eb1 ?ɴ) - (#x7eb2 ?) - (#x7eb3 ?) - (#x7eb5 ?) - (#x7eb6 ?) - (#x7eb7 ?) - (#x7eb8 ?ֽ) - (#x7eb9 ?) - (#x7eba ?) - (#x7ebd ?Ŧ) - (#x7ebe ?) - (#x7ebf ?) - (#x7ec0 ?) - (#x7ec1 ?) - (#x7ec2 ?) - (#x7ec3 ?) - (#x7ec4 ?) - (#x7ec5 ?) - (#x7ec6 ?ϸ) - (#x7ec7 ?֯) - (#x7ec8 ?) - (#x7ec9 ?) - (#x7eca ?) - (#x7ecb ?) - (#x7ecc ?) - (#x7ecd ?) - (#x7ece ?) - (#x7ecf ?) - (#x7ed0 ?) - (#x7ed1 ?) - (#x7ed2 ?) - (#x7ed3 ?) - (#x7ed4 ?) - (#x7ed5 ?) - (#x7ed7 ?) - (#x7ed8 ?) - (#x7ed9 ?) - (#x7eda ?Ѥ) - (#x7edb ?) - (#x7edc ?) - (#x7edd ?) - (#x7ede ?) - (#x7edf ?ͳ) - (#x7ee0 ?) - (#x7ee1 ?) - (#x7ee2 ?) - (#x7ee3 ?) - (#x7ee5 ?) - (#x7ee6 ?) - (#x7ee7 ?) - (#x7ee8 ?) - (#x7ee9 ?) - (#x7eea ?) - (#x7eeb ?) - (#x7eed ?) - (#x7eee ?) - (#x7eef ?) - (#x7ef0 ?) - (#x7ef1 ?) - (#x7ef2 ?) - (#x7ef3 ?) - (#x7ef4 ?ά) - (#x7ef5 ?) - (#x7ef6 ?) - (#x7ef7 ?) - (#x7ef8 ?) - (#x7efa ?) - (#x7efb ?) - (#x7efc ?) - (#x7efd ?) - (#x7efe ?) - (#x7eff ?) - (#x7f00 ?) - (#x7f01 ?) - (#x7f02 ?) - (#x7f03 ?) - (#x7f04 ?) - (#x7f05 ?) - (#x7f06 ?) - (#x7f07 ?) - (#x7f08 ?) - (#x7f09 ?) - (#x7f0b ?) - (#x7f0c ?) - (#x7f0d ?) - (#x7f0e ?) - (#x7f0f ?) - (#x7f11 ?) - (#x7f12 ?) - (#x7f13 ?) - (#x7f14 ?) - (#x7f15 ?) - (#x7f16 ?) - (#x7f17 ?) - (#x7f18 ?Ե) - (#x7f19 ?) - (#x7f1a ?) - (#x7f1b ?) - (#x7f1c ?) - (#x7f1d ?) - (#x7f1f ?) - (#x7f20 ?) - (#x7f21 ?) - (#x7f22 ?) - (#x7f23 ?) - (#x7f24 ?) - (#x7f25 ?) - (#x7f26 ?) - (#x7f27 ?) - (#x7f28 ?ӧ) - (#x7f29 ?) - (#x7f2a ?) - (#x7f2b ?) - (#x7f2c ?) - (#x7f2d ?) - (#x7f2e ?) - (#x7f2f ?) - (#x7f30 ?) - (#x7f31 ?) - (#x7f32 ?) - (#x7f33 ?) - (#x7f34 ?) - (#x7f35 ?) - (#x7f36 ?) - (#x7f38 ?) - (#x7f3a ?ȱ) - (#x7f42 ?) - (#x7f44 ?) - (#x7f45 ?) - (#x7f50 ?) - (#x7f51 ?) - (#x7f54 ?) - (#x7f55 ?) - (#x7f57 ?) - (#x7f58 ?) - (#x7f5a ?) - (#x7f5f ?) - (#x7f61 ?) - (#x7f62 ?) - (#x7f68 ?) - (#x7f69 ?) - (#x7f6a ?) - (#x7f6e ?) - (#x7f71 ?) - (#x7f72 ?) - (#x7f74 ?) - (#x7f79 ?) - (#x7f7e ?) - (#x7f81 ?) - (#x7f8a ?) - (#x7f8c ?Ǽ) - (#x7f8e ?) - (#x7f94 ?) - (#x7f9a ?) - (#x7f9d ?) - (#x7f9e ?) - (#x7f9f ?) - (#x7fa1 ?) - (#x7fa4 ?Ⱥ) - (#x7fa7 ?) - (#x7faf ?) - (#x7fb0 ?) - (#x7fb2 ?) - (#x7fb8 ?) - (#x7fb9 ?) - (#x7fbc ?) - (#x7fbd ?) - (#x7fbf ?) - (#x7fc1 ?) - (#x7fc5 ?) - (#x7fca ?) - (#x7fcc ?) - (#x7fce ?) - (#x7fd4 ?) - (#x7fd5 ?) - (#x7fd8 ?) - (#x7fdf ?) - (#x7fe0 ?) - (#x7fe1 ?) - (#x7fe5 ?) - (#x7fe6 ?) - (#x7fe9 ?) - (#x7fee ?) - (#x7ff0 ?) - (#x7ff1 ?) - (#x7ff3 ?) - (#x7ffb ?) - (#x7ffc ?) - (#x8000 ?ҫ) - (#x8001 ?) - (#x8003 ?) - (#x8004 ?) - (#x8005 ?) - (#x8006 ?) - (#x800b ?) - (#x800c ?) - (#x800d ?ˣ) - (#x8010 ?) - (#x8012 ?) - (#x8014 ?) - (#x8015 ?) - (#x8016 ?) - (#x8017 ?) - (#x8018 ?) - (#x8019 ?) - (#x801c ?) - (#x8020 ?) - (#x8022 ?) - (#x8025 ?) - (#x8026 ?) - (#x8027 ?) - (#x8028 ?) - (#x8029 ?) - (#x802a ?) - (#x8031 ?) - (#x8033 ?) - (#x8035 ?) - (#x8036 ?Ү) - (#x8037 ?) - (#x8038 ?) - (#x803b ?) - (#x803d ?) - (#x803f ?) - (#x8042 ?) - (#x8043 ?) - (#x8046 ?) - (#x804a ?) - (#x804b ?) - (#x804c ?ְ) - (#x804d ?) - (#x8052 ?) - (#x8054 ?) - (#x8058 ?Ƹ) - (#x805a ?) - (#x8069 ?) - (#x806a ?) - (#x8071 ?) - (#x807f ?) - (#x8080 ?) - (#x8083 ?) - (#x8084 ?) - (#x8086 ?) - (#x8087 ?) - (#x8089 ?) - (#x808b ?) - (#x808c ?) - (#x8093 ?) - (#x8096 ?Ф) - (#x8098 ?) - (#x809a ?) - (#x809b ?) - (#x809c ?) - (#x809d ?) - (#x809f ?) - (#x80a0 ?) - (#x80a1 ?) - (#x80a2 ?֫) - (#x80a4 ?) - (#x80a5 ?) - (#x80a9 ?) - (#x80aa ?) - (#x80ab ?) - (#x80ad ?) - (#x80ae ?) - (#x80af ?) - (#x80b1 ?) - (#x80b2 ?) - (#x80b4 ?) - (#x80b7 ?) - (#x80ba ?) - (#x80bc ?) - (#x80bd ?) - (#x80be ?) - (#x80bf ?) - (#x80c0 ?) - (#x80c1 ?в) - (#x80c2 ?) - (#x80c3 ?θ) - (#x80c4 ?) - (#x80c6 ?) - (#x80cc ?) - (#x80cd ?) - (#x80ce ?̥) - (#x80d6 ?) - (#x80d7 ?) - (#x80d9 ?) - (#x80da ?) - (#x80db ?) - (#x80dc ?ʤ) - (#x80dd ?) - (#x80de ?) - (#x80e1 ?) - (#x80e4 ?ط) - (#x80e5 ?) - (#x80e7 ?) - (#x80e8 ?) - (#x80e9 ?) - (#x80ea ?) - (#x80eb ?) - (#x80ec ?) - (#x80ed ?) - (#x80ef ?) - (#x80f0 ?) - (#x80f1 ?) - (#x80f2 ?) - (#x80f3 ?) - (#x80f4 ?) - (#x80f6 ?) - (#x80f8 ?) - (#x80fa ?) - (#x80fc ?) - (#x80fd ?) - (#x8102 ?֬) - (#x8106 ?) - (#x8109 ?) - (#x810a ?) - (#x810d ?) - (#x810e ?) - (#x810f ?) - (#x8110 ?) - (#x8111 ?) - (#x8112 ?) - (#x8113 ?ŧ) - (#x8114 ?) - (#x8116 ?) - (#x8118 ?) - (#x811a ?) - (#x811e ?) - (#x812c ?) - (#x812f ?) - (#x8131 ?) - (#x8132 ?) - (#x8136 ?) - (#x8138 ?) - (#x813e ?Ƣ) - (#x8146 ?) - (#x8148 ?) - (#x814a ?) - (#x814b ?Ҹ) - (#x814c ?) - (#x8150 ?) - (#x8151 ?) - (#x8153 ?) - (#x8154 ?ǻ) - (#x8155 ?) - (#x8159 ?) - (#x815a ?) - (#x8160 ?) - (#x8165 ?) - (#x8167 ?) - (#x8169 ?) - (#x816d ?) - (#x816e ?) - (#x8170 ?) - (#x8171 ?) - (#x8174 ?) - (#x8179 ?) - (#x817a ?) - (#x817b ?) - (#x817c ?) - (#x817d ?) - (#x817e ?) - (#x817f ?) - (#x8180 ?) - (#x8182 ?) - (#x8188 ?) - (#x818a ?) - (#x818f ?) - (#x8191 ?) - (#x8198 ?) - (#x819b ?) - (#x819c ?Ĥ) - (#x819d ?ϥ) - (#x81a3 ?) - (#x81a6 ?) - (#x81a8 ?) - (#x81aa ?) - (#x81b3 ?) - (#x81ba ?) - (#x81bb ?) - (#x81c0 ?) - (#x81c1 ?) - (#x81c2 ?) - (#x81c3 ?ӷ) - (#x81c6 ?) - (#x81ca ?) - (#x81cc ?) - (#x81e3 ?) - (#x81e7 ?) - (#x81ea ?) - (#x81ec ?) - (#x81ed ?) - (#x81f3 ?) - (#x81f4 ?) - (#x81fb ?) - (#x81fc ?) - (#x81fe ?) - (#x8200 ?Ҩ) - (#x8201 ?) - (#x8202 ?) - (#x8204 ?) - (#x8205 ?) - (#x8206 ?) - (#x820c ?) - (#x820d ?) - (#x8210 ?) - (#x8212 ?) - (#x8214 ?) - (#x821b ?) - (#x821c ?˴) - (#x821e ?) - (#x821f ?) - (#x8221 ?) - (#x8222 ?) - (#x8223 ?) - (#x8228 ?) - (#x822a ?) - (#x822b ?) - (#x822c ?) - (#x822d ?) - (#x822f ?) - (#x8230 ?) - (#x8231 ?) - (#x8233 ?) - (#x8234 ?) - (#x8235 ?) - (#x8236 ?) - (#x8237 ?) - (#x8238 ?) - (#x8239 ?) - (#x823b ?) - (#x823e ?) - (#x8244 ?) - (#x8247 ?ͧ) - (#x8249 ?) - (#x824b ?) - (#x824f ?) - (#x8258 ?) - (#x825a ?) - (#x825f ?) - (#x8268 ?) - (#x826e ?) - (#x826f ?) - (#x8270 ?) - (#x8272 ?ɫ) - (#x8273 ?) - (#x8274 ?) - (#x8279 ?ܳ) - (#x827a ?) - (#x827d ?ܴ) - (#x827e ?) - (#x827f ?ܵ) - (#x8282 ?) - (#x8284 ?ܹ) - (#x8288 ?) - (#x828a ?ܷ) - (#x828b ?) - (#x828d ?) - (#x828e ?ܺ) - (#x828f ?ܶ) - (#x8291 ?ܻ) - (#x8292 ?â) - (#x8297 ?ܼ) - (#x8298 ?) - (#x8299 ?ܽ) - (#x829c ?) - (#x829d ?֥) - (#x829f ?) - (#x82a1 ?) - (#x82a4 ?) - (#x82a5 ?) - (#x82a6 ?«) - (#x82a8 ?ܸ) - (#x82a9 ?) - (#x82aa ?) - (#x82ab ?ܾ) - (#x82ac ?) - (#x82ad ?) - (#x82ae ?) - (#x82af ?о) - (#x82b0 ?) - (#x82b1 ?) - (#x82b3 ?) - (#x82b4 ?) - (#x82b7 ?) - (#x82b8 ?ܿ) - (#x82b9 ?) - (#x82bd ?ѿ) - (#x82be ?) - (#x82c1 ?) - (#x82c4 ?) - (#x82c7 ?έ) - (#x82c8 ?) - (#x82ca ?) - (#x82cb ?) - (#x82cc ?) - (#x82cd ?) - (#x82ce ?) - (#x82cf ?) - (#x82d1 ?Է) - (#x82d2 ?) - (#x82d3 ?) - (#x82d4 ?̦) - (#x82d5 ?) - (#x82d7 ?) - (#x82d8 ?) - (#x82db ?) - (#x82dc ?) - (#x82de ?) - (#x82df ?) - (#x82e0 ?) - (#x82e1 ?) - (#x82e3 ?) - (#x82e4 ?) - (#x82e5 ?) - (#x82e6 ?) - (#x82eb ?ɻ) - (#x82ef ?) - (#x82f1 ?Ӣ) - (#x82f4 ?) - (#x82f7 ?) - (#x82f9 ?ƻ) - (#x82fb ?) - (#x8301 ?) - (#x8302 ?ï) - (#x8303 ?) - (#x8304 ?) - (#x8305 ?é) - (#x8306 ?) - (#x8307 ?) - (#x8308 ?) - (#x8309 ?) - (#x830c ?) - (#x830e ?) - (#x830f ?) - (#x8311 ?) - (#x8314 ?) - (#x8315 ?) - (#x8317 ?) - (#x831a ?) - (#x831b ?ݢ) - (#x831c ?) - (#x8327 ?) - (#x8328 ?) - (#x832b ?ã) - (#x832c ?) - (#x832d ?) - (#x832f ?) - (#x8331 ?) - (#x8333 ?) - (#x8334 ?) - (#x8335 ?) - (#x8336 ?) - (#x8338 ?) - (#x8339 ?) - (#x833a ?) - (#x833c ?) - (#x8340 ?) - (#x8343 ?) - (#x8346 ?) - (#x8347 ?) - (#x8349 ?) - (#x834f ?) - (#x8350 ?) - (#x8351 ?) - (#x8352 ?) - (#x8354 ?) - (#x835a ?) - (#x835b ?) - (#x835c ?) - (#x835e ?) - (#x835f ?) - (#x8360 ?) - (#x8361 ?) - (#x8363 ?) - (#x8364 ?) - (#x8365 ?) - (#x8366 ?) - (#x8367 ?ӫ) - (#x8368 ?ݡ) - (#x8369 ?ݣ) - (#x836a ?ݥ) - (#x836b ?) - (#x836c ?ݤ) - (#x836d ?ݦ) - (#x836e ?ݧ) - (#x836f ?ҩ) - (#x8377 ?) - (#x8378 ?ݩ) - (#x837b ?ݶ) - (#x837c ?ݱ) - (#x837d ?ݴ) - (#x8385 ?ݰ) - (#x8386 ?) - (#x8389 ?) - (#x838e ?ɯ) - (#x8392 ?) - (#x8393 ?ݮ) - (#x8398 ?ݷ) - (#x839b ?) - (#x839c ?ݯ) - (#x839e ?ݸ) - (#x83a0 ?ݬ) - (#x83a8 ?ݹ) - (#x83a9 ?ݳ) - (#x83aa ?ݭ) - (#x83ab ?Ī) - (#x83b0 ?ݨ) - (#x83b1 ?) - (#x83b2 ?) - (#x83b3 ?ݪ) - (#x83b4 ?ݫ) - (#x83b6 ?ݲ) - (#x83b7 ?) - (#x83b8 ?ݵ) - (#x83b9 ?Ө) - (#x83ba ?ݺ) - (#x83bc ?ݻ) - (#x83bd ?ç) - (#x83c0 ?) - (#x83c1 ?ݼ) - (#x83c5 ?) - (#x83c7 ?) - (#x83ca ?) - (#x83cc ?) - (#x83cf ?) - (#x83d4 ?) - (#x83d6 ?) - (#x83d8 ?ݿ) - (#x83dc ?) - (#x83dd ?) - (#x83df ?) - (#x83e0 ?) - (#x83e1 ?) - (#x83e5 ?ݾ) - (#x83e9 ?) - (#x83ea ?) - (#x83f0 ?) - (#x83f1 ?) - (#x83f2 ?) - (#x83f8 ?) - (#x83f9 ?) - (#x83fd ?) - (#x8401 ?ݽ) - (#x8403 ?) - (#x8404 ?) - (#x8406 ?) - (#x840b ?) - (#x840c ?) - (#x840d ?Ƽ) - (#x840e ?ή) - (#x840f ?) - (#x8411 ?) - (#x8418 ?) - (#x841c ?) - (#x841d ?) - (#x8424 ?ө) - (#x8425 ?Ӫ) - (#x8426 ?) - (#x8427 ?) - (#x8428 ?) - (#x8431 ?) - (#x8438 ?) - (#x843c ?) - (#x843d ?) - (#x8446 ?) - (#x8451 ?) - (#x8457 ?) - (#x8459 ?) - (#x845a ?) - (#x845b ?) - (#x845c ?) - (#x8461 ?) - (#x8463 ?) - (#x8469 ?) - (#x846b ?) - (#x846c ?) - (#x846d ?) - (#x8471 ?) - (#x8473 ?) - (#x8475 ?) - (#x8476 ?) - (#x8478 ?) - (#x847a ?) - (#x8482 ?) - (#x8487 ?) - (#x8488 ?) - (#x8489 ?) - (#x848b ?) - (#x848c ?) - (#x848e ?) - (#x8497 ?) - (#x8499 ?) - (#x849c ?) - (#x84a1 ?) - (#x84af ?) - (#x84b2 ?) - (#x84b4 ?) - (#x84b8 ?) - (#x84b9 ?) - (#x84ba ?) - (#x84bd ?) - (#x84bf ?) - (#x84c1 ?) - (#x84c4 ?) - (#x84c9 ?) - (#x84ca ?) - (#x84cd ?) - (#x84d0 ?) - (#x84d1 ?) - (#x84d3 ?) - (#x84d6 ?) - (#x84dd ?) - (#x84df ?) - (#x84e0 ?) - (#x84e3 ?) - (#x84e5 ?) - (#x84e6 ?) - (#x84ec ?) - (#x84f0 ?) - (#x84fc ?ޤ) - (#x84ff ?ޣ) - (#x850c ?) - (#x8511 ?) - (#x8513 ?) - (#x8517 ?) - (#x851a ?ε) - (#x851f ?) - (#x8521 ?) - (#x852b ?) - (#x852c ?) - (#x8537 ?Ǿ) - (#x8538 ?) - (#x8539 ?) - (#x853a ?) - (#x853b ?ޢ) - (#x853c ?) - (#x853d ?) - (#x8543 ?ެ) - (#x8548 ?ަ) - (#x8549 ?) - (#x854a ?) - (#x8556 ?ޡ) - (#x8559 ?ޥ) - (#x855e ?ީ) - (#x8564 ?ި) - (#x8568 ?ާ) - (#x8572 ?ޭ) - (#x8574 ?) - (#x8579 ?) - (#x857a ?ު) - (#x857b ?ޮ) - (#x857e ?) - (#x8584 ?) - (#x8585 ?) - (#x8587 ?ޱ) - (#x858f ?) - (#x859b ?Ѧ) - (#x859c ?) - (#x85a4 ?ޯ) - (#x85a8 ?ް) - (#x85aa ?н) - (#x85ae ?) - (#x85af ?) - (#x85b0 ?) - (#x85b7 ?) - (#x85b9 ?) - (#x85c1 ?) - (#x85c9 ?) - (#x85cf ?) - (#x85d0 ?) - (#x85d3 ?) - (#x85d5 ?ź) - (#x85dc ?) - (#x85e4 ?) - (#x85e9 ?) - (#x85fb ?) - (#x85ff ?) - (#x8605 ?) - (#x8611 ?Ģ) - (#x8616 ?) - (#x8627 ?) - (#x8629 ?) - (#x8638 ?պ) - (#x863c ?) - (#x864d ?) - (#x864e ?) - (#x864f ?²) - (#x8650 ?Ű) - (#x8651 ?) - (#x8654 ?) - (#x865a ?) - (#x865e ?) - (#x8662 ?) - (#x866b ?) - (#x866c ?) - (#x866e ?) - (#x8671 ?ʭ) - (#x8679 ?) - (#x867a ?) - (#x867b ?) - (#x867c ?) - (#x867d ?) - (#x867e ?Ϻ) - (#x867f ?) - (#x8680 ?ʴ) - (#x8681 ?) - (#x8682 ?) - (#x868a ?) - (#x868b ?) - (#x868c ?) - (#x868d ?) - (#x8693 ?) - (#x8695 ?) - (#x869c ?) - (#x869d ?) - (#x86a3 ?) - (#x86a4 ?) - (#x86a7 ?) - (#x86a8 ?) - (#x86a9 ?) - (#x86aa ?) - (#x86ac ?) - (#x86af ?) - (#x86b0 ?) - (#x86b1 ?) - (#x86b4 ?) - (#x86b5 ?) - (#x86b6 ?) - (#x86ba ?) - (#x86c0 ?) - (#x86c4 ?) - (#x86c6 ?) - (#x86c7 ?) - (#x86c9 ?) - (#x86ca ?) - (#x86cb ?) - (#x86ce ?) - (#x86cf ?) - (#x86d0 ?) - (#x86d1 ?) - (#x86d4 ?) - (#x86d8 ?) - (#x86d9 ?) - (#x86db ?) - (#x86de ?) - (#x86df ?) - (#x86e4 ?) - (#x86e9 ?) - (#x86ed ?) - (#x86ee ?) - (#x86f0 ?) - (#x86f1 ?) - (#x86f2 ?) - (#x86f3 ?) - (#x86f4 ?) - (#x86f8 ?) - (#x86f9 ?Ӽ) - (#x86fe ?) - (#x8700 ?) - (#x8702 ?) - (#x8703 ?) - (#x8707 ?) - (#x8708 ?) - (#x8709 ?) - (#x870a ?) - (#x870d ?) - (#x8712 ?) - (#x8713 ?) - (#x8715 ?) - (#x8717 ?) - (#x8718 ?֩) - (#x871a ?) - (#x871c ?) - (#x871e ?) - (#x8721 ?) - (#x8722 ?) - (#x8723 ?) - (#x8725 ?) - (#x8729 ?) - (#x872e ?) - (#x8731 ?) - (#x8734 ?) - (#x8737 ?) - (#x873b ?) - (#x873e ?) - (#x873f ?) - (#x8747 ?Ӭ) - (#x8748 ?) - (#x8749 ?) - (#x874c ?) - (#x874e ?Ы) - (#x8753 ?) - (#x8757 ?) - (#x8759 ?) - (#x8760 ?) - (#x8763 ?) - (#x8764 ?) - (#x8765 ?) - (#x876e ?) - (#x8770 ?) - (#x8774 ?) - (#x8776 ?) - (#x877b ?) - (#x877c ?) - (#x877d ?) - (#x877e ?) - (#x8782 ?) - (#x8783 ?) - (#x8785 ?) - (#x8788 ?) - (#x878b ?) - (#x878d ?) - (#x8793 ?) - (#x8797 ?) - (#x879f ?) - (#x87a8 ?) - (#x87ab ?) - (#x87ac ?) - (#x87ad ?) - (#x87af ?) - (#x87b3 ?) - (#x87b5 ?) - (#x87ba ?) - (#x87bd ?) - (#x87c0 ?) - (#x87c6 ?) - (#x87ca ?) - (#x87cb ?) - (#x87d1 ?) - (#x87d2 ?) - (#x87d3 ?) - (#x87db ?) - (#x87e0 ?) - (#x87e5 ?) - (#x87ea ?) - (#x87ee ?) - (#x87f9 ?з) - (#x87fe ?) - (#x8803 ?) - (#x880a ?) - (#x8813 ?) - (#x8815 ?) - (#x8816 ?) - (#x881b ?) - (#x8821 ?) - (#x8822 ?) - (#x8832 ?) - (#x8839 ?) - (#x883c ?) - (#x8840 ?Ѫ) - (#x8844 ?) - (#x8845 ?) - (#x884c ?) - (#x884d ?) - (#x8854 ?) - (#x8857 ?) - (#x8859 ?) - (#x8861 ?) - (#x8862 ?) - (#x8863 ?) - (#x8864 ?) - (#x8865 ?) - (#x8868 ?) - (#x8869 ?) - (#x886b ?) - (#x886c ?) - (#x886e ?) - (#x8870 ?˥) - (#x8872 ?) - (#x8877 ?) - (#x887d ?) - (#x887e ?) - (#x887f ?) - (#x8881 ?Ԭ) - (#x8882 ?) - (#x8884 ?) - (#x8885 ?) - (#x8888 ?) - (#x888b ?) - (#x888d ?) - (#x8892 ?̻) - (#x8896 ?) - (#x889c ?) - (#x88a2 ?) - (#x88a4 ?) - (#x88ab ?) - (#x88ad ?Ϯ) - (#x88b1 ?) - (#x88b7 ?) - (#x88bc ?) - (#x88c1 ?) - (#x88c2 ?) - (#x88c5 ?װ) - (#x88c6 ?) - (#x88c9 ?) - (#x88ce ?) - (#x88d2 ?) - (#x88d4 ?) - (#x88d5 ?ԣ) - (#x88d8 ?) - (#x88d9 ?ȹ) - (#x88df ?) - (#x88e2 ?) - (#x88e3 ?) - (#x88e4 ?) - (#x88e5 ?) - (#x88e8 ?) - (#x88f0 ?) - (#x88f1 ?) - (#x88f3 ?) - (#x88f4 ?) - (#x88f8 ?) - (#x88f9 ?) - (#x88fc ?) - (#x88fe ?) - (#x8902 ?) - (#x890a ?) - (#x8910 ?) - (#x8912 ?) - (#x8913 ?) - (#x8919 ?) - (#x891a ?) - (#x891b ?) - (#x8921 ?) - (#x8925 ?) - (#x892a ?) - (#x892b ?) - (#x8930 ?) - (#x8934 ?) - (#x8936 ?) - (#x8941 ?) - (#x8944 ?) - (#x895e ?) - (#x895f ?) - (#x8966 ?) - (#x897b ?) - (#x897f ?) - (#x8981 ?Ҫ) - (#x8983 ?) - (#x8986 ?) - (#x89c1 ?) - (#x89c2 ?) - (#x89c4 ?) - (#x89c5 ?) - (#x89c6 ?) - (#x89c7 ?) - (#x89c8 ?) - (#x89c9 ?) - (#x89ca ?) - (#x89cb ?) - (#x89cc ?) - (#x89ce ?) - (#x89cf ?) - (#x89d0 ?) - (#x89d1 ?) - (#x89d2 ?) - (#x89d6 ?) - (#x89da ?) - (#x89dc ?) - (#x89de ?) - (#x89e3 ?) - (#x89e5 ?) - (#x89e6 ?) - (#x89eb ?) - (#x89ef ?) - (#x89f3 ?) - (#x8a00 ?) - (#x8a07 ?) - (#x8a3e ?) - (#x8a48 ?) - (#x8a79 ?ղ) - (#x8a89 ?) - (#x8a8a ?) - (#x8a93 ?) - (#x8b07 ?) - (#x8b26 ?) - (#x8b66 ?) - (#x8b6c ?Ʃ) - (#x8ba0 ?ڥ) - (#x8ba1 ?) - (#x8ba2 ?) - (#x8ba3 ?) - (#x8ba4 ?) - (#x8ba5 ?) - (#x8ba6 ?ڦ) - (#x8ba7 ?ڧ) - (#x8ba8 ?) - (#x8ba9 ?) - (#x8baa ?ڨ) - (#x8bab ?) - (#x8bad ?ѵ) - (#x8bae ?) - (#x8baf ?Ѷ) - (#x8bb0 ?) - (#x8bb2 ?) - (#x8bb3 ?) - (#x8bb4 ?ک) - (#x8bb5 ?ڪ) - (#x8bb6 ?) - (#x8bb7 ?ګ) - (#x8bb8 ?) - (#x8bb9 ?) - (#x8bba ?) - (#x8bbc ?) - (#x8bbd ?) - (#x8bbe ?) - (#x8bbf ?) - (#x8bc0 ?) - (#x8bc1 ?֤) - (#x8bc2 ?ڬ) - (#x8bc3 ?ڭ) - (#x8bc4 ?) - (#x8bc5 ?) - (#x8bc6 ?ʶ) - (#x8bc8 ?թ) - (#x8bc9 ?) - (#x8bca ?) - (#x8bcb ?ڮ) - (#x8bcc ?) - (#x8bcd ?) - (#x8bce ?ڰ) - (#x8bcf ?گ) - (#x8bd1 ?) - (#x8bd2 ?ڱ) - (#x8bd3 ?ڲ) - (#x8bd4 ?ڳ) - (#x8bd5 ?) - (#x8bd6 ?ڴ) - (#x8bd7 ?ʫ) - (#x8bd8 ?ڵ) - (#x8bd9 ?ڶ) - (#x8bda ?) - (#x8bdb ?) - (#x8bdc ?ڷ) - (#x8bdd ?) - (#x8bde ?) - (#x8bdf ?ڸ) - (#x8be0 ?ڹ) - (#x8be1 ?) - (#x8be2 ?ѯ) - (#x8be3 ?) - (#x8be4 ?ں) - (#x8be5 ?) - (#x8be6 ?) - (#x8be7 ?) - (#x8be8 ?ڻ) - (#x8be9 ?ڼ) - (#x8beb ?) - (#x8bec ?) - (#x8bed ?) - (#x8bee ?ڽ) - (#x8bef ?) - (#x8bf0 ?ھ) - (#x8bf1 ?) - (#x8bf2 ?) - (#x8bf3 ?ڿ) - (#x8bf4 ?˵) - (#x8bf5 ?) - (#x8bf6 ?) - (#x8bf7 ?) - (#x8bf8 ?) - (#x8bf9 ?) - (#x8bfa ?ŵ) - (#x8bfb ?) - (#x8bfc ?) - (#x8bfd ?) - (#x8bfe ?) - (#x8bff ?) - (#x8c00 ?) - (#x8c01 ?˭) - (#x8c02 ?) - (#x8c03 ?) - (#x8c04 ?) - (#x8c05 ?) - (#x8c06 ?) - (#x8c07 ?) - (#x8c08 ?̸) - (#x8c0a ?) - (#x8c0b ?ı) - (#x8c0c ?) - (#x8c0d ?) - (#x8c0e ?) - (#x8c0f ?) - (#x8c10 ?г) - (#x8c11 ?) - (#x8c12 ?) - (#x8c13 ?ν) - (#x8c14 ?) - (#x8c15 ?) - (#x8c16 ?) - (#x8c17 ?) - (#x8c18 ?) - (#x8c19 ?) - (#x8c1a ?) - (#x8c1b ?) - (#x8c1c ?) - (#x8c1d ?) - (#x8c1f ?) - (#x8c20 ?) - (#x8c21 ?) - (#x8c22 ?л) - (#x8c23 ?ҥ) - (#x8c24 ?) - (#x8c25 ?) - (#x8c26 ?ǫ) - (#x8c27 ?) - (#x8c28 ?) - (#x8c29 ?á) - (#x8c2a ?) - (#x8c2b ?) - (#x8c2c ?) - (#x8c2d ?̷) - (#x8c2e ?) - (#x8c2f ?) - (#x8c30 ?) - (#x8c31 ?) - (#x8c32 ?) - (#x8c33 ?) - (#x8c34 ?Ǵ) - (#x8c35 ?) - (#x8c36 ?) - (#x8c37 ?) - (#x8c41 ?) - (#x8c46 ?) - (#x8c47 ?) - (#x8c49 ?) - (#x8c4c ?) - (#x8c55 ?) - (#x8c5a ?) - (#x8c61 ?) - (#x8c62 ?) - (#x8c6a ?) - (#x8c6b ?ԥ) - (#x8c73 ?) - (#x8c78 ?) - (#x8c79 ?) - (#x8c7a ?) - (#x8c82 ?) - (#x8c85 ?) - (#x8c89 ?) - (#x8c8a ?) - (#x8c8c ?ò) - (#x8c94 ?) - (#x8c98 ?) - (#x8d1d ?) - (#x8d1e ?) - (#x8d1f ?) - (#x8d21 ?) - (#x8d22 ?) - (#x8d23 ?) - (#x8d24 ?) - (#x8d25 ?) - (#x8d26 ?) - (#x8d27 ?) - (#x8d28 ?) - (#x8d29 ?) - (#x8d2a ?̰) - (#x8d2b ?ƶ) - (#x8d2c ?) - (#x8d2d ?) - (#x8d2e ?) - (#x8d2f ?) - (#x8d30 ?) - (#x8d31 ?) - (#x8d32 ?) - (#x8d33 ?) - (#x8d34 ?) - (#x8d35 ?) - (#x8d36 ?) - (#x8d37 ?) - (#x8d38 ?ó) - (#x8d39 ?) - (#x8d3a ?) - (#x8d3b ?) - (#x8d3c ?) - (#x8d3d ?) - (#x8d3e ?) - (#x8d3f ?) - (#x8d40 ?) - (#x8d41 ?) - (#x8d42 ?¸) - (#x8d43 ?) - (#x8d44 ?) - (#x8d45 ?) - (#x8d46 ?) - (#x8d47 ?) - (#x8d48 ?) - (#x8d49 ?) - (#x8d4a ?) - (#x8d4b ?) - (#x8d4c ?) - (#x8d4d ?) - (#x8d4e ?) - (#x8d4f ?) - (#x8d50 ?) - (#x8d53 ?) - (#x8d54 ?) - (#x8d55 ?) - (#x8d56 ?) - (#x8d58 ?) - (#x8d59 ?) - (#x8d5a ?) - (#x8d5b ?) - (#x8d5c ?) - (#x8d5d ?) - (#x8d5e ?) - (#x8d60 ?) - (#x8d61 ?) - (#x8d62 ?Ӯ) - (#x8d63 ?) - (#x8d64 ?) - (#x8d66 ?) - (#x8d67 ?) - (#x8d6b ?) - (#x8d6d ?) - (#x8d70 ?) - (#x8d73 ?) - (#x8d74 ?) - (#x8d75 ?) - (#x8d76 ?) - (#x8d77 ?) - (#x8d81 ?) - (#x8d84 ?) - (#x8d85 ?) - (#x8d8a ?Խ) - (#x8d8b ?) - (#x8d91 ?) - (#x8d94 ?) - (#x8d9f ?) - (#x8da3 ?Ȥ) - (#x8db1 ?) - (#x8db3 ?) - (#x8db4 ?ſ) - (#x8db5 ?) - (#x8db8 ?) - (#x8dba ?) - (#x8dbc ?) - (#x8dbe ?ֺ) - (#x8dbf ?) - (#x8dc3 ?Ծ) - (#x8dc4 ?) - (#x8dc6 ?) - (#x8dcb ?) - (#x8dcc ?) - (#x8dce ?) - (#x8dcf ?) - (#x8dd1 ?) - (#x8dd6 ?) - (#x8dd7 ?) - (#x8dda ?) - (#x8ddb ?) - (#x8ddd ?) - (#x8dde ?) - (#x8ddf ?) - (#x8de3 ?) - (#x8de4 ?) - (#x8de8 ?) - (#x8dea ?) - (#x8deb ?) - (#x8dec ?) - (#x8def ?·) - (#x8df3 ?) - (#x8df5 ?) - (#x8df7 ?) - (#x8df8 ?) - (#x8df9 ?) - (#x8dfa ?) - (#x8dfb ?) - (#x8dfd ?) - (#x8e05 ?) - (#x8e09 ?) - (#x8e0a ?ӻ) - (#x8e0c ?) - (#x8e0f ?̤) - (#x8e14 ?) - (#x8e1d ?) - (#x8e1e ?) - (#x8e1f ?) - (#x8e22 ?) - (#x8e23 ?) - (#x8e29 ?) - (#x8e2a ?) - (#x8e2c ?) - (#x8e2e ?) - (#x8e2f ?) - (#x8e31 ?) - (#x8e35 ?) - (#x8e39 ?) - (#x8e3a ?) - (#x8e3d ?) - (#x8e40 ?) - (#x8e41 ?) - (#x8e42 ?) - (#x8e44 ?) - (#x8e47 ?) - (#x8e48 ?) - (#x8e49 ?) - (#x8e4a ?) - (#x8e4b ?̣) - (#x8e51 ?) - (#x8e52 ?) - (#x8e59 ?) - (#x8e66 ?) - (#x8e69 ?) - (#x8e6c ?) - (#x8e6d ?) - (#x8e6f ?) - (#x8e70 ?) - (#x8e72 ?) - (#x8e74 ?) - (#x8e76 ?) - (#x8e7c ?) - (#x8e7f ?) - (#x8e81 ?) - (#x8e85 ?) - (#x8e87 ?) - (#x8e8f ?) - (#x8e90 ?) - (#x8e94 ?) - (#x8e9c ?) - (#x8e9e ?) - (#x8eab ?) - (#x8eac ?) - (#x8eaf ?) - (#x8eb2 ?) - (#x8eba ?) - (#x8ece ?) - (#x8f66 ?) - (#x8f67 ?) - (#x8f68 ?) - (#x8f69 ?) - (#x8f6b ?) - (#x8f6c ?ת) - (#x8f6d ?) - (#x8f6e ?) - (#x8f6f ?) - (#x8f70 ?) - (#x8f71 ?) - (#x8f72 ?) - (#x8f73 ?) - (#x8f74 ?) - (#x8f75 ?) - (#x8f76 ?) - (#x8f77 ?) - (#x8f78 ?) - (#x8f79 ?) - (#x8f7a ?) - (#x8f7b ?) - (#x8f7c ?) - (#x8f7d ?) - (#x8f7e ?) - (#x8f7f ?) - (#x8f81 ?) - (#x8f82 ?) - (#x8f83 ?) - (#x8f84 ?) - (#x8f85 ?) - (#x8f86 ?) - (#x8f87 ?) - (#x8f88 ?) - (#x8f89 ?) - (#x8f8a ?) - (#x8f8b ?) - (#x8f8d ?) - (#x8f8e ?) - (#x8f8f ?) - (#x8f90 ?) - (#x8f91 ?) - (#x8f93 ?) - (#x8f94 ?) - (#x8f95 ?ԯ) - (#x8f96 ?Ͻ) - (#x8f97 ?շ) - (#x8f98 ?) - (#x8f99 ?) - (#x8f9a ?) - (#x8f9b ?) - (#x8f9c ?) - (#x8f9e ?) - (#x8f9f ?) - (#x8fa3 ?) - (#x8fa8 ?) - (#x8fa9 ?) - (#x8fab ?) - (#x8fb0 ?) - (#x8fb1 ?) - (#x8fb6 ?) - (#x8fb9 ?) - (#x8fbd ?) - (#x8fbe ?) - (#x8fc1 ?Ǩ) - (#x8fc2 ?) - (#x8fc4 ?) - (#x8fc5 ?Ѹ) - (#x8fc7 ?) - (#x8fc8 ?) - (#x8fce ?ӭ) - (#x8fd0 ?) - (#x8fd1 ?) - (#x8fd3 ?) - (#x8fd4 ?) - (#x8fd5 ?) - (#x8fd8 ?) - (#x8fd9 ?) - (#x8fdb ?) - (#x8fdc ?Զ) - (#x8fdd ?Υ) - (#x8fde ?) - (#x8fdf ?) - (#x8fe2 ?) - (#x8fe4 ?) - (#x8fe5 ?) - (#x8fe6 ?) - (#x8fe8 ?) - (#x8fe9 ?) - (#x8fea ?) - (#x8feb ?) - (#x8fed ?) - (#x8fee ?) - (#x8ff0 ?) - (#x8ff3 ?) - (#x8ff7 ?) - (#x8ff8 ?) - (#x8ff9 ?) - (#x8ffd ?) - (#x9000 ?) - (#x9001 ?) - (#x9002 ?) - (#x9003 ?) - (#x9004 ?) - (#x9005 ?) - (#x9006 ?) - (#x9009 ?ѡ) - (#x900a ?ѷ) - (#x900b ?) - (#x900d ?) - (#x900f ?) - (#x9010 ?) - (#x9011 ?) - (#x9012 ?) - (#x9014 ?;) - (#x9016 ?) - (#x9017 ?) - (#x901a ?ͨ) - (#x901b ?) - (#x901d ?) - (#x901e ?) - (#x901f ?) - (#x9020 ?) - (#x9021 ?) - (#x9022 ?) - (#x9026 ?) - (#x902d ?) - (#x902e ?) - (#x902f ?) - (#x9035 ?) - (#x9036 ?) - (#x9038 ?) - (#x903b ?) - (#x903c ?) - (#x903e ?) - (#x9041 ?) - (#x9042 ?) - (#x9044 ?) - (#x9047 ?) - (#x904d ?) - (#x904f ?) - (#x9050 ?) - (#x9051 ?) - (#x9052 ?) - (#x9053 ?) - (#x9057 ?) - (#x9058 ?) - (#x905b ?) - (#x9062 ?) - (#x9063 ?Dz) - (#x9065 ?ң) - (#x9068 ?) - (#x906d ?) - (#x906e ?) - (#x9074 ?) - (#x9075 ?) - (#x907d ?) - (#x907f ?) - (#x9080 ?) - (#x9082 ?) - (#x9083 ?) - (#x9088 ?) - (#x908b ?) - (#x9091 ?) - (#x9093 ?) - (#x9095 ?) - (#x9097 ?) - (#x9099 ?) - (#x909b ?) - (#x909d ?) - (#x90a1 ?) - (#x90a2 ?) - (#x90a3 ?) - (#x90a6 ?) - (#x90aa ?а) - (#x90ac ?) - (#x90ae ?) - (#x90af ?) - (#x90b0 ?ۢ) - (#x90b1 ?) - (#x90b3 ?) - (#x90b4 ?) - (#x90b5 ?) - (#x90b6 ?) - (#x90b8 ?ۡ) - (#x90b9 ?) - (#x90ba ?) - (#x90bb ?) - (#x90be ?ۥ) - (#x90c1 ?) - (#x90c4 ?ۧ) - (#x90c5 ?ۤ) - (#x90c7 ?ۨ) - (#x90ca ?) - (#x90ce ?) - (#x90cf ?ۣ) - (#x90d0 ?ۦ) - (#x90d1 ?֣) - (#x90d3 ?۩) - (#x90d7 ?ۭ) - (#x90db ?ۮ) - (#x90dc ?۬) - (#x90dd ?) - (#x90e1 ?) - (#x90e2 ?۫) - (#x90e6 ?۪) - (#x90e7 ?) - (#x90e8 ?) - (#x90eb ?ۯ) - (#x90ed ?) - (#x90ef ?۰) - (#x90f4 ?) - (#x90f8 ?) - (#x90fd ?) - (#x90fe ?۱) - (#x9102 ?) - (#x9104 ?۲) - (#x9119 ?) - (#x911e ?۴) - (#x9122 ?۳) - (#x9123 ?۵) - (#x912f ?۷) - (#x9131 ?۶) - (#x9139 ?۸) - (#x9143 ?۹) - (#x9146 ?ۺ) - (#x9149 ?) - (#x914a ?) - (#x914b ?) - (#x914c ?) - (#x914d ?) - (#x914e ?) - (#x914f ?) - (#x9150 ?) - (#x9152 ?) - (#x9157 ?) - (#x915a ?) - (#x915d ?) - (#x915e ?̪) - (#x9161 ?) - (#x9162 ?) - (#x9163 ?) - (#x9164 ?) - (#x9165 ?) - (#x9169 ?) - (#x916a ?) - (#x916c ?) - (#x916e ?ͪ) - (#x916f ?) - (#x9170 ?) - (#x9171 ?) - (#x9172 ?) - (#x9174 ?) - (#x9175 ?) - (#x9176 ?ø) - (#x9177 ?) - (#x9178 ?) - (#x9179 ?) - (#x917d ?) - (#x917e ?) - (#x917f ?) - (#x9185 ?) - (#x9187 ?) - (#x9189 ?) - (#x918b ?) - (#x918c ?) - (#x918d ?) - (#x9190 ?) - (#x9191 ?) - (#x9192 ?) - (#x919a ?) - (#x919b ?ȩ) - (#x91a2 ?) - (#x91a3 ?) - (#x91aa ?) - (#x91ad ?) - (#x91ae ?) - (#x91af ?) - (#x91b4 ?) - (#x91b5 ?) - (#x91ba ?) - (#x91c7 ?) - (#x91c9 ?) - (#x91ca ?) - (#x91cc ?) - (#x91cd ?) - (#x91ce ?Ұ) - (#x91cf ?) - (#x91d1 ?) - (#x91dc ?) - (#x9274 ?) - (#x928e ?) - (#x92ae ?) - (#x92c8 ?) - (#x933e ?) - (#x936a ?) - (#x938f ?) - (#x93ca ?) - (#x93d6 ?) - (#x943e ?) - (#x946b ?) - (#x9485 ?) - (#x9486 ?) - (#x9487 ?) - (#x9488 ?) - (#x9489 ?) - (#x948a ?) - (#x948b ?) - (#x948c ?) - (#x948d ?) - (#x948e ?ǥ) - (#x948f ?) - (#x9490 ?) - (#x9492 ?) - (#x9493 ?) - (#x9494 ?) - (#x9495 ?) - (#x9497 ?) - (#x9499 ?) - (#x949a ?) - (#x949b ?) - (#x949c ?) - (#x949d ?) - (#x949e ?) - (#x949f ?) - (#x94a0 ?) - (#x94a1 ?) - (#x94a2 ?) - (#x94a3 ?) - (#x94a4 ?) - (#x94a5 ?Կ) - (#x94a6 ?) - (#x94a7 ?) - (#x94a8 ?) - (#x94a9 ?) - (#x94aa ?) - (#x94ab ?) - (#x94ac ?) - (#x94ad ?) - (#x94ae ?ť) - (#x94af ?) - (#x94b0 ?) - (#x94b1 ?Ǯ) - (#x94b2 ?) - (#x94b3 ?ǯ) - (#x94b4 ?) - (#x94b5 ?) - (#x94b6 ?) - (#x94b7 ?) - (#x94b8 ?) - (#x94b9 ?) - (#x94ba ?) - (#x94bb ?) - (#x94bc ?) - (#x94bd ?) - (#x94be ?) - (#x94bf ?) - (#x94c0 ?) - (#x94c1 ?) - (#x94c2 ?) - (#x94c3 ?) - (#x94c4 ?) - (#x94c5 ?Ǧ) - (#x94c6 ?í) - (#x94c8 ?) - (#x94c9 ?) - (#x94ca ?) - (#x94cb ?) - (#x94cc ?) - (#x94cd ?) - (#x94ce ?) - (#x94d0 ?) - (#x94d1 ?) - (#x94d2 ?) - (#x94d5 ?) - (#x94d6 ?) - (#x94d7 ?) - (#x94d8 ?) - (#x94d9 ?) - (#x94db ?) - (#x94dc ?ͭ) - (#x94dd ?) - (#x94de ?) - (#x94df ?) - (#x94e0 ?) - (#x94e1 ?ա) - (#x94e2 ?) - (#x94e3 ?ϳ) - (#x94e4 ?) - (#x94e5 ?) - (#x94e7 ?) - (#x94e8 ?) - (#x94e9 ?) - (#x94ea ?) - (#x94eb ?) - (#x94ec ?) - (#x94ed ?) - (#x94ee ?) - (#x94ef ?) - (#x94f0 ?) - (#x94f1 ?ҿ) - (#x94f2 ?) - (#x94f3 ?) - (#x94f4 ?) - (#x94f5 ?) - (#x94f6 ?) - (#x94f7 ?) - (#x94f8 ?) - (#x94f9 ?) - (#x94fa ?) - (#x94fc ?) - (#x94fd ?) - (#x94fe ?) - (#x94ff ?) - (#x9500 ?) - (#x9501 ?) - (#x9502 ?) - (#x9503 ?) - (#x9504 ?) - (#x9505 ?) - (#x9506 ?) - (#x9507 ?) - (#x9508 ?) - (#x9509 ?) - (#x950a ?) - (#x950b ?) - (#x950c ?п) - (#x950d ?) - (#x950e ?) - (#x950f ?) - (#x9510 ?) - (#x9511 ?) - (#x9512 ?) - (#x9513 ?) - (#x9514 ?) - (#x9515 ?) - (#x9516 ?) - (#x9517 ?) - (#x9518 ?) - (#x9519 ?) - (#x951a ?ê) - (#x951b ?) - (#x951d ?) - (#x951e ?) - (#x951f ?) - (#x9521 ?) - (#x9522 ?) - (#x9523 ?) - (#x9524 ?) - (#x9525 ?) - (#x9526 ?) - (#x9528 ?) - (#x9529 ?) - (#x952a ?) - (#x952b ?) - (#x952c ?) - (#x952d ?) - (#x952e ?) - (#x952f ?) - (#x9530 ?) - (#x9531 ?) - (#x9532 ?) - (#x9534 ?) - (#x9535 ?) - (#x9536 ?) - (#x9537 ?) - (#x9538 ?) - (#x9539 ?) - (#x953a ?) - (#x953b ?) - (#x953c ?) - (#x953e ?) - (#x953f ?) - (#x9540 ?) - (#x9541 ?þ) - (#x9542 ?) - (#x9544 ?) - (#x9545 ?) - (#x9546 ?) - (#x9547 ?) - (#x9549 ?) - (#x954a ?) - (#x954c ?) - (#x954d ?) - (#x954e ?) - (#x954f ?) - (#x9550 ?) - (#x9551 ?) - (#x9552 ?) - (#x9553 ?) - (#x9554 ?) - (#x9556 ?) - (#x9557 ?) - (#x9558 ?) - (#x9559 ?) - (#x955b ?) - (#x955c ?) - (#x955d ?) - (#x955e ?) - (#x955f ?) - (#x9561 ?) - (#x9562 ?) - (#x9563 ?) - (#x9564 ?) - (#x9565 ?) - (#x9566 ?) - (#x9567 ?) - (#x9568 ?) - (#x9569 ?) - (#x956a ?) - (#x956b ?) - (#x956c ?) - (#x956d ?) - (#x956f ?) - (#x9570 ?) - (#x9571 ?) - (#x9572 ?) - (#x9573 ?) - (#x9576 ?) - (#x957f ?) - (#x95e8 ?) - (#x95e9 ?) - (#x95ea ?) - (#x95eb ?) - (#x95ed ?) - (#x95ee ?) - (#x95ef ?) - (#x95f0 ?) - (#x95f1 ?) - (#x95f2 ?) - (#x95f3 ?) - (#x95f4 ?) - (#x95f5 ?) - (#x95f6 ?) - (#x95f7 ?) - (#x95f8 ?բ) - (#x95f9 ?) - (#x95fa ?) - (#x95fb ?) - (#x95fc ?) - (#x95fd ?) - (#x95fe ?) - (#x9600 ?) - (#x9601 ?) - (#x9602 ?) - (#x9603 ?) - (#x9604 ?) - (#x9605 ?) - (#x9606 ?) - (#x9608 ?) - (#x9609 ?) - (#x960a ?) - (#x960b ?) - (#x960c ?) - (#x960d ?) - (#x960e ?) - (#x960f ?) - (#x9610 ?) - (#x9611 ?) - (#x9612 ?) - (#x9614 ?) - (#x9615 ?) - (#x9616 ?) - (#x9617 ?) - (#x9619 ?) - (#x961a ?) - (#x961c ?) - (#x961d ?) - (#x961f ?) - (#x9621 ?) - (#x9622 ?) - (#x962a ?) - (#x962e ?) - (#x9631 ?) - (#x9632 ?) - (#x9633 ?) - (#x9634 ?) - (#x9635 ?) - (#x9636 ?) - (#x963b ?) - (#x963c ?) - (#x963d ?) - (#x963f ?) - (#x9640 ?) - (#x9642 ?) - (#x9644 ?) - (#x9645 ?) - (#x9646 ?½) - (#x9647 ?¤) - (#x9648 ?) - (#x9649 ?) - (#x964b ?ª) - (#x964c ?İ) - (#x964d ?) - (#x9650 ?) - (#x9654 ?) - (#x9655 ?) - (#x965b ?) - (#x965f ?) - (#x9661 ?) - (#x9662 ?Ժ) - (#x9664 ?) - (#x9667 ?) - (#x9668 ?) - (#x9669 ?) - (#x966a ?) - (#x966c ?) - (#x9672 ?) - (#x9674 ?) - (#x9675 ?) - (#x9676 ?) - (#x9677 ?) - (#x9685 ?) - (#x9686 ?¡) - (#x9688 ?) - (#x968b ?) - (#x968d ?) - (#x968f ?) - (#x9690 ?) - (#x9694 ?) - (#x9697 ?) - (#x9698 ?) - (#x9699 ?϶) - (#x969c ?) - (#x96a7 ?) - (#x96b0 ?) - (#x96b3 ?) - (#x96b6 ?) - (#x96b9 ?) - (#x96bc ?) - (#x96bd ?) - (#x96be ?) - (#x96c0 ?ȸ) - (#x96c1 ?) - (#x96c4 ?) - (#x96c5 ?) - (#x96c6 ?) - (#x96c7 ?) - (#x96c9 ?) - (#x96cc ?) - (#x96cd ?Ӻ) - (#x96ce ?) - (#x96cf ?) - (#x96d2 ?) - (#x96d5 ?) - (#x96e0 ?) - (#x96e8 ?) - (#x96e9 ?) - (#x96ea ?ѩ) - (#x96ef ?) - (#x96f3 ?) - (#x96f6 ?) - (#x96f7 ?) - (#x96f9 ?) - (#x96fe ?) - (#x9700 ?) - (#x9701 ?) - (#x9704 ?) - (#x9706 ?) - (#x9707 ?) - (#x9708 ?) - (#x9709 ?ù) - (#x970d ?) - (#x970e ?) - (#x970f ?) - (#x9713 ?) - (#x9716 ?) - (#x971c ?˪) - (#x971e ?ϼ) - (#x972a ?) - (#x972d ?) - (#x9730 ?) - (#x9732 ?¶) - (#x9738 ?) - (#x9739 ?) - (#x973e ?) - (#x9752 ?) - (#x9753 ?) - (#x9756 ?) - (#x9759 ?) - (#x975b ?) - (#x975e ?) - (#x9760 ?) - (#x9761 ?) - (#x9762 ?) - (#x9765 ?) - (#x9769 ?) - (#x9773 ?) - (#x9774 ?ѥ) - (#x9776 ?) - (#x977c ?) - (#x9785 ?) - (#x978b ?Ь) - (#x978d ?) - (#x9791 ?) - (#x9792 ?) - (#x9794 ?) - (#x9798 ?) - (#x97a0 ?) - (#x97a3 ?) - (#x97ab ?) - (#x97ad ?) - (#x97af ?) - (#x97b2 ?) - (#x97b4 ?) - (#x97e6 ?Τ) - (#x97e7 ?) - (#x97e9 ?) - (#x97ea ?) - (#x97eb ?) - (#x97ec ?) - (#x97ed ?) - (#x97f3 ?) - (#x97f5 ?) - (#x97f6 ?) - (#x9875 ?ҳ) - (#x9876 ?) - (#x9877 ?) - (#x9878 ?) - (#x9879 ?) - (#x987a ?˳) - (#x987b ?) - (#x987c ?) - (#x987d ?) - (#x987e ?) - (#x987f ?) - (#x9880 ?) - (#x9881 ?) - (#x9882 ?) - (#x9883 ?) - (#x9884 ?Ԥ) - (#x9885 ?) - (#x9886 ?) - (#x9887 ?) - (#x9888 ?) - (#x9889 ?) - (#x988a ?) - (#x988c ?) - (#x988d ?) - (#x988f ?) - (#x9890 ?) - (#x9891 ?Ƶ) - (#x9893 ?) - (#x9894 ?) - (#x9896 ?ӱ) - (#x9897 ?) - (#x9898 ?) - (#x989a ?) - (#x989b ?) - (#x989c ?) - (#x989d ?) - (#x989e ?) - (#x989f ?) - (#x98a0 ?) - (#x98a1 ?) - (#x98a2 ?) - (#x98a4 ?) - (#x98a5 ?) - (#x98a6 ?) - (#x98a7 ?ȧ) - (#x98ce ?) - (#x98d1 ?) - (#x98d2 ?) - (#x98d3 ?) - (#x98d5 ?) - (#x98d8 ?Ʈ) - (#x98d9 ?) - (#x98da ?) - (#x98de ?) - (#x98df ?ʳ) - (#x98e7 ?) - (#x98e8 ?) - (#x990d ?) - (#x9910 ?) - (#x992e ?) - (#x9954 ?) - (#x9955 ?) - (#x9963 ?) - (#x9965 ?) - (#x9967 ?) - (#x9968 ?) - (#x9969 ?) - (#x996a ?) - (#x996b ?) - (#x996c ?) - (#x996d ?) - (#x996e ?) - (#x996f ?) - (#x9970 ?) - (#x9971 ?) - (#x9972 ?) - (#x9974 ?) - (#x9975 ?) - (#x9976 ?) - (#x9977 ?) - (#x997a ?) - (#x997c ?) - (#x997d ?) - (#x997f ?) - (#x9980 ?) - (#x9981 ?) - (#x9984 ?) - (#x9985 ?) - (#x9986 ?) - (#x9987 ?) - (#x9988 ?) - (#x998a ?) - (#x998b ?) - (#x998d ?) - (#x998f ?) - (#x9990 ?) - (#x9991 ?) - (#x9992 ?) - (#x9993 ?) - (#x9994 ?) - (#x9995 ?) - (#x9996 ?) - (#x9997 ?ظ) - (#x9998 ?) - (#x9999 ?) - (#x99a5 ?) - (#x99a8 ?ܰ) - (#x9a6c ?) - (#x9a6d ?Ԧ) - (#x9a6e ?) - (#x9a6f ?ѱ) - (#x9a70 ?) - (#x9a71 ?) - (#x9a73 ?) - (#x9a74 ?¿) - (#x9a75 ?) - (#x9a76 ?ʻ) - (#x9a77 ?) - (#x9a78 ?) - (#x9a79 ?) - (#x9a7a ?) - (#x9a7b ?פ) - (#x9a7c ?) - (#x9a7d ?) - (#x9a7e ?) - (#x9a7f ?) - (#x9a80 ?) - (#x9a81 ?) - (#x9a82 ?) - (#x9a84 ?) - (#x9a85 ?) - (#x9a86 ?) - (#x9a87 ?) - (#x9a88 ?) - (#x9a8a ?) - (#x9a8b ?) - (#x9a8c ?) - (#x9a8f ?) - (#x9a90 ?) - (#x9a91 ?) - (#x9a92 ?) - (#x9a93 ?) - (#x9a96 ?) - (#x9a97 ?ƭ) - (#x9a98 ?) - (#x9a9a ?ɧ) - (#x9a9b ?) - (#x9a9c ?) - (#x9a9d ?) - (#x9a9e ?) - (#x9a9f ?) - (#x9aa0 ?) - (#x9aa1 ?) - (#x9aa2 ?) - (#x9aa3 ?) - (#x9aa4 ?) - (#x9aa5 ?) - (#x9aa7 ?) - (#x9aa8 ?) - (#x9ab0 ?) - (#x9ab1 ?) - (#x9ab6 ?) - (#x9ab7 ?) - (#x9ab8 ?) - (#x9aba ?) - (#x9abc ?) - (#x9ac0 ?) - (#x9ac1 ?) - (#x9ac2 ?) - (#x9ac5 ?) - (#x9acb ?) - (#x9acc ?) - (#x9ad1 ?) - (#x9ad3 ?) - (#x9ad8 ?) - (#x9adf ?) - (#x9ae1 ?) - (#x9ae6 ?) - (#x9aeb ?) - (#x9aed ?) - (#x9aef ?) - (#x9af9 ?) - (#x9afb ?) - (#x9b03 ?) - (#x9b08 ?) - (#x9b0f ?) - (#x9b13 ?) - (#x9b1f ?) - (#x9b23 ?) - (#x9b2f ?) - (#x9b32 ?ت) - (#x9b3b ?) - (#x9b3c ?) - (#x9b41 ?) - (#x9b42 ?) - (#x9b43 ?) - (#x9b44 ?) - (#x9b45 ?) - (#x9b47 ?) - (#x9b48 ?) - (#x9b49 ?) - (#x9b4d ?) - (#x9b4f ?κ) - (#x9b51 ?) - (#x9b54 ?ħ) - (#x9c7c ?) - (#x9c7f ?) - (#x9c81 ?³) - (#x9c82 ?) - (#x9c85 ?) - (#x9c86 ?) - (#x9c87 ?) - (#x9c88 ?) - (#x9c8b ?) - (#x9c8d ?) - (#x9c8e ?) - (#x9c90 ?) - (#x9c91 ?) - (#x9c92 ?) - (#x9c94 ?) - (#x9c95 ?) - (#x9c9a ?) - (#x9c9b ?) - (#x9c9c ?) - (#x9c9e ?) - (#x9c9f ?) - (#x9ca0 ?) - (#x9ca1 ?) - (#x9ca2 ?) - (#x9ca3 ?) - (#x9ca4 ?) - (#x9ca5 ?) - (#x9ca6 ?) - (#x9ca7 ?) - (#x9ca8 ?) - (#x9ca9 ?) - (#x9cab ?) - (#x9cad ?) - (#x9cae ?) - (#x9cb0 ?) - (#x9cb1 ?) - (#x9cb2 ?) - (#x9cb3 ?) - (#x9cb4 ?) - (#x9cb5 ?) - (#x9cb6 ?) - (#x9cb7 ?) - (#x9cb8 ?) - (#x9cba ?) - (#x9cbb ?) - (#x9cbc ?) - (#x9cbd ?) - (#x9cc3 ?) - (#x9cc4 ?) - (#x9cc5 ?) - (#x9cc6 ?) - (#x9cc7 ?) - (#x9cca ?) - (#x9ccb ?) - (#x9ccc ?) - (#x9ccd ?) - (#x9cce ?) - (#x9ccf ?) - (#x9cd0 ?) - (#x9cd3 ?) - (#x9cd4 ?) - (#x9cd5 ?) - (#x9cd6 ?) - (#x9cd7 ?) - (#x9cd8 ?) - (#x9cd9 ?) - (#x9cdc ?) - (#x9cdd ?) - (#x9cde ?) - (#x9cdf ?) - (#x9ce2 ?) - (#x9e1f ?) - (#x9e20 ?) - (#x9e21 ?) - (#x9e22 ?) - (#x9e23 ?) - (#x9e25 ?Ÿ) - (#x9e26 ?ѻ) - (#x9e28 ?) - (#x9e29 ?) - (#x9e2a ?) - (#x9e2b ?) - (#x9e2c ?) - (#x9e2d ?Ѽ) - (#x9e2f ?) - (#x9e31 ?) - (#x9e32 ?) - (#x9e33 ?ԧ) - (#x9e35 ?) - (#x9e36 ?) - (#x9e37 ?) - (#x9e38 ?) - (#x9e39 ?) - (#x9e3a ?) - (#x9e3d ?) - (#x9e3e ?) - (#x9e3f ?) - (#x9e41 ?) - (#x9e42 ?) - (#x9e43 ?) - (#x9e44 ?) - (#x9e45 ?) - (#x9e46 ?) - (#x9e47 ?) - (#x9e48 ?) - (#x9e49 ?) - (#x9e4a ?ȵ) - (#x9e4b ?) - (#x9e4c ?) - (#x9e4e ?) - (#x9e4f ?) - (#x9e51 ?) - (#x9e55 ?) - (#x9e57 ?) - (#x9e58 ?) - (#x9e5a ?) - (#x9e5b ?) - (#x9e5c ?) - (#x9e5e ?) - (#x9e63 ?) - (#x9e64 ?) - (#x9e66 ?) - (#x9e67 ?) - (#x9e68 ?) - (#x9e69 ?) - (#x9e6a ?) - (#x9e6b ?) - (#x9e6c ?) - (#x9e6d ?) - (#x9e70 ?ӥ) - (#x9e71 ?) - (#x9e73 ?) - (#x9e7e ?) - (#x9e7f ?¹) - (#x9e82 ?) - (#x9e87 ?) - (#x9e88 ?) - (#x9e8b ?) - (#x9e92 ?) - (#x9e93 ?´) - (#x9e9d ?) - (#x9e9f ?) - (#x9ea6 ?) - (#x9eb4 ?) - (#x9eb8 ?) - (#x9ebb ?) - (#x9ebd ?) - (#x9ebe ?) - (#x9ec4 ?) - (#x9ec9 ?) - (#x9ecd ?) - (#x9ece ?) - (#x9ecf ?) - (#x9ed1 ?) - (#x9ed4 ?ǭ) - (#x9ed8 ?Ĭ) - (#x9edb ?) - (#x9edc ?) - (#x9edd ?) - (#x9edf ?) - (#x9ee0 ?) - (#x9ee2 ?) - (#x9ee5 ?) - (#x9ee7 ?) - (#x9ee9 ?) - (#x9eea ?) - (#x9eef ?) - (#x9ef9 ?) - (#x9efb ?) - (#x9efc ?) - (#x9efe ?) - (#x9f0b ?) - (#x9f0d ?) - (#x9f0e ?) - (#x9f10 ?ؾ) - (#x9f13 ?) - (#x9f17 ?ػ) - (#x9f19 ?ܱ) - (#x9f20 ?) - (#x9f22 ?) - (#x9f2c ?) - (#x9f2f ?) - (#x9f37 ?) - (#x9f39 ?) - (#x9f3b ?) - (#x9f3d ?) - (#x9f3e ?) - (#x9f44 ?) - (#x9f50 ?) - (#x9f51 ?) - (#x9f7f ?) - (#x9f80 ?) - (#x9f83 ?) - (#x9f84 ?) - (#x9f85 ?) - (#x9f86 ?) - (#x9f87 ?) - (#x9f88 ?) - (#x9f89 ?) - (#x9f8a ?) - (#x9f8b ?ȣ) - (#x9f8c ?) - (#x9f99 ?) - (#x9f9a ?) - (#x9f9b ?) - (#x9f9f ?) - (#x9fa0 ?) - (#xff01 ?) - (#xff02 ?) - (#xff03 ?) - (#xff04 ?) - (#xff05 ?) - (#xff06 ?) - (#xff07 ?) - (#xff08 ?\) - (#xff09 ?\) - (#xff0a ?) - (#xff0b ?) - (#xff0c ?) - (#xff0d ?) - (#xff0e ?) - (#xff0f ?) - (#xff10 ?) - (#xff11 ?) - (#xff12 ?) - (#xff13 ?) - (#xff14 ?) - (#xff15 ?) - (#xff16 ?) - (#xff17 ?) - (#xff18 ?) - (#xff19 ?) - (#xff1a ?) - (#xff1b ?) - (#xff1c ?) - (#xff1d ?) - (#xff1e ?) - (#xff1f ?) - (#xff20 ?) - (#xff21 ?) - (#xff22 ?) - (#xff23 ?) - (#xff24 ?) - (#xff25 ?) - (#xff26 ?) - (#xff27 ?) - (#xff28 ?) - (#xff29 ?) - (#xff2a ?) - (#xff2b ?) - (#xff2c ?) - (#xff2d ?) - (#xff2e ?) - (#xff2f ?) - (#xff30 ?) - (#xff31 ?) - (#xff32 ?) - (#xff33 ?) - (#xff34 ?) - (#xff35 ?) - (#xff36 ?) - (#xff37 ?) - (#xff38 ?) - (#xff39 ?) - (#xff3a ?) - (#xff3b ?\) - (#xff3c ?) - (#xff3d ?\) - (#xff3e ?) - (#xff3f ?) - (#xff40 ?) - (#xff41 ?) - (#xff42 ?) - (#xff43 ?) - (#xff44 ?) - (#xff45 ?) - (#xff46 ?) - (#xff47 ?) - (#xff48 ?) - (#xff49 ?) - (#xff4a ?) - (#xff4b ?) - (#xff4c ?) - (#xff4d ?) - (#xff4e ?) - (#xff4f ?) - (#xff50 ?) - (#xff51 ?) - (#xff52 ?) - (#xff53 ?) - (#xff54 ?) - (#xff55 ?) - (#xff56 ?) - (#xff57 ?) - (#xff58 ?) - (#xff59 ?) - (#xff5a ?) - (#xff5b ?\) - (#xff5c ?) - (#xff5d ?\) - (#xff5e ?) - (#xffe0 ?) - (#xffe1 ?) - (#xffe3 ?) - (#xffe5 ?))) - -;;; arch-tag: 369bc330-663d-4cc0-8ca9-45567586fb04 -;;; subst-gb2312.el ends here diff --git a/lisp/international/subst-jis.el b/lisp/international/subst-jis.el deleted file mode 100644 index af13a950c23..00000000000 --- a/lisp/international/subst-jis.el +++ /dev/null @@ -1,13077 +0,0 @@ -;;; subst-jis.el --- Unicode/JISX translation -*-coding: euc-jp;-*- - -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. -;; Copyright (C) 2004, 2005, 2006, 2007 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; This file 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 3, or (at your option) -;; any later version. - -;; This file 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. - -;;; Commentary: - -;; Provides translation tables between Unicode and -;; japanese-jisx0208/japanese-jisx0212 charsets for use by the -;; `utf-translate-cjk-mode' option. - -;;; Code: - -;; Derived in Emacs 22 using -;; (map-charset-chars -;; (lambda (range arg) -;; (let ((i (car range)) -;; c) -;; (while (<= i (cdr range)) -;; (setq c (encode-char i 'ucs)) -;; (if c -;; (if (or (memq (char-syntax c) '(?\( ?\" ?\) ?\;)) -;; (insert "(" (format "#x%x ?\\%c" c c) ")\n") -;; (insert "(" (format "#x%x ?%c" c c) ")\n"))) -;; (setq i (1+ i)))))) -;; 'japanese-jisx0208) -;; and similarly. - -(mapc - (lambda (pair) - (let ((unicode (car pair)) - (char (cadr pair)) - (tail utf-translate-cjk-unicode-range)) - ;; exclude non-supporting components from decode table - (if (utf-translate-cjk-substitutable-p unicode) - (puthash unicode char ucs-unicode-to-mule-cjk)) - (puthash char unicode ucs-mule-cjk-to-unicode))) - '( - ;; jisx0208 - (#xa2 ?) - (#xa3 ?) - (#xa7 ?) - (#xa8 ?) - (#xac ?) - (#xb0 ?) - (#xb1 ?) - (#xb4 ?) - (#xb6 ?) - (#xd7 ?) - (#xf7 ?) - (#x391 ?) - (#x392 ?) - (#x393 ?) - (#x394 ?) - (#x395 ?) - (#x396 ?) - (#x397 ?) - (#x398 ?) - (#x399 ?) - (#x39a ?) - (#x39b ?) - (#x39c ?) - (#x39d ?) - (#x39e ?) - (#x39f ?) - (#x3a0 ?) - (#x3a1 ?) - (#x3a3 ?) - (#x3a4 ?) - (#x3a5 ?) - (#x3a6 ?) - (#x3a7 ?) - (#x3a8 ?) - (#x3a9 ?) - (#x3b1 ?) - (#x3b2 ?) - (#x3b3 ?) - (#x3b4 ?) - (#x3b5 ?) - (#x3b6 ?) - (#x3b7 ?) - (#x3b8 ?) - (#x3b9 ?) - (#x3ba ?) - (#x3bb ?) - (#x3bc ?) - (#x3bd ?) - (#x3be ?) - (#x3bf ?) - (#x3c0 ?) - (#x3c1 ?) - (#x3c3 ?) - (#x3c4 ?) - (#x3c5 ?) - (#x3c6 ?) - (#x3c7 ?) - (#x3c8 ?) - (#x3c9 ?) - (#x401 ?) - (#x410 ?) - (#x411 ?) - (#x412 ?) - (#x413 ?) - (#x414 ?) - (#x415 ?) - (#x416 ?) - (#x417 ?) - (#x418 ?) - (#x419 ?) - (#x41a ?) - (#x41b ?) - (#x41c ?) - (#x41d ?) - (#x41e ?) - (#x41f ?) - (#x420 ?) - (#x421 ?) - (#x422 ?) - (#x423 ?) - (#x424 ?) - (#x425 ?) - (#x426 ?) - (#x427 ?) - (#x428 ?) - (#x429 ?) - (#x42a ?) - (#x42b ?) - (#x42c ?) - (#x42d ?) - (#x42e ?) - (#x42f ?) - (#x430 ?) - (#x431 ?) - (#x432 ?) - (#x433 ?) - (#x434 ?) - (#x435 ?) - (#x436 ?) - (#x437 ?) - (#x438 ?) - (#x439 ?) - (#x43a ?) - (#x43b ?) - (#x43c ?) - (#x43d ?) - (#x43e ?) - (#x43f ?) - (#x440 ?) - (#x441 ?) - (#x442 ?) - (#x443 ?) - (#x444 ?) - (#x445 ?) - (#x446 ?) - (#x447 ?) - (#x448 ?) - (#x449 ?) - (#x44a ?) - (#x44b ?) - (#x44c ?) - (#x44d ?) - (#x44e ?) - (#x44f ?) - (#x451 ?) - (#x2010 ?) - (#x2015 ?) - (#x2016 ?) - (#x2018 ?) - (#x2019 ?) - (#x201c ?) - (#x201d ?) - (#x2020 ?) - (#x2021 ?) - (#x2025 ?) - (#x2026 ?) - (#x2030 ?) - (#x2032 ?) - (#x2033 ?) - (#x203b ?) - (#x2103 ?) - (#x212b ?) - (#x2190 ?) - (#x2191 ?) - (#x2192 ?) - (#x2193 ?) - (#x21d2 ?) - (#x21d4 ?) - (#x2200 ?) - (#x2202 ?) - (#x2203 ?) - (#x2207 ?) - (#x2208 ?) - (#x220b ?) - (#x2212 ?) - (#x221a ?) - (#x221d ?) - (#x221e ?) - (#x2220 ?) - (#x2227 ?) - (#x2228 ?) - (#x2229 ?) - (#x222a ?) - (#x222b ?) - (#x222c ?) - (#x2234 ?) - (#x2235 ?) - (#x223d ?) - (#x2252 ?) - (#x2260 ?) - (#x2261 ?) - (#x2266 ?) - (#x2267 ?) - (#x226a ?) - (#x226b ?) - (#x2282 ?) - (#x2283 ?) - (#x2286 ?) - (#x2287 ?) - (#x22a5 ?) - (#x2312 ?) - (#x2500 ?) - (#x2501 ?) - (#x2502 ?) - (#x2503 ?) - (#x250c ?) - (#x250f ?) - (#x2510 ?) - (#x2513 ?) - (#x2514 ?) - (#x2517 ?) - (#x2518 ?) - (#x251b ?) - (#x251c ?) - (#x251d ?) - (#x2520 ?) - (#x2523 ?) - (#x2524 ?) - (#x2525 ?) - (#x2528 ?) - (#x252b ?) - (#x252c ?) - (#x252f ?) - (#x2530 ?) - (#x2533 ?) - (#x2534 ?) - (#x2537 ?) - (#x2538 ?) - (#x253b ?) - (#x253c ?) - (#x253f ?) - (#x2542 ?) - (#x254b ?) - (#x25a0 ?) - (#x25a1 ?) - (#x25b2 ?) - (#x25b3 ?) - (#x25bc ?) - (#x25bd ?) - (#x25c6 ?) - (#x25c7 ?) - (#x25cb ?) - (#x25ce ?) - (#x25cf ?) - (#x25ef ?) - (#x2605 ?) - (#x2606 ?) - (#x2640 ?) - (#x2642 ?) - (#x266a ?) - (#x266d ?) - (#x266f ?) - (#x3000 ?) - (#x3001 ?) - (#x3002 ?) - (#x3003 ?) - (#x3005 ?) - (#x3006 ?) - (#x3007 ?) - (#x3008 ?\) - (#x3009 ?\) - (#x300a ?\) - (#x300b ?\) - (#x300c ?\) - (#x300d ?\) - (#x300e ?\) - (#x300f ?\) - (#x3010 ?\) - (#x3011 ?\) - (#x3012 ?) - (#x3013 ?) - (#x3014 ?\) - (#x3015 ?\) - (#x301c ?) - (#x3041 ?) - (#x3042 ?) - (#x3043 ?) - (#x3044 ?) - (#x3045 ?) - (#x3046 ?) - (#x3047 ?) - (#x3048 ?) - (#x3049 ?) - (#x304a ?) - (#x304b ?) - (#x304c ?) - (#x304d ?) - (#x304e ?) - (#x304f ?) - (#x3050 ?) - (#x3051 ?) - (#x3052 ?) - (#x3053 ?) - (#x3054 ?) - (#x3055 ?) - (#x3056 ?) - (#x3057 ?) - (#x3058 ?) - (#x3059 ?) - (#x305a ?) - (#x305b ?) - (#x305c ?) - (#x305d ?) - (#x305e ?) - (#x305f ?) - (#x3060 ?) - (#x3061 ?) - (#x3062 ?) - (#x3063 ?) - (#x3064 ?) - (#x3065 ?) - (#x3066 ?) - (#x3067 ?) - (#x3068 ?) - (#x3069 ?) - (#x306a ?) - (#x306b ?) - (#x306c ?) - (#x306d ?) - (#x306e ?) - (#x306f ?) - (#x3070 ?) - (#x3071 ?) - (#x3072 ?) - (#x3073 ?) - (#x3074 ?) - (#x3075 ?) - (#x3076 ?) - (#x3077 ?) - (#x3078 ?) - (#x3079 ?) - (#x307a ?) - (#x307b ?) - (#x307c ?) - (#x307d ?) - (#x307e ?) - (#x307f ?) - (#x3080 ?) - (#x3081 ?) - (#x3082 ?) - (#x3083 ?) - (#x3084 ?) - (#x3085 ?) - (#x3086 ?) - (#x3087 ?) - (#x3088 ?) - (#x3089 ?) - (#x308a ?) - (#x308b ?) - (#x308c ?) - (#x308d ?) - (#x308e ?) - (#x308f ?) - (#x3090 ?) - (#x3091 ?) - (#x3092 ?) - (#x3093 ?) - (#x309b ?) - (#x309c ?) - (#x309d ?) - (#x309e ?) - (#x30a1 ?) - (#x30a2 ?) - (#x30a3 ?) - (#x30a4 ?) - (#x30a5 ?) - (#x30a6 ?) - (#x30a7 ?) - (#x30a8 ?) - (#x30a9 ?) - (#x30aa ?) - (#x30ab ?) - (#x30ac ?) - (#x30ad ?) - (#x30ae ?) - (#x30af ?) - (#x30b0 ?) - (#x30b1 ?) - (#x30b2 ?) - (#x30b3 ?) - (#x30b4 ?) - (#x30b5 ?) - (#x30b6 ?) - (#x30b7 ?) - (#x30b8 ?) - (#x30b9 ?) - (#x30ba ?) - (#x30bb ?) - (#x30bc ?) - (#x30bd ?) - (#x30be ?) - (#x30bf ?) - (#x30c0 ?) - (#x30c1 ?) - (#x30c2 ?) - (#x30c3 ?) - (#x30c4 ?) - (#x30c5 ?) - (#x30c6 ?) - (#x30c7 ?) - (#x30c8 ?) - (#x30c9 ?) - (#x30ca ?) - (#x30cb ?) - (#x30cc ?) - (#x30cd ?) - (#x30ce ?) - (#x30cf ?) - (#x30d0 ?) - (#x30d1 ?) - (#x30d2 ?) - (#x30d3 ?) - (#x30d4 ?) - (#x30d5 ?) - (#x30d6 ?) - (#x30d7 ?) - (#x30d8 ?) - (#x30d9 ?) - (#x30da ?) - (#x30db ?) - (#x30dc ?) - (#x30dd ?) - (#x30de ?) - (#x30df ?) - (#x30e0 ?) - (#x30e1 ?) - (#x30e2 ?) - (#x30e3 ?) - (#x30e4 ?) - (#x30e5 ?) - (#x30e6 ?) - (#x30e7 ?) - (#x30e8 ?) - (#x30e9 ?) - (#x30ea ?) - (#x30eb ?) - (#x30ec ?) - (#x30ed ?) - (#x30ee ?) - (#x30ef ?) - (#x30f0 ?) - (#x30f1 ?) - (#x30f2 ?) - (#x30f3 ?) - (#x30f4 ?) - (#x30f5 ?) - (#x30f6 ?) - (#x30fb ?) - (#x30fc ?) - (#x30fd ?) - (#x30fe ?) - (#x4e00 ?) - (#x4e01 ?) - (#x4e03 ?) - (#x4e07 ?) - (#x4e08 ?) - (#x4e09 ?) - (#x4e0a ?) - (#x4e0b ?) - (#x4e0d ?) - (#x4e0e ?Ϳ) - (#x4e10 ?Т) - (#x4e11 ?) - (#x4e14 ?) - (#x4e15 ?У) - (#x4e16 ?) - (#x4e17 ?) - (#x4e18 ?) - (#x4e19 ?ʺ) - (#x4e1e ?) - (#x4e21 ?ξ) - (#x4e26 ?) - (#x4e2a ?Ф) - (#x4e2d ?) - (#x4e31 ?Х) - (#x4e32 ?) - (#x4e36 ?Ц) - (#x4e38 ?) - (#x4e39 ?ð) - (#x4e3b ?) - (#x4e3c ?Ч) - (#x4e3f ?Ш) - (#x4e42 ?Щ) - (#x4e43 ?ǵ) - (#x4e45 ?) - (#x4e4b ?Ƿ) - (#x4e4d ?) - (#x4e4e ?) - (#x4e4f ?˳) - (#x4e55 ?) - (#x4e56 ?Ъ) - (#x4e57 ?) - (#x4e58 ?Ы) - (#x4e59 ?) - (#x4e5d ?) - (#x4e5e ?) - (#x4e5f ?) - (#x4e62 ?֦) - (#x4e71 ?) - (#x4e73 ?) - (#x4e7e ?) - (#x4e80 ?) - (#x4e82 ?Ь) - (#x4e85 ?Э) - (#x4e86 ?λ) - (#x4e88 ?ͽ) - (#x4e89 ?) - (#x4e8a ?Я) - (#x4e8b ?) - (#x4e8c ?) - (#x4e8e ?в) - (#x4e91 ?) - (#x4e92 ?) - (#x4e94 ?) - (#x4e95 ?) - (#x4e98 ?) - (#x4e99 ?) - (#x4e9b ?) - (#x4e9c ?) - (#x4e9e ?г) - (#x4e9f ?д) - (#x4ea0 ?е) - (#x4ea1 ?˴) - (#x4ea2 ?ж) - (#x4ea4 ?) - (#x4ea5 ?) - (#x4ea6 ?) - (#x4ea8 ?) - (#x4eab ?) - (#x4eac ?) - (#x4ead ?) - (#x4eae ?μ) - (#x4eb0 ?з) - (#x4eb3 ?и) - (#x4eb6 ?й) - (#x4eba ?) - (#x4ec0 ?) - (#x4ec1 ?) - (#x4ec2 ?о) - (#x4ec4 ?м) - (#x4ec6 ?н) - (#x4ec7 ?) - (#x4eca ?) - (#x4ecb ?) - (#x4ecd ?л) - (#x4ece ?к) - (#x4ecf ?ʩ) - (#x4ed4 ?) - (#x4ed5 ?) - (#x4ed6 ?¾) - (#x4ed7 ?п) - (#x4ed8 ?) - (#x4ed9 ?) - (#x4edd ?) - (#x4ede ?) - (#x4edf ?) - (#x4ee3 ?) - (#x4ee4 ?) - (#x4ee5 ?) - (#x4eed ?) - (#x4eee ?) - (#x4ef0 ?) - (#x4ef2 ?) - (#x4ef6 ?) - (#x4ef7 ?) - (#x4efb ?Ǥ) - (#x4f01 ?) - (#x4f09 ?) - (#x4f0a ?) - (#x4f0d ?) - (#x4f0e ?) - (#x4f0f ?) - (#x4f10 ?Ȳ) - (#x4f11 ?) - (#x4f1a ?) - (#x4f1c ?) - (#x4f1d ?) - (#x4f2f ?) - (#x4f30 ?) - (#x4f34 ?ȼ) - (#x4f36 ?) - (#x4f38 ?) - (#x4f3a ?) - (#x4f3c ?) - (#x4f3d ?) - (#x4f43 ?) - (#x4f46 ?â) - (#x4f47 ?) - (#x4f4d ?) - (#x4f4e ?) - (#x4f4f ?) - (#x4f50 ?) - (#x4f51 ?ͤ) - (#x4f53 ?) - (#x4f55 ?) - (#x4f57 ?) - (#x4f59 ?;) - (#x4f5a ?) - (#x4f5b ?) - (#x4f5c ?) - (#x4f5d ?) - (#x4f5e ?դ) - (#x4f69 ?) - (#x4f6f ?) - (#x4f70 ?) - (#x4f73 ?) - (#x4f75 ?ʻ) - (#x4f76 ?) - (#x4f7b ?) - (#x4f7c ?) - (#x4f7f ?) - (#x4f83 ?) - (#x4f86 ?) - (#x4f88 ?) - (#x4f8b ?) - (#x4f8d ?) - (#x4f8f ?) - (#x4f91 ?) - (#x4f96 ?) - (#x4f98 ?) - (#x4f9b ?) - (#x4f9d ?) - (#x4fa0 ?) - (#x4fa1 ?) - (#x4fab ?ե) - (#x4fad ?) - (#x4fae ?) - (#x4faf ?) - (#x4fb5 ?) - (#x4fb6 ?η) - (#x4fbf ?) - (#x4fc2 ?) - (#x4fc3 ?¥) - (#x4fc4 ?) - (#x4fca ?) - (#x4fce ?) - (#x4fd0 ?) - (#x4fd1 ?) - (#x4fd4 ?) - (#x4fd7 ?¯) - (#x4fd8 ?) - (#x4fda ?) - (#x4fdb ?) - (#x4fdd ?) - (#x4fdf ?) - (#x4fe1 ?) - (#x4fe3 ?) - (#x4fe4 ?) - (#x4fe5 ?) - (#x4fee ?) - (#x4fef ?) - (#x4ff3 ?) - (#x4ff5 ?ɶ) - (#x4ff6 ?) - (#x4ff8 ?) - (#x4ffa ?) - (#x4ffe ?) - (#x5005 ?) - (#x5006 ?) - (#x5009 ?) - (#x500b ?) - (#x500d ?) - (#x500f ?) - (#x5011 ?) - (#x5012 ?) - (#x5014 ?) - (#x5016 ?) - (#x5019 ?) - (#x501a ?) - (#x501f ?) - (#x5021 ?) - (#x5023 ?) - (#x5024 ?) - (#x5025 ?) - (#x5026 ?) - (#x5028 ?) - (#x5029 ?) - (#x502a ?) - (#x502b ?) - (#x502c ?) - (#x502d ?) - (#x5036 ?) - (#x5039 ?) - (#x5043 ?) - (#x5047 ?) - (#x5048 ?) - (#x5049 ?) - (#x504f ?) - (#x5050 ?) - (#x5055 ?) - (#x5056 ?) - (#x505a ?) - (#x505c ?) - (#x5065 ?) - (#x506c ?) - (#x5072 ?) - (#x5074 ?¦) - (#x5075 ?) - (#x5076 ?) - (#x5078 ?) - (#x507d ?) - (#x5080 ?) - (#x5085 ?) - (#x508d ?˵) - (#x5091 ?) - (#x5098 ?) - (#x5099 ?) - (#x509a ?) - (#x50ac ?) - (#x50ad ?) - (#x50b2 ?) - (#x50b3 ?ѣ) - (#x50b4 ?) - (#x50b5 ?) - (#x50b7 ?) - (#x50be ?) - (#x50c2 ?Ѥ) - (#x50c5 ?) - (#x50c9 ?ѡ) - (#x50ca ?Ѣ) - (#x50cd ?Ư) - (#x50cf ?) - (#x50d1 ?) - (#x50d5 ?) - (#x50d6 ?ѥ) - (#x50da ?ν) - (#x50de ?Ѧ) - (#x50e3 ?ѩ) - (#x50e5 ?ѧ) - (#x50e7 ?) - (#x50ed ?Ѩ) - (#x50ee ?Ѫ) - (#x50f5 ?Ѭ) - (#x50f9 ?ѫ) - (#x50fb ?) - (#x5100 ?) - (#x5101 ?Ѯ) - (#x5102 ?ѯ) - (#x5104 ?) - (#x5109 ?ѭ) - (#x5112 ?) - (#x5114 ?Ѳ) - (#x5115 ?ѱ) - (#x5116 ?Ѱ) - (#x5118 ?) - (#x511a ?ѳ) - (#x511f ?) - (#x5121 ?Ѵ) - (#x512a ?ͥ) - (#x5132 ?) - (#x5137 ?Ѷ) - (#x513a ?ѵ) - (#x513b ?Ѹ) - (#x513c ?ѷ) - (#x513f ?ѹ) - (#x5140 ?Ѻ) - (#x5141 ?) - (#x5143 ?) - (#x5144 ?) - (#x5145 ?) - (#x5146 ?) - (#x5147 ?) - (#x5148 ?) - (#x5149 ?) - (#x514b ?) - (#x514c ?Ѽ) - (#x514d ?) - (#x514e ?) - (#x5150 ?) - (#x5152 ?ѻ) - (#x5154 ?ѽ) - (#x515a ?) - (#x515c ?) - (#x5162 ?Ѿ) - (#x5165 ?) - (#x5168 ?) - (#x5169 ?) - (#x516a ?) - (#x516b ?Ȭ) - (#x516c ?) - (#x516d ?ϻ) - (#x516e ?) - (#x5171 ?) - (#x5175 ?ʼ) - (#x5176 ?¶) - (#x5177 ?) - (#x5178 ?ŵ) - (#x517c ?) - (#x5180 ?) - (#x5182 ?) - (#x5185 ?) - (#x5186 ?) - (#x5189 ?) - (#x518a ?) - (#x518c ?) - (#x518d ?) - (#x518f ?) - (#x5190 ?) - (#x5191 ?) - (#x5192 ?) - (#x5193 ?) - (#x5195 ?) - (#x5196 ?) - (#x5197 ?) - (#x5199 ?) - (#x51a0 ?) - (#x51a2 ?) - (#x51a4 ?) - (#x51a5 ?̽) - (#x51a6 ?) - (#x51a8 ?) - (#x51a9 ?) - (#x51aa ?) - (#x51ab ?) - (#x51ac ?) - (#x51b0 ?) - (#x51b1 ?) - (#x51b2 ?) - (#x51b3 ?) - (#x51b4 ?) - (#x51b5 ?) - (#x51b6 ?) - (#x51b7 ?) - (#x51bd ?) - (#x51c4 ?) - (#x51c5 ?) - (#x51c6 ?) - (#x51c9 ?) - (#x51cb ?) - (#x51cc ?ο) - (#x51cd ?) - (#x51d6 ?) - (#x51db ?) - (#x51dc ?) - (#x51dd ?) - (#x51e0 ?) - (#x51e1 ?) - (#x51e6 ?) - (#x51e7 ?) - (#x51e9 ?) - (#x51ea ?) - (#x51ed ?) - (#x51f0 ?) - (#x51f1 ?) - (#x51f5 ?) - (#x51f6 ?) - (#x51f8 ?) - (#x51f9 ?) - (#x51fa ?) - (#x51fd ?ȡ) - (#x51fe ?) - (#x5200 ?) - (#x5203 ?) - (#x5204 ?) - (#x5206 ?ʬ) - (#x5207 ?) - (#x5208 ?) - (#x520a ?) - (#x520b ?) - (#x520e ?) - (#x5211 ?) - (#x5214 ?) - (#x5217 ?) - (#x521d ?) - (#x5224 ?Ƚ) - (#x5225 ?) - (#x5227 ?) - (#x5229 ?) - (#x522a ?) - (#x522e ?) - (#x5230 ?) - (#x5233 ?) - (#x5236 ?) - (#x5237 ?) - (#x5238 ?) - (#x5239 ?) - (#x523a ?) - (#x523b ?) - (#x5243 ?) - (#x5244 ?) - (#x5247 ?§) - (#x524a ?) - (#x524b ?) - (#x524c ?) - (#x524d ?) - (#x524f ?) - (#x5254 ?) - (#x5256 ?˶) - (#x525b ?) - (#x525e ?) - (#x5263 ?) - (#x5264 ?) - (#x5265 ?) - (#x5269 ?) - (#x526a ?) - (#x526f ?) - (#x5270 ?) - (#x5271 ?) - (#x5272 ?) - (#x5273 ?) - (#x5274 ?) - (#x5275 ?) - (#x527d ?) - (#x527f ?) - (#x5283 ?) - (#x5287 ?) - (#x5288 ?) - (#x5289 ?έ) - (#x528d ?) - (#x5291 ?) - (#x5292 ?) - (#x5294 ?) - (#x529b ?) - (#x529f ?) - (#x52a0 ?) - (#x52a3 ?) - (#x52a9 ?) - (#x52aa ?) - (#x52ab ?) - (#x52ac ?Ң) - (#x52ad ?ң) - (#x52b1 ?) - (#x52b4 ?ϫ) - (#x52b5 ?ҥ) - (#x52b9 ?) - (#x52bc ?Ҥ) - (#x52be ?) - (#x52c1 ?Ҧ) - (#x52c3 ?) - (#x52c5 ?ļ) - (#x52c7 ?ͦ) - (#x52c9 ?) - (#x52cd ?ҧ) - (#x52d2 ?) - (#x52d5 ?ư) - (#x52d7 ?Ҩ) - (#x52d8 ?) - (#x52d9 ?̳) - (#x52dd ?) - (#x52de ?ҩ) - (#x52df ?) - (#x52e0 ?ҭ) - (#x52e2 ?) - (#x52e3 ?Ҫ) - (#x52e4 ?) - (#x52e6 ?ҫ) - (#x52e7 ?) - (#x52f2 ?) - (#x52f3 ?Ү) - (#x52f5 ?ү) - (#x52f8 ?Ұ) - (#x52f9 ?ұ) - (#x52fa ?) - (#x52fe ?) - (#x52ff ?) - (#x5301 ?) - (#x5302 ?) - (#x5305 ?) - (#x5306 ?Ҳ) - (#x5308 ?ҳ) - (#x530d ?ҵ) - (#x530f ?ҷ) - (#x5310 ?Ҷ) - (#x5315 ?Ҹ) - (#x5316 ?) - (#x5317 ?) - (#x5319 ?) - (#x531a ?ҹ) - (#x531d ?) - (#x5320 ?) - (#x5321 ?) - (#x5323 ?Һ) - (#x532a ?) - (#x532f ?һ) - (#x5331 ?Ҽ) - (#x5333 ?ҽ) - (#x5338 ?Ҿ) - (#x5339 ?ɤ) - (#x533a ?) - (#x533b ?) - (#x533f ?ƿ) - (#x5340 ?ҿ) - (#x5341 ?) - (#x5343 ?) - (#x5345 ?) - (#x5346 ?) - (#x5347 ?) - (#x5348 ?) - (#x5349 ?) - (#x534a ?Ⱦ) - (#x534d ?) - (#x5351 ?) - (#x5352 ?´) - (#x5353 ?) - (#x5354 ?) - (#x5357 ?) - (#x5358 ?ñ) - (#x535a ?) - (#x535c ?) - (#x535e ?) - (#x5360 ?) - (#x5366 ?) - (#x5369 ?) - (#x536e ?) - (#x536f ?) - (#x5370 ?) - (#x5371 ?) - (#x5373 ?¨) - (#x5374 ?) - (#x5375 ?) - (#x5377 ?) - (#x5378 ?) - (#x537b ?) - (#x537f ?) - (#x5382 ?) - (#x5384 ?) - (#x5396 ?) - (#x5398 ?) - (#x539a ?) - (#x539f ?) - (#x53a0 ?) - (#x53a5 ?) - (#x53a6 ?) - (#x53a8 ?) - (#x53a9 ?) - (#x53ad ?) - (#x53ae ?) - (#x53b0 ?) - (#x53b3 ?) - (#x53b6 ?) - (#x53bb ?) - (#x53c2 ?) - (#x53c3 ?) - (#x53c8 ?) - (#x53c9 ?) - (#x53ca ?) - (#x53cb ?ͧ) - (#x53cc ?) - (#x53cd ?ȿ) - (#x53ce ?) - (#x53d4 ?) - (#x53d6 ?) - (#x53d7 ?) - (#x53d9 ?) - (#x53db ?) - (#x53df ?) - (#x53e1 ?) - (#x53e2 ?) - (#x53e3 ?) - (#x53e4 ?) - (#x53e5 ?) - (#x53e8 ?) - (#x53e9 ?á) - (#x53ea ?) - (#x53eb ?) - (#x53ec ?) - (#x53ed ?) - (#x53ee ?) - (#x53ef ?) - (#x53f0 ?) - (#x53f1 ?) - (#x53f2 ?) - (#x53f3 ?) - (#x53f6 ?) - (#x53f7 ?) - (#x53f8 ?) - (#x53fa ?) - (#x5401 ?) - (#x5403 ?) - (#x5404 ?) - (#x5408 ?) - (#x5409 ?) - (#x540a ?) - (#x540b ?) - (#x540c ?Ʊ) - (#x540d ?̾) - (#x540e ?) - (#x540f ?) - (#x5410 ?) - (#x5411 ?) - (#x541b ?) - (#x541d ?) - (#x541f ?) - (#x5420 ?) - (#x5426 ?) - (#x5429 ?) - (#x542b ?) - (#x542c ?) - (#x542d ?) - (#x542e ?) - (#x5436 ?) - (#x5438 ?) - (#x5439 ?) - (#x543b ?ʭ) - (#x543c ?) - (#x543d ?) - (#x543e ?) - (#x5440 ?) - (#x5442 ?Ϥ) - (#x5446 ?) - (#x5448 ?) - (#x5449 ?) - (#x544a ?) - (#x544e ?) - (#x5451 ?) - (#x545f ?) - (#x5468 ?) - (#x546a ?) - (#x5470 ?) - (#x5471 ?) - (#x5473 ?̣) - (#x5475 ?) - (#x5476 ?) - (#x5477 ?) - (#x547b ?) - (#x547c ?) - (#x547d ?̿) - (#x5480 ?) - (#x5484 ?) - (#x5486 ?) - (#x548b ?) - (#x548c ?) - (#x548e ?) - (#x548f ?) - (#x5490 ?) - (#x5492 ?) - (#x54a2 ?) - (#x54a4 ?ӣ) - (#x54a5 ?) - (#x54a8 ?) - (#x54ab ?ӡ) - (#x54ac ?) - (#x54af ?Ӿ) - (#x54b2 ?) - (#x54b3 ?) - (#x54b8 ?) - (#x54bc ?ӥ) - (#x54bd ?) - (#x54be ?Ӥ) - (#x54c0 ?) - (#x54c1 ?) - (#x54c2 ?Ӣ) - (#x54c4 ?) - (#x54c7 ?) - (#x54c8 ?) - (#x54c9 ?) - (#x54d8 ?Ӧ) - (#x54e1 ?) - (#x54e2 ?ӯ) - (#x54e5 ?ӧ) - (#x54e6 ?Ө) - (#x54e8 ?) - (#x54e9 ?) - (#x54ed ?ӭ) - (#x54ee ?Ӭ) - (#x54f2 ?ů) - (#x54fa ?Ӯ) - (#x54fd ?ӫ) - (#x5504 ?) - (#x5506 ?) - (#x5507 ?) - (#x550f ?ө) - (#x5510 ?) - (#x5514 ?Ӫ) - (#x5516 ?) - (#x552e ?Ӵ) - (#x552f ?ͣ) - (#x5531 ?) - (#x5533 ?Ӻ) - (#x5538 ?ӹ) - (#x5539 ?Ӱ) - (#x553e ?) - (#x5540 ?ӱ) - (#x5544 ?) - (#x5545 ?Ӷ) - (#x5546 ?) - (#x554c ?ӳ) - (#x554f ?) - (#x5553 ?) - (#x5556 ?ӷ) - (#x5557 ?Ӹ) - (#x555c ?ӵ) - (#x555d ?ӻ) - (#x5563 ?Ӳ) - (#x557b ?) - (#x557c ?) - (#x557e ?) - (#x5580 ?ӽ) - (#x5583 ?) - (#x5584 ?) - (#x5587 ?) - (#x5589 ?) - (#x558a ?ӿ) - (#x558b ?) - (#x5598 ?) - (#x5599 ?Ӽ) - (#x559a ?) - (#x559c ?) - (#x559d ?) - (#x559e ?) - (#x559f ?) - (#x55a7 ?) - (#x55a8 ?) - (#x55a9 ?) - (#x55aa ?) - (#x55ab ?) - (#x55ac ?) - (#x55ae ?) - (#x55b0 ?) - (#x55b6 ?) - (#x55c4 ?) - (#x55c5 ?) - (#x55c7 ?ԧ) - (#x55d4 ?) - (#x55da ?) - (#x55dc ?) - (#x55df ?) - (#x55e3 ?) - (#x55e4 ?) - (#x55f7 ?) - (#x55f9 ?) - (#x55fd ?) - (#x55fe ?) - (#x5606 ?ò) - (#x5609 ?) - (#x5614 ?) - (#x5616 ?) - (#x5617 ?) - (#x5618 ?) - (#x561b ?) - (#x5629 ?) - (#x562f ?) - (#x5631 ?) - (#x5632 ?) - (#x5634 ?) - (#x5636 ?) - (#x5638 ?) - (#x5642 ?) - (#x564c ?) - (#x564e ?) - (#x5650 ?) - (#x565b ?) - (#x5664 ?) - (#x5668 ?) - (#x566a ?) - (#x566b ?) - (#x566c ?) - (#x5674 ?ʮ) - (#x5678 ?) - (#x567a ?ȸ) - (#x5680 ?) - (#x5686 ?) - (#x5687 ?) - (#x568a ?) - (#x568f ?) - (#x5694 ?) - (#x56a0 ?) - (#x56a2 ?ǹ) - (#x56a5 ?) - (#x56ae ?) - (#x56b4 ?) - (#x56b6 ?) - (#x56bc ?) - (#x56c0 ?) - (#x56c1 ?) - (#x56c2 ?) - (#x56c3 ?) - (#x56c8 ?) - (#x56ce ?) - (#x56d1 ?) - (#x56d3 ?) - (#x56d7 ?) - (#x56d8 ?) - (#x56da ?) - (#x56db ?) - (#x56de ?) - (#x56e0 ?) - (#x56e3 ?) - (#x56ee ?) - (#x56f0 ?) - (#x56f2 ?) - (#x56f3 ?) - (#x56f9 ?) - (#x56fa ?) - (#x56fd ?) - (#x56ff ?) - (#x5700 ?) - (#x5703 ?) - (#x5704 ?) - (#x5708 ?ԡ) - (#x5709 ?) - (#x570b ?Ԣ) - (#x570d ?ԣ) - (#x570f ?) - (#x5712 ?) - (#x5713 ?Ԥ) - (#x5716 ?Ԧ) - (#x5718 ?ԥ) - (#x571c ?Ԩ) - (#x571f ?) - (#x5726 ?ԩ) - (#x5727 ?) - (#x5728 ?) - (#x572d ?) - (#x5730 ?) - (#x5737 ?Ԫ) - (#x5738 ?ԫ) - (#x573b ?ԭ) - (#x5740 ?Ԯ) - (#x5742 ?) - (#x5747 ?) - (#x574a ?˷) - (#x574e ?Ԭ) - (#x574f ?ԯ) - (#x5750 ?) - (#x5751 ?) - (#x5761 ?Գ) - (#x5764 ?) - (#x5766 ?ó) - (#x5769 ?) - (#x576a ?) - (#x577f ?Դ) - (#x5782 ?) - (#x5788 ?Բ) - (#x5789 ?Ե) - (#x578b ?) - (#x5793 ?Զ) - (#x57a0 ?Է) - (#x57a2 ?) - (#x57a3 ?) - (#x57a4 ?Թ) - (#x57aa ?Ժ) - (#x57b0 ?Ի) - (#x57b3 ?Ը) - (#x57c0 ?Ա) - (#x57c3 ?Լ) - (#x57c6 ?Խ) - (#x57cb ?) - (#x57ce ?) - (#x57d2 ?Կ) - (#x57d3 ?) - (#x57d4 ?Ծ) - (#x57d6 ?) - (#x57dc ?Ǹ) - (#x57df ?) - (#x57e0 ?) - (#x57e3 ?) - (#x57f4 ?) - (#x57f7 ?) - (#x57f9 ?) - (#x57fa ?) - (#x57fc ?) - (#x5800 ?) - (#x5802 ?Ʋ) - (#x5805 ?) - (#x5806 ?) - (#x580a ?) - (#x580b ?) - (#x5815 ?) - (#x5819 ?) - (#x581d ?) - (#x5821 ?) - (#x5824 ?) - (#x582a ?) - (#x582f ?) - (#x5830 ?) - (#x5831 ?) - (#x5834 ?) - (#x5835 ?) - (#x583a ?) - (#x583d ?) - (#x5840 ?ʽ) - (#x5841 ?) - (#x584a ?) - (#x584b ?) - (#x5851 ?) - (#x5852 ?) - (#x5854 ?) - (#x5857 ?) - (#x5858 ?) - (#x5859 ?ȹ) - (#x585a ?) - (#x585e ?) - (#x5862 ?) - (#x5869 ?) - (#x586b ?Ŷ) - (#x5870 ?) - (#x5872 ?) - (#x5875 ?) - (#x5879 ?) - (#x587e ?) - (#x5883 ?) - (#x5885 ?) - (#x5893 ?) - (#x5897 ?) - (#x589c ?) - (#x589f ?) - (#x58a8 ?) - (#x58ab ?) - (#x58ae ?) - (#x58b3 ?ʯ) - (#x58b8 ?) - (#x58b9 ?) - (#x58ba ?) - (#x58bb ?) - (#x58be ?) - (#x58c1 ?) - (#x58c5 ?) - (#x58c7 ?) - (#x58ca ?) - (#x58cc ?) - (#x58d1 ?) - (#x58d3 ?) - (#x58d5 ?) - (#x58d7 ?) - (#x58d8 ?) - (#x58d9 ?) - (#x58dc ?) - (#x58de ?) - (#x58df ?) - (#x58e4 ?) - (#x58e5 ?) - (#x58eb ?) - (#x58ec ?) - (#x58ee ?) - (#x58ef ?) - (#x58f0 ?) - (#x58f1 ?) - (#x58f2 ?) - (#x58f7 ?) - (#x58f9 ?) - (#x58fa ?) - (#x58fb ?) - (#x58fc ?) - (#x58fd ?) - (#x5902 ?) - (#x5909 ?) - (#x590a ?) - (#x590f ?) - (#x5910 ?) - (#x5915 ?ͼ) - (#x5916 ?) - (#x5918 ?) - (#x5919 ?) - (#x591a ?¿) - (#x591b ?) - (#x591c ?) - (#x5922 ?̴) - (#x5925 ?) - (#x5927 ?) - (#x5929 ?ŷ) - (#x592a ?) - (#x592b ?) - (#x592c ?) - (#x592d ?) - (#x592e ?) - (#x5931 ?) - (#x5932 ?) - (#x5937 ?) - (#x5938 ?) - (#x593e ?) - (#x5944 ?) - (#x5947 ?) - (#x5948 ?) - (#x5949 ?) - (#x594e ?) - (#x594f ?) - (#x5950 ?) - (#x5951 ?) - (#x5954 ?) - (#x5955 ?) - (#x5957 ?) - (#x5958 ?) - (#x595a ?) - (#x5960 ?) - (#x5962 ?) - (#x5965 ?) - (#x5967 ?) - (#x5968 ?) - (#x5969 ?) - (#x596a ?å) - (#x596c ?) - (#x596e ?ʳ) - (#x5973 ?) - (#x5974 ?) - (#x5978 ?ա) - (#x597d ?) - (#x5981 ?բ) - (#x5982 ?ǡ) - (#x5983 ?) - (#x5984 ?) - (#x598a ?ǥ) - (#x598d ?ի) - (#x5993 ?) - (#x5996 ?) - (#x5999 ?̯) - (#x599b ?֬) - (#x599d ?գ) - (#x59a3 ?զ) - (#x59a5 ?) - (#x59a8 ?˸) - (#x59ac ?) - (#x59b2 ?է) - (#x59b9 ?) - (#x59bb ?) - (#x59be ?) - (#x59c6 ?ը) - (#x59c9 ?) - (#x59cb ?) - (#x59d0 ?) - (#x59d1 ?) - (#x59d3 ?) - (#x59d4 ?) - (#x59d9 ?լ) - (#x59da ?խ) - (#x59dc ?ժ) - (#x59e5 ?) - (#x59e6 ?) - (#x59e8 ?թ) - (#x59ea ?) - (#x59eb ?ɱ) - (#x59f6 ?) - (#x59fb ?) - (#x59ff ?) - (#x5a01 ?) - (#x5a03 ?) - (#x5a09 ?ղ) - (#x5a11 ?հ) - (#x5a18 ?̼) - (#x5a1a ?ճ) - (#x5a1c ?ձ) - (#x5a1f ?կ) - (#x5a20 ?) - (#x5a25 ?ծ) - (#x5a29 ?) - (#x5a2f ?) - (#x5a35 ?շ) - (#x5a36 ?ո) - (#x5a3c ?) - (#x5a40 ?մ) - (#x5a41 ?Ϭ) - (#x5a46 ?) - (#x5a49 ?ն) - (#x5a5a ?) - (#x5a62 ?չ) - (#x5a66 ?) - (#x5a6a ?պ) - (#x5a6c ?յ) - (#x5a7f ?̻) - (#x5a92 ?) - (#x5a9a ?ջ) - (#x5a9b ?ɲ) - (#x5abc ?ռ) - (#x5abd ?) - (#x5abe ?ս) - (#x5ac1 ?) - (#x5ac2 ?տ) - (#x5ac9 ?) - (#x5acb ?վ) - (#x5acc ?) - (#x5ad0 ?) - (#x5ad6 ?) - (#x5ad7 ?) - (#x5ae1 ?) - (#x5ae3 ?) - (#x5ae6 ?) - (#x5ae9 ?) - (#x5afa ?) - (#x5afb ?) - (#x5b09 ?) - (#x5b0b ?) - (#x5b0c ?) - (#x5b16 ?) - (#x5b22 ?) - (#x5b2a ?) - (#x5b2c ?) - (#x5b30 ?) - (#x5b32 ?) - (#x5b36 ?) - (#x5b3e ?) - (#x5b40 ?) - (#x5b43 ?) - (#x5b45 ?) - (#x5b50 ?) - (#x5b51 ?) - (#x5b54 ?) - (#x5b55 ?) - (#x5b57 ?) - (#x5b58 ?¸) - (#x5b5a ?) - (#x5b5b ?) - (#x5b5c ?) - (#x5b5d ?) - (#x5b5f ?) - (#x5b63 ?) - (#x5b64 ?) - (#x5b65 ?) - (#x5b66 ?) - (#x5b69 ?) - (#x5b6b ?¹) - (#x5b70 ?) - (#x5b71 ?֣) - (#x5b73 ?) - (#x5b75 ?) - (#x5b78 ?) - (#x5b7a ?) - (#x5b80 ?) - (#x5b83 ?) - (#x5b85 ?) - (#x5b87 ?) - (#x5b88 ?) - (#x5b89 ?) - (#x5b8b ?) - (#x5b8c ?) - (#x5b8d ?) - (#x5b8f ?) - (#x5b95 ?) - (#x5b97 ?) - (#x5b98 ?) - (#x5b99 ?) - (#x5b9a ?) - (#x5b9b ?) - (#x5b9c ?) - (#x5b9d ?) - (#x5b9f ?) - (#x5ba2 ?) - (#x5ba3 ?) - (#x5ba4 ?) - (#x5ba5 ?ͨ) - (#x5ba6 ?) - (#x5bae ?) - (#x5bb0 ?) - (#x5bb3 ?) - (#x5bb4 ?) - (#x5bb5 ?) - (#x5bb6 ?) - (#x5bb8 ?) - (#x5bb9 ?) - (#x5bbf ?) - (#x5bc2 ?) - (#x5bc3 ?) - (#x5bc4 ?) - (#x5bc5 ?) - (#x5bc6 ?̩) - (#x5bc7 ?) - (#x5bc9 ?) - (#x5bcc ?) - (#x5bd0 ?) - (#x5bd2 ?) - (#x5bd3 ?) - (#x5bd4 ?) - (#x5bdb ?) - (#x5bdd ?) - (#x5bde ?) - (#x5bdf ?) - (#x5be1 ?) - (#x5be2 ?) - (#x5be4 ?) - (#x5be5 ?) - (#x5be6 ?) - (#x5be7 ?ǫ) - (#x5be8 ?) - (#x5be9 ?) - (#x5beb ?) - (#x5bee ?) - (#x5bf0 ?) - (#x5bf3 ?) - (#x5bf5 ?) - (#x5bf6 ?) - (#x5bf8 ?) - (#x5bfa ?) - (#x5bfe ?) - (#x5bff ?) - (#x5c01 ?) - (#x5c02 ?) - (#x5c04 ?) - (#x5c05 ?) - (#x5c06 ?) - (#x5c07 ?) - (#x5c08 ?) - (#x5c09 ?) - (#x5c0a ?º) - (#x5c0b ?) - (#x5c0d ?) - (#x5c0e ?Ƴ) - (#x5c0f ?) - (#x5c11 ?) - (#x5c13 ?) - (#x5c16 ?) - (#x5c1a ?) - (#x5c20 ?) - (#x5c22 ?) - (#x5c24 ?) - (#x5c28 ?) - (#x5c2d ?) - (#x5c31 ?) - (#x5c38 ?) - (#x5c39 ?) - (#x5c3a ?) - (#x5c3b ?) - (#x5c3c ?) - (#x5c3d ?) - (#x5c3e ?) - (#x5c3f ?Ǣ) - (#x5c40 ?) - (#x5c41 ?) - (#x5c45 ?) - (#x5c46 ?) - (#x5c48 ?) - (#x5c4a ?) - (#x5c4b ?) - (#x5c4d ?) - (#x5c4e ?) - (#x5c4f ?֢) - (#x5c50 ?֡) - (#x5c51 ?) - (#x5c53 ?) - (#x5c55 ?Ÿ) - (#x5c5e ?°) - (#x5c60 ?) - (#x5c61 ?) - (#x5c64 ?) - (#x5c65 ?) - (#x5c6c ?֤) - (#x5c6e ?֥) - (#x5c6f ?) - (#x5c71 ?) - (#x5c76 ?֧) - (#x5c79 ?֨) - (#x5c8c ?֩) - (#x5c90 ?) - (#x5c91 ?֪) - (#x5c94 ?֫) - (#x5ca1 ?) - (#x5ca8 ?) - (#x5ca9 ?) - (#x5cab ?֭) - (#x5cac ?̨) - (#x5cb1 ?) - (#x5cb3 ?) - (#x5cb6 ?֯) - (#x5cb7 ?ֱ) - (#x5cb8 ?) - (#x5cbb ?֮) - (#x5cbc ?ְ) - (#x5cbe ?ֳ) - (#x5cc5 ?ֲ) - (#x5cc7 ?ִ) - (#x5cd9 ?ֵ) - (#x5ce0 ?ƽ) - (#x5ce1 ?) - (#x5ce8 ?) - (#x5ce9 ?ֶ) - (#x5cea ?ֻ) - (#x5ced ?ֹ) - (#x5cef ?) - (#x5cf0 ?) - (#x5cf6 ?) - (#x5cfa ?ָ) - (#x5cfb ?) - (#x5cfd ?ַ) - (#x5d07 ?) - (#x5d0b ?ּ) - (#x5d0e ?) - (#x5d11 ?) - (#x5d14 ?) - (#x5d15 ?ֽ) - (#x5d16 ?) - (#x5d17 ?־) - (#x5d18 ?) - (#x5d19 ?) - (#x5d1a ?) - (#x5d1b ?) - (#x5d1f ?) - (#x5d22 ?) - (#x5d29 ?) - (#x5d4b ?) - (#x5d4c ?) - (#x5d4e ?) - (#x5d50 ?) - (#x5d52 ?) - (#x5d5c ?ֿ) - (#x5d69 ?) - (#x5d6c ?) - (#x5d6f ?) - (#x5d73 ?) - (#x5d76 ?) - (#x5d82 ?) - (#x5d84 ?) - (#x5d87 ?) - (#x5d8b ?) - (#x5d8c ?ֺ) - (#x5d90 ?) - (#x5d9d ?) - (#x5da2 ?) - (#x5dac ?) - (#x5dae ?) - (#x5db7 ?) - (#x5dba ?) - (#x5dbc ?) - (#x5dbd ?) - (#x5dc9 ?) - (#x5dcc ?) - (#x5dcd ?) - (#x5dd2 ?) - (#x5dd3 ?) - (#x5dd6 ?) - (#x5ddb ?) - (#x5ddd ?) - (#x5dde ?) - (#x5de1 ?) - (#x5de3 ?) - (#x5de5 ?) - (#x5de6 ?) - (#x5de7 ?) - (#x5de8 ?) - (#x5deb ?) - (#x5dee ?) - (#x5df1 ?) - (#x5df2 ?) - (#x5df3 ?̦) - (#x5df4 ?) - (#x5df5 ?) - (#x5df7 ?) - (#x5dfb ?) - (#x5dfd ?ç) - (#x5dfe ?) - (#x5e02 ?) - (#x5e03 ?) - (#x5e06 ?) - (#x5e0b ?) - (#x5e0c ?) - (#x5e11 ?) - (#x5e16 ?ġ) - (#x5e19 ?) - (#x5e1a ?) - (#x5e1b ?) - (#x5e1d ?) - (#x5e25 ?) - (#x5e2b ?) - (#x5e2d ?) - (#x5e2f ?) - (#x5e30 ?) - (#x5e33 ?Ģ) - (#x5e36 ?) - (#x5e37 ?) - (#x5e38 ?) - (#x5e3d ?˹) - (#x5e40 ?) - (#x5e43 ?) - (#x5e44 ?) - (#x5e45 ?) - (#x5e47 ?) - (#x5e4c ?) - (#x5e4e ?) - (#x5e54 ?) - (#x5e55 ?) - (#x5e57 ?) - (#x5e5f ?) - (#x5e61 ?Ȩ) - (#x5e62 ?) - (#x5e63 ?ʾ) - (#x5e64 ?) - (#x5e72 ?) - (#x5e73 ?ʿ) - (#x5e74 ?ǯ) - (#x5e75 ?) - (#x5e76 ?) - (#x5e78 ?) - (#x5e79 ?) - (#x5e7a ?) - (#x5e7b ?) - (#x5e7c ?) - (#x5e7d ?ͩ) - (#x5e7e ?) - (#x5e7f ?) - (#x5e81 ?ģ) - (#x5e83 ?) - (#x5e84 ?) - (#x5e87 ?) - (#x5e8a ?) - (#x5e8f ?) - (#x5e95 ?) - (#x5e96 ?) - (#x5e97 ?Ź) - (#x5e9a ?) - (#x5e9c ?) - (#x5ea0 ?) - (#x5ea6 ?) - (#x5ea7 ?) - (#x5eab ?) - (#x5ead ?) - (#x5eb5 ?) - (#x5eb6 ?) - (#x5eb7 ?) - (#x5eb8 ?) - (#x5ec1 ?) - (#x5ec2 ?) - (#x5ec3 ?) - (#x5ec8 ?) - (#x5ec9 ?) - (#x5eca ?ϭ) - (#x5ecf ?) - (#x5ed0 ?) - (#x5ed3 ?) - (#x5ed6 ?ס) - (#x5eda ?פ) - (#x5edb ?ץ) - (#x5edd ?ף) - (#x5edf ?) - (#x5ee0 ?) - (#x5ee1 ?ק) - (#x5ee2 ?צ) - (#x5ee3 ?ע) - (#x5ee8 ?ר) - (#x5ee9 ?ש) - (#x5eec ?ת) - (#x5ef0 ?) - (#x5ef1 ?) - (#x5ef3 ?) - (#x5ef4 ?) - (#x5ef6 ?) - (#x5ef7 ?) - (#x5ef8 ?ׯ) - (#x5efa ?) - (#x5efb ?) - (#x5efc ?Ƕ) - (#x5efe ?װ) - (#x5eff ?) - (#x5f01 ?) - (#x5f03 ?ױ) - (#x5f04 ?Ϯ) - (#x5f09 ?ײ) - (#x5f0a ?) - (#x5f0b ?) - (#x5f0c ?С) - (#x5f0d ?б) - (#x5f0f ?) - (#x5f10 ?) - (#x5f11 ?) - (#x5f13 ?) - (#x5f14 ?Ĥ) - (#x5f15 ?) - (#x5f16 ?) - (#x5f17 ?ʦ) - (#x5f18 ?) - (#x5f1b ?) - (#x5f1f ?) - (#x5f25 ?) - (#x5f26 ?) - (#x5f27 ?) - (#x5f29 ?) - (#x5f2d ?) - (#x5f2f ?) - (#x5f31 ?) - (#x5f35 ?ĥ) - (#x5f37 ?) - (#x5f38 ?) - (#x5f3c ?ɫ) - (#x5f3e ?) - (#x5f41 ?) - (#x5f48 ?) - (#x5f4a ?) - (#x5f4c ?) - (#x5f4e ?) - (#x5f51 ?) - (#x5f53 ?) - (#x5f56 ?) - (#x5f57 ?) - (#x5f59 ?) - (#x5f5c ?״) - (#x5f5d ?׳) - (#x5f61 ?) - (#x5f62 ?) - (#x5f66 ?ɧ) - (#x5f69 ?) - (#x5f6a ?ɷ) - (#x5f6b ?Ħ) - (#x5f6c ?) - (#x5f6d ?) - (#x5f70 ?) - (#x5f71 ?) - (#x5f73 ?) - (#x5f77 ?) - (#x5f79 ?) - (#x5f7c ?) - (#x5f7f ?) - (#x5f80 ?) - (#x5f81 ?) - (#x5f82 ?) - (#x5f83 ?) - (#x5f84 ?) - (#x5f85 ?) - (#x5f87 ?) - (#x5f88 ?) - (#x5f8a ?) - (#x5f8b ?Χ) - (#x5f8c ?) - (#x5f90 ?) - (#x5f91 ?) - (#x5f92 ?) - (#x5f93 ?) - (#x5f97 ?) - (#x5f98 ?) - (#x5f99 ?) - (#x5f9e ?) - (#x5fa0 ?) - (#x5fa1 ?) - (#x5fa8 ?) - (#x5fa9 ?) - (#x5faa ?) - (#x5fad ?) - (#x5fae ?) - (#x5fb3 ?) - (#x5fb4 ?ħ) - (#x5fb9 ?Ű) - (#x5fbc ?) - (#x5fbd ?) - (#x5fc3 ?) - (#x5fc5 ?ɬ) - (#x5fcc ?) - (#x5fcd ?Ǧ) - (#x5fd6 ?) - (#x5fd7 ?) - (#x5fd8 ?˺) - (#x5fd9 ?˻) - (#x5fdc ?) - (#x5fdd ?) - (#x5fe0 ?) - (#x5fe4 ?) - (#x5feb ?) - (#x5ff0 ?ح) - (#x5ff1 ?) - (#x5ff5 ?ǰ) - (#x5ff8 ?) - (#x5ffb ?) - (#x5ffd ?) - (#x5fff ?) - (#x600e ?) - (#x600f ?) - (#x6010 ?) - (#x6012 ?) - (#x6015 ?) - (#x6016 ?) - (#x6019 ?) - (#x601b ?) - (#x601c ?) - (#x601d ?) - (#x6020 ?) - (#x6021 ?) - (#x6025 ?) - (#x6026 ?) - (#x6027 ?) - (#x6028 ?) - (#x6029 ?) - (#x602a ?) - (#x602b ?) - (#x602f ?) - (#x6031 ?) - (#x603a ?) - (#x6041 ?) - (#x6042 ?) - (#x6043 ?) - (#x6046 ?) - (#x604a ?) - (#x604b ?) - (#x604d ?) - (#x6050 ?) - (#x6052 ?) - (#x6055 ?) - (#x6059 ?) - (#x605a ?) - (#x605f ?) - (#x6060 ?) - (#x6062 ?) - (#x6063 ?) - (#x6064 ?) - (#x6065 ?) - (#x6068 ?) - (#x6069 ?) - (#x606a ?) - (#x606b ?) - (#x606c ?) - (#x606d ?) - (#x606f ?©) - (#x6070 ?) - (#x6075 ?) - (#x6077 ?) - (#x6081 ?) - (#x6083 ?) - (#x6084 ?ء) - (#x6089 ?) - (#x608b ?ا) - (#x608c ?) - (#x608d ?) - (#x6092 ?إ) - (#x6094 ?) - (#x6096 ?أ) - (#x6097 ?ؤ) - (#x609a ?) - (#x609b ?آ) - (#x609f ?) - (#x60a0 ?ͪ) - (#x60a3 ?) - (#x60a6 ?) - (#x60a7 ?ئ) - (#x60a9 ?Ǻ) - (#x60aa ?) - (#x60b2 ?) - (#x60b3 ?) - (#x60b4 ?ج) - (#x60b5 ?ذ) - (#x60b6 ?) - (#x60b8 ?ة) - (#x60bc ?) - (#x60bd ?خ) - (#x60c5 ?) - (#x60c6 ?د) - (#x60c7 ?) - (#x60d1 ?) - (#x60d3 ?ث) - (#x60d8 ?ر) - (#x60da ?) - (#x60dc ?) - (#x60df ?) - (#x60e0 ?ت) - (#x60e1 ?ب) - (#x60e3 ?) - (#x60e7 ?) - (#x60e8 ?) - (#x60f0 ?) - (#x60f1 ?ؽ) - (#x60f3 ?) - (#x60f4 ?ظ) - (#x60f6 ?ص) - (#x60f7 ?ض) - (#x60f9 ?) - (#x60fa ?ع) - (#x60fb ?ؼ) - (#x6100 ?ط) - (#x6101 ?) - (#x6103 ?غ) - (#x6106 ?ش) - (#x6108 ?) - (#x6109 ?) - (#x610d ?ؾ) - (#x610e ?ؿ) - (#x610f ?) - (#x6115 ?س) - (#x611a ?) - (#x611b ?) - (#x611f ?) - (#x6121 ?ػ) - (#x6127 ?) - (#x6128 ?) - (#x612c ?) - (#x6134 ?) - (#x613c ?) - (#x613d ?) - (#x613e ?) - (#x613f ?) - (#x6142 ?) - (#x6144 ?) - (#x6147 ?) - (#x6148 ?) - (#x614a ?) - (#x614b ?) - (#x614c ?) - (#x614d ?ز) - (#x614e ?) - (#x6153 ?) - (#x6155 ?) - (#x6158 ?) - (#x6159 ?) - (#x615a ?) - (#x615d ?) - (#x615f ?) - (#x6162 ?) - (#x6163 ?) - (#x6165 ?) - (#x6167 ?) - (#x6168 ?) - (#x616b ?) - (#x616e ?θ) - (#x616f ?) - (#x6170 ?) - (#x6171 ?) - (#x6173 ?) - (#x6174 ?) - (#x6175 ?) - (#x6176 ?) - (#x6177 ?) - (#x617e ?) - (#x6182 ?ͫ) - (#x6187 ?) - (#x618a ?) - (#x618e ?) - (#x6190 ?) - (#x6191 ?) - (#x6194 ?) - (#x6196 ?) - (#x6199 ?) - (#x619a ?) - (#x61a4 ?ʰ) - (#x61a7 ?ƴ) - (#x61a9 ?) - (#x61ab ?) - (#x61ac ?) - (#x61ae ?) - (#x61b2 ?) - (#x61b6 ?) - (#x61ba ?) - (#x61be ?) - (#x61c3 ?) - (#x61c6 ?) - (#x61c7 ?) - (#x61c8 ?) - (#x61c9 ?) - (#x61ca ?) - (#x61cb ?) - (#x61cc ?) - (#x61cd ?) - (#x61d0 ?) - (#x61e3 ?) - (#x61e6 ?) - (#x61f2 ?Ĩ) - (#x61f4 ?) - (#x61f6 ?) - (#x61f7 ?) - (#x61f8 ?) - (#x61fa ?) - (#x61fc ?) - (#x61fd ?) - (#x61fe ?) - (#x61ff ?) - (#x6200 ?) - (#x6208 ?) - (#x6209 ?) - (#x620a ?) - (#x620c ?) - (#x620d ?) - (#x620e ?) - (#x6210 ?) - (#x6211 ?) - (#x6212 ?) - (#x6214 ?) - (#x6216 ?) - (#x621a ?) - (#x621b ?) - (#x621d ?) - (#x621e ?١) - (#x621f ?) - (#x6221 ?٢) - (#x6226 ?) - (#x622a ?٣) - (#x622e ?٤) - (#x622f ?) - (#x6230 ?٥) - (#x6232 ?٦) - (#x6233 ?٧) - (#x6234 ?) - (#x6238 ?) - (#x623b ?) - (#x623f ?˼) - (#x6240 ?) - (#x6241 ?٨) - (#x6247 ?) - (#x6248 ?) - (#x6249 ?) - (#x624b ?) - (#x624d ?) - (#x624e ?٩) - (#x6253 ?) - (#x6255 ?ʧ) - (#x6258 ?) - (#x625b ?٬) - (#x625e ?٪) - (#x6260 ?٭) - (#x6263 ?٫) - (#x6268 ?ٮ) - (#x626e ?ʱ) - (#x6271 ?) - (#x6276 ?) - (#x6279 ?) - (#x627c ?ٯ) - (#x627e ?ٲ) - (#x627f ?) - (#x6280 ?) - (#x6282 ?ٰ) - (#x6283 ?ٷ) - (#x6284 ?) - (#x6289 ?ٱ) - (#x628a ?) - (#x6291 ?) - (#x6292 ?ٳ) - (#x6293 ?ٴ) - (#x6294 ?ٸ) - (#x6295 ?) - (#x6296 ?ٵ) - (#x6297 ?) - (#x6298 ?) - (#x629b ?) - (#x629c ?ȴ) - (#x629e ?) - (#x62ab ?) - (#x62ac ?ڭ) - (#x62b1 ?) - (#x62b5 ?) - (#x62b9 ?) - (#x62bb ?ٻ) - (#x62bc ?) - (#x62bd ?) - (#x62c2 ?) - (#x62c5 ?ô) - (#x62c6 ?پ) - (#x62c7 ?) - (#x62c8 ?) - (#x62c9 ?) - (#x62ca ?) - (#x62cc ?) - (#x62cd ?) - (#x62cf ?ټ) - (#x62d0 ?) - (#x62d1 ?ٺ) - (#x62d2 ?) - (#x62d3 ?) - (#x62d4 ?ٶ) - (#x62d7 ?ٹ) - (#x62d8 ?) - (#x62d9 ?) - (#x62db ?) - (#x62dc ?) - (#x62dd ?) - (#x62e0 ?) - (#x62e1 ?) - (#x62ec ?) - (#x62ed ?) - (#x62ee ?) - (#x62ef ?) - (#x62f1 ?) - (#x62f3 ?) - (#x62f5 ?) - (#x62f6 ?) - (#x62f7 ?) - (#x62fe ?) - (#x62ff ?ٽ) - (#x6301 ?) - (#x6302 ?) - (#x6307 ?) - (#x6308 ?) - (#x6309 ?) - (#x630c ?) - (#x6311 ?ĩ) - (#x6319 ?) - (#x631f ?) - (#x6327 ?) - (#x6328 ?) - (#x632b ?) - (#x632f ?) - (#x633a ?) - (#x633d ?) - (#x633e ?) - (#x633f ?) - (#x6349 ?ª) - (#x634c ?) - (#x634d ?) - (#x634f ?) - (#x6350 ?) - (#x6355 ?) - (#x6357 ?Ľ) - (#x635c ?) - (#x6367 ?) - (#x6368 ?) - (#x6369 ?) - (#x636b ?) - (#x636e ?) - (#x6372 ?) - (#x6376 ?) - (#x6377 ?) - (#x637a ?) - (#x637b ?DZ) - (#x6380 ?) - (#x6383 ?) - (#x6388 ?) - (#x6389 ?) - (#x638c ?) - (#x638e ?) - (#x638f ?) - (#x6392 ?) - (#x6396 ?) - (#x6398 ?) - (#x639b ?) - (#x639f ?) - (#x63a0 ?Ϋ) - (#x63a1 ?) - (#x63a2 ?õ) - (#x63a3 ?) - (#x63a5 ?) - (#x63a7 ?) - (#x63a8 ?) - (#x63a9 ?) - (#x63aa ?) - (#x63ab ?) - (#x63ac ?) - (#x63b2 ?) - (#x63b4 ?) - (#x63b5 ?) - (#x63bb ?) - (#x63be ?) - (#x63c0 ?) - (#x63c3 ?·) - (#x63c4 ?) - (#x63c6 ?) - (#x63c9 ?) - (#x63cf ?) - (#x63d0 ?) - (#x63d2 ?) - (#x63d6 ?ͬ) - (#x63da ?) - (#x63db ?) - (#x63e1 ?) - (#x63e3 ?) - (#x63e9 ?) - (#x63ee ?) - (#x63f4 ?) - (#x63f6 ?) - (#x63fa ?) - (#x6406 ?) - (#x640d ?») - (#x640f ?) - (#x6413 ?) - (#x6416 ?) - (#x6417 ?) - (#x641c ?) - (#x6426 ?) - (#x6428 ?) - (#x642c ?) - (#x642d ?) - (#x6434 ?) - (#x6436 ?) - (#x643a ?) - (#x643e ?) - (#x6442 ?) - (#x644e ?) - (#x6458 ?Ŧ) - (#x6467 ?) - (#x6469 ?) - (#x646f ?) - (#x6476 ?) - (#x6478 ?) - (#x647a ?) - (#x6483 ?) - (#x6488 ?) - (#x6492 ?) - (#x6493 ?) - (#x6495 ?) - (#x649a ?Dz) - (#x649e ?Ƶ) - (#x64a4 ?ű) - (#x64a5 ?) - (#x64a9 ?) - (#x64ab ?) - (#x64ad ?) - (#x64ae ?) - (#x64b0 ?) - (#x64b2 ?) - (#x64b9 ?) - (#x64bb ?ڥ) - (#x64bc ?) - (#x64c1 ?) - (#x64c2 ?ڧ) - (#x64c5 ?ڣ) - (#x64c7 ?ڤ) - (#x64cd ?) - (#x64d2 ?ڢ) - (#x64d4 ?ٿ) - (#x64d8 ?ڦ) - (#x64da ?ڡ) - (#x64e0 ?ګ) - (#x64e1 ?ڬ) - (#x64e2 ?ŧ) - (#x64e3 ?ڮ) - (#x64e6 ?) - (#x64e7 ?ک) - (#x64ec ?) - (#x64ef ?گ) - (#x64f1 ?ڨ) - (#x64f2 ?ڳ) - (#x64f4 ?ڲ) - (#x64f6 ?ڱ) - (#x64fa ?ڴ) - (#x64fd ?ڶ) - (#x64fe ?) - (#x6500 ?ڵ) - (#x6505 ?ڹ) - (#x6518 ?ڷ) - (#x651c ?ڸ) - (#x651d ?) - (#x6523 ?ڻ) - (#x6524 ?ں) - (#x652a ?) - (#x652b ?ڼ) - (#x652c ?ڰ) - (#x652f ?) - (#x6534 ?ڽ) - (#x6535 ?ھ) - (#x6536 ?) - (#x6537 ?ڿ) - (#x6538 ?) - (#x6539 ?) - (#x653b ?) - (#x653e ?) - (#x653f ?) - (#x6545 ?) - (#x6548 ?) - (#x654d ?) - (#x654f ?) - (#x6551 ?) - (#x6555 ?) - (#x6556 ?) - (#x6557 ?) - (#x6558 ?) - (#x6559 ?) - (#x655d ?) - (#x655e ?) - (#x6562 ?) - (#x6563 ?) - (#x6566 ?) - (#x656c ?) - (#x6570 ?) - (#x6572 ?) - (#x6574 ?) - (#x6575 ?Ũ) - (#x6577 ?) - (#x6578 ?) - (#x6582 ?) - (#x6583 ?) - (#x6587 ?ʸ) - (#x6588 ?) - (#x6589 ?) - (#x658c ?) - (#x658e ?) - (#x6590 ?) - (#x6591 ?) - (#x6597 ?) - (#x6599 ?) - (#x659b ?) - (#x659c ?) - (#x659f ?) - (#x65a1 ?) - (#x65a4 ?) - (#x65a5 ?) - (#x65a7 ?) - (#x65ab ?) - (#x65ac ?) - (#x65ad ?) - (#x65af ?) - (#x65b0 ?) - (#x65b7 ?) - (#x65b9 ?) - (#x65bc ?) - (#x65bd ?) - (#x65c1 ?) - (#x65c3 ?) - (#x65c4 ?) - (#x65c5 ?ι) - (#x65c6 ?) - (#x65cb ?) - (#x65cc ?) - (#x65cf ?²) - (#x65d2 ?) - (#x65d7 ?) - (#x65d9 ?) - (#x65db ?) - (#x65e0 ?) - (#x65e1 ?) - (#x65e2 ?) - (#x65e5 ?) - (#x65e6 ?ö) - (#x65e7 ?) - (#x65e8 ?) - (#x65e9 ?) - (#x65ec ?) - (#x65ed ?) - (#x65f1 ?) - (#x65fa ?) - (#x65fb ?) - (#x6602 ?) - (#x6603 ?) - (#x6606 ?) - (#x6607 ?) - (#x660a ?) - (#x660c ?) - (#x660e ?) - (#x660f ?) - (#x6613 ?) - (#x6614 ?) - (#x661c ?) - (#x661f ?) - (#x6620 ?) - (#x6625 ?) - (#x6627 ?) - (#x6628 ?) - (#x662d ?) - (#x662f ?) - (#x6634 ?) - (#x6635 ?) - (#x6636 ?) - (#x663c ?) - (#x663f ?ۦ) - (#x6641 ?) - (#x6642 ?) - (#x6643 ?) - (#x6644 ?) - (#x6649 ?) - (#x664b ?) - (#x664f ?) - (#x6652 ?) - (#x665d ?) - (#x665e ?) - (#x665f ?) - (#x6662 ?) - (#x6664 ?) - (#x6666 ?) - (#x6667 ?) - (#x6668 ?) - (#x6669 ?) - (#x666e ?) - (#x666f ?) - (#x6670 ?) - (#x6674 ?) - (#x6676 ?) - (#x667a ?) - (#x6681 ?) - (#x6683 ?) - (#x6684 ?) - (#x6687 ?) - (#x6688 ?) - (#x6689 ?) - (#x668e ?) - (#x6691 ?) - (#x6696 ?) - (#x6697 ?) - (#x6698 ?) - (#x669d ?) - (#x66a2 ?Ī) - (#x66a6 ?) - (#x66ab ?) - (#x66ae ?) - (#x66b4 ?˽) - (#x66b8 ?ۢ) - (#x66b9 ?) - (#x66bc ?) - (#x66be ?) - (#x66c1 ?) - (#x66c4 ?ۡ) - (#x66c7 ?) - (#x66c9 ?) - (#x66d6 ?ۣ) - (#x66d9 ?) - (#x66da ?ۤ) - (#x66dc ?) - (#x66dd ?) - (#x66e0 ?ۥ) - (#x66e6 ?ۧ) - (#x66e9 ?ۨ) - (#x66f0 ?۩) - (#x66f2 ?) - (#x66f3 ?) - (#x66f4 ?) - (#x66f5 ?۪) - (#x66f7 ?۫) - (#x66f8 ?) - (#x66f9 ?) - (#x66fc ?) - (#x66fd ?) - (#x66fe ?) - (#x66ff ?) - (#x6700 ?) - (#x6703 ?) - (#x6708 ?) - (#x6709 ?ͭ) - (#x670b ?) - (#x670d ?) - (#x670f ?۬) - (#x6714 ?) - (#x6715 ?Ŀ) - (#x6716 ?ۭ) - (#x6717 ?ϯ) - (#x671b ?˾) - (#x671d ?ī) - (#x671e ?ۮ) - (#x671f ?) - (#x6726 ?ۯ) - (#x6727 ?۰) - (#x6728 ?) - (#x672a ?̤) - (#x672b ?) - (#x672c ?) - (#x672d ?) - (#x672e ?۲) - (#x6731 ?) - (#x6734 ?) - (#x6736 ?۴) - (#x6737 ?۷) - (#x6738 ?۶) - (#x673a ?) - (#x673d ?) - (#x673f ?۳) - (#x6741 ?۵) - (#x6746 ?۸) - (#x6749 ?) - (#x674e ?) - (#x674f ?) - (#x6750 ?) - (#x6751 ?¼) - (#x6753 ?) - (#x6756 ?) - (#x6759 ?ۻ) - (#x675c ?) - (#x675e ?۹) - (#x675f ?«) - (#x6760 ?ۺ) - (#x6761 ?) - (#x6762 ?) - (#x6763 ?ۼ) - (#x6764 ?۽) - (#x6765 ?) - (#x676a ?) - (#x676d ?) - (#x676f ?) - (#x6770 ?ۿ) - (#x6771 ?) - (#x6772 ?) - (#x6773 ?) - (#x6775 ?) - (#x6777 ?) - (#x677c ?) - (#x677e ?) - (#x677f ?) - (#x6785 ?) - (#x6787 ?) - (#x6789 ?۾) - (#x678b ?) - (#x678c ?) - (#x6790 ?) - (#x6795 ?) - (#x6797 ?) - (#x679a ?) - (#x679c ?) - (#x679d ?) - (#x67a0 ?) - (#x67a1 ?) - (#x67a2 ?) - (#x67a6 ?) - (#x67a9 ?) - (#x67af ?) - (#x67b3 ?) - (#x67b4 ?) - (#x67b6 ?) - (#x67b7 ?) - (#x67b8 ?) - (#x67b9 ?) - (#x67c1 ?) - (#x67c4 ?) - (#x67c6 ?) - (#x67ca ?ɢ) - (#x67ce ?) - (#x67cf ?) - (#x67d0 ?˿) - (#x67d1 ?) - (#x67d3 ?) - (#x67d4 ?) - (#x67d8 ?) - (#x67da ?ͮ) - (#x67dd ?) - (#x67de ?) - (#x67e2 ?) - (#x67e4 ?) - (#x67e7 ?) - (#x67e9 ?) - (#x67ec ?) - (#x67ee ?) - (#x67ef ?) - (#x67f1 ?) - (#x67f3 ?) - (#x67f4 ?) - (#x67f5 ?) - (#x67fb ?) - (#x67fe ?) - (#x67ff ?) - (#x6802 ?) - (#x6803 ?) - (#x6804 ?) - (#x6813 ?) - (#x6816 ?) - (#x6817 ?) - (#x681e ?) - (#x6821 ?) - (#x6822 ?) - (#x6829 ?) - (#x682a ?) - (#x682b ?) - (#x6832 ?) - (#x6834 ?) - (#x6838 ?) - (#x6839 ?) - (#x683c ?) - (#x683d ?) - (#x6840 ?) - (#x6841 ?) - (#x6842 ?) - (#x6843 ?) - (#x6846 ?) - (#x6848 ?) - (#x684d ?) - (#x684e ?) - (#x6850 ?) - (#x6851 ?) - (#x6853 ?) - (#x6854 ?) - (#x6859 ?) - (#x685c ?) - (#x685d ?) - (#x685f ?) - (#x6863 ?) - (#x6867 ?ɰ) - (#x6874 ?) - (#x6876 ?) - (#x6877 ?) - (#x687e ?) - (#x687f ?) - (#x6881 ?) - (#x6883 ?) - (#x6885 ?) - (#x688d ?) - (#x688f ?) - (#x6893 ?) - (#x6894 ?) - (#x6897 ?) - (#x689b ?) - (#x689d ?) - (#x689f ?) - (#x68a0 ?) - (#x68a2 ?) - (#x68a6 ?) - (#x68a7 ?) - (#x68a8 ?) - (#x68ad ?) - (#x68af ?) - (#x68b0 ?) - (#x68b1 ?) - (#x68b3 ?) - (#x68b5 ?) - (#x68b6 ?) - (#x68b9 ?) - (#x68ba ?) - (#x68bc ?) - (#x68c4 ?) - (#x68c6 ?ܲ) - (#x68c9 ?) - (#x68ca ?) - (#x68cb ?) - (#x68cd ?) - (#x68d2 ?) - (#x68d4 ?ܡ) - (#x68d5 ?ܣ) - (#x68d7 ?ܧ) - (#x68d8 ?) - (#x68da ?ê) - (#x68df ?) - (#x68e0 ?ܫ) - (#x68e1 ?) - (#x68e3 ?ܨ) - (#x68e7 ?ܢ) - (#x68ee ?) - (#x68ef ?ܬ) - (#x68f2 ?) - (#x68f9 ?ܪ) - (#x68fa ?) - (#x6900 ?) - (#x6901 ?) - (#x6904 ?ܦ) - (#x6905 ?) - (#x6908 ?) - (#x690b ?̺) - (#x690c ?) - (#x690d ?) - (#x690e ?) - (#x690f ?) - (#x6912 ?ܥ) - (#x6919 ?) - (#x691a ?ܯ) - (#x691b ?) - (#x691c ?) - (#x6921 ?ܱ) - (#x6922 ?) - (#x6923 ?ܰ) - (#x6925 ?ܩ) - (#x6926 ?) - (#x6928 ?ܭ) - (#x692a ?ܮ) - (#x6930 ?ܿ) - (#x6934 ?) - (#x6936 ?ܤ) - (#x6939 ?ܻ) - (#x693d ?ܽ) - (#x693f ?) - (#x694a ?) - (#x6953 ?) - (#x6954 ?ܸ) - (#x6955 ?) - (#x6959 ?ܾ) - (#x695a ?) - (#x695c ?ܵ) - (#x695d ?) - (#x695e ?) - (#x6960 ?) - (#x6961 ?) - (#x6962 ?) - (#x696a ?) - (#x696b ?ܷ) - (#x696d ?) - (#x696e ?ܺ) - (#x696f ?) - (#x6973 ?) - (#x6974 ?ܼ) - (#x6975 ?) - (#x6977 ?ܴ) - (#x6978 ?ܶ) - (#x6979 ?ܳ) - (#x697c ?ϰ) - (#x697d ?) - (#x697e ?ܹ) - (#x6981 ?) - (#x6982 ?) - (#x698a ?) - (#x698e ?) - (#x6991 ?) - (#x6994 ?ϱ) - (#x6995 ?) - (#x699b ?) - (#x699c ?) - (#x69a0 ?) - (#x69a7 ?) - (#x69ae ?) - (#x69b1 ?) - (#x69b2 ?) - (#x69b4 ?) - (#x69bb ?) - (#x69be ?) - (#x69bf ?) - (#x69c1 ?) - (#x69c3 ?) - (#x69c7 ?) - (#x69ca ?) - (#x69cb ?) - (#x69cc ?) - (#x69cd ?) - (#x69ce ?) - (#x69d0 ?) - (#x69d3 ?) - (#x69d8 ?) - (#x69d9 ?) - (#x69dd ?) - (#x69de ?) - (#x69e7 ?) - (#x69e8 ?) - (#x69eb ?) - (#x69ed ?) - (#x69f2 ?) - (#x69f9 ?) - (#x69fb ?) - (#x69fd ?) - (#x69ff ?) - (#x6a02 ?) - (#x6a05 ?) - (#x6a0a ?) - (#x6a0b ?) - (#x6a0c ?) - (#x6a12 ?) - (#x6a13 ?) - (#x6a14 ?) - (#x6a17 ?) - (#x6a19 ?ɸ) - (#x6a1b ?) - (#x6a1e ?) - (#x6a1f ?) - (#x6a21 ?) - (#x6a22 ?) - (#x6a23 ?) - (#x6a29 ?) - (#x6a2a ?) - (#x6a2b ?) - (#x6a2e ?) - (#x6a35 ?) - (#x6a36 ?) - (#x6a38 ?) - (#x6a39 ?) - (#x6a3a ?) - (#x6a3d ?î) - (#x6a44 ?) - (#x6a47 ?) - (#x6a48 ?) - (#x6a4b ?) - (#x6a58 ?) - (#x6a59 ?) - (#x6a5f ?) - (#x6a61 ?) - (#x6a62 ?) - (#x6a66 ?) - (#x6a72 ?) - (#x6a78 ?) - (#x6a7f ?) - (#x6a80 ?) - (#x6a84 ?) - (#x6a8d ?) - (#x6a8e ?) - (#x6a90 ?) - (#x6a97 ?ݡ) - (#x6a9c ?) - (#x6aa0 ?) - (#x6aa2 ?) - (#x6aa3 ?) - (#x6aaa ?ݬ) - (#x6aac ?ݨ) - (#x6aae ?) - (#x6ab3 ?ݧ) - (#x6ab8 ?ݦ) - (#x6abb ?ݣ) - (#x6ac1 ?) - (#x6ac2 ?ݥ) - (#x6ac3 ?ݤ) - (#x6ad1 ?ݪ) - (#x6ad3 ?Ϧ) - (#x6ada ?ݭ) - (#x6adb ?) - (#x6ade ?ݩ) - (#x6adf ?ݫ) - (#x6ae8 ?ȧ) - (#x6aea ?ݮ) - (#x6afa ?ݲ) - (#x6afb ?ݯ) - (#x6b04 ?) - (#x6b05 ?ݰ) - (#x6b0a ?) - (#x6b12 ?ݳ) - (#x6b16 ?ݴ) - (#x6b1d ?) - (#x6b1f ?ݶ) - (#x6b20 ?) - (#x6b21 ?) - (#x6b23 ?) - (#x6b27 ?) - (#x6b32 ?) - (#x6b37 ?ݸ) - (#x6b38 ?ݷ) - (#x6b39 ?ݺ) - (#x6b3a ?) - (#x6b3d ?) - (#x6b3e ?) - (#x6b43 ?ݽ) - (#x6b47 ?ݼ) - (#x6b49 ?ݾ) - (#x6b4c ?) - (#x6b4e ?÷) - (#x6b50 ?ݿ) - (#x6b53 ?) - (#x6b54 ?) - (#x6b59 ?) - (#x6b5b ?) - (#x6b5f ?) - (#x6b61 ?) - (#x6b62 ?) - (#x6b63 ?) - (#x6b64 ?) - (#x6b66 ?) - (#x6b69 ?) - (#x6b6a ?) - (#x6b6f ?) - (#x6b73 ?) - (#x6b74 ?) - (#x6b78 ?) - (#x6b79 ?) - (#x6b7b ?) - (#x6b7f ?) - (#x6b80 ?) - (#x6b83 ?) - (#x6b84 ?) - (#x6b86 ?) - (#x6b89 ?) - (#x6b8a ?) - (#x6b8b ?) - (#x6b8d ?) - (#x6b95 ?) - (#x6b96 ?) - (#x6b98 ?) - (#x6b9e ?) - (#x6ba4 ?) - (#x6baa ?) - (#x6bab ?) - (#x6baf ?) - (#x6bb1 ?) - (#x6bb2 ?) - (#x6bb3 ?) - (#x6bb4 ?) - (#x6bb5 ?) - (#x6bb7 ?) - (#x6bba ?) - (#x6bbb ?) - (#x6bbc ?) - (#x6bbf ?) - (#x6bc0 ?) - (#x6bc5 ?) - (#x6bc6 ?) - (#x6bcb ?) - (#x6bcd ?) - (#x6bce ?) - (#x6bd2 ?) - (#x6bd3 ?) - (#x6bd4 ?) - (#x6bd8 ?) - (#x6bdb ?) - (#x6bdf ?) - (#x6beb ?) - (#x6bec ?) - (#x6bef ?) - (#x6bf3 ?) - (#x6c08 ?) - (#x6c0f ?) - (#x6c11 ?̱) - (#x6c13 ?) - (#x6c14 ?) - (#x6c17 ?) - (#x6c1b ?) - (#x6c23 ?) - (#x6c24 ?) - (#x6c34 ?) - (#x6c37 ?ɹ) - (#x6c38 ?) - (#x6c3e ?) - (#x6c40 ?) - (#x6c41 ?) - (#x6c42 ?) - (#x6c4e ?) - (#x6c50 ?) - (#x6c55 ?) - (#x6c57 ?) - (#x6c5a ?) - (#x6c5d ?) - (#x6c5e ?) - (#x6c5f ?) - (#x6c60 ?) - (#x6c62 ?) - (#x6c68 ?) - (#x6c6a ?) - (#x6c70 ?) - (#x6c72 ?) - (#x6c73 ?) - (#x6c7a ?) - (#x6c7d ?) - (#x6c7e ?) - (#x6c81 ?) - (#x6c82 ?) - (#x6c83 ?) - (#x6c88 ?) - (#x6c8c ?) - (#x6c8d ?) - (#x6c90 ?) - (#x6c92 ?) - (#x6c93 ?) - (#x6c96 ?) - (#x6c99 ?) - (#x6c9a ?) - (#x6c9b ?) - (#x6ca1 ?) - (#x6ca2 ?) - (#x6cab ?) - (#x6cae ?) - (#x6cb1 ?) - (#x6cb3 ?) - (#x6cb8 ?ʨ) - (#x6cb9 ?) - (#x6cba ?ޡ) - (#x6cbb ?) - (#x6cbc ?) - (#x6cbd ?) - (#x6cbe ?) - (#x6cbf ?) - (#x6cc1 ?) - (#x6cc4 ?) - (#x6cc5 ?) - (#x6cc9 ?) - (#x6cca ?) - (#x6ccc ?) - (#x6cd3 ?) - (#x6cd5 ?ˡ) - (#x6cd7 ?) - (#x6cd9 ?ޤ) - (#x6cdb ?ޢ) - (#x6cdd ?) - (#x6ce1 ?ˢ) - (#x6ce2 ?) - (#x6ce3 ?) - (#x6ce5 ?ť) - (#x6ce8 ?) - (#x6cea ?ޥ) - (#x6cef ?ޣ) - (#x6cf0 ?) - (#x6cf1 ?) - (#x6cf3 ?) - (#x6d0b ?) - (#x6d0c ?ް) - (#x6d12 ?ޯ) - (#x6d17 ?) - (#x6d19 ?ެ) - (#x6d1b ?) - (#x6d1e ?ƶ) - (#x6d1f ?ަ) - (#x6d25 ?) - (#x6d29 ?) - (#x6d2a ?) - (#x6d2b ?ީ) - (#x6d32 ?) - (#x6d33 ?ޮ) - (#x6d35 ?ޭ) - (#x6d36 ?ި) - (#x6d38 ?ޫ) - (#x6d3b ?) - (#x6d3d ?ު) - (#x6d3e ?) - (#x6d41 ?ή) - (#x6d44 ?) - (#x6d45 ?) - (#x6d59 ?) - (#x6d5a ?) - (#x6d5c ?) - (#x6d63 ?ޱ) - (#x6d64 ?) - (#x6d66 ?) - (#x6d69 ?) - (#x6d6a ?ϲ) - (#x6d6c ?) - (#x6d6e ?) - (#x6d74 ?) - (#x6d77 ?) - (#x6d78 ?) - (#x6d79 ?) - (#x6d85 ?) - (#x6d88 ?) - (#x6d8c ?Ͱ) - (#x6d8e ?) - (#x6d93 ?) - (#x6d95 ?) - (#x6d99 ?) - (#x6d9b ?) - (#x6d9c ?) - (#x6daf ?) - (#x6db2 ?) - (#x6db5 ?) - (#x6db8 ?) - (#x6dbc ?) - (#x6dc0 ?) - (#x6dc5 ?) - (#x6dc6 ?) - (#x6dc7 ?) - (#x6dcb ?) - (#x6dcc ?) - (#x6dd1 ?) - (#x6dd2 ?) - (#x6dd5 ?) - (#x6dd8 ?) - (#x6dd9 ?) - (#x6dde ?) - (#x6de1 ?ø) - (#x6de4 ?) - (#x6de6 ?) - (#x6de8 ?) - (#x6dea ?) - (#x6deb ?) - (#x6dec ?) - (#x6dee ?) - (#x6df1 ?) - (#x6df3 ?) - (#x6df5 ?ʥ) - (#x6df7 ?) - (#x6df9 ?) - (#x6dfa ?) - (#x6dfb ?ź) - (#x6e05 ?) - (#x6e07 ?) - (#x6e08 ?) - (#x6e09 ?) - (#x6e0a ?) - (#x6e0b ?) - (#x6e13 ?) - (#x6e15 ?) - (#x6e19 ?) - (#x6e1a ?) - (#x6e1b ?) - (#x6e1d ?) - (#x6e1f ?) - (#x6e20 ?) - (#x6e21 ?) - (#x6e23 ?) - (#x6e24 ?) - (#x6e25 ?) - (#x6e26 ?) - (#x6e29 ?) - (#x6e2b ?) - (#x6e2c ?¬) - (#x6e2d ?) - (#x6e2e ?) - (#x6e2f ?) - (#x6e38 ?) - (#x6e3a ?) - (#x6e3e ?) - (#x6e43 ?) - (#x6e4a ?̫) - (#x6e4d ?) - (#x6e4e ?) - (#x6e56 ?) - (#x6e58 ?) - (#x6e5b ?ù) - (#x6e5f ?) - (#x6e67 ?ͯ) - (#x6e6b ?) - (#x6e6e ?) - (#x6e6f ?) - (#x6e72 ?) - (#x6e76 ?) - (#x6e7e ?) - (#x6e7f ?) - (#x6e80 ?) - (#x6e82 ?) - (#x6e8c ?Ȯ) - (#x6e8f ?) - (#x6e90 ?) - (#x6e96 ?) - (#x6e98 ?) - (#x6e9c ?ί) - (#x6e9d ?) - (#x6e9f ?) - (#x6ea2 ?) - (#x6ea5 ?) - (#x6eaa ?) - (#x6eaf ?) - (#x6eb2 ?) - (#x6eb6 ?) - (#x6eb7 ?) - (#x6eba ?Ů) - (#x6ebd ?) - (#x6ec2 ?) - (#x6ec4 ?) - (#x6ec5 ?) - (#x6ec9 ?) - (#x6ecb ?) - (#x6ecc ?) - (#x6ed1 ?) - (#x6ed3 ?) - (#x6ed4 ?) - (#x6ed5 ?) - (#x6edd ?) - (#x6ede ?) - (#x6eec ?) - (#x6eef ?) - (#x6ef2 ?) - (#x6ef4 ?ũ) - (#x6ef7 ?ߣ) - (#x6ef8 ?) - (#x6efe ?) - (#x6eff ?) - (#x6f01 ?) - (#x6f02 ?ɺ) - (#x6f06 ?) - (#x6f09 ?) - (#x6f0f ?ϳ) - (#x6f11 ?) - (#x6f13 ?ߢ) - (#x6f14 ?) - (#x6f15 ?) - (#x6f20 ?) - (#x6f22 ?) - (#x6f23 ?) - (#x6f2b ?̡) - (#x6f2c ?) - (#x6f31 ?) - (#x6f32 ?) - (#x6f38 ?) - (#x6f3e ?ߡ) - (#x6f3f ?) - (#x6f41 ?) - (#x6f45 ?) - (#x6f54 ?) - (#x6f58 ?߯) - (#x6f5b ?ߪ) - (#x6f5c ?) - (#x6f5f ?) - (#x6f64 ?) - (#x6f66 ?߳) - (#x6f6d ?߬) - (#x6f6e ?Ĭ) - (#x6f6f ?ߩ) - (#x6f70 ?) - (#x6f74 ?) - (#x6f78 ?ߦ) - (#x6f7a ?ߥ) - (#x6f7c ?߮) - (#x6f80 ?ߨ) - (#x6f81 ?ߧ) - (#x6f82 ?߭) - (#x6f84 ?) - (#x6f86 ?ߤ) - (#x6f8e ?߰) - (#x6f91 ?߱) - (#x6f97 ?) - (#x6fa1 ?߶) - (#x6fa3 ?ߵ) - (#x6fa4 ?߷) - (#x6faa ?ߺ) - (#x6fb1 ?) - (#x6fb3 ?ߴ) - (#x6fb9 ?߸) - (#x6fc0 ?) - (#x6fc1 ?) - (#x6fc2 ?߲) - (#x6fc3 ?ǻ) - (#x6fc6 ?߹) - (#x6fd4 ?߾) - (#x6fd5 ?) - (#x6fd8 ?߿) - (#x6fdb ?) - (#x6fdf ?) - (#x6fe0 ?) - (#x6fe1 ?Ǩ) - (#x6fe4 ?) - (#x6feb ?) - (#x6fec ?߽) - (#x6fee ?) - (#x6fef ?) - (#x6ff1 ?) - (#x6ff3 ?߫) - (#x6ff6 ?) - (#x6ffa ?) - (#x6ffe ?) - (#x7001 ?) - (#x7009 ?) - (#x700b ?) - (#x700f ?) - (#x7011 ?) - (#x7015 ?) - (#x7018 ?) - (#x701a ?) - (#x701b ?) - (#x701d ?) - (#x701e ?) - (#x701f ?) - (#x7026 ?) - (#x7027 ?) - (#x702c ?) - (#x7030 ?) - (#x7032 ?) - (#x703e ?) - (#x704c ?) - (#x7051 ?) - (#x7058 ?) - (#x7063 ?) - (#x706b ?) - (#x706f ?) - (#x7070 ?) - (#x7078 ?) - (#x707c ?) - (#x707d ?) - (#x7089 ?ϧ) - (#x708a ?) - (#x708e ?) - (#x7092 ?) - (#x7099 ?) - (#x70ac ?) - (#x70ad ?ú) - (#x70ae ?) - (#x70af ?) - (#x70b3 ?) - (#x70b8 ?) - (#x70b9 ?) - (#x70ba ?) - (#x70c8 ?) - (#x70cb ?) - (#x70cf ?) - (#x70d9 ?) - (#x70dd ?) - (#x70df ?) - (#x70f1 ?) - (#x70f9 ?ˣ) - (#x70fd ?) - (#x7109 ?) - (#x7114 ?) - (#x7119 ?) - (#x711a ?ʲ) - (#x711c ?) - (#x7121 ?̵) - (#x7126 ?) - (#x7136 ?) - (#x713c ?) - (#x7149 ?) - (#x714c ?) - (#x714e ?) - (#x7155 ?) - (#x7156 ?) - (#x7159 ?) - (#x7162 ?) - (#x7164 ?) - (#x7165 ?) - (#x7166 ?) - (#x7167 ?) - (#x7169 ?) - (#x716c ?) - (#x716e ?) - (#x717d ?) - (#x7184 ?) - (#x7188 ?) - (#x718a ?) - (#x718f ?) - (#x7194 ?) - (#x7195 ?) - (#x7199 ?) - (#x719f ?) - (#x71a8 ?) - (#x71ac ?) - (#x71b1 ?Ǯ) - (#x71b9 ?) - (#x71be ?) - (#x71c3 ?dz) - (#x71c8 ?) - (#x71c9 ?) - (#x71ce ?) - (#x71d0 ?) - (#x71d2 ?) - (#x71d4 ?) - (#x71d5 ?) - (#x71d7 ?) - (#x71df ?) - (#x71e0 ?) - (#x71e5 ?) - (#x71e6 ?) - (#x71e7 ?) - (#x71ec ?) - (#x71ed ?) - (#x71ee ?) - (#x71f5 ?) - (#x71f9 ?) - (#x71fb ?) - (#x71fc ?) - (#x71ff ?) - (#x7206 ?) - (#x720d ?) - (#x7210 ?) - (#x721b ?) - (#x7228 ?) - (#x722a ?) - (#x722c ?) - (#x722d ?) - (#x7230 ?) - (#x7232 ?) - (#x7235 ?) - (#x7236 ?) - (#x723a ?) - (#x723b ?) - (#x723c ?) - (#x723d ?) - (#x723e ?) - (#x723f ?) - (#x7240 ?) - (#x7246 ?) - (#x7247 ?) - (#x7248 ?) - (#x724b ?) - (#x724c ?) - (#x7252 ?ĭ) - (#x7258 ?) - (#x7259 ?) - (#x725b ?) - (#x725d ?) - (#x725f ?̶) - (#x7261 ?) - (#x7262 ?ϴ) - (#x7267 ?) - (#x7269 ?ʪ) - (#x7272 ?) - (#x7274 ?) - (#x7279 ?) - (#x727d ?) - (#x727e ?) - (#x7280 ?) - (#x7281 ?) - (#x7282 ?) - (#x7287 ?) - (#x7292 ?) - (#x7296 ?) - (#x72a0 ?) - (#x72a2 ?) - (#x72a7 ?) - (#x72ac ?) - (#x72af ?) - (#x72b2 ?) - (#x72b6 ?) - (#x72b9 ?) - (#x72c2 ?) - (#x72c3 ?) - (#x72c4 ?) - (#x72c6 ?) - (#x72ce ?) - (#x72d0 ?) - (#x72d2 ?) - (#x72d7 ?) - (#x72d9 ?) - (#x72db ?) - (#x72e0 ?) - (#x72e1 ?) - (#x72e2 ?) - (#x72e9 ?) - (#x72ec ?) - (#x72ed ?) - (#x72f7 ?) - (#x72f8 ?ì) - (#x72f9 ?) - (#x72fc ?ϵ) - (#x72fd ?) - (#x730a ?) - (#x7316 ?) - (#x7317 ?) - (#x731b ?) - (#x731c ?) - (#x731d ?) - (#x731f ?) - (#x7325 ?) - (#x7329 ?) - (#x732a ?) - (#x732b ?ǭ) - (#x732e ?) - (#x732f ?) - (#x7334 ?) - (#x7336 ?ͱ) - (#x7337 ?Ͳ) - (#x733e ?) - (#x733f ?) - (#x7344 ?) - (#x7345 ?) - (#x734e ?) - (#x734f ?) - (#x7357 ?) - (#x7363 ?) - (#x7368 ?) - (#x736a ?) - (#x7370 ?) - (#x7372 ?) - (#x7375 ?) - (#x7378 ?) - (#x737a ?) - (#x737b ?) - (#x7384 ?) - (#x7387 ?Ψ) - (#x7389 ?) - (#x738b ?) - (#x7396 ?) - (#x73a9 ?) - (#x73b2 ?) - (#x73b3 ?) - (#x73bb ?) - (#x73c0 ?) - (#x73c2 ?) - (#x73c8 ?) - (#x73ca ?) - (#x73cd ?) - (#x73ce ?) - (#x73de ?) - (#x73e0 ?) - (#x73e5 ?) - (#x73ea ?) - (#x73ed ?) - (#x73ee ?) - (#x73f1 ?) - (#x73f8 ?) - (#x73fe ?) - (#x7403 ?) - (#x7405 ?) - (#x7406 ?) - (#x7409 ?ΰ) - (#x7422 ?) - (#x7425 ?) - (#x7432 ?) - (#x7433 ?) - (#x7434 ?) - (#x7435 ?) - (#x7436 ?) - (#x743a ?) - (#x743f ?) - (#x7441 ?) - (#x7455 ?) - (#x7459 ?) - (#x745a ?) - (#x745b ?) - (#x745c ?) - (#x745e ?) - (#x745f ?) - (#x7460 ?) - (#x7463 ?) - (#x7464 ?) - (#x7469 ?) - (#x746a ?) - (#x746f ?) - (#x7470 ?) - (#x7473 ?) - (#x7476 ?) - (#x747e ?) - (#x7483 ?) - (#x748b ?) - (#x749e ?) - (#x74a2 ?) - (#x74a7 ?) - (#x74b0 ?) - (#x74bd ?) - (#x74ca ?) - (#x74cf ?) - (#x74d4 ?) - (#x74dc ?) - (#x74e0 ?) - (#x74e2 ?ɻ) - (#x74e3 ?) - (#x74e6 ?) - (#x74e7 ?) - (#x74e9 ?) - (#x74ee ?) - (#x74f0 ?) - (#x74f1 ?) - (#x74f2 ?) - (#x74f6 ?) - (#x74f7 ?) - (#x74f8 ?) - (#x7503 ?) - (#x7504 ?) - (#x7505 ?) - (#x750c ?) - (#x750d ?) - (#x750e ?) - (#x7511 ?) - (#x7513 ?) - (#x7515 ?) - (#x7518 ?) - (#x751a ?) - (#x751c ?ż) - (#x751e ?) - (#x751f ?) - (#x7523 ?) - (#x7525 ?) - (#x7526 ?) - (#x7528 ?) - (#x752b ?) - (#x752c ?) - (#x7530 ?) - (#x7531 ?ͳ) - (#x7532 ?) - (#x7533 ?) - (#x7537 ?) - (#x7538 ?Ҵ) - (#x753a ?Į) - (#x753b ?) - (#x753c ?) - (#x7544 ?) - (#x7546 ?) - (#x7549 ?) - (#x754a ?) - (#x754b ?) - (#x754c ?) - (#x754d ?) - (#x754f ?) - (#x7551 ?Ȫ) - (#x7554 ?) - (#x7559 ?α) - (#x755a ?) - (#x755b ?) - (#x755c ?) - (#x755d ?) - (#x7560 ?ȫ) - (#x7562 ?ɭ) - (#x7564 ?) - (#x7565 ?ά) - (#x7566 ?) - (#x7567 ?) - (#x7569 ?) - (#x756a ?) - (#x756b ?) - (#x756d ?) - (#x7570 ?) - (#x7573 ?) - (#x7574 ?) - (#x7576 ?) - (#x7577 ?) - (#x7578 ?) - (#x757f ?) - (#x7582 ?) - (#x7586 ?) - (#x7587 ?) - (#x7589 ?) - (#x758a ?) - (#x758b ?ɥ) - (#x758e ?) - (#x758f ?) - (#x7591 ?) - (#x7594 ?) - (#x759a ?) - (#x759d ?) - (#x75a3 ?) - (#x75a5 ?) - (#x75ab ?) - (#x75b1 ?) - (#x75b2 ?) - (#x75b3 ?) - (#x75b5 ?) - (#x75b8 ?) - (#x75b9 ?) - (#x75bc ?) - (#x75bd ?) - (#x75be ?) - (#x75c2 ?) - (#x75c3 ?) - (#x75c5 ?) - (#x75c7 ?) - (#x75ca ?) - (#x75cd ?) - (#x75d2 ?) - (#x75d4 ?) - (#x75d5 ?) - (#x75d8 ?) - (#x75d9 ?) - (#x75db ?) - (#x75de ?) - (#x75e2 ?Ρ) - (#x75e3 ?) - (#x75e9 ?) - (#x75f0 ?) - (#x75f2 ?) - (#x75f3 ?) - (#x75f4 ?) - (#x75fa ?) - (#x75fc ?) - (#x75fe ?) - (#x75ff ?) - (#x7601 ?) - (#x7609 ?) - (#x760b ?) - (#x760d ?) - (#x761f ?) - (#x7620 ?) - (#x7621 ?) - (#x7622 ?) - (#x7624 ?) - (#x7627 ?) - (#x7630 ?) - (#x7634 ?) - (#x763b ?) - (#x7642 ?) - (#x7646 ?) - (#x7647 ?) - (#x7648 ?) - (#x764c ?) - (#x7652 ?) - (#x7656 ?) - (#x7658 ?) - (#x765c ?) - (#x7661 ?) - (#x7662 ?) - (#x7667 ?) - (#x7668 ?) - (#x7669 ?) - (#x766a ?) - (#x766c ?) - (#x7670 ?) - (#x7672 ?) - (#x7676 ?) - (#x7678 ?) - (#x767a ?ȯ) - (#x767b ?) - (#x767c ?) - (#x767d ?) - (#x767e ?ɴ) - (#x7680 ?) - (#x7683 ?) - (#x7684 ?Ū) - (#x7686 ?) - (#x7687 ?) - (#x7688 ?) - (#x768b ?) - (#x768e ?) - (#x7690 ?) - (#x7693 ?) - (#x7696 ?) - (#x7699 ?) - (#x769a ?) - (#x76ae ?) - (#x76b0 ?) - (#x76b4 ?) - (#x76b7 ?) - (#x76b8 ?) - (#x76b9 ?) - (#x76ba ?) - (#x76bf ?) - (#x76c2 ?) - (#x76c3 ?) - (#x76c6 ?) - (#x76c8 ?) - (#x76ca ?) - (#x76cd ?) - (#x76d2 ?) - (#x76d6 ?) - (#x76d7 ?) - (#x76db ?) - (#x76dc ?ݹ) - (#x76de ?) - (#x76df ?) - (#x76e1 ?) - (#x76e3 ?) - (#x76e4 ?) - (#x76e5 ?) - (#x76e7 ?) - (#x76ea ?) - (#x76ee ?) - (#x76f2 ?) - (#x76f4 ?ľ) - (#x76f8 ?) - (#x76fb ?) - (#x76fe ?) - (#x7701 ?) - (#x7704 ?) - (#x7707 ?) - (#x7708 ?) - (#x7709 ?) - (#x770b ?) - (#x770c ?) - (#x771b ?) - (#x771e ?) - (#x771f ?) - (#x7720 ?̲) - (#x7724 ?) - (#x7725 ?) - (#x7726 ?) - (#x7729 ?) - (#x7737 ?) - (#x7738 ?) - (#x773a ?į) - (#x773c ?) - (#x7740 ?) - (#x7747 ?) - (#x775a ?) - (#x775b ?) - (#x7761 ?) - (#x7763 ?) - (#x7765 ?) - (#x7766 ?) - (#x7768 ?) - (#x776b ?) - (#x7779 ?) - (#x777e ?) - (#x777f ?) - (#x778b ?) - (#x778e ?) - (#x7791 ?) - (#x779e ?) - (#x77a0 ?) - (#x77a5 ?) - (#x77ac ?) - (#x77ad ?) - (#x77b0 ?) - (#x77b3 ?Ʒ) - (#x77b6 ?) - (#x77b9 ?) - (#x77bb ?) - (#x77bc ?) - (#x77bd ?) - (#x77bf ?) - (#x77c7 ?) - (#x77cd ?) - (#x77d7 ?) - (#x77da ?) - (#x77db ?̷) - (#x77dc ?) - (#x77e2 ?) - (#x77e3 ?) - (#x77e5 ?) - (#x77e7 ?) - (#x77e9 ?) - (#x77ed ?û) - (#x77ee ?) - (#x77ef ?) - (#x77f3 ?) - (#x77fc ?) - (#x7802 ?) - (#x780c ?) - (#x7812 ?) - (#x7814 ?) - (#x7815 ?) - (#x7820 ?) - (#x7825 ?) - (#x7826 ?) - (#x7827 ?) - (#x7832 ?ˤ) - (#x7834 ?) - (#x783a ?) - (#x783f ?) - (#x7845 ?) - (#x785d ?) - (#x786b ?β) - (#x786c ?) - (#x786f ?) - (#x7872 ?ȣ) - (#x7874 ?) - (#x787c ?) - (#x7881 ?) - (#x7886 ?) - (#x7887 ?) - (#x788c ?) - (#x788d ?) - (#x788e ?) - (#x7891 ?) - (#x7893 ?) - (#x7895 ?) - (#x7897 ?) - (#x789a ?) - (#x78a3 ?) - (#x78a7 ?) - (#x78a9 ?) - (#x78aa ?) - (#x78af ?) - (#x78b5 ?) - (#x78ba ?) - (#x78bc ?) - (#x78be ?) - (#x78c1 ?) - (#x78c5 ?) - (#x78c6 ?) - (#x78ca ?) - (#x78cb ?) - (#x78d0 ?) - (#x78d1 ?) - (#x78d4 ?) - (#x78da ?) - (#x78e7 ?) - (#x78e8 ?) - (#x78ec ?) - (#x78ef ?) - (#x78f4 ?) - (#x78fd ?) - (#x7901 ?) - (#x7907 ?) - (#x790e ?) - (#x7911 ?) - (#x7912 ?) - (#x7919 ?) - (#x7926 ?) - (#x792a ?) - (#x792b ?) - (#x792c ?) - (#x793a ?) - (#x793c ?) - (#x793e ?) - (#x7940 ?) - (#x7941 ?) - (#x7947 ?) - (#x7948 ?) - (#x7949 ?) - (#x7950 ?ʹ) - (#x7953 ?) - (#x7955 ?) - (#x7956 ?) - (#x7957 ?) - (#x795a ?) - (#x795d ?) - (#x795e ?) - (#x795f ?) - (#x7960 ?) - (#x7962 ?Ǫ) - (#x7965 ?) - (#x7968 ?ɼ) - (#x796d ?) - (#x7977 ?) - (#x797a ?) - (#x797f ?) - (#x7980 ?) - (#x7981 ?) - (#x7984 ?Ͻ) - (#x7985 ?) - (#x798a ?) - (#x798d ?) - (#x798e ?) - (#x798f ?ʡ) - (#x799d ?) - (#x79a6 ?) - (#x79a7 ?) - (#x79aa ?) - (#x79ae ?) - (#x79b0 ?ǩ) - (#x79b3 ?) - (#x79b9 ?) - (#x79ba ?) - (#x79bd ?) - (#x79be ?) - (#x79bf ?) - (#x79c0 ?) - (#x79c1 ?) - (#x79c9 ?) - (#x79cb ?) - (#x79d1 ?) - (#x79d2 ?) - (#x79d5 ?) - (#x79d8 ?) - (#x79df ?) - (#x79e1 ?) - (#x79e3 ?) - (#x79e4 ?) - (#x79e6 ?) - (#x79e7 ?) - (#x79e9 ?) - (#x79ec ?) - (#x79f0 ?) - (#x79fb ?) - (#x7a00 ?) - (#x7a08 ?) - (#x7a0b ?) - (#x7a0d ?) - (#x7a0e ?) - (#x7a14 ?̭) - (#x7a17 ?ɣ) - (#x7a18 ?) - (#x7a19 ?) - (#x7a1a ?) - (#x7a1c ?) - (#x7a1f ?) - (#x7a20 ?) - (#x7a2e ?) - (#x7a31 ?) - (#x7a32 ?) - (#x7a37 ?) - (#x7a3b ?) - (#x7a3c ?) - (#x7a3d ?) - (#x7a3e ?) - (#x7a3f ?) - (#x7a40 ?) - (#x7a42 ?) - (#x7a43 ?) - (#x7a46 ?) - (#x7a49 ?) - (#x7a4d ?) - (#x7a4e ?) - (#x7a4f ?) - (#x7a50 ?) - (#x7a57 ?) - (#x7a61 ?) - (#x7a62 ?) - (#x7a63 ?) - (#x7a69 ?) - (#x7a6b ?) - (#x7a70 ?) - (#x7a74 ?) - (#x7a76 ?) - (#x7a79 ?) - (#x7a7a ?) - (#x7a7d ?) - (#x7a7f ?) - (#x7a81 ?) - (#x7a83 ?) - (#x7a84 ?) - (#x7a88 ?) - (#x7a92 ?) - (#x7a93 ?) - (#x7a95 ?) - (#x7a96 ?) - (#x7a97 ?) - (#x7a98 ?) - (#x7a9f ?) - (#x7aa9 ?) - (#x7aaa ?) - (#x7aae ?) - (#x7aaf ?) - (#x7ab0 ?) - (#x7ab6 ?) - (#x7aba ?) - (#x7abf ?) - (#x7ac3 ?) - (#x7ac4 ?) - (#x7ac5 ?) - (#x7ac7 ?) - (#x7ac8 ?) - (#x7aca ?) - (#x7acb ?Ω) - (#x7acd ?) - (#x7acf ?) - (#x7ad2 ?) - (#x7ad3 ?) - (#x7ad5 ?) - (#x7ad9 ?) - (#x7ada ?) - (#x7adc ?ε) - (#x7add ?) - (#x7adf ?) - (#x7ae0 ?) - (#x7ae1 ?) - (#x7ae2 ?) - (#x7ae3 ?) - (#x7ae5 ?Ƹ) - (#x7ae6 ?) - (#x7aea ?è) - (#x7aed ?) - (#x7aef ?ü) - (#x7af0 ?) - (#x7af6 ?) - (#x7af8 ?ѿ) - (#x7af9 ?) - (#x7afa ?) - (#x7aff ?) - (#x7b02 ?) - (#x7b04 ?) - (#x7b06 ?) - (#x7b08 ?) - (#x7b0a ?) - (#x7b0b ?) - (#x7b0f ?) - (#x7b11 ?) - (#x7b18 ?) - (#x7b19 ?) - (#x7b1b ?ū) - (#x7b1e ?) - (#x7b20 ?) - (#x7b25 ?) - (#x7b26 ?) - (#x7b28 ?) - (#x7b2c ?) - (#x7b33 ?) - (#x7b35 ?) - (#x7b36 ?) - (#x7b39 ?) - (#x7b45 ?) - (#x7b46 ?ɮ) - (#x7b48 ?Ȧ) - (#x7b49 ?) - (#x7b4b ?) - (#x7b4c ?) - (#x7b4d ?) - (#x7b4f ?ȵ) - (#x7b50 ?) - (#x7b51 ?) - (#x7b52 ?) - (#x7b54 ?) - (#x7b56 ?) - (#x7b5d ?) - (#x7b65 ?) - (#x7b67 ?) - (#x7b6c ?) - (#x7b6e ?) - (#x7b70 ?) - (#x7b71 ?) - (#x7b74 ?) - (#x7b75 ?) - (#x7b7a ?) - (#x7b86 ?) - (#x7b87 ?) - (#x7b8b ?) - (#x7b8d ?) - (#x7b8f ?) - (#x7b92 ?) - (#x7b94 ?) - (#x7b95 ?̧) - (#x7b97 ?) - (#x7b98 ?) - (#x7b99 ?) - (#x7b9a ?) - (#x7b9c ?) - (#x7b9d ?) - (#x7b9f ?) - (#x7ba1 ?) - (#x7baa ?ý) - (#x7bad ?) - (#x7bb1 ?Ȣ) - (#x7bb4 ?) - (#x7bb8 ?Ȥ) - (#x7bc0 ?) - (#x7bc1 ?) - (#x7bc4 ?) - (#x7bc6 ?) - (#x7bc7 ?) - (#x7bc9 ?) - (#x7bcb ?) - (#x7bcc ?) - (#x7bcf ?) - (#x7bdd ?) - (#x7be0 ?) - (#x7be4 ?) - (#x7be5 ?) - (#x7be6 ?) - (#x7be9 ?) - (#x7bed ?϶) - (#x7bf3 ?) - (#x7bf6 ?) - (#x7bf7 ?) - (#x7c00 ?) - (#x7c07 ?) - (#x7c0d ?) - (#x7c11 ?) - (#x7c12 ?) - (#x7c13 ?) - (#x7c14 ?) - (#x7c17 ?) - (#x7c1f ?) - (#x7c21 ?) - (#x7c23 ?) - (#x7c27 ?) - (#x7c2a ?) - (#x7c2b ?) - (#x7c37 ?) - (#x7c38 ?) - (#x7c3d ?) - (#x7c3e ?) - (#x7c3f ?) - (#x7c40 ?) - (#x7c43 ?) - (#x7c4c ?) - (#x7c4d ?) - (#x7c4f ?) - (#x7c50 ?) - (#x7c54 ?) - (#x7c56 ?) - (#x7c58 ?) - (#x7c5f ?) - (#x7c60 ?) - (#x7c64 ?) - (#x7c65 ?) - (#x7c6c ?) - (#x7c73 ?) - (#x7c75 ?) - (#x7c7e ?) - (#x7c81 ?) - (#x7c82 ?) - (#x7c83 ?) - (#x7c89 ?ʴ) - (#x7c8b ?) - (#x7c8d ?̰) - (#x7c90 ?) - (#x7c92 ?γ) - (#x7c95 ?) - (#x7c97 ?) - (#x7c98 ?Ǵ) - (#x7c9b ?) - (#x7c9f ?) - (#x7ca1 ?) - (#x7ca2 ?) - (#x7ca4 ?) - (#x7ca5 ?) - (#x7ca7 ?) - (#x7ca8 ?) - (#x7cab ?) - (#x7cad ?) - (#x7cae ?) - (#x7cb1 ?) - (#x7cb2 ?) - (#x7cb3 ?) - (#x7cb9 ?) - (#x7cbd ?) - (#x7cbe ?) - (#x7cc0 ?) - (#x7cc2 ?) - (#x7cc5 ?) - (#x7cca ?) - (#x7cce ?) - (#x7cd2 ?) - (#x7cd6 ?) - (#x7cd8 ?) - (#x7cdc ?) - (#x7cde ?ʵ) - (#x7cdf ?) - (#x7ce0 ?) - (#x7ce2 ?) - (#x7ce7 ?) - (#x7cef ?) - (#x7cf2 ?) - (#x7cf4 ?) - (#x7cf6 ?) - (#x7cf8 ?) - (#x7cfa ?) - (#x7cfb ?) - (#x7cfe ?) - (#x7d00 ?) - (#x7d02 ?) - (#x7d04 ?) - (#x7d05 ?) - (#x7d06 ?) - (#x7d0a ?) - (#x7d0b ?) - (#x7d0d ?Ǽ) - (#x7d10 ?ɳ) - (#x7d14 ?) - (#x7d15 ?) - (#x7d17 ?) - (#x7d18 ?) - (#x7d19 ?) - (#x7d1a ?) - (#x7d1b ?ʶ) - (#x7d1c ?) - (#x7d20 ?) - (#x7d21 ?) - (#x7d22 ?) - (#x7d2b ?) - (#x7d2c ?) - (#x7d2e ?) - (#x7d2f ?) - (#x7d30 ?) - (#x7d32 ?) - (#x7d33 ?) - (#x7d35 ?) - (#x7d39 ?) - (#x7d3a ?) - (#x7d3f ?) - (#x7d42 ?) - (#x7d43 ?) - (#x7d44 ?) - (#x7d45 ?) - (#x7d46 ?) - (#x7d4b ?) - (#x7d4c ?) - (#x7d4e ?) - (#x7d4f ?) - (#x7d50 ?) - (#x7d56 ?) - (#x7d5b ?) - (#x7d5e ?) - (#x7d61 ?) - (#x7d62 ?) - (#x7d63 ?) - (#x7d66 ?) - (#x7d68 ?) - (#x7d6e ?) - (#x7d71 ?) - (#x7d72 ?) - (#x7d73 ?) - (#x7d75 ?) - (#x7d76 ?) - (#x7d79 ?) - (#x7d7d ?) - (#x7d89 ?) - (#x7d8f ?) - (#x7d93 ?) - (#x7d99 ?) - (#x7d9a ?³) - (#x7d9b ?) - (#x7d9c ?) - (#x7d9f ?) - (#x7da2 ?) - (#x7da3 ?) - (#x7dab ?) - (#x7dac ?) - (#x7dad ?) - (#x7dae ?) - (#x7daf ?) - (#x7db0 ?) - (#x7db1 ?) - (#x7db2 ?) - (#x7db4 ?) - (#x7db5 ?) - (#x7db8 ?) - (#x7dba ?) - (#x7dbb ?þ) - (#x7dbd ?) - (#x7dbe ?) - (#x7dbf ?) - (#x7dc7 ?) - (#x7dca ?) - (#x7dcb ?) - (#x7dcf ?) - (#x7dd1 ?) - (#x7dd2 ?) - (#x7dd5 ?) - (#x7dd8 ?) - (#x7dda ?) - (#x7ddc ?) - (#x7ddd ?) - (#x7dde ?) - (#x7de0 ?) - (#x7de1 ?) - (#x7de4 ?) - (#x7de8 ?) - (#x7de9 ?) - (#x7dec ?) - (#x7def ?) - (#x7df2 ?) - (#x7df4 ?) - (#x7dfb ?) - (#x7e01 ?) - (#x7e04 ?) - (#x7e05 ?) - (#x7e09 ?) - (#x7e0a ?) - (#x7e0b ?) - (#x7e12 ?) - (#x7e1b ?) - (#x7e1e ?) - (#x7e1f ?) - (#x7e21 ?) - (#x7e22 ?) - (#x7e23 ?) - (#x7e26 ?) - (#x7e2b ?˥) - (#x7e2e ?) - (#x7e31 ?) - (#x7e32 ?) - (#x7e35 ?) - (#x7e37 ?) - (#x7e39 ?) - (#x7e3a ?) - (#x7e3b ?) - (#x7e3d ?) - (#x7e3e ?) - (#x7e41 ?) - (#x7e43 ?) - (#x7e46 ?) - (#x7e4a ?) - (#x7e4b ?) - (#x7e4d ?) - (#x7e54 ?) - (#x7e55 ?) - (#x7e56 ?) - (#x7e59 ?) - (#x7e5a ?) - (#x7e5d ?) - (#x7e5e ?) - (#x7e66 ?) - (#x7e67 ?) - (#x7e69 ?) - (#x7e6a ?) - (#x7e6d ?) - (#x7e70 ?) - (#x7e79 ?) - (#x7e7b ?) - (#x7e7c ?) - (#x7e7d ?) - (#x7e7f ?) - (#x7e82 ?) - (#x7e83 ?) - (#x7e88 ?) - (#x7e89 ?) - (#x7e8c ?) - (#x7e8e ?) - (#x7e8f ?Ż) - (#x7e90 ?) - (#x7e92 ?) - (#x7e93 ?) - (#x7e94 ?) - (#x7e96 ?) - (#x7e9b ?) - (#x7e9c ?) - (#x7f36 ?) - (#x7f38 ?) - (#x7f3a ?) - (#x7f45 ?) - (#x7f4c ?) - (#x7f4d ?) - (#x7f4e ?) - (#x7f50 ?) - (#x7f51 ?) - (#x7f54 ?) - (#x7f55 ?) - (#x7f58 ?) - (#x7f5f ?) - (#x7f60 ?) - (#x7f67 ?) - (#x7f68 ?) - (#x7f69 ?) - (#x7f6a ?) - (#x7f6b ?) - (#x7f6e ?) - (#x7f70 ?ȳ) - (#x7f72 ?) - (#x7f75 ?) - (#x7f77 ?) - (#x7f78 ?) - (#x7f79 ?) - (#x7f82 ?) - (#x7f83 ?) - (#x7f85 ?) - (#x7f86 ?) - (#x7f87 ?) - (#x7f88 ?) - (#x7f8a ?) - (#x7f8c ?) - (#x7f8e ?) - (#x7f94 ?) - (#x7f9a ?) - (#x7f9d ?) - (#x7f9e ?) - (#x7fa3 ?) - (#x7fa4 ?) - (#x7fa8 ?) - (#x7fa9 ?) - (#x7fae ?) - (#x7faf ?) - (#x7fb2 ?) - (#x7fb6 ?) - (#x7fb8 ?) - (#x7fb9 ?) - (#x7fbd ?) - (#x7fc1 ?) - (#x7fc5 ?) - (#x7fc6 ?) - (#x7fca ?) - (#x7fcc ?) - (#x7fd2 ?) - (#x7fd4 ?) - (#x7fd5 ?) - (#x7fe0 ?) - (#x7fe1 ?) - (#x7fe6 ?) - (#x7fe9 ?) - (#x7feb ?) - (#x7ff0 ?) - (#x7ff3 ?) - (#x7ff9 ?) - (#x7ffb ?) - (#x7ffc ?) - (#x8000 ?) - (#x8001 ?Ϸ) - (#x8003 ?) - (#x8004 ?) - (#x8005 ?) - (#x8006 ?) - (#x800b ?) - (#x800c ?) - (#x8010 ?) - (#x8012 ?) - (#x8015 ?) - (#x8017 ?) - (#x8018 ?) - (#x8019 ?) - (#x801c ?) - (#x8021 ?) - (#x8028 ?) - (#x8033 ?) - (#x8036 ?) - (#x803b ?) - (#x803d ?ÿ) - (#x803f ?) - (#x8046 ?) - (#x804a ?) - (#x8052 ?) - (#x8056 ?) - (#x8058 ?) - (#x805a ?) - (#x805e ?ʹ) - (#x805f ?) - (#x8061 ?) - (#x8062 ?) - (#x8068 ?) - (#x806f ?) - (#x8070 ?) - (#x8072 ?) - (#x8073 ?) - (#x8074 ?İ) - (#x8076 ?) - (#x8077 ?) - (#x8079 ?) - (#x807d ?) - (#x807e ?ϸ) - (#x807f ?) - (#x8084 ?) - (#x8085 ?) - (#x8086 ?) - (#x8087 ?ȥ) - (#x8089 ?) - (#x808b ?Ͼ) - (#x808c ?ȩ) - (#x8093 ?) - (#x8096 ?) - (#x8098 ?ɪ) - (#x809a ?) - (#x809b ?) - (#x809d ?) - (#x80a1 ?) - (#x80a2 ?) - (#x80a5 ?) - (#x80a9 ?) - (#x80aa ?) - (#x80ac ?) - (#x80ad ?) - (#x80af ?) - (#x80b1 ?) - (#x80b2 ?) - (#x80b4 ?) - (#x80ba ?) - (#x80c3 ?) - (#x80c4 ?) - (#x80c6 ?) - (#x80cc ?) - (#x80ce ?) - (#x80d6 ?) - (#x80d9 ?) - (#x80da ?) - (#x80db ?) - (#x80dd ?) - (#x80de ?˦) - (#x80e1 ?) - (#x80e4 ?) - (#x80e5 ?) - (#x80ef ?) - (#x80f1 ?) - (#x80f4 ?ƹ) - (#x80f8 ?) - (#x80fc ?) - (#x80fd ?ǽ) - (#x8102 ?) - (#x8105 ?) - (#x8106 ?) - (#x8107 ?) - (#x8108 ?̮) - (#x8109 ?) - (#x810a ?) - (#x811a ?) - (#x811b ?) - (#x8123 ?) - (#x8129 ?) - (#x812f ?) - (#x8131 ?æ) - (#x8133 ?Ǿ) - (#x8139 ?ı) - (#x813e ?) - (#x8146 ?) - (#x814b ?) - (#x814e ?) - (#x8150 ?) - (#x8151 ?) - (#x8153 ?) - (#x8154 ?) - (#x8155 ?) - (#x815f ?) - (#x8165 ?) - (#x8166 ?) - (#x816b ?) - (#x816e ?) - (#x8170 ?) - (#x8171 ?) - (#x8174 ?) - (#x8178 ?IJ) - (#x8179 ?ʢ) - (#x817a ?) - (#x817f ?) - (#x8180 ?) - (#x8182 ?) - (#x8183 ?) - (#x8188 ?) - (#x818a ?) - (#x818f ?) - (#x8193 ?) - (#x8195 ?) - (#x819a ?) - (#x819c ?) - (#x819d ?ɨ) - (#x81a0 ?) - (#x81a3 ?) - (#x81a4 ?) - (#x81a8 ?) - (#x81a9 ?) - (#x81b0 ?) - (#x81b3 ?) - (#x81b5 ?) - (#x81b8 ?) - (#x81ba ?) - (#x81bd ?) - (#x81be ?) - (#x81bf ?ǿ) - (#x81c0 ?) - (#x81c2 ?) - (#x81c6 ?) - (#x81c8 ?) - (#x81c9 ?) - (#x81cd ?) - (#x81d1 ?) - (#x81d3 ?¡) - (#x81d8 ?) - (#x81d9 ?) - (#x81da ?) - (#x81df ?) - (#x81e0 ?) - (#x81e3 ?) - (#x81e5 ?) - (#x81e7 ?) - (#x81e8 ?) - (#x81ea ?) - (#x81ed ?) - (#x81f3 ?) - (#x81f4 ?) - (#x81fa ?) - (#x81fb ?) - (#x81fc ?) - (#x81fe ?) - (#x8201 ?) - (#x8202 ?) - (#x8205 ?) - (#x8207 ?) - (#x8208 ?) - (#x8209 ?ڪ) - (#x820a ?) - (#x820c ?) - (#x820d ?) - (#x820e ?) - (#x8210 ?) - (#x8212 ?а) - (#x8216 ?) - (#x8217 ?) - (#x8218 ?) - (#x821b ?) - (#x821c ?) - (#x821e ?) - (#x821f ?) - (#x8229 ?) - (#x822a ?) - (#x822b ?) - (#x822c ?) - (#x822e ?) - (#x8233 ?) - (#x8235 ?) - (#x8236 ?) - (#x8237 ?) - (#x8238 ?) - (#x8239 ?) - (#x8240 ?) - (#x8247 ?) - (#x8258 ?) - (#x8259 ?) - (#x825a ?) - (#x825d ?) - (#x825f ?) - (#x8262 ?) - (#x8264 ?) - (#x8266 ?) - (#x8268 ?) - (#x826a ?) - (#x826b ?) - (#x826e ?) - (#x826f ?) - (#x8271 ?) - (#x8272 ?) - (#x8276 ?) - (#x8277 ?) - (#x8278 ?) - (#x827e ?) - (#x828b ?) - (#x828d ?) - (#x8292 ?) - (#x8299 ?) - (#x829d ?) - (#x829f ?) - (#x82a5 ?) - (#x82a6 ?) - (#x82ab ?) - (#x82ac ?) - (#x82ad ?) - (#x82af ?) - (#x82b1 ?) - (#x82b3 ?˧) - (#x82b8 ?) - (#x82b9 ?) - (#x82bb ?) - (#x82bd ?) - (#x82c5 ?) - (#x82d1 ?) - (#x82d2 ?) - (#x82d3 ?) - (#x82d4 ?) - (#x82d7 ?) - (#x82d9 ?) - (#x82db ?) - (#x82dc ?) - (#x82de ?) - (#x82df ?) - (#x82e1 ?) - (#x82e3 ?) - (#x82e5 ?) - (#x82e6 ?) - (#x82e7 ?) - (#x82eb ?) - (#x82f1 ?) - (#x82f3 ?) - (#x82f4 ?) - (#x82f9 ?) - (#x82fa ?) - (#x82fb ?) - (#x8302 ?) - (#x8303 ?) - (#x8304 ?) - (#x8305 ?) - (#x8306 ?) - (#x8309 ?) - (#x830e ?) - (#x8316 ?) - (#x8317 ?) - (#x8318 ?) - (#x831c ?) - (#x8323 ?) - (#x8328 ?) - (#x832b ?) - (#x832f ?) - (#x8331 ?) - (#x8332 ?) - (#x8334 ?) - (#x8335 ?) - (#x8336 ?) - (#x8338 ?) - (#x8339 ?) - (#x8340 ?) - (#x8345 ?) - (#x8349 ?) - (#x834a ?) - (#x834f ?) - (#x8350 ?) - (#x8352 ?) - (#x8358 ?) - (#x8373 ?) - (#x8375 ?) - (#x8377 ?) - (#x837b ?) - (#x837c ?) - (#x8385 ?) - (#x8387 ?) - (#x8389 ?) - (#x838a ?) - (#x838e ?) - (#x8393 ?) - (#x8396 ?) - (#x839a ?) - (#x839e ?) - (#x839f ?) - (#x83a0 ?) - (#x83a2 ?) - (#x83a8 ?) - (#x83aa ?) - (#x83ab ?) - (#x83b1 ?) - (#x83b5 ?) - (#x83bd ?) - (#x83c1 ?) - (#x83c5 ?) - (#x83ca ?) - (#x83cc ?) - (#x83ce ?) - (#x83d3 ?) - (#x83d6 ?) - (#x83d8 ?) - (#x83dc ?) - (#x83df ?) - (#x83e0 ?) - (#x83e9 ?) - (#x83eb ?) - (#x83ef ?) - (#x83f0 ?) - (#x83f1 ?ɩ) - (#x83f2 ?) - (#x83f4 ?) - (#x83f7 ?) - (#x83fb ?) - (#x83fd ?) - (#x8403 ?) - (#x8404 ?ƺ) - (#x8407 ?) - (#x840b ?) - (#x840c ?˨) - (#x840d ?) - (#x840e ?) - (#x8413 ?) - (#x8420 ?) - (#x8422 ?) - (#x8429 ?) - (#x842a ?) - (#x842c ?) - (#x8431 ?) - (#x8435 ?) - (#x8438 ?) - (#x843c ?) - (#x843d ?) - (#x8446 ?) - (#x8449 ?) - (#x844e ?Ϊ) - (#x8457 ?) - (#x845b ?) - (#x8461 ?) - (#x8462 ?) - (#x8463 ?ơ) - (#x8466 ?) - (#x8469 ?) - (#x846b ?) - (#x846c ?) - (#x846d ?) - (#x846e ?) - (#x846f ?) - (#x8471 ?Ǭ) - (#x8475 ?) - (#x8477 ?) - (#x8479 ?) - (#x847a ?) - (#x8482 ?) - (#x8484 ?) - (#x848b ?) - (#x8490 ?) - (#x8494 ?) - (#x8499 ?) - (#x849c ?) - (#x849f ?) - (#x84a1 ?) - (#x84ad ?) - (#x84b2 ?) - (#x84b8 ?) - (#x84b9 ?) - (#x84bb ?) - (#x84bc ?) - (#x84bf ?) - (#x84c1 ?) - (#x84c4 ?) - (#x84c6 ?) - (#x84c9 ?) - (#x84ca ?) - (#x84cb ?) - (#x84cd ?) - (#x84d0 ?) - (#x84d1 ?̬) - (#x84d6 ?) - (#x84d9 ?) - (#x84da ?) - (#x84ec ?˩) - (#x84ee ?ϡ) - (#x84f4 ?) - (#x84fc ?) - (#x84ff ?) - (#x8500 ?) - (#x8506 ?) - (#x8511 ?) - (#x8513 ?̢) - (#x8514 ?) - (#x8515 ?) - (#x8517 ?) - (#x8518 ?) - (#x851a ?) - (#x851f ?) - (#x8521 ?) - (#x8526 ?) - (#x852c ?) - (#x852d ?) - (#x8535 ?¢) - (#x853d ?) - (#x8540 ?) - (#x8541 ?) - (#x8543 ?) - (#x8548 ?) - (#x8549 ?) - (#x854a ?) - (#x854b ?) - (#x854e ?) - (#x8555 ?) - (#x8557 ?) - (#x8558 ?) - (#x855a ?) - (#x8563 ?) - (#x8568 ?) - (#x8569 ?Ƣ) - (#x856a ?) - (#x856d ?) - (#x8577 ?) - (#x857e ?) - (#x8580 ?) - (#x8584 ?) - (#x8587 ?) - (#x8588 ?) - (#x858a ?) - (#x8590 ?) - (#x8591 ?) - (#x8594 ?) - (#x8597 ?) - (#x8599 ?) - (#x859b ?) - (#x859c ?) - (#x85a4 ?) - (#x85a6 ?) - (#x85a8 ?) - (#x85a9 ?) - (#x85aa ?) - (#x85ab ?) - (#x85ac ?) - (#x85ae ?) - (#x85af ?) - (#x85b9 ?) - (#x85ba ?) - (#x85c1 ?) - (#x85c9 ?) - (#x85cd ?) - (#x85cf ?) - (#x85d0 ?) - (#x85d5 ?) - (#x85dc ?) - (#x85dd ?) - (#x85e4 ?ƣ) - (#x85e5 ?) - (#x85e9 ?) - (#x85ea ?) - (#x85f7 ?) - (#x85f9 ?) - (#x85fa ?) - (#x85fb ?) - (#x85fe ?) - (#x8602 ?) - (#x8606 ?) - (#x8607 ?) - (#x860a ?) - (#x860b ?) - (#x8613 ?) - (#x8616 ?ݱ) - (#x8617 ?ݢ) - (#x861a ?) - (#x8622 ?) - (#x862d ?) - (#x862f ?) - (#x8630 ?) - (#x863f ?) - (#x864d ?) - (#x864e ?) - (#x8650 ?) - (#x8654 ?) - (#x8655 ?) - (#x865a ?) - (#x865c ?κ) - (#x865e ?) - (#x865f ?) - (#x8667 ?) - (#x866b ?) - (#x8671 ?) - (#x8679 ?) - (#x867b ?) - (#x868a ?) - (#x868b ?) - (#x868c ?) - (#x8693 ?) - (#x8695 ?) - (#x86a3 ?) - (#x86a4 ?) - (#x86a9 ?) - (#x86aa ?) - (#x86ab ?) - (#x86af ?) - (#x86b0 ?) - (#x86b6 ?) - (#x86c4 ?) - (#x86c6 ?) - (#x86c7 ?) - (#x86c9 ?) - (#x86cb ?) - (#x86cd ?) - (#x86ce ?) - (#x86d4 ?) - (#x86d9 ?) - (#x86db ?) - (#x86de ?) - (#x86df ?) - (#x86e4 ?Ⱥ) - (#x86e9 ?) - (#x86ec ?) - (#x86ed ?) - (#x86ee ?) - (#x86ef ?) - (#x86f8 ?) - (#x86f9 ?) - (#x86fb ?) - (#x86fe ?) - (#x8700 ?) - (#x8702 ?˪) - (#x8703 ?) - (#x8706 ?) - (#x8708 ?) - (#x8709 ?) - (#x870a ?) - (#x870d ?) - (#x8711 ?) - (#x8712 ?) - (#x8718 ?) - (#x871a ?) - (#x871c ?̪) - (#x8725 ?) - (#x8729 ?) - (#x8734 ?) - (#x8737 ?) - (#x873b ?) - (#x873f ?) - (#x8749 ?) - (#x874b ?Ϲ) - (#x874c ?) - (#x874e ?) - (#x8753 ?) - (#x8755 ?) - (#x8757 ?) - (#x8759 ?) - (#x875f ?) - (#x8760 ?) - (#x8763 ?) - (#x8766 ?) - (#x8768 ?) - (#x876a ?) - (#x876e ?) - (#x8774 ?) - (#x8776 ?ij) - (#x8778 ?) - (#x877f ?) - (#x8782 ?) - (#x878d ?ͻ) - (#x879f ?) - (#x87a2 ?) - (#x87ab ?) - (#x87af ?) - (#x87b3 ?) - (#x87ba ?) - (#x87bb ?) - (#x87bd ?) - (#x87c0 ?) - (#x87c4 ?) - (#x87c6 ?) - (#x87c7 ?) - (#x87cb ?) - (#x87d0 ?) - (#x87d2 ?) - (#x87e0 ?) - (#x87ef ?) - (#x87f2 ?) - (#x87f6 ?) - (#x87f7 ?) - (#x87f9 ?) - (#x87fb ?) - (#x87fe ?) - (#x8805 ?) - (#x880d ?) - (#x880e ?) - (#x880f ?) - (#x8811 ?) - (#x8815 ?) - (#x8816 ?) - (#x8821 ?) - (#x8822 ?) - (#x8823 ?) - (#x8827 ?) - (#x8831 ?) - (#x8836 ?) - (#x8839 ?) - (#x883b ?) - (#x8840 ?) - (#x8842 ?) - (#x8844 ?) - (#x8846 ?) - (#x884c ?) - (#x884d ?ާ) - (#x8852 ?) - (#x8853 ?) - (#x8857 ?) - (#x8859 ?) - (#x885b ?) - (#x885d ?) - (#x885e ?) - (#x8861 ?) - (#x8862 ?) - (#x8863 ?) - (#x8868 ?ɽ) - (#x886b ?) - (#x8870 ?) - (#x8872 ?) - (#x8875 ?) - (#x8877 ?) - (#x887d ?) - (#x887e ?) - (#x887f ?) - (#x8881 ?) - (#x8882 ?) - (#x8888 ?) - (#x888b ?) - (#x888d ?) - (#x8892 ?) - (#x8896 ?µ) - (#x8897 ?) - (#x8899 ?) - (#x889e ?) - (#x88a2 ?) - (#x88a4 ?) - (#x88ab ?) - (#x88ae ?) - (#x88b0 ?) - (#x88b1 ?) - (#x88b4 ?) - (#x88b5 ?) - (#x88b7 ?) - (#x88bf ?) - (#x88c1 ?) - (#x88c2 ?) - (#x88c3 ?) - (#x88c4 ?) - (#x88c5 ?) - (#x88cf ?) - (#x88d4 ?) - (#x88d5 ?͵) - (#x88d8 ?) - (#x88d9 ?) - (#x88dc ?) - (#x88dd ?) - (#x88df ?) - (#x88e1 ?Σ) - (#x88e8 ?) - (#x88f2 ?) - (#x88f3 ?) - (#x88f4 ?) - (#x88f8 ?) - (#x88f9 ?) - (#x88fc ?) - (#x88fd ?) - (#x88fe ?) - (#x8902 ?) - (#x8904 ?) - (#x8907 ?ʣ) - (#x890a ?) - (#x890c ?) - (#x8910 ?) - (#x8912 ?˫) - (#x8913 ?) - (#x891d ?) - (#x891e ?) - (#x8925 ?) - (#x892a ?) - (#x892b ?) - (#x8936 ?) - (#x8938 ?) - (#x893b ?) - (#x8941 ?) - (#x8943 ?) - (#x8944 ?) - (#x894c ?) - (#x894d ?) - (#x8956 ?) - (#x895e ?) - (#x895f ?) - (#x8960 ?) - (#x8964 ?) - (#x8966 ?) - (#x896a ?) - (#x896d ?) - (#x896f ?) - (#x8972 ?) - (#x8974 ?) - (#x8977 ?) - (#x897e ?) - (#x897f ?) - (#x8981 ?) - (#x8983 ?) - (#x8986 ?ʤ) - (#x8987 ?) - (#x8988 ?) - (#x898a ?) - (#x898b ?) - (#x898f ?) - (#x8993 ?) - (#x8996 ?) - (#x8997 ?) - (#x8998 ?) - (#x899a ?) - (#x89a1 ?) - (#x89a6 ?) - (#x89a7 ?) - (#x89a9 ?) - (#x89aa ?) - (#x89ac ?) - (#x89af ?) - (#x89b2 ?) - (#x89b3 ?) - (#x89ba ?) - (#x89bd ?) - (#x89bf ?) - (#x89c0 ?) - (#x89d2 ?) - (#x89da ?) - (#x89dc ?) - (#x89dd ?) - (#x89e3 ?) - (#x89e6 ?) - (#x89e7 ?) - (#x89f4 ?) - (#x89f8 ?) - (#x8a00 ?) - (#x8a02 ?) - (#x8a03 ?) - (#x8a08 ?) - (#x8a0a ?) - (#x8a0c ?) - (#x8a0e ?Ƥ) - (#x8a10 ?) - (#x8a13 ?) - (#x8a16 ?) - (#x8a17 ?) - (#x8a18 ?) - (#x8a1b ?) - (#x8a1d ?) - (#x8a1f ?) - (#x8a23 ?) - (#x8a25 ?) - (#x8a2a ?ˬ) - (#x8a2d ?) - (#x8a31 ?) - (#x8a33 ?) - (#x8a34 ?) - (#x8a36 ?) - (#x8a3a ?) - (#x8a3b ?) - (#x8a3c ?) - (#x8a41 ?) - (#x8a46 ?) - (#x8a48 ?) - (#x8a50 ?) - (#x8a51 ?) - (#x8a52 ?) - (#x8a54 ?) - (#x8a55 ?ɾ) - (#x8a5b ?) - (#x8a5e ?) - (#x8a60 ?) - (#x8a62 ?) - (#x8a63 ?) - (#x8a66 ?) - (#x8a69 ?) - (#x8a6b ?) - (#x8a6c ?) - (#x8a6d ?) - (#x8a6e ?) - (#x8a70 ?) - (#x8a71 ?) - (#x8a72 ?) - (#x8a73 ?) - (#x8a7c ?) - (#x8a82 ?) - (#x8a84 ?) - (#x8a85 ?) - (#x8a87 ?) - (#x8a89 ?) - (#x8a8c ?) - (#x8a8d ?ǧ) - (#x8a91 ?) - (#x8a93 ?) - (#x8a95 ?) - (#x8a98 ?Ͷ) - (#x8a9a ?) - (#x8a9e ?) - (#x8aa0 ?) - (#x8aa1 ?) - (#x8aa3 ?) - (#x8aa4 ?) - (#x8aa5 ?) - (#x8aa6 ?) - (#x8aa8 ?) - (#x8aac ?) - (#x8aad ?) - (#x8ab0 ?ï) - (#x8ab2 ?) - (#x8ab9 ?) - (#x8abc ?) - (#x8abf ?Ĵ) - (#x8ac2 ?) - (#x8ac4 ?) - (#x8ac7 ?) - (#x8acb ?) - (#x8acc ?) - (#x8acd ?) - (#x8acf ?) - (#x8ad2 ?) - (#x8ad6 ?) - (#x8ada ?) - (#x8adb ?) - (#x8adc ?ĵ) - (#x8ade ?) - (#x8ae0 ?) - (#x8ae1 ?) - (#x8ae2 ?) - (#x8ae4 ?) - (#x8ae6 ?) - (#x8ae7 ?) - (#x8aeb ?) - (#x8aed ?͡) - (#x8aee ?) - (#x8af1 ?) - (#x8af3 ?) - (#x8af7 ?) - (#x8af8 ?) - (#x8afa ?) - (#x8afe ?) - (#x8b00 ?) - (#x8b01 ?) - (#x8b02 ?) - (#x8b04 ?ƥ) - (#x8b07 ?) - (#x8b0c ?) - (#x8b0e ?) - (#x8b10 ?) - (#x8b14 ?) - (#x8b16 ?) - (#x8b17 ?) - (#x8b19 ?) - (#x8b1a ?) - (#x8b1b ?) - (#x8b1d ?) - (#x8b20 ?) - (#x8b21 ?) - (#x8b26 ?) - (#x8b28 ?) - (#x8b2b ?) - (#x8b2c ?ɵ) - (#x8b33 ?) - (#x8b39 ?) - (#x8b3e ?) - (#x8b41 ?) - (#x8b49 ?) - (#x8b4c ?) - (#x8b4e ?) - (#x8b4f ?) - (#x8b56 ?) - (#x8b58 ?) - (#x8b5a ?) - (#x8b5b ?) - (#x8b5c ?) - (#x8b5f ?) - (#x8b66 ?) - (#x8b6b ?) - (#x8b6c ?) - (#x8b6f ?) - (#x8b70 ?) - (#x8b71 ?) - (#x8b72 ?) - (#x8b74 ?) - (#x8b77 ?) - (#x8b7d ?) - (#x8b80 ?) - (#x8b83 ?) - (#x8b8a ?) - (#x8b8c ?) - (#x8b8e ?) - (#x8b90 ?) - (#x8b92 ?) - (#x8b93 ?) - (#x8b96 ?) - (#x8b99 ?) - (#x8b9a ?) - (#x8c37 ?ë) - (#x8c3a ?) - (#x8c3f ?) - (#x8c41 ?) - (#x8c46 ?Ʀ) - (#x8c48 ?) - (#x8c4a ?˭) - (#x8c4c ?) - (#x8c4e ?) - (#x8c50 ?) - (#x8c55 ?) - (#x8c5a ?) - (#x8c61 ?) - (#x8c62 ?) - (#x8c6a ?) - (#x8c6b ?Ю) - (#x8c6c ?) - (#x8c78 ?) - (#x8c79 ?ɿ) - (#x8c7a ?) - (#x8c7c ?) - (#x8c82 ?) - (#x8c85 ?) - (#x8c89 ?) - (#x8c8a ?) - (#x8c8c ?) - (#x8c8d ?) - (#x8c8e ?) - (#x8c94 ?) - (#x8c98 ?) - (#x8c9d ?) - (#x8c9e ?) - (#x8ca0 ?) - (#x8ca1 ?) - (#x8ca2 ?) - (#x8ca7 ?) - (#x8ca8 ?) - (#x8ca9 ?) - (#x8caa ?) - (#x8cab ?) - (#x8cac ?) - (#x8cad ?) - (#x8cae ?) - (#x8caf ?) - (#x8cb0 ?) - (#x8cb2 ?) - (#x8cb3 ?) - (#x8cb4 ?) - (#x8cb6 ?) - (#x8cb7 ?) - (#x8cb8 ?) - (#x8cbb ?) - (#x8cbc ?Ž) - (#x8cbd ?) - (#x8cbf ?) - (#x8cc0 ?) - (#x8cc1 ?) - (#x8cc2 ?Ϩ) - (#x8cc3 ?) - (#x8cc4 ?) - (#x8cc7 ?) - (#x8cc8 ?) - (#x8cca ?±) - (#x8ccd ?) - (#x8cce ?) - (#x8cd1 ?) - (#x8cd3 ?) - (#x8cda ?) - (#x8cdb ?) - (#x8cdc ?) - (#x8cde ?) - (#x8ce0 ?) - (#x8ce2 ?) - (#x8ce3 ?) - (#x8ce4 ?) - (#x8ce6 ?) - (#x8cea ?) - (#x8ced ?) - (#x8cfa ?) - (#x8cfb ?) - (#x8cfc ?) - (#x8cfd ?) - (#x8d04 ?) - (#x8d05 ?) - (#x8d07 ?) - (#x8d08 ?£) - (#x8d0a ?) - (#x8d0b ?) - (#x8d0d ?) - (#x8d0f ?) - (#x8d10 ?) - (#x8d13 ?) - (#x8d14 ?) - (#x8d16 ?) - (#x8d64 ?) - (#x8d66 ?) - (#x8d67 ?) - (#x8d6b ?) - (#x8d6d ?) - (#x8d70 ?) - (#x8d71 ?) - (#x8d73 ?) - (#x8d74 ?) - (#x8d77 ?) - (#x8d81 ?) - (#x8d85 ?Ķ) - (#x8d8a ?) - (#x8d99 ?) - (#x8da3 ?) - (#x8da8 ?) - (#x8db3 ?) - (#x8dba ?) - (#x8dbe ?) - (#x8dc2 ?) - (#x8dcb ?) - (#x8dcc ?) - (#x8dcf ?) - (#x8dd6 ?) - (#x8dda ?) - (#x8ddb ?) - (#x8ddd ?) - (#x8ddf ?) - (#x8de1 ?) - (#x8de3 ?) - (#x8de8 ?) - (#x8dea ?) - (#x8deb ?) - (#x8def ?ϩ) - (#x8df3 ?ķ) - (#x8df5 ?) - (#x8dfc ?) - (#x8dff ?) - (#x8e08 ?) - (#x8e09 ?) - (#x8e0a ?) - (#x8e0f ?Ƨ) - (#x8e10 ?) - (#x8e1d ?) - (#x8e1e ?) - (#x8e1f ?) - (#x8e2a ?) - (#x8e30 ?) - (#x8e34 ?) - (#x8e35 ?) - (#x8e42 ?) - (#x8e44 ?) - (#x8e47 ?) - (#x8e48 ?) - (#x8e49 ?) - (#x8e4a ?) - (#x8e4c ?) - (#x8e50 ?) - (#x8e55 ?) - (#x8e59 ?) - (#x8e5f ?) - (#x8e60 ?) - (#x8e63 ?) - (#x8e64 ?) - (#x8e72 ?) - (#x8e74 ?) - (#x8e76 ?) - (#x8e7c ?) - (#x8e81 ?) - (#x8e84 ?) - (#x8e85 ?) - (#x8e87 ?) - (#x8e8a ?) - (#x8e8b ?) - (#x8e8d ?) - (#x8e91 ?) - (#x8e93 ?) - (#x8e94 ?) - (#x8e99 ?) - (#x8ea1 ?) - (#x8eaa ?) - (#x8eab ?) - (#x8eac ?) - (#x8eaf ?) - (#x8eb0 ?) - (#x8eb1 ?) - (#x8ebe ?) - (#x8ec5 ?) - (#x8ec6 ?) - (#x8ec8 ?) - (#x8eca ?) - (#x8ecb ?) - (#x8ecc ?) - (#x8ecd ?) - (#x8ed2 ?) - (#x8edb ?) - (#x8edf ?) - (#x8ee2 ?ž) - (#x8ee3 ?) - (#x8eeb ?) - (#x8ef8 ?) - (#x8efb ?) - (#x8efc ?) - (#x8efd ?) - (#x8efe ?) - (#x8f03 ?) - (#x8f05 ?) - (#x8f09 ?) - (#x8f0a ?) - (#x8f0c ?) - (#x8f12 ?) - (#x8f13 ?) - (#x8f14 ?) - (#x8f15 ?) - (#x8f19 ?) - (#x8f1b ?) - (#x8f1c ?) - (#x8f1d ?) - (#x8f1f ?) - (#x8f26 ?) - (#x8f29 ?) - (#x8f2a ?) - (#x8f2f ?) - (#x8f33 ?) - (#x8f38 ?͢) - (#x8f39 ?) - (#x8f3b ?) - (#x8f3e ?) - (#x8f3f ?) - (#x8f42 ?) - (#x8f44 ?) - (#x8f45 ?) - (#x8f46 ?) - (#x8f49 ?) - (#x8f4c ?) - (#x8f4d ?Ų) - (#x8f4e ?) - (#x8f57 ?) - (#x8f5c ?) - (#x8f5f ?) - (#x8f61 ?) - (#x8f62 ?) - (#x8f63 ?) - (#x8f64 ?) - (#x8f9b ?) - (#x8f9c ?) - (#x8f9e ?) - (#x8f9f ?) - (#x8fa3 ?) - (#x8fa7 ?ҡ) - (#x8fa8 ?) - (#x8fad ?) - (#x8fae ?) - (#x8faf ?) - (#x8fb0 ?ä) - (#x8fb1 ?) - (#x8fb2 ?) - (#x8fb7 ?) - (#x8fba ?) - (#x8fbb ?) - (#x8fbc ?) - (#x8fbf ?é) - (#x8fc2 ?) - (#x8fc4 ?) - (#x8fc5 ?) - (#x8fce ?) - (#x8fd1 ?) - (#x8fd4 ?) - (#x8fda ?) - (#x8fe2 ?) - (#x8fe5 ?) - (#x8fe6 ?) - (#x8fe9 ?) - (#x8fea ?) - (#x8feb ?) - (#x8fed ?ų) - (#x8fef ?) - (#x8ff0 ?) - (#x8ff4 ?) - (#x8ff7 ?) - (#x8ff8 ?) - (#x8ff9 ?) - (#x8ffa ?) - (#x8ffd ?) - (#x9000 ?) - (#x9001 ?) - (#x9003 ?ƨ) - (#x9005 ?) - (#x9006 ?) - (#x900b ?) - (#x900d ?) - (#x900e ?) - (#x900f ?Ʃ) - (#x9010 ?) - (#x9011 ?) - (#x9013 ?) - (#x9014 ?) - (#x9015 ?) - (#x9016 ?) - (#x9017 ?) - (#x9019 ?) - (#x901a ?) - (#x901d ?) - (#x901e ?) - (#x901f ?®) - (#x9020 ?¤) - (#x9021 ?) - (#x9022 ?) - (#x9023 ?Ϣ) - (#x9027 ?) - (#x902e ?) - (#x9031 ?) - (#x9032 ?) - (#x9035 ?) - (#x9036 ?) - (#x9038 ?) - (#x9039 ?) - (#x903c ?ɯ) - (#x903e ?) - (#x9041 ?) - (#x9042 ?) - (#x9045 ?) - (#x9047 ?) - (#x9049 ?) - (#x904a ?ͷ) - (#x904b ?) - (#x904d ?) - (#x904e ?) - (#x904f ?) - (#x9050 ?) - (#x9051 ?) - (#x9052 ?) - (#x9053 ?ƻ) - (#x9054 ?ã) - (#x9055 ?) - (#x9056 ?) - (#x9058 ?) - (#x9059 ?) - (#x905c ?½) - (#x905e ?) - (#x9060 ?) - (#x9061 ?) - (#x9063 ?) - (#x9065 ?) - (#x9068 ?) - (#x9069 ?Ŭ) - (#x906d ?) - (#x906e ?) - (#x906f ?) - (#x9072 ?) - (#x9075 ?) - (#x9076 ?) - (#x9077 ?) - (#x9078 ?) - (#x907a ?) - (#x907c ?) - (#x907d ?) - (#x907f ?) - (#x9080 ?) - (#x9081 ?) - (#x9082 ?) - (#x9083 ?) - (#x9084 ?) - (#x9087 ?) - (#x9089 ?) - (#x908a ?) - (#x908f ?) - (#x9091 ?) - (#x90a3 ?) - (#x90a6 ?ˮ) - (#x90a8 ?) - (#x90aa ?) - (#x90af ?) - (#x90b1 ?) - (#x90b5 ?) - (#x90b8 ?š) - (#x90c1 ?) - (#x90ca ?) - (#x90ce ?Ϻ) - (#x90db ?) - (#x90e1 ?) - (#x90e2 ?) - (#x90e4 ?) - (#x90e8 ?) - (#x90ed ?) - (#x90f5 ?) - (#x90f7 ?) - (#x90fd ?) - (#x9102 ?) - (#x9112 ?) - (#x9119 ?) - (#x912d ?Ţ) - (#x9130 ?) - (#x9132 ?) - (#x9149 ?) - (#x914a ?) - (#x914b ?) - (#x914c ?) - (#x914d ?) - (#x914e ?) - (#x9152 ?) - (#x9154 ?) - (#x9156 ?) - (#x9158 ?) - (#x9162 ?) - (#x9163 ?) - (#x9165 ?) - (#x9169 ?) - (#x916a ?) - (#x916c ?) - (#x9172 ?) - (#x9173 ?) - (#x9175 ?) - (#x9177 ?) - (#x9178 ?) - (#x9182 ?) - (#x9187 ?) - (#x9189 ?) - (#x918b ?) - (#x918d ?) - (#x9190 ?) - (#x9192 ?) - (#x9197 ?Ȱ) - (#x919c ?) - (#x91a2 ?) - (#x91a4 ?) - (#x91aa ?) - (#x91ab ?) - (#x91af ?) - (#x91b4 ?) - (#x91b5 ?) - (#x91b8 ?) - (#x91ba ?) - (#x91c0 ?) - (#x91c1 ?) - (#x91c6 ?) - (#x91c7 ?) - (#x91c8 ?) - (#x91c9 ?) - (#x91cb ?) - (#x91cc ?Τ) - (#x91cd ?) - (#x91ce ?) - (#x91cf ?) - (#x91d0 ?) - (#x91d1 ?) - (#x91d6 ?) - (#x91d8 ?ţ) - (#x91db ?) - (#x91dc ?) - (#x91dd ?) - (#x91df ?) - (#x91e1 ?) - (#x91e3 ?) - (#x91e6 ?) - (#x91e7 ?) - (#x91f5 ?) - (#x91f6 ?) - (#x91fc ?) - (#x91ff ?) - (#x920d ?) - (#x920e ?) - (#x9211 ?) - (#x9214 ?) - (#x9215 ?) - (#x921e ?) - (#x9229 ?) - (#x922c ?) - (#x9234 ?) - (#x9237 ?) - (#x923f ?) - (#x9244 ?Ŵ) - (#x9245 ?) - (#x9248 ?) - (#x9249 ?) - (#x924b ?) - (#x9250 ?) - (#x9257 ?) - (#x925a ?) - (#x925b ?) - (#x925e ?) - (#x9262 ?ȭ) - (#x9264 ?) - (#x9266 ?) - (#x9271 ?) - (#x927e ?) - (#x9280 ?) - (#x9283 ?) - (#x9285 ?Ƽ) - (#x9291 ?) - (#x9293 ?) - (#x9295 ?) - (#x9296 ?) - (#x9298 ?) - (#x929a ?ĸ) - (#x929b ?) - (#x929c ?) - (#x92ad ?) - (#x92b7 ?) - (#x92b9 ?) - (#x92cf ?) - (#x92d2 ?˯) - (#x92e4 ?) - (#x92e9 ?) - (#x92ea ?) - (#x92ed ?) - (#x92f2 ?) - (#x92f3 ?) - (#x92f8 ?) - (#x92fa ?) - (#x92fc ?) - (#x9306 ?) - (#x930f ?) - (#x9310 ?) - (#x9318 ?) - (#x9319 ?) - (#x931a ?) - (#x9320 ?) - (#x9322 ?) - (#x9323 ?) - (#x9326 ?) - (#x9328 ?) - (#x932b ?) - (#x932c ?ϣ) - (#x932e ?) - (#x932f ?) - (#x9332 ?Ͽ) - (#x9335 ?) - (#x933a ?) - (#x933b ?) - (#x9344 ?) - (#x934b ?) - (#x934d ?) - (#x9354 ?) - (#x9356 ?) - (#x935b ?) - (#x935c ?) - (#x9360 ?) - (#x936c ?) - (#x936e ?) - (#x9375 ?) - (#x937c ?) - (#x937e ?) - (#x938c ?) - (#x9394 ?) - (#x9396 ?) - (#x9397 ?) - (#x939a ?) - (#x93a7 ?) - (#x93ac ?) - (#x93ad ?) - (#x93ae ?) - (#x93b0 ?) - (#x93b9 ?) - (#x93c3 ?) - (#x93c8 ?) - (#x93d0 ?) - (#x93d1 ?ŭ) - (#x93d6 ?) - (#x93d7 ?) - (#x93d8 ?) - (#x93dd ?) - (#x93e1 ?) - (#x93e4 ?) - (#x93e5 ?) - (#x93e8 ?) - (#x9403 ?) - (#x9407 ?) - (#x9410 ?) - (#x9413 ?) - (#x9414 ?) - (#x9418 ?) - (#x9419 ?ƪ) - (#x941a ?) - (#x9421 ?) - (#x942b ?) - (#x9435 ?) - (#x9436 ?) - (#x9438 ?) - (#x943a ?) - (#x9441 ?) - (#x9444 ?) - (#x9451 ?) - (#x9452 ?) - (#x9453 ?) - (#x945a ?) - (#x945b ?) - (#x945e ?) - (#x9460 ?) - (#x9462 ?) - (#x946a ?) - (#x9470 ?) - (#x9475 ?) - (#x9477 ?) - (#x947c ?) - (#x947d ?) - (#x947e ?) - (#x947f ?) - (#x9481 ?) - (#x9577 ?Ĺ) - (#x9580 ?) - (#x9582 ?) - (#x9583 ?) - (#x9587 ?) - (#x9589 ?) - (#x958a ?) - (#x958b ?) - (#x958f ?) - (#x9591 ?) - (#x9593 ?) - (#x9594 ?) - (#x9596 ?) - (#x9598 ?) - (#x9599 ?) - (#x95a0 ?) - (#x95a2 ?) - (#x95a3 ?) - (#x95a4 ?) - (#x95a5 ?ȶ) - (#x95a7 ?) - (#x95a8 ?) - (#x95ad ?) - (#x95b2 ?) - (#x95b9 ?) - (#x95bb ?) - (#x95bc ?) - (#x95be ?) - (#x95c3 ?) - (#x95c7 ?) - (#x95ca ?) - (#x95cc ?) - (#x95cd ?) - (#x95d4 ?) - (#x95d5 ?) - (#x95d6 ?) - (#x95d8 ?Ʈ) - (#x95dc ?) - (#x95e1 ?) - (#x95e2 ?) - (#x95e5 ?) - (#x961c ?) - (#x9621 ?) - (#x9628 ?) - (#x962a ?) - (#x962e ?) - (#x962f ?) - (#x9632 ?) - (#x963b ?) - (#x963f ?) - (#x9640 ?) - (#x9642 ?) - (#x9644 ?) - (#x964b ?) - (#x964c ?) - (#x964d ?) - (#x964f ?) - (#x9650 ?) - (#x965b ?) - (#x965c ?) - (#x965d ?) - (#x965e ?) - (#x965f ?) - (#x9662 ?) - (#x9663 ?) - (#x9664 ?) - (#x9665 ?) - (#x9666 ?) - (#x966a ?) - (#x966c ?) - (#x9670 ?) - (#x9672 ?) - (#x9673 ?) - (#x9675 ?) - (#x9676 ?ƫ) - (#x9677 ?) - (#x9678 ?Φ) - (#x967a ?) - (#x967d ?) - (#x9685 ?) - (#x9686 ?δ) - (#x9688 ?) - (#x968a ?) - (#x968b ?) - (#x968d ?) - (#x968e ?) - (#x968f ?) - (#x9694 ?) - (#x9695 ?) - (#x9697 ?) - (#x9698 ?) - (#x9699 ?) - (#x969b ?) - (#x969c ?) - (#x96a0 ?) - (#x96a3 ?) - (#x96a7 ?) - (#x96a8 ?) - (#x96aa ?) - (#x96b0 ?) - (#x96b1 ?) - (#x96b2 ?) - (#x96b4 ?) - (#x96b6 ?) - (#x96b7 ?) - (#x96b8 ?) - (#x96b9 ?) - (#x96bb ?) - (#x96bc ?Ȼ) - (#x96c0 ?) - (#x96c1 ?) - (#x96c4 ?ͺ) - (#x96c5 ?) - (#x96c6 ?) - (#x96c7 ?) - (#x96c9 ?) - (#x96cb ?) - (#x96cc ?) - (#x96cd ?) - (#x96ce ?) - (#x96d1 ?) - (#x96d5 ?) - (#x96d6 ?) - (#x96d9 ?) - (#x96db ?) - (#x96dc ?) - (#x96e2 ?Υ) - (#x96e3 ?) - (#x96e8 ?) - (#x96ea ?) - (#x96eb ?) - (#x96f0 ?ʷ) - (#x96f2 ?) - (#x96f6 ?) - (#x96f7 ?) - (#x96f9 ?) - (#x96fb ?) - (#x9700 ?) - (#x9704 ?) - (#x9706 ?) - (#x9707 ?) - (#x9708 ?) - (#x970a ?) - (#x970d ?) - (#x970e ?) - (#x970f ?) - (#x9711 ?) - (#x9713 ?) - (#x9716 ?) - (#x9719 ?) - (#x971c ?) - (#x971e ?) - (#x9724 ?) - (#x9727 ?̸) - (#x972a ?) - (#x9730 ?) - (#x9732 ?Ϫ) - (#x9738 ?۱) - (#x9739 ?) - (#x973d ?) - (#x973e ?) - (#x9742 ?) - (#x9744 ?) - (#x9746 ?) - (#x9748 ?) - (#x9749 ?) - (#x9752 ?) - (#x9756 ?) - (#x9759 ?) - (#x975c ?) - (#x975e ?) - (#x9760 ?) - (#x9761 ?) - (#x9762 ?) - (#x9764 ?) - (#x9766 ?) - (#x9768 ?) - (#x9769 ?) - (#x976b ?) - (#x976d ?) - (#x9771 ?) - (#x9774 ?) - (#x9779 ?) - (#x977a ?) - (#x977c ?) - (#x9781 ?) - (#x9784 ?) - (#x9785 ?) - (#x9786 ?) - (#x978b ?) - (#x978d ?) - (#x978f ?) - (#x9790 ?) - (#x9798 ?) - (#x979c ?) - (#x97a0 ?) - (#x97a3 ?) - (#x97a6 ?) - (#x97a8 ?) - (#x97ab ?) - (#x97ad ?) - (#x97b3 ?) - (#x97b4 ?) - (#x97c3 ?) - (#x97c6 ?) - (#x97c8 ?) - (#x97cb ?) - (#x97d3 ?) - (#x97dc ?) - (#x97ed ?) - (#x97ee ?ǣ) - (#x97f2 ?) - (#x97f3 ?) - (#x97f5 ?) - (#x97f6 ?) - (#x97fb ?) - (#x97ff ?) - (#x9801 ?) - (#x9802 ?ĺ) - (#x9803 ?) - (#x9805 ?) - (#x9806 ?) - (#x9808 ?) - (#x980c ?) - (#x980f ?) - (#x9810 ?) - (#x9811 ?) - (#x9812 ?) - (#x9813 ?) - (#x9817 ?) - (#x9818 ?) - (#x981a ?) - (#x9821 ?) - (#x9824 ?) - (#x982c ?) - (#x982d ?Ƭ) - (#x9834 ?) - (#x9837 ?) - (#x9838 ?) - (#x983b ?) - (#x983c ?) - (#x983d ?) - (#x9846 ?) - (#x984b ?) - (#x984c ?) - (#x984d ?) - (#x984e ?) - (#x984f ?) - (#x9854 ?) - (#x9855 ?) - (#x9858 ?) - (#x985b ?ſ) - (#x985e ?) - (#x9867 ?) - (#x986b ?) - (#x986f ?) - (#x9870 ?) - (#x9871 ?) - (#x9873 ?) - (#x9874 ?) - (#x98a8 ?) - (#x98aa ?) - (#x98af ?) - (#x98b1 ?) - (#x98b6 ?) - (#x98c3 ?) - (#x98c4 ?) - (#x98c6 ?) - (#x98db ?) - (#x98dc ?) - (#x98df ?) - (#x98e2 ?) - (#x98e9 ?) - (#x98eb ?) - (#x98ed ?Ҭ) - (#x98ee ?ݻ) - (#x98ef ?) - (#x98f2 ?) - (#x98f4 ?) - (#x98fc ?) - (#x98fd ?˰) - (#x98fe ?) - (#x9903 ?) - (#x9905 ?) - (#x9909 ?) - (#x990a ?) - (#x990c ?) - (#x9910 ?) - (#x9912 ?) - (#x9913 ?) - (#x9914 ?) - (#x9918 ?) - (#x991d ?) - (#x991e ?) - (#x9920 ?) - (#x9921 ?) - (#x9924 ?) - (#x9928 ?) - (#x992c ?) - (#x992e ?) - (#x993d ?) - (#x993e ?) - (#x9942 ?) - (#x9945 ?) - (#x9949 ?) - (#x994b ?) - (#x994c ?) - (#x9950 ?) - (#x9951 ?) - (#x9952 ?) - (#x9955 ?) - (#x9957 ?) - (#x9996 ?) - (#x9997 ?) - (#x9998 ?) - (#x9999 ?) - (#x99a5 ?) - (#x99a8 ?) - (#x99ac ?) - (#x99ad ?) - (#x99ae ?) - (#x99b3 ?) - (#x99b4 ?) - (#x99bc ?) - (#x99c1 ?) - (#x99c4 ?) - (#x99c5 ?) - (#x99c6 ?) - (#x99c8 ?) - (#x99d0 ?) - (#x99d1 ?) - (#x99d2 ?) - (#x99d5 ?) - (#x99d8 ?) - (#x99db ?) - (#x99dd ?) - (#x99df ?) - (#x99e2 ?) - (#x99ed ?) - (#x99ee ?) - (#x99f1 ?) - (#x99f2 ?) - (#x99f8 ?) - (#x99fb ?) - (#x99ff ?) - (#x9a01 ?) - (#x9a05 ?) - (#x9a0e ?) - (#x9a0f ?) - (#x9a12 ?) - (#x9a13 ?) - (#x9a19 ?) - (#x9a28 ?) - (#x9a2b ?) - (#x9a30 ?ƭ) - (#x9a37 ?) - (#x9a3e ?) - (#x9a40 ?) - (#x9a42 ?) - (#x9a43 ?) - (#x9a45 ?) - (#x9a4d ?) - (#x9a55 ?) - (#x9a57 ?) - (#x9a5a ?) - (#x9a5b ?) - (#x9a5f ?) - (#x9a62 ?) - (#x9a64 ?) - (#x9a65 ?) - (#x9a69 ?) - (#x9a6a ?) - (#x9a6b ?) - (#x9aa8 ?) - (#x9aad ?) - (#x9ab0 ?) - (#x9ab8 ?) - (#x9abc ?) - (#x9ac0 ?) - (#x9ac4 ?) - (#x9acf ?) - (#x9ad1 ?) - (#x9ad3 ?) - (#x9ad4 ?) - (#x9ad8 ?) - (#x9ade ?) - (#x9adf ?) - (#x9ae2 ?) - (#x9ae3 ?) - (#x9ae6 ?) - (#x9aea ?ȱ) - (#x9aeb ?) - (#x9aed ?ɦ) - (#x9aee ?) - (#x9aef ?) - (#x9af1 ?) - (#x9af4 ?) - (#x9af7 ?) - (#x9afb ?) - (#x9b06 ?) - (#x9b18 ?) - (#x9b1a ?) - (#x9b1f ?) - (#x9b22 ?) - (#x9b23 ?) - (#x9b25 ?) - (#x9b27 ?) - (#x9b28 ?) - (#x9b29 ?) - (#x9b2a ?) - (#x9b2e ?) - (#x9b2f ?) - (#x9b31 ?ݵ) - (#x9b32 ?) - (#x9b3b ?) - (#x9b3c ?) - (#x9b41 ?) - (#x9b42 ?) - (#x9b43 ?) - (#x9b44 ?) - (#x9b45 ?̥) - (#x9b4d ?) - (#x9b4e ?) - (#x9b4f ?) - (#x9b51 ?) - (#x9b54 ?) - (#x9b58 ?) - (#x9b5a ?) - (#x9b6f ?ϥ) - (#x9b74 ?) - (#x9b83 ?) - (#x9b8e ?) - (#x9b91 ?) - (#x9b92 ?ʫ) - (#x9b93 ?) - (#x9b96 ?) - (#x9b97 ?) - (#x9b9f ?) - (#x9ba0 ?) - (#x9ba8 ?) - (#x9baa ?) - (#x9bab ?) - (#x9bad ?) - (#x9bae ?) - (#x9bb4 ?) - (#x9bb9 ?) - (#x9bc0 ?) - (#x9bc6 ?) - (#x9bc9 ?) - (#x9bca ?) - (#x9bcf ?) - (#x9bd1 ?) - (#x9bd2 ?) - (#x9bd4 ?) - (#x9bd6 ?) - (#x9bdb ?) - (#x9be1 ?) - (#x9be2 ?) - (#x9be3 ?) - (#x9be4 ?) - (#x9be8 ?) - (#x9bf0 ?) - (#x9bf1 ?) - (#x9bf2 ?) - (#x9bf5 ?) - (#x9c04 ?) - (#x9c06 ?) - (#x9c08 ?) - (#x9c09 ?) - (#x9c0a ?) - (#x9c0c ?) - (#x9c0d ?) - (#x9c10 ?) - (#x9c12 ?) - (#x9c13 ?) - (#x9c14 ?) - (#x9c15 ?) - (#x9c1b ?) - (#x9c21 ?) - (#x9c24 ?) - (#x9c25 ?) - (#x9c2d ?) - (#x9c2e ?) - (#x9c2f ?) - (#x9c30 ?) - (#x9c32 ?) - (#x9c39 ?) - (#x9c3a ?) - (#x9c3b ?) - (#x9c3e ?) - (#x9c46 ?) - (#x9c47 ?) - (#x9c48 ?í) - (#x9c52 ?) - (#x9c57 ?) - (#x9c5a ?) - (#x9c60 ?) - (#x9c67 ?) - (#x9c76 ?) - (#x9c78 ?) - (#x9ce5 ?Ļ) - (#x9ce7 ?) - (#x9ce9 ?ȷ) - (#x9ceb ?) - (#x9cec ?) - (#x9cf0 ?) - (#x9cf3 ?˱) - (#x9cf4 ?) - (#x9cf6 ?) - (#x9d03 ?) - (#x9d06 ?) - (#x9d07 ?ƾ) - (#x9d08 ?) - (#x9d09 ?) - (#x9d0e ?) - (#x9d12 ?) - (#x9d15 ?) - (#x9d1b ?) - (#x9d1f ?) - (#x9d23 ?) - (#x9d26 ?) - (#x9d28 ?) - (#x9d2a ?) - (#x9d2b ?) - (#x9d2c ?) - (#x9d3b ?) - (#x9d3e ?) - (#x9d3f ?) - (#x9d41 ?) - (#x9d44 ?) - (#x9d46 ?) - (#x9d48 ?) - (#x9d50 ?) - (#x9d51 ?) - (#x9d59 ?) - (#x9d5c ?) - (#x9d5d ?) - (#x9d5e ?) - (#x9d60 ?) - (#x9d61 ?̹) - (#x9d64 ?) - (#x9d6c ?˲) - (#x9d6f ?) - (#x9d72 ?) - (#x9d7a ?) - (#x9d87 ?) - (#x9d89 ?) - (#x9d8f ?) - (#x9d9a ?) - (#x9da4 ?) - (#x9da9 ?) - (#x9dab ?) - (#x9daf ?) - (#x9db2 ?) - (#x9db4 ?) - (#x9db8 ?) - (#x9dba ?) - (#x9dbb ?) - (#x9dc1 ?) - (#x9dc2 ?) - (#x9dc4 ?) - (#x9dc6 ?) - (#x9dcf ?) - (#x9dd3 ?) - (#x9dd9 ?) - (#x9de6 ?) - (#x9ded ?) - (#x9def ?) - (#x9df2 ?) - (#x9df8 ?) - (#x9df9 ?) - (#x9dfa ?) - (#x9dfd ?) - (#x9e1a ?) - (#x9e1b ?) - (#x9e1e ?) - (#x9e75 ?) - (#x9e78 ?) - (#x9e79 ?) - (#x9e7d ?) - (#x9e7f ?) - (#x9e81 ?) - (#x9e88 ?) - (#x9e8b ?) - (#x9e8c ?) - (#x9e91 ?) - (#x9e92 ?) - (#x9e93 ?ϼ) - (#x9e95 ?) - (#x9e97 ?) - (#x9e9d ?) - (#x9e9f ?) - (#x9ea5 ?) - (#x9ea6 ?) - (#x9ea9 ?) - (#x9eaa ?) - (#x9ead ?) - (#x9eb8 ?) - (#x9eb9 ?) - (#x9eba ?) - (#x9ebb ?) - (#x9ebc ?) - (#x9ebe ?) - (#x9ebf ?) - (#x9ec4 ?) - (#x9ecc ?) - (#x9ecd ?) - (#x9ece ?) - (#x9ecf ?) - (#x9ed0 ?) - (#x9ed2 ?) - (#x9ed4 ?) - (#x9ed8 ?) - (#x9ed9 ?) - (#x9edb ?) - (#x9edc ?) - (#x9edd ?) - (#x9ede ?) - (#x9ee0 ?) - (#x9ee5 ?) - (#x9ee8 ?) - (#x9eef ?) - (#x9ef4 ?) - (#x9ef6 ?) - (#x9ef7 ?) - (#x9ef9 ?) - (#x9efb ?) - (#x9efc ?) - (#x9efd ?) - (#x9f07 ?) - (#x9f08 ?) - (#x9f0e ?Ť) - (#x9f13 ?) - (#x9f15 ?) - (#x9f20 ?) - (#x9f21 ?) - (#x9f2c ?) - (#x9f3b ?ɡ) - (#x9f3e ?) - (#x9f4a ?) - (#x9f4b ?) - (#x9f4e ?) - (#x9f4f ?) - (#x9f52 ?) - (#x9f54 ?) - (#x9f5f ?) - (#x9f60 ?) - (#x9f61 ?) - (#x9f62 ?) - (#x9f63 ?) - (#x9f66 ?) - (#x9f67 ?) - (#x9f6a ?) - (#x9f6c ?) - (#x9f72 ?) - (#x9f76 ?) - (#x9f77 ?) - (#x9f8d ?ζ) - (#x9f95 ?) - (#x9f9c ?) - (#x9f9d ?) - (#x9fa0 ?) - (#xff01 ?) - (#xff03 ?) - (#xff04 ?) - (#xff05 ?) - (#xff06 ?) - (#xff08 ?\) - (#xff09 ?\) - (#xff0a ?) - (#xff0b ?) - (#xff0c ?) - (#xff0e ?) - (#xff0f ?) - (#xff10 ?) - (#xff11 ?) - (#xff12 ?) - (#xff13 ?) - (#xff14 ?) - (#xff15 ?) - (#xff16 ?) - (#xff17 ?) - (#xff18 ?) - (#xff19 ?) - (#xff1a ?) - (#xff1b ?) - (#xff1c ?) - (#xff1d ?) - (#xff1e ?) - (#xff1f ?) - (#xff20 ?) - (#xff21 ?) - (#xff22 ?) - (#xff23 ?) - (#xff24 ?) - (#xff25 ?) - (#xff26 ?) - (#xff27 ?) - (#xff28 ?) - (#xff29 ?) - (#xff2a ?) - (#xff2b ?) - (#xff2c ?) - (#xff2d ?) - (#xff2e ?) - (#xff2f ?) - (#xff30 ?) - (#xff31 ?) - (#xff32 ?) - (#xff33 ?) - (#xff34 ?) - (#xff35 ?) - (#xff36 ?) - (#xff37 ?) - (#xff38 ?) - (#xff39 ?) - (#xff3a ?) - (#xff3b ?\) - (#xff3c ?) - (#xff3d ?\) - (#xff3e ?) - (#xff3f ?) - (#xff40 ?) - (#xff41 ?) - (#xff42 ?) - (#xff43 ?) - (#xff44 ?) - (#xff45 ?) - (#xff46 ?) - (#xff47 ?) - (#xff48 ?) - (#xff49 ?) - (#xff4a ?) - (#xff4b ?) - (#xff4c ?) - (#xff4d ?) - (#xff4e ?) - (#xff4f ?) - (#xff50 ?) - (#xff51 ?) - (#xff52 ?) - (#xff53 ?) - (#xff54 ?) - (#xff55 ?) - (#xff56 ?) - (#xff57 ?) - (#xff58 ?) - (#xff59 ?) - (#xff5a ?) - (#xff5b ?\) - (#xff5c ?) - (#xff5d ?\) - (#xffe3 ?) - (#xffe5 ?) - - ;; jisx0212 - - (#xa1 ?) - (#xa4 ?) - (#xa6 ?) - (#xa9 ?) - (#xaa ?) - (#xae ?) - (#xaf ?) - (#xb8 ?) - (#xba ?) - (#xbf ?) - (#xc0 ?) - (#xc1 ?) - (#xc2 ?) - (#xc3 ?) - (#xc4 ?) - (#xc5 ?) - (#xc6 ?) - (#xc7 ?) - (#xc8 ?) - (#xc9 ?) - (#xca ?) - (#xcb ?) - (#xcc ?) - (#xcd ?) - (#xce ?) - (#xcf ?) - (#xd1 ?) - (#xd2 ?) - (#xd3 ?) - (#xd4 ?) - (#xd5 ?) - (#xd6 ?) - (#xd8 ?) - (#xd9 ?) - (#xda ?) - (#xdb ?) - (#xdc ?) - (#xdd ?) - (#xde ?) - (#xdf ?) - (#xe0 ?) - (#xe1 ?) - (#xe2 ?) - (#xe3 ?) - (#xe4 ?) - (#xe5 ?) - (#xe6 ?) - (#xe7 ?) - (#xe8 ?) - (#xe9 ?) - (#xea ?) - (#xeb ?) - (#xec ?) - (#xed ?) - (#xee ?) - (#xef ?) - (#xf0 ?) - (#xf1 ?) - (#xf2 ?) - (#xf3 ?) - (#xf4 ?) - (#xf5 ?) - (#xf6 ?) - (#xf8 ?) - (#xf9 ?) - (#xfa ?) - (#xfb ?) - (#xfc ?) - (#xfd ?) - (#xfe ?) - (#xff ?) - (#x100 ?) - (#x101 ?) - (#x102 ?) - (#x103 ?) - (#x104 ?) - (#x105 ?) - (#x106 ?) - (#x107 ?) - (#x108 ?) - (#x109 ?) - (#x10a ?) - (#x10b ?) - (#x10c ?) - (#x10d ?) - (#x10e ?) - (#x10f ?) - (#x110 ?) - (#x111 ?) - (#x112 ?) - (#x113 ?) - (#x116 ?) - (#x117 ?) - (#x118 ?) - (#x119 ?) - (#x11a ?) - (#x11b ?) - (#x11c ?) - (#x11d ?) - (#x11e ?) - (#x11f ?) - (#x120 ?) - (#x121 ?) - (#x122 ?) - (#x124 ?) - (#x125 ?) - (#x126 ?) - (#x127 ?) - (#x128 ?) - (#x129 ?) - (#x12a ?) - (#x12b ?) - (#x12e ?) - (#x12f ?) - (#x130 ?) - (#x131 ?) - (#x132 ?) - (#x133 ?) - (#x134 ?) - (#x135 ?) - (#x136 ?) - (#x137 ?) - (#x138 ?) - (#x139 ?) - (#x13a ?) - (#x13b ?) - (#x13c ?) - (#x13d ?) - (#x13e ?) - (#x13f ?) - (#x140 ?) - (#x141 ?) - (#x142 ?) - (#x143 ?) - (#x144 ?) - (#x145 ?) - (#x146 ?) - (#x147 ?) - (#x148 ?) - (#x149 ?) - (#x14a ?) - (#x14b ?) - (#x14c ?) - (#x14d ?) - (#x150 ?) - (#x151 ?) - (#x152 ?) - (#x153 ?) - (#x154 ?) - (#x155 ?) - (#x156 ?) - (#x157 ?) - (#x158 ?) - (#x159 ?) - (#x15a ?) - (#x15b ?) - (#x15c ?) - (#x15d ?) - (#x15e ?) - (#x15f ?) - (#x160 ?) - (#x161 ?) - (#x162 ?) - (#x163 ?) - (#x164 ?) - (#x165 ?) - (#x166 ?) - (#x167 ?) - (#x168 ?) - (#x169 ?) - (#x16a ?) - (#x16b ?) - (#x16c ?) - (#x16d ?) - (#x16e ?) - (#x16f ?) - (#x170 ?) - (#x171 ?) - (#x172 ?) - (#x173 ?) - (#x174 ?) - (#x175 ?) - (#x176 ?) - (#x177 ?) - (#x178 ?) - (#x179 ?) - (#x17a ?) - (#x17b ?) - (#x17c ?) - (#x17d ?) - (#x17e ?) - (#x1cd ?) - (#x1ce ?) - (#x1cf ?) - (#x1d0 ?) - (#x1d1 ?) - (#x1d2 ?) - (#x1d3 ?) - (#x1d4 ?) - (#x1d5 ?) - (#x1d6 ?) - (#x1d7 ?) - (#x1d8 ?) - (#x1d9 ?) - (#x1da ?) - (#x1db ?) - (#x1dc ?) - (#x1f5 ?) - (#x2c7 ?) - (#x2d8 ?) - (#x2d9 ?) - (#x2da ?) - (#x2db ?) - (#x2dd ?) - (#x384 ?) - (#x385 ?) - (#x386 ?) - (#x388 ?) - (#x389 ?) - (#x38a ?) - (#x38c ?) - (#x38e ?) - (#x38f ?) - (#x390 ?) - (#x3aa ?) - (#x3ab ?) - (#x3ac ?) - (#x3ad ?) - (#x3ae ?) - (#x3af ?) - (#x3b0 ?) - (#x3c2 ?) - (#x3ca ?) - (#x3cb ?) - (#x3cc ?) - (#x3cd ?) - (#x3ce ?) - (#x402 ?) - (#x403 ?) - (#x404 ?) - (#x405 ?) - (#x406 ?) - (#x407 ?) - (#x408 ?) - (#x409 ?) - (#x40a ?) - (#x40b ?) - (#x40c ?) - (#x40e ?) - (#x40f ?) - (#x452 ?) - (#x453 ?) - (#x454 ?) - (#x455 ?) - (#x456 ?) - (#x457 ?) - (#x458 ?) - (#x459 ?) - (#x45a ?) - (#x45b ?) - (#x45c ?) - (#x45e ?) - (#x45f ?) - (#x2116 ?) - (#x2122 ?) - (#x4e02 ?) - (#x4e04 ?) - (#x4e05 ?) - (#x4e0c ?) - (#x4e12 ?) - (#x4e1f ?) - (#x4e23 ?) - (#x4e24 ?) - (#x4e28 ?) - (#x4e2b ?) - (#x4e2e ?) - (#x4e2f ?) - (#x4e30 ?) - (#x4e35 ?) - (#x4e40 ?) - (#x4e41 ?) - (#x4e44 ?) - (#x4e47 ?) - (#x4e51 ?) - (#x4e5a ?) - (#x4e5c ?) - (#x4e63 ?) - (#x4e68 ?) - (#x4e69 ?) - (#x4e74 ?) - (#x4e75 ?) - (#x4e79 ?) - (#x4e7f ?) - (#x4e8d ?) - (#x4e96 ?) - (#x4e97 ?) - (#x4e9d ?) - (#x4eaf ?) - (#x4eb9 ?) - (#x4ec3 ?) - (#x4ed0 ?) - (#x4eda ?) - (#x4edb ?) - (#x4ee0 ?) - (#x4ee1 ?) - (#x4ee2 ?) - (#x4ee8 ?) - (#x4eef ?) - (#x4ef1 ?) - (#x4ef3 ?) - (#x4ef5 ?) - (#x4efd ?) - (#x4efe ?) - (#x4eff ?) - (#x4f00 ?) - (#x4f02 ?) - (#x4f03 ?) - (#x4f08 ?) - (#x4f0b ?) - (#x4f0c ?) - (#x4f12 ?) - (#x4f15 ?) - (#x4f16 ?) - (#x4f17 ?) - (#x4f19 ?) - (#x4f2e ?) - (#x4f31 ?) - (#x4f33 ?) - (#x4f35 ?) - (#x4f37 ?) - (#x4f39 ?) - (#x4f3b ?) - (#x4f3e ?) - (#x4f40 ?) - (#x4f42 ?) - (#x4f48 ?) - (#x4f49 ?) - (#x4f4b ?) - (#x4f4c ?) - (#x4f52 ?) - (#x4f54 ?) - (#x4f56 ?) - (#x4f58 ?) - (#x4f5f ?) - (#x4f60 ?) - (#x4f63 ?) - (#x4f6a ?) - (#x4f6c ?) - (#x4f6e ?) - (#x4f71 ?) - (#x4f77 ?) - (#x4f78 ?) - (#x4f79 ?) - (#x4f7a ?) - (#x4f7d ?) - (#x4f7e ?) - (#x4f81 ?) - (#x4f82 ?) - (#x4f84 ?) - (#x4f85 ?) - (#x4f89 ?) - (#x4f8a ?) - (#x4f8c ?) - (#x4f8e ?) - (#x4f90 ?) - (#x4f92 ?) - (#x4f93 ?) - (#x4f94 ?) - (#x4f97 ?) - (#x4f99 ?) - (#x4f9a ?) - (#x4f9e ?) - (#x4f9f ?) - (#x4fb2 ?) - (#x4fb7 ?) - (#x4fb9 ?) - (#x4fbb ?) - (#x4fbc ?) - (#x4fbd ?) - (#x4fbe ?) - (#x4fc0 ?) - (#x4fc1 ?) - (#x4fc5 ?) - (#x4fc6 ?) - (#x4fc8 ?) - (#x4fc9 ?) - (#x4fcb ?) - (#x4fcc ?) - (#x4fcd ?) - (#x4fcf ?) - (#x4fd2 ?) - (#x4fdc ?) - (#x4fe0 ?) - (#x4fe2 ?) - (#x4ff0 ?) - (#x4ff2 ?) - (#x4ffc ?) - (#x4ffd ?) - (#x4fff ?) - (#x5000 ?) - (#x5001 ?) - (#x5004 ?) - (#x5007 ?) - (#x500a ?) - (#x500c ?) - (#x500e ?) - (#x5010 ?) - (#x5013 ?) - (#x5017 ?) - (#x5018 ?) - (#x501b ?) - (#x501c ?) - (#x501d ?) - (#x501e ?) - (#x5022 ?) - (#x5027 ?) - (#x502e ?) - (#x5030 ?) - (#x5032 ?) - (#x5033 ?) - (#x5035 ?) - (#x503b ?) - (#x5040 ?) - (#x5041 ?) - (#x5042 ?) - (#x5045 ?) - (#x5046 ?) - (#x504a ?) - (#x504c ?) - (#x504e ?) - (#x5051 ?) - (#x5052 ?) - (#x5053 ?) - (#x5057 ?) - (#x5059 ?) - (#x505f ?) - (#x5060 ?) - (#x5062 ?) - (#x5063 ?) - (#x5066 ?) - (#x5067 ?) - (#x506a ?) - (#x506d ?) - (#x5070 ?) - (#x5071 ?) - (#x5081 ?) - (#x5083 ?) - (#x5084 ?) - (#x5086 ?) - (#x508a ?) - (#x508e ?) - (#x508f ?) - (#x5090 ?) - (#x5092 ?) - (#x5093 ?) - (#x5094 ?) - (#x5096 ?) - (#x509b ?) - (#x509c ?) - (#x509e ?) - (#x509f ?) - (#x50a0 ?) - (#x50a1 ?) - (#x50a2 ?) - (#x50aa ?) - (#x50af ?) - (#x50b0 ?) - (#x50b9 ?) - (#x50ba ?) - (#x50bd ?) - (#x50c0 ?) - (#x50c3 ?) - (#x50c4 ?) - (#x50c7 ?) - (#x50cc ?) - (#x50ce ?) - (#x50d0 ?) - (#x50d3 ?) - (#x50d4 ?) - (#x50d8 ?) - (#x50dc ?) - (#x50dd ?) - (#x50df ?) - (#x50e2 ?) - (#x50e4 ?) - (#x50e6 ?) - (#x50e8 ?) - (#x50e9 ?) - (#x50ef ?) - (#x50f1 ?) - (#x50f2 ?) - (#x50f6 ?) - (#x50fa ?) - (#x50fe ?) - (#x5103 ?) - (#x5106 ?) - (#x5107 ?) - (#x5108 ?) - (#x510b ?) - (#x510c ?) - (#x510d ?) - (#x510e ?) - (#x5110 ?) - (#x5117 ?) - (#x5119 ?) - (#x511b ?) - (#x511c ?) - (#x511d ?) - (#x511e ?) - (#x5123 ?) - (#x5127 ?) - (#x5128 ?) - (#x512c ?) - (#x512d ?) - (#x512f ?) - (#x5131 ?) - (#x5133 ?) - (#x5134 ?) - (#x5135 ?) - (#x5138 ?) - (#x5139 ?) - (#x5142 ?) - (#x514a ?) - (#x514f ?) - (#x5153 ?) - (#x5155 ?) - (#x5157 ?) - (#x5158 ?) - (#x515f ?) - (#x5164 ?) - (#x5166 ?) - (#x517e ?) - (#x5183 ?) - (#x5184 ?) - (#x518b ?) - (#x518e ?) - (#x5198 ?) - (#x519d ?) - (#x51a1 ?) - (#x51a3 ?) - (#x51ad ?) - (#x51b8 ?) - (#x51ba ?) - (#x51bc ?) - (#x51be ?) - (#x51bf ?) - (#x51c2 ?) - (#x51c8 ?) - (#x51cf ?) - (#x51d1 ?) - (#x51d2 ?) - (#x51d3 ?) - (#x51d5 ?) - (#x51d8 ?) - (#x51de ?) - (#x51e2 ?) - (#x51e5 ?) - (#x51ee ?) - (#x51f2 ?) - (#x51f3 ?) - (#x51f4 ?) - (#x51f7 ?) - (#x5201 ?) - (#x5202 ?) - (#x5205 ?) - (#x5212 ?) - (#x5213 ?) - (#x5215 ?) - (#x5216 ?) - (#x5218 ?) - (#x5222 ?) - (#x5228 ?) - (#x5231 ?) - (#x5232 ?) - (#x5235 ?) - (#x523c ?) - (#x5245 ?) - (#x5249 ?) - (#x5255 ?) - (#x5257 ?) - (#x5258 ?) - (#x525a ?) - (#x525c ?) - (#x525f ?) - (#x5260 ?) - (#x5261 ?) - (#x5266 ?) - (#x526e ?) - (#x5277 ?) - (#x5278 ?) - (#x5279 ?) - (#x5280 ?) - (#x5282 ?) - (#x5285 ?) - (#x528a ?) - (#x528c ?) - (#x5293 ?) - (#x5295 ?) - (#x5296 ?) - (#x5297 ?) - (#x5298 ?) - (#x529a ?) - (#x529c ?) - (#x52a4 ?) - (#x52a5 ?) - (#x52a6 ?) - (#x52a7 ?) - (#x52af ?) - (#x52b0 ?) - (#x52b6 ?) - (#x52b7 ?) - (#x52b8 ?) - (#x52ba ?) - (#x52bb ?) - (#x52bd ?) - (#x52c0 ?) - (#x52c4 ?) - (#x52c6 ?) - (#x52c8 ?) - (#x52cc ?) - (#x52cf ?) - (#x52d1 ?) - (#x52d4 ?) - (#x52d6 ?) - (#x52db ?) - (#x52dc ?) - (#x52e1 ?) - (#x52e5 ?) - (#x52e8 ?) - (#x52e9 ?) - (#x52ea ?) - (#x52ec ?) - (#x52f0 ?) - (#x52f1 ?) - (#x52f4 ?) - (#x52f6 ?) - (#x52f7 ?) - (#x5300 ?) - (#x5303 ?) - (#x530a ?) - (#x530b ?) - (#x530c ?) - (#x5311 ?) - (#x5313 ?) - (#x5318 ?) - (#x531b ?) - (#x531c ?) - (#x531e ?) - (#x531f ?) - (#x5325 ?) - (#x5327 ?) - (#x5328 ?) - (#x5329 ?) - (#x532b ?) - (#x532c ?) - (#x532d ?) - (#x5330 ?) - (#x5332 ?) - (#x5335 ?) - (#x533c ?) - (#x533d ?) - (#x533e ?) - (#x5342 ?) - (#x534b ?) - (#x534c ?) - (#x5359 ?) - (#x535b ?) - (#x5361 ?) - (#x5363 ?) - (#x5365 ?) - (#x536c ?) - (#x536d ?) - (#x5372 ?) - (#x5379 ?) - (#x537e ?) - (#x5383 ?) - (#x5387 ?) - (#x5388 ?) - (#x538e ?) - (#x5393 ?) - (#x5394 ?) - (#x5399 ?) - (#x539d ?) - (#x53a1 ?) - (#x53a4 ?) - (#x53aa ?) - (#x53ab ?) - (#x53af ?) - (#x53b2 ?) - (#x53b4 ?) - (#x53b5 ?) - (#x53b7 ?) - (#x53b8 ?) - (#x53ba ?) - (#x53bd ?) - (#x53c0 ?) - (#x53c5 ?) - (#x53cf ?) - (#x53d2 ?) - (#x53d3 ?) - (#x53d5 ?) - (#x53da ?) - (#x53dd ?) - (#x53de ?) - (#x53e0 ?) - (#x53e6 ?) - (#x53e7 ?) - (#x53f5 ?) - (#x5402 ?) - (#x5413 ?) - (#x541a ?) - (#x5421 ?) - (#x5427 ?) - (#x5428 ?) - (#x542a ?) - (#x542f ?) - (#x5431 ?) - (#x5434 ?) - (#x5435 ?) - (#x5443 ?) - (#x5444 ?) - (#x5447 ?) - (#x544d ?) - (#x544f ?) - (#x545e ?) - (#x5462 ?) - (#x5464 ?) - (#x5466 ?) - (#x5467 ?) - (#x5469 ?) - (#x546b ?) - (#x546d ?) - (#x546e ?) - (#x5474 ?) - (#x547f ?) - (#x5481 ?) - (#x5483 ?) - (#x5485 ?) - (#x5488 ?) - (#x5489 ?) - (#x548d ?) - (#x5491 ?) - (#x5495 ?) - (#x5496 ?) - (#x549c ?) - (#x549f ?) - (#x54a1 ?) - (#x54a6 ?) - (#x54a7 ?) - (#x54a9 ?) - (#x54aa ?) - (#x54ad ?) - (#x54ae ?) - (#x54b1 ?) - (#x54b7 ?) - (#x54b9 ?) - (#x54ba ?) - (#x54bb ?) - (#x54bf ?) - (#x54c6 ?) - (#x54ca ?) - (#x54cd ?) - (#x54ce ?) - (#x54e0 ?) - (#x54ea ?) - (#x54ec ?) - (#x54ef ?) - (#x54f6 ?) - (#x54fc ?) - (#x54fe ?) - (#x54ff ?) - (#x5500 ?) - (#x5501 ?) - (#x5505 ?) - (#x5508 ?) - (#x5509 ?) - (#x550c ?) - (#x550d ?) - (#x550e ?) - (#x5515 ?) - (#x552a ?) - (#x552b ?) - (#x5532 ?) - (#x5535 ?) - (#x5536 ?) - (#x553b ?) - (#x553c ?) - (#x553d ?) - (#x5541 ?) - (#x5547 ?) - (#x5549 ?) - (#x554a ?) - (#x554d ?) - (#x5550 ?) - (#x5551 ?) - (#x5558 ?) - (#x555a ?) - (#x555b ?) - (#x555e ?) - (#x5560 ?) - (#x5561 ?) - (#x5564 ?) - (#x5566 ?) - (#x557f ?) - (#x5581 ?) - (#x5582 ?) - (#x5586 ?) - (#x5588 ?) - (#x558e ?) - (#x558f ?) - (#x5591 ?) - (#x5592 ?) - (#x5593 ?) - (#x5594 ?) - (#x5597 ?) - (#x55a3 ?) - (#x55a4 ?) - (#x55ad ?) - (#x55b2 ?) - (#x55bf ?) - (#x55c1 ?) - (#x55c3 ?) - (#x55c6 ?) - (#x55c9 ?) - (#x55cb ?) - (#x55cc ?) - (#x55ce ?) - (#x55d1 ?) - (#x55d2 ?) - (#x55d3 ?) - (#x55d7 ?) - (#x55d8 ?) - (#x55db ?) - (#x55de ?) - (#x55e2 ?) - (#x55e9 ?) - (#x55f6 ?) - (#x55ff ?) - (#x5605 ?) - (#x5608 ?) - (#x560a ?) - (#x560d ?) - (#x560e ?) - (#x560f ?) - (#x5610 ?) - (#x5611 ?) - (#x5612 ?) - (#x5619 ?) - (#x562c ?) - (#x5630 ?) - (#x5633 ?) - (#x5635 ?) - (#x5637 ?) - (#x5639 ?) - (#x563b ?) - (#x563c ?) - (#x563d ?) - (#x563f ?) - (#x5640 ?) - (#x5641 ?) - (#x5643 ?) - (#x5644 ?) - (#x5646 ?) - (#x5649 ?) - (#x564b ?) - (#x564d ?) - (#x564f ?) - (#x5654 ?) - (#x565e ?) - (#x5660 ?) - (#x5661 ?) - (#x5662 ?) - (#x5663 ?) - (#x5666 ?) - (#x5669 ?) - (#x566d ?) - (#x566f ?) - (#x5671 ?) - (#x5672 ?) - (#x5675 ?) - (#x5684 ?) - (#x5685 ?) - (#x5688 ?) - (#x568b ?) - (#x568c ?) - (#x5695 ?) - (#x5699 ?) - (#x569a ?) - (#x569d ?) - (#x569e ?) - (#x569f ?) - (#x56a6 ?) - (#x56a7 ?) - (#x56a8 ?) - (#x56a9 ?) - (#x56ab ?) - (#x56ac ?) - (#x56ad ?) - (#x56b1 ?) - (#x56b3 ?) - (#x56b7 ?) - (#x56be ?) - (#x56c5 ?) - (#x56c9 ?) - (#x56ca ?) - (#x56cb ?) - (#x56cc ?) - (#x56cd ?) - (#x56cf ?) - (#x56d0 ?) - (#x56d9 ?) - (#x56dc ?) - (#x56dd ?) - (#x56df ?) - (#x56e1 ?) - (#x56e4 ?) - (#x56e5 ?) - (#x56e6 ?) - (#x56e7 ?) - (#x56e8 ?) - (#x56eb ?) - (#x56ed ?) - (#x56f1 ?) - (#x56f6 ?) - (#x56f7 ?) - (#x5701 ?) - (#x5702 ?) - (#x5707 ?) - (#x570a ?) - (#x570c ?) - (#x5711 ?) - (#x5715 ?) - (#x571a ?) - (#x571b ?) - (#x571d ?) - (#x5720 ?) - (#x5722 ?) - (#x5723 ?) - (#x5724 ?) - (#x5725 ?) - (#x5729 ?) - (#x572a ?) - (#x572c ?) - (#x572e ?) - (#x572f ?) - (#x5733 ?) - (#x5734 ?) - (#x573d ?) - (#x573e ?) - (#x573f ?) - (#x5745 ?) - (#x5746 ?) - (#x574c ?) - (#x574d ?) - (#x5752 ?) - (#x5762 ?) - (#x5765 ?) - (#x5767 ?) - (#x5768 ?) - (#x576b ?) - (#x576d ?) - (#x576e ?) - (#x576f ?) - (#x5770 ?) - (#x5771 ?) - (#x5773 ?) - (#x5774 ?) - (#x5775 ?) - (#x5777 ?) - (#x5779 ?) - (#x577a ?) - (#x577b ?) - (#x577c ?) - (#x577e ?) - (#x5781 ?) - (#x5783 ?) - (#x578c ?) - (#x5794 ?) - (#x5795 ?) - (#x5797 ?) - (#x5799 ?) - (#x579a ?) - (#x579c ?) - (#x579d ?) - (#x579e ?) - (#x579f ?) - (#x57a1 ?) - (#x57a7 ?) - (#x57a8 ?) - (#x57a9 ?) - (#x57ac ?) - (#x57b8 ?) - (#x57bd ?) - (#x57c7 ?) - (#x57c8 ?) - (#x57cc ?) - (#x57cf ?) - (#x57d5 ?) - (#x57dd ?) - (#x57de ?) - (#x57e1 ?) - (#x57e4 ?) - (#x57e6 ?) - (#x57e7 ?) - (#x57e9 ?) - (#x57ed ?) - (#x57f0 ?) - (#x57f5 ?) - (#x57f6 ?) - (#x57f8 ?) - (#x57fd ?) - (#x57fe ?) - (#x57ff ?) - (#x5803 ?) - (#x5804 ?) - (#x5808 ?) - (#x5809 ?) - (#x580c ?) - (#x580d ?) - (#x581b ?) - (#x581e ?) - (#x581f ?) - (#x5820 ?) - (#x5826 ?) - (#x5827 ?) - (#x582d ?) - (#x5832 ?) - (#x5839 ?) - (#x583f ?) - (#x5849 ?) - (#x584c ?) - (#x584d ?) - (#x584f ?) - (#x5850 ?) - (#x5855 ?) - (#x585f ?) - (#x5861 ?) - (#x5864 ?) - (#x5867 ?) - (#x5868 ?) - (#x5878 ?) - (#x587c ?) - (#x587f ?) - (#x5880 ?) - (#x5881 ?) - (#x5887 ?) - (#x5888 ?) - (#x5889 ?) - (#x588a ?) - (#x588c ?) - (#x588d ?) - (#x588f ?) - (#x5890 ?) - (#x5894 ?) - (#x5896 ?) - (#x589d ?) - (#x58a0 ?) - (#x58a1 ?) - (#x58a2 ?) - (#x58a6 ?) - (#x58a9 ?) - (#x58b1 ?) - (#x58b2 ?) - (#x58bc ?) - (#x58c2 ?) - (#x58c4 ?) - (#x58c8 ?) - (#x58cd ?) - (#x58ce ?) - (#x58d0 ?) - (#x58d2 ?) - (#x58d4 ?) - (#x58d6 ?) - (#x58da ?) - (#x58dd ?) - (#x58e1 ?) - (#x58e2 ?) - (#x58e9 ?) - (#x58f3 ?) - (#x5905 ?) - (#x5906 ?) - (#x590b ?) - (#x590c ?) - (#x5912 ?) - (#x5913 ?) - (#x5914 ?) - (#x591d ?) - (#x5921 ?) - (#x5923 ?) - (#x5924 ?) - (#x5928 ?) - (#x592f ?) - (#x5930 ?) - (#x5933 ?) - (#x5935 ?) - (#x5936 ?) - (#x593f ?) - (#x5943 ?) - (#x5946 ?) - (#x5952 ?) - (#x5953 ?) - (#x5959 ?) - (#x595b ?) - (#x595d ?) - (#x595e ?) - (#x595f ?) - (#x5961 ?) - (#x5963 ?) - (#x596b ?) - (#x596d ?) - (#x596f ?) - (#x5972 ?) - (#x5975 ?) - (#x5976 ?) - (#x5979 ?) - (#x597b ?) - (#x597c ?) - (#x598b ?) - (#x598c ?) - (#x598e ?) - (#x5992 ?) - (#x5995 ?) - (#x5997 ?) - (#x599f ?) - (#x59a4 ?) - (#x59a7 ?) - (#x59ad ?) - (#x59ae ?) - (#x59af ?) - (#x59b0 ?) - (#x59b3 ?) - (#x59b7 ?) - (#x59ba ?) - (#x59bc ?) - (#x59c1 ?) - (#x59c3 ?) - (#x59c4 ?) - (#x59c8 ?) - (#x59ca ?) - (#x59cd ?) - (#x59d2 ?) - (#x59dd ?) - (#x59de ?) - (#x59df ?) - (#x59e3 ?) - (#x59e4 ?) - (#x59e7 ?) - (#x59ee ?) - (#x59ef ?) - (#x59f1 ?) - (#x59f2 ?) - (#x59f4 ?) - (#x59f7 ?) - (#x5a00 ?) - (#x5a04 ?) - (#x5a0c ?) - (#x5a0d ?) - (#x5a0e ?) - (#x5a12 ?) - (#x5a13 ?) - (#x5a1e ?) - (#x5a23 ?) - (#x5a24 ?) - (#x5a27 ?) - (#x5a28 ?) - (#x5a2a ?) - (#x5a2d ?) - (#x5a30 ?) - (#x5a44 ?) - (#x5a45 ?) - (#x5a47 ?) - (#x5a48 ?) - (#x5a4c ?) - (#x5a50 ?) - (#x5a55 ?) - (#x5a5e ?) - (#x5a63 ?) - (#x5a65 ?) - (#x5a67 ?) - (#x5a6d ?) - (#x5a77 ?) - (#x5a7a ?) - (#x5a7b ?) - (#x5a7e ?) - (#x5a8b ?) - (#x5a90 ?) - (#x5a93 ?) - (#x5a96 ?) - (#x5a99 ?) - (#x5a9c ?) - (#x5a9e ?) - (#x5a9f ?) - (#x5aa0 ?) - (#x5aa2 ?) - (#x5aa7 ?) - (#x5aac ?) - (#x5ab1 ?) - (#x5ab2 ?) - (#x5ab3 ?) - (#x5ab5 ?) - (#x5ab8 ?) - (#x5aba ?) - (#x5abb ?) - (#x5abf ?) - (#x5ac4 ?) - (#x5ac6 ?) - (#x5ac8 ?) - (#x5acf ?) - (#x5ada ?) - (#x5adc ?) - (#x5ae0 ?) - (#x5ae5 ?) - (#x5aea ?) - (#x5aee ?) - (#x5af5 ?) - (#x5af6 ?) - (#x5afd ?) - (#x5b00 ?) - (#x5b01 ?) - (#x5b08 ?) - (#x5b17 ?) - (#x5b19 ?) - (#x5b1b ?) - (#x5b1d ?) - (#x5b21 ?) - (#x5b25 ?) - (#x5b2d ?) - (#x5b34 ?) - (#x5b38 ?) - (#x5b41 ?) - (#x5b4b ?) - (#x5b4c ?) - (#x5b52 ?) - (#x5b56 ?) - (#x5b5e ?) - (#x5b68 ?) - (#x5b6e ?) - (#x5b6f ?) - (#x5b7c ?) - (#x5b7d ?) - (#x5b7e ?) - (#x5b7f ?) - (#x5b81 ?) - (#x5b84 ?) - (#x5b86 ?) - (#x5b8a ?) - (#x5b8e ?) - (#x5b90 ?) - (#x5b91 ?) - (#x5b93 ?) - (#x5b94 ?) - (#x5b96 ?) - (#x5ba8 ?) - (#x5ba9 ?) - (#x5bac ?) - (#x5bad ?) - (#x5baf ?) - (#x5bb1 ?) - (#x5bb2 ?) - (#x5bb7 ?) - (#x5bba ?) - (#x5bbc ?) - (#x5bc0 ?) - (#x5bc1 ?) - (#x5bcd ?) - (#x5bcf ?) - (#x5bd6 ?) - (#x5bd7 ?) - (#x5bd8 ?) - (#x5bd9 ?) - (#x5bda ?) - (#x5be0 ?) - (#x5bef ?) - (#x5bf1 ?) - (#x5bf4 ?) - (#x5bfd ?) - (#x5c0c ?) - (#x5c17 ?) - (#x5c1e ?) - (#x5c1f ?) - (#x5c23 ?) - (#x5c26 ?) - (#x5c29 ?) - (#x5c2b ?) - (#x5c2c ?) - (#x5c2e ?) - (#x5c30 ?) - (#x5c32 ?) - (#x5c35 ?) - (#x5c36 ?) - (#x5c59 ?) - (#x5c5a ?) - (#x5c5c ?) - (#x5c62 ?) - (#x5c63 ?) - (#x5c67 ?) - (#x5c68 ?) - (#x5c69 ?) - (#x5c6d ?) - (#x5c70 ?) - (#x5c74 ?) - (#x5c75 ?) - (#x5c7a ?) - (#x5c7b ?) - (#x5c7c ?) - (#x5c7d ?) - (#x5c87 ?) - (#x5c88 ?) - (#x5c8a ?) - (#x5c8f ?) - (#x5c92 ?) - (#x5c9d ?) - (#x5c9f ?) - (#x5ca0 ?) - (#x5ca2 ?) - (#x5ca3 ?) - (#x5ca6 ?) - (#x5caa ?) - (#x5cb2 ?) - (#x5cb4 ?) - (#x5cb5 ?) - (#x5cba ?) - (#x5cc9 ?) - (#x5ccb ?) - (#x5cd2 ?) - (#x5cd7 ?) - (#x5cdd ?) - (#x5cee ?) - (#x5cf1 ?) - (#x5cf2 ?) - (#x5cf4 ?) - (#x5d01 ?) - (#x5d06 ?) - (#x5d0d ?) - (#x5d12 ?) - (#x5d23 ?) - (#x5d24 ?) - (#x5d26 ?) - (#x5d27 ?) - (#x5d2b ?) - (#x5d31 ?) - (#x5d34 ?) - (#x5d39 ?) - (#x5d3d ?) - (#x5d3f ?) - (#x5d42 ?) - (#x5d43 ?) - (#x5d46 ?) - (#x5d48 ?) - (#x5d4a ?) - (#x5d51 ?) - (#x5d55 ?) - (#x5d59 ?) - (#x5d5f ?) - (#x5d60 ?) - (#x5d61 ?) - (#x5d62 ?) - (#x5d64 ?) - (#x5d6a ?) - (#x5d6d ?) - (#x5d70 ?) - (#x5d79 ?) - (#x5d7a ?) - (#x5d7e ?) - (#x5d7f ?) - (#x5d81 ?) - (#x5d83 ?) - (#x5d88 ?) - (#x5d8a ?) - (#x5d92 ?) - (#x5d93 ?) - (#x5d94 ?) - (#x5d95 ?) - (#x5d99 ?) - (#x5d9b ?) - (#x5d9f ?) - (#x5da0 ?) - (#x5da7 ?) - (#x5dab ?) - (#x5db0 ?) - (#x5db2 ?) - (#x5db4 ?) - (#x5db8 ?) - (#x5db9 ?) - (#x5dc3 ?) - (#x5dc7 ?) - (#x5dcb ?) - (#x5dce ?) - (#x5dd0 ?) - (#x5dd8 ?) - (#x5dd9 ?) - (#x5de0 ?) - (#x5de4 ?) - (#x5de9 ?) - (#x5df8 ?) - (#x5df9 ?) - (#x5e00 ?) - (#x5e07 ?) - (#x5e0d ?) - (#x5e12 ?) - (#x5e14 ?) - (#x5e15 ?) - (#x5e18 ?) - (#x5e1f ?) - (#x5e20 ?) - (#x5e28 ?) - (#x5e2e ?) - (#x5e32 ?) - (#x5e35 ?) - (#x5e3e ?) - (#x5e49 ?) - (#x5e4b ?) - (#x5e50 ?) - (#x5e51 ?) - (#x5e56 ?) - (#x5e58 ?) - (#x5e5b ?) - (#x5e5c ?) - (#x5e5e ?) - (#x5e68 ?) - (#x5e6a ?) - (#x5e6b ?) - (#x5e6c ?) - (#x5e6d ?) - (#x5e6e ?) - (#x5e70 ?) - (#x5e80 ?) - (#x5e8b ?) - (#x5e8e ?) - (#x5ea2 ?) - (#x5ea4 ?) - (#x5ea5 ?) - (#x5ea8 ?) - (#x5eaa ?) - (#x5eac ?) - (#x5eb1 ?) - (#x5eb3 ?) - (#x5ebd ?) - (#x5ebe ?) - (#x5ebf ?) - (#x5ec6 ?) - (#x5ecb ?) - (#x5ecc ?) - (#x5ece ?) - (#x5ed1 ?) - (#x5ed2 ?) - (#x5ed4 ?) - (#x5ed5 ?) - (#x5edc ?) - (#x5ede ?) - (#x5ee5 ?) - (#x5eeb ?) - (#x5f02 ?) - (#x5f06 ?) - (#x5f07 ?) - (#x5f08 ?) - (#x5f0e ?) - (#x5f19 ?) - (#x5f1c ?) - (#x5f1d ?) - (#x5f21 ?) - (#x5f22 ?) - (#x5f23 ?) - (#x5f24 ?) - (#x5f28 ?) - (#x5f2b ?) - (#x5f2c ?) - (#x5f2e ?) - (#x5f30 ?) - (#x5f34 ?) - (#x5f36 ?) - (#x5f3b ?) - (#x5f3d ?) - (#x5f3f ?) - (#x5f40 ?) - (#x5f44 ?) - (#x5f45 ?) - (#x5f47 ?) - (#x5f4d ?) - (#x5f50 ?) - (#x5f54 ?) - (#x5f58 ?) - (#x5f5b ?) - (#x5f60 ?) - (#x5f63 ?) - (#x5f64 ?) - (#x5f67 ?) - (#x5f6f ?) - (#x5f72 ?) - (#x5f74 ?) - (#x5f75 ?) - (#x5f78 ?) - (#x5f7a ?) - (#x5f7d ?) - (#x5f7e ?) - (#x5f89 ?) - (#x5f8d ?) - (#x5f8f ?) - (#x5f96 ?) - (#x5f9c ?) - (#x5f9d ?) - (#x5fa2 ?) - (#x5fa4 ?) - (#x5fa7 ?) - (#x5fab ?) - (#x5fac ?) - (#x5faf ?) - (#x5fb0 ?) - (#x5fb1 ?) - (#x5fb8 ?) - (#x5fc4 ?) - (#x5fc7 ?) - (#x5fc8 ?) - (#x5fc9 ?) - (#x5fcb ?) - (#x5fd0 ?) - (#x5fd1 ?) - (#x5fd2 ?) - (#x5fd3 ?) - (#x5fd4 ?) - (#x5fde ?) - (#x5fe1 ?) - (#x5fe2 ?) - (#x5fe8 ?) - (#x5fe9 ?) - (#x5fea ?) - (#x5fec ?) - (#x5fed ?) - (#x5fee ?) - (#x5fef ?) - (#x5ff2 ?) - (#x5ff3 ?) - (#x5ff6 ?) - (#x5ffa ?) - (#x5ffc ?) - (#x6007 ?) - (#x600a ?) - (#x600d ?) - (#x6013 ?) - (#x6014 ?) - (#x6017 ?) - (#x6018 ?) - (#x601a ?) - (#x601f ?) - (#x6024 ?) - (#x602d ?) - (#x6033 ?) - (#x6035 ?) - (#x6040 ?) - (#x6047 ?) - (#x6048 ?) - (#x6049 ?) - (#x604c ?) - (#x6051 ?) - (#x6054 ?) - (#x6056 ?) - (#x6057 ?) - (#x605d ?) - (#x6061 ?) - (#x6067 ?) - (#x6071 ?) - (#x607e ?) - (#x607f ?) - (#x6082 ?) - (#x6086 ?) - (#x6088 ?) - (#x608a ?) - (#x608e ?) - (#x6091 ?) - (#x6093 ?) - (#x6095 ?) - (#x6098 ?) - (#x609d ?) - (#x609e ?) - (#x60a2 ?) - (#x60a4 ?) - (#x60a5 ?) - (#x60a8 ?) - (#x60b0 ?) - (#x60b1 ?) - (#x60b7 ?) - (#x60bb ?) - (#x60be ?) - (#x60c2 ?) - (#x60c4 ?) - (#x60c8 ?) - (#x60c9 ?) - (#x60ca ?) - (#x60cb ?) - (#x60ce ?) - (#x60cf ?) - (#x60d4 ?) - (#x60d5 ?) - (#x60d9 ?) - (#x60db ?) - (#x60dd ?) - (#x60de ?) - (#x60e2 ?) - (#x60e5 ?) - (#x60f2 ?) - (#x60f5 ?) - (#x60f8 ?) - (#x60fc ?) - (#x60fd ?) - (#x6102 ?) - (#x6107 ?) - (#x610a ?) - (#x610c ?) - (#x6110 ?) - (#x6111 ?) - (#x6112 ?) - (#x6113 ?) - (#x6114 ?) - (#x6116 ?) - (#x6117 ?) - (#x6119 ?) - (#x611c ?) - (#x611e ?) - (#x6122 ?) - (#x612a ?) - (#x612b ?) - (#x6130 ?) - (#x6131 ?) - (#x6135 ?) - (#x6136 ?) - (#x6137 ?) - (#x6139 ?) - (#x6141 ?) - (#x6145 ?) - (#x6146 ?) - (#x6149 ?) - (#x615e ?) - (#x6160 ?) - (#x616c ?) - (#x6172 ?) - (#x6178 ?) - (#x617b ?) - (#x617c ?) - (#x617f ?) - (#x6180 ?) - (#x6181 ?) - (#x6183 ?) - (#x6184 ?) - (#x618b ?) - (#x618d ?) - (#x6192 ?) - (#x6193 ?) - (#x6197 ?) - (#x6198 ?) - (#x619c ?) - (#x619d ?) - (#x619f ?) - (#x61a0 ?) - (#x61a5 ?) - (#x61a8 ?) - (#x61aa ?) - (#x61ad ?) - (#x61b8 ?) - (#x61b9 ?) - (#x61bc ?) - (#x61c0 ?) - (#x61c1 ?) - (#x61c2 ?) - (#x61ce ?) - (#x61cf ?) - (#x61d5 ?) - (#x61dc ?) - (#x61dd ?) - (#x61de ?) - (#x61df ?) - (#x61e1 ?) - (#x61e2 ?) - (#x61e5 ?) - (#x61e7 ?) - (#x61e9 ?) - (#x61ec ?) - (#x61ed ?) - (#x61ef ?) - (#x6201 ?) - (#x6203 ?) - (#x6204 ?) - (#x6207 ?) - (#x6213 ?) - (#x6215 ?) - (#x621c ?) - (#x6220 ?) - (#x6222 ?) - (#x6223 ?) - (#x6227 ?) - (#x6229 ?) - (#x622b ?) - (#x6239 ?) - (#x623d ?) - (#x6242 ?) - (#x6243 ?) - (#x6244 ?) - (#x6246 ?) - (#x624c ?) - (#x6250 ?) - (#x6251 ?) - (#x6252 ?) - (#x6254 ?) - (#x6256 ?) - (#x625a ?) - (#x625c ?) - (#x6264 ?) - (#x626d ?) - (#x626f ?) - (#x6273 ?) - (#x627a ?) - (#x627d ?) - (#x628d ?) - (#x628e ?) - (#x628f ?) - (#x6290 ?) - (#x62a6 ?) - (#x62a8 ?) - (#x62b3 ?) - (#x62b6 ?) - (#x62b7 ?) - (#x62ba ?) - (#x62be ?) - (#x62bf ?) - (#x62c4 ?) - (#x62ce ?) - (#x62d5 ?) - (#x62d6 ?) - (#x62da ?) - (#x62ea ?) - (#x62f2 ?) - (#x62f4 ?) - (#x62fc ?) - (#x62fd ?) - (#x6303 ?) - (#x6304 ?) - (#x630a ?) - (#x630b ?) - (#x630d ?) - (#x6310 ?) - (#x6313 ?) - (#x6316 ?) - (#x6318 ?) - (#x6329 ?) - (#x632a ?) - (#x632d ?) - (#x6335 ?) - (#x6336 ?) - (#x6339 ?) - (#x633c ?) - (#x6341 ?) - (#x6342 ?) - (#x6343 ?) - (#x6344 ?) - (#x6346 ?) - (#x634a ?) - (#x634b ?) - (#x634e ?) - (#x6352 ?) - (#x6353 ?) - (#x6354 ?) - (#x6358 ?) - (#x635b ?) - (#x6365 ?) - (#x6366 ?) - (#x636c ?) - (#x636d ?) - (#x6371 ?) - (#x6374 ?) - (#x6375 ?) - (#x6378 ?) - (#x637c ?) - (#x637d ?) - (#x637f ?) - (#x6382 ?) - (#x6384 ?) - (#x6387 ?) - (#x638a ?) - (#x6390 ?) - (#x6394 ?) - (#x6395 ?) - (#x6399 ?) - (#x639a ?) - (#x639e ?) - (#x63a4 ?) - (#x63a6 ?) - (#x63ad ?) - (#x63ae ?) - (#x63af ?) - (#x63bd ?) - (#x63c1 ?) - (#x63c5 ?) - (#x63c8 ?) - (#x63ce ?) - (#x63d1 ?) - (#x63d3 ?) - (#x63d4 ?) - (#x63d5 ?) - (#x63dc ?) - (#x63e0 ?) - (#x63e5 ?) - (#x63ea ?) - (#x63ec ?) - (#x63f2 ?) - (#x63f3 ?) - (#x63f5 ?) - (#x63f8 ?) - (#x63f9 ?) - (#x6409 ?) - (#x640a ?) - (#x6410 ?) - (#x6412 ?) - (#x6414 ?) - (#x6418 ?) - (#x641e ?) - (#x6420 ?) - (#x6422 ?) - (#x6424 ?) - (#x6425 ?) - (#x6429 ?) - (#x642a ?) - (#x642f ?) - (#x6430 ?) - (#x6435 ?) - (#x643d ?) - (#x643f ?) - (#x644b ?) - (#x644f ?) - (#x6451 ?) - (#x6452 ?) - (#x6453 ?) - (#x6454 ?) - (#x645a ?) - (#x645b ?) - (#x645c ?) - (#x645d ?) - (#x645f ?) - (#x6460 ?) - (#x6461 ?) - (#x6463 ?) - (#x646d ?) - (#x6473 ?) - (#x6474 ?) - (#x647b ?) - (#x647d ?) - (#x6485 ?) - (#x6487 ?) - (#x648f ?) - (#x6490 ?) - (#x6491 ?) - (#x6498 ?) - (#x6499 ?) - (#x649b ?) - (#x649d ?) - (#x649f ?) - (#x64a1 ?) - (#x64a3 ?) - (#x64a6 ?) - (#x64a8 ?) - (#x64ac ?) - (#x64b3 ?) - (#x64bd ?) - (#x64be ?) - (#x64bf ?) - (#x64c4 ?) - (#x64c9 ?) - (#x64ca ?) - (#x64cb ?) - (#x64cc ?) - (#x64ce ?) - (#x64d0 ?) - (#x64d1 ?) - (#x64d5 ?) - (#x64d7 ?) - (#x64e4 ?) - (#x64e5 ?) - (#x64e9 ?) - (#x64ea ?) - (#x64ed ?) - (#x64f0 ?) - (#x64f5 ?) - (#x64f7 ?) - (#x64fb ?) - (#x64ff ?) - (#x6501 ?) - (#x6504 ?) - (#x6508 ?) - (#x6509 ?) - (#x650a ?) - (#x650f ?) - (#x6513 ?) - (#x6514 ?) - (#x6516 ?) - (#x6519 ?) - (#x651b ?) - (#x651e ?) - (#x651f ?) - (#x6522 ?) - (#x6526 ?) - (#x6529 ?) - (#x652e ?) - (#x6531 ?) - (#x653a ?) - (#x653c ?) - (#x653d ?) - (#x6543 ?) - (#x6547 ?) - (#x6549 ?) - (#x6550 ?) - (#x6552 ?) - (#x6554 ?) - (#x655f ?) - (#x6560 ?) - (#x6567 ?) - (#x656b ?) - (#x657a ?) - (#x657d ?) - (#x6581 ?) - (#x6585 ?) - (#x658a ?) - (#x6592 ?) - (#x6595 ?) - (#x6598 ?) - (#x659d ?) - (#x65a0 ?) - (#x65a3 ?) - (#x65a6 ?) - (#x65ae ?) - (#x65b2 ?) - (#x65b3 ?) - (#x65b4 ?) - (#x65bf ?) - (#x65c2 ?) - (#x65c8 ?) - (#x65c9 ?) - (#x65ce ?) - (#x65d0 ?) - (#x65d4 ?) - (#x65d6 ?) - (#x65d8 ?) - (#x65df ?) - (#x65f0 ?) - (#x65f2 ?) - (#x65f4 ?) - (#x65f5 ?) - (#x65f9 ?) - (#x65fe ?) - (#x65ff ?) - (#x6600 ?) - (#x6604 ?) - (#x6608 ?) - (#x6609 ?) - (#x660d ?) - (#x6611 ?) - (#x6612 ?) - (#x6615 ?) - (#x6616 ?) - (#x661d ?) - (#x661e ?¡) - (#x6621 ?¢) - (#x6622 ?£) - (#x6623 ?¤) - (#x6624 ?¥) - (#x6626 ?¦) - (#x6629 ?§) - (#x662a ?¨) - (#x662b ?©) - (#x662c ?ª) - (#x662e ?«) - (#x6630 ?¬) - (#x6631 ?) - (#x6633 ?®) - (#x6637 ?°) - (#x6639 ?¯) - (#x6640 ?±) - (#x6645 ?²) - (#x6646 ?³) - (#x664a ?´) - (#x664c ?µ) - (#x664e ?·) - (#x6651 ?¶) - (#x6657 ?¸) - (#x6658 ?¹) - (#x6659 ?º) - (#x665b ?») - (#x665c ?¼) - (#x6660 ?½) - (#x6661 ?¾) - (#x666a ?) - (#x666b ?) - (#x666c ?) - (#x6673 ?) - (#x6675 ?) - (#x6677 ?) - (#x6678 ?) - (#x6679 ?) - (#x667b ?) - (#x667c ?) - (#x667e ?) - (#x667f ?) - (#x6680 ?) - (#x668b ?) - (#x668c ?) - (#x668d ?) - (#x6690 ?) - (#x6692 ?) - (#x6699 ?) - (#x669a ?) - (#x669b ?) - (#x669c ?) - (#x669f ?) - (#x66a0 ?) - (#x66a4 ?) - (#x66ad ?) - (#x66b1 ?) - (#x66b2 ?) - (#x66b5 ?) - (#x66bb ?) - (#x66bf ?) - (#x66c0 ?) - (#x66c2 ?) - (#x66c3 ?) - (#x66c8 ?) - (#x66cc ?) - (#x66ce ?) - (#x66cf ?) - (#x66d4 ?) - (#x66db ?) - (#x66df ?) - (#x66e8 ?) - (#x66eb ?) - (#x66ec ?) - (#x66ee ?) - (#x66fa ?) - (#x66fb ?¿) - (#x6705 ?) - (#x6707 ?) - (#x670e ?) - (#x6713 ?) - (#x6719 ?) - (#x671c ?) - (#x6720 ?) - (#x6722 ?) - (#x6733 ?) - (#x673e ?) - (#x6745 ?) - (#x6747 ?) - (#x6748 ?) - (#x674c ?) - (#x6754 ?) - (#x6755 ?) - (#x675d ?) - (#x6766 ?á) - (#x676c ?â) - (#x676e ?ã) - (#x6774 ?ä) - (#x6776 ?å) - (#x677b ?æ) - (#x6781 ?ç) - (#x6784 ?è) - (#x678e ?é) - (#x678f ?ê) - (#x6791 ?ë) - (#x6793 ?ì) - (#x6796 ?í) - (#x6798 ?î) - (#x6799 ?ï) - (#x679b ?ð) - (#x67b0 ?ñ) - (#x67b1 ?ò) - (#x67b2 ?ó) - (#x67b5 ?ô) - (#x67bb ?õ) - (#x67bc ?ö) - (#x67bd ?÷) - (#x67c0 ?ù) - (#x67c2 ?ú) - (#x67c3 ?û) - (#x67c5 ?ü) - (#x67c8 ?ý) - (#x67c9 ?þ) - (#x67d2 ?ÿ) - (#x67d7 ?) - (#x67d9 ?) - (#x67dc ?) - (#x67e1 ?) - (#x67e6 ?) - (#x67f0 ?) - (#x67f2 ?) - (#x67f6 ?) - (#x67f7 ?) - (#x67f9 ?ø) - (#x6814 ?) - (#x6819 ?) - (#x681d ?) - (#x681f ?) - (#x6827 ?) - (#x6828 ?) - (#x682c ?) - (#x682d ?) - (#x682f ?) - (#x6830 ?) - (#x6831 ?) - (#x6833 ?) - (#x683b ?) - (#x683f ?) - (#x6844 ?) - (#x6845 ?) - (#x684a ?) - (#x684c ?) - (#x6852 ?) - (#x6855 ?) - (#x6857 ?) - (#x6858 ?) - (#x685b ?) - (#x686b ?) - (#x686e ?) - (#x686f ?) - (#x6870 ?) - (#x6871 ?) - (#x6872 ?) - (#x6875 ?) - (#x6879 ?) - (#x687a ?) - (#x687b ?) - (#x687c ?) - (#x6882 ?) - (#x6884 ?) - (#x6886 ?) - (#x6888 ?) - (#x6896 ?) - (#x6898 ?) - (#x689a ?) - (#x689c ?) - (#x68a1 ?) - (#x68a3 ?) - (#x68a5 ?) - (#x68a9 ?) - (#x68aa ?) - (#x68ae ?) - (#x68b2 ?) - (#x68bb ?) - (#x68c5 ?) - (#x68c8 ?) - (#x68cc ?) - (#x68cf ?) - (#x68d0 ?ġ) - (#x68d1 ?Ģ) - (#x68d3 ?ģ) - (#x68d6 ?Ĥ) - (#x68d9 ?ĥ) - (#x68dc ?Ħ) - (#x68dd ?ħ) - (#x68e5 ?Ĩ) - (#x68e8 ?ĩ) - (#x68ea ?Ī) - (#x68eb ?ī) - (#x68ec ?Ĭ) - (#x68ed ?ĭ) - (#x68f0 ?Į) - (#x68f1 ?į) - (#x68f5 ?İ) - (#x68f6 ?ı) - (#x68fb ?IJ) - (#x68fc ?ij) - (#x68fd ?Ĵ) - (#x6906 ?ĵ) - (#x6909 ?Ķ) - (#x690a ?ķ) - (#x6910 ?ĸ) - (#x6911 ?Ĺ) - (#x6913 ?ĺ) - (#x6916 ?Ļ) - (#x6917 ?ļ) - (#x6931 ?Ľ) - (#x6933 ?ľ) - (#x6935 ?Ŀ) - (#x6938 ?) - (#x693b ?) - (#x6942 ?) - (#x6945 ?) - (#x6949 ?) - (#x694e ?) - (#x6957 ?) - (#x695b ?) - (#x6963 ?) - (#x6964 ?) - (#x6965 ?) - (#x6966 ?) - (#x6968 ?) - (#x6969 ?) - (#x696c ?) - (#x6970 ?) - (#x6971 ?) - (#x6972 ?) - (#x697a ?) - (#x697b ?) - (#x697f ?) - (#x6980 ?) - (#x698d ?) - (#x6992 ?) - (#x6996 ?) - (#x6998 ?) - (#x69a1 ?) - (#x69a5 ?) - (#x69a6 ?) - (#x69a8 ?) - (#x69ab ?) - (#x69ad ?) - (#x69af ?) - (#x69b7 ?) - (#x69b8 ?) - (#x69ba ?) - (#x69bc ?) - (#x69c5 ?) - (#x69c8 ?) - (#x69d1 ?) - (#x69d6 ?) - (#x69d7 ?) - (#x69e2 ?) - (#x69e5 ?) - (#x69ee ?) - (#x69ef ?) - (#x69f1 ?) - (#x69f3 ?) - (#x69f5 ?) - (#x69fe ?) - (#x6a00 ?) - (#x6a01 ?) - (#x6a03 ?) - (#x6a0f ?) - (#x6a11 ?) - (#x6a15 ?) - (#x6a1a ?) - (#x6a1d ?) - (#x6a20 ?) - (#x6a24 ?) - (#x6a28 ?) - (#x6a30 ?) - (#x6a32 ?) - (#x6a34 ?š) - (#x6a37 ?Ţ) - (#x6a3b ?ţ) - (#x6a3e ?Ť) - (#x6a3f ?ť) - (#x6a45 ?Ŧ) - (#x6a46 ?ŧ) - (#x6a49 ?Ũ) - (#x6a4a ?ũ) - (#x6a4e ?Ū) - (#x6a50 ?ū) - (#x6a51 ?Ŭ) - (#x6a52 ?ŭ) - (#x6a55 ?Ů) - (#x6a56 ?ů) - (#x6a5b ?Ű) - (#x6a64 ?ű) - (#x6a67 ?Ų) - (#x6a6a ?ų) - (#x6a71 ?Ŵ) - (#x6a73 ?ŵ) - (#x6a7e ?Ŷ) - (#x6a81 ?ŷ) - (#x6a83 ?Ÿ) - (#x6a86 ?Ź) - (#x6a87 ?ź) - (#x6a89 ?Ż) - (#x6a8b ?ż) - (#x6a91 ?Ž) - (#x6a9b ?ž) - (#x6a9d ?ſ) - (#x6a9e ?) - (#x6a9f ?) - (#x6aa5 ?) - (#x6aab ?) - (#x6aaf ?) - (#x6ab0 ?) - (#x6ab1 ?) - (#x6ab4 ?) - (#x6abd ?) - (#x6abe ?) - (#x6abf ?) - (#x6ac6 ?) - (#x6ac8 ?) - (#x6ac9 ?) - (#x6acc ?) - (#x6ad0 ?) - (#x6ad4 ?) - (#x6ad5 ?) - (#x6ad6 ?) - (#x6adc ?) - (#x6add ?) - (#x6ae4 ?) - (#x6ae7 ?) - (#x6aec ?) - (#x6af0 ?) - (#x6af1 ?) - (#x6af2 ?) - (#x6afc ?) - (#x6afd ?) - (#x6b02 ?) - (#x6b03 ?) - (#x6b06 ?) - (#x6b07 ?) - (#x6b09 ?) - (#x6b0f ?) - (#x6b10 ?) - (#x6b11 ?) - (#x6b17 ?) - (#x6b1b ?) - (#x6b1e ?) - (#x6b24 ?) - (#x6b28 ?) - (#x6b2b ?) - (#x6b2c ?) - (#x6b2f ?) - (#x6b35 ?) - (#x6b36 ?) - (#x6b3b ?) - (#x6b3f ?) - (#x6b46 ?) - (#x6b4a ?) - (#x6b4d ?) - (#x6b52 ?) - (#x6b56 ?) - (#x6b58 ?) - (#x6b5d ?) - (#x6b60 ?) - (#x6b67 ?) - (#x6b6b ?) - (#x6b6e ?) - (#x6b70 ?) - (#x6b75 ?) - (#x6b7d ?) - (#x6b7e ?ơ) - (#x6b82 ?Ƣ) - (#x6b85 ?ƣ) - (#x6b97 ?Ƥ) - (#x6b9b ?ƥ) - (#x6b9f ?Ʀ) - (#x6ba0 ?Ƨ) - (#x6ba2 ?ƨ) - (#x6ba3 ?Ʃ) - (#x6ba8 ?ƪ) - (#x6ba9 ?ƫ) - (#x6bac ?Ƭ) - (#x6bad ?ƭ) - (#x6bae ?Ʈ) - (#x6bb0 ?Ư) - (#x6bb8 ?ư) - (#x6bb9 ?Ʊ) - (#x6bbd ?Ʋ) - (#x6bbe ?Ƴ) - (#x6bc3 ?ƴ) - (#x6bc4 ?Ƶ) - (#x6bc9 ?ƶ) - (#x6bcc ?Ʒ) - (#x6bd6 ?Ƹ) - (#x6bda ?ƹ) - (#x6be1 ?ƺ) - (#x6be3 ?ƻ) - (#x6be6 ?Ƽ) - (#x6be7 ?ƽ) - (#x6bee ?ƾ) - (#x6bf1 ?ƿ) - (#x6bf7 ?) - (#x6bf9 ?) - (#x6bff ?) - (#x6c02 ?) - (#x6c04 ?) - (#x6c05 ?) - (#x6c09 ?) - (#x6c0d ?) - (#x6c0e ?) - (#x6c10 ?) - (#x6c12 ?) - (#x6c19 ?) - (#x6c1f ?) - (#x6c26 ?) - (#x6c27 ?) - (#x6c28 ?) - (#x6c2c ?) - (#x6c2e ?) - (#x6c33 ?) - (#x6c35 ?) - (#x6c36 ?) - (#x6c3a ?) - (#x6c3b ?) - (#x6c3f ?) - (#x6c4a ?) - (#x6c4b ?) - (#x6c4d ?) - (#x6c4f ?) - (#x6c52 ?) - (#x6c54 ?) - (#x6c59 ?) - (#x6c5b ?) - (#x6c5c ?) - (#x6c67 ?Ƕ) - (#x6c6b ?) - (#x6c6d ?) - (#x6c6f ?) - (#x6c74 ?) - (#x6c76 ?) - (#x6c78 ?) - (#x6c79 ?) - (#x6c7b ?) - (#x6c85 ?) - (#x6c86 ?) - (#x6c87 ?) - (#x6c89 ?) - (#x6c94 ?) - (#x6c95 ?) - (#x6c97 ?) - (#x6c98 ?) - (#x6c9c ?) - (#x6c9f ?) - (#x6cb0 ?) - (#x6cb2 ?) - (#x6cb4 ?) - (#x6cc2 ?) - (#x6cc6 ?) - (#x6ccd ?) - (#x6ccf ?) - (#x6cd0 ?) - (#x6cd1 ?) - (#x6cd2 ?) - (#x6cd4 ?) - (#x6cd6 ?) - (#x6cda ?ǡ) - (#x6cdc ?Ǣ) - (#x6ce0 ?ǣ) - (#x6ce7 ?Ǥ) - (#x6ce9 ?ǥ) - (#x6ceb ?Ǧ) - (#x6cec ?ǧ) - (#x6cee ?Ǩ) - (#x6cf2 ?ǩ) - (#x6cf4 ?Ǫ) - (#x6d04 ?ǫ) - (#x6d07 ?Ǭ) - (#x6d0a ?ǭ) - (#x6d0e ?Ǯ) - (#x6d0f ?ǯ) - (#x6d11 ?ǰ) - (#x6d13 ?DZ) - (#x6d1a ?Dz) - (#x6d26 ?dz) - (#x6d27 ?Ǵ) - (#x6d28 ?ǵ) - (#x6d2e ?Ƿ) - (#x6d2f ?Ǹ) - (#x6d31 ?ǹ) - (#x6d39 ?Ǻ) - (#x6d3c ?ǻ) - (#x6d3f ?Ǽ) - (#x6d57 ?ǽ) - (#x6d5e ?Ǿ) - (#x6d5f ?ǿ) - (#x6d61 ?) - (#x6d65 ?) - (#x6d67 ?) - (#x6d6f ?) - (#x6d70 ?) - (#x6d7c ?) - (#x6d82 ?) - (#x6d87 ?) - (#x6d91 ?) - (#x6d92 ?) - (#x6d94 ?) - (#x6d96 ?) - (#x6d97 ?) - (#x6d98 ?) - (#x6daa ?) - (#x6dac ?) - (#x6db4 ?) - (#x6db7 ?) - (#x6db9 ?) - (#x6dbd ?) - (#x6dbf ?) - (#x6dc4 ?) - (#x6dc8 ?) - (#x6dca ?) - (#x6dce ?) - (#x6dcf ?) - (#x6dd6 ?) - (#x6ddb ?) - (#x6ddd ?) - (#x6ddf ?) - (#x6de0 ?) - (#x6de2 ?) - (#x6de5 ?) - (#x6de9 ?) - (#x6def ?) - (#x6df0 ?) - (#x6df4 ?) - (#x6df6 ?) - (#x6dfc ?) - (#x6e00 ?) - (#x6e04 ?) - (#x6e1e ?) - (#x6e22 ?) - (#x6e27 ?) - (#x6e32 ?) - (#x6e36 ?) - (#x6e39 ?) - (#x6e3b ?) - (#x6e3c ?) - (#x6e44 ?) - (#x6e45 ?) - (#x6e48 ?) - (#x6e49 ?) - (#x6e4b ?) - (#x6e4f ?) - (#x6e51 ?) - (#x6e52 ?) - (#x6e53 ?) - (#x6e54 ?) - (#x6e57 ?) - (#x6e5c ?) - (#x6e5d ?) - (#x6e5e ?) - (#x6e62 ?ȡ) - (#x6e63 ?Ȣ) - (#x6e68 ?ȣ) - (#x6e73 ?Ȥ) - (#x6e7b ?ȥ) - (#x6e7d ?Ȧ) - (#x6e8d ?ȧ) - (#x6e93 ?Ȩ) - (#x6e99 ?ȩ) - (#x6ea0 ?Ȫ) - (#x6ea7 ?ȫ) - (#x6ead ?Ȭ) - (#x6eae ?ȭ) - (#x6eb1 ?Ȯ) - (#x6eb3 ?ȯ) - (#x6ebb ?Ȱ) - (#x6ebf ?ȱ) - (#x6ec0 ?Ȳ) - (#x6ec1 ?ȳ) - (#x6ec3 ?ȴ) - (#x6ec7 ?ȵ) - (#x6ec8 ?ȶ) - (#x6eca ?ȷ) - (#x6ecd ?ȸ) - (#x6ece ?ȹ) - (#x6ecf ?Ⱥ) - (#x6eeb ?Ȼ) - (#x6eed ?ȼ) - (#x6eee ?Ƚ) - (#x6ef9 ?Ⱦ) - (#x6efb ?ȿ) - (#x6efd ?) - (#x6f04 ?) - (#x6f08 ?) - (#x6f0a ?) - (#x6f0c ?) - (#x6f0d ?) - (#x6f16 ?) - (#x6f18 ?) - (#x6f1a ?) - (#x6f1b ?) - (#x6f26 ?) - (#x6f29 ?) - (#x6f2a ?) - (#x6f2d ?) - (#x6f2f ?) - (#x6f30 ?) - (#x6f33 ?) - (#x6f36 ?) - (#x6f3b ?) - (#x6f3c ?) - (#x6f4f ?) - (#x6f51 ?) - (#x6f52 ?) - (#x6f53 ?) - (#x6f57 ?) - (#x6f59 ?) - (#x6f5a ?) - (#x6f5d ?) - (#x6f5e ?) - (#x6f61 ?) - (#x6f62 ?) - (#x6f68 ?) - (#x6f6c ?) - (#x6f7d ?) - (#x6f7e ?) - (#x6f83 ?) - (#x6f87 ?) - (#x6f88 ?) - (#x6f8b ?) - (#x6f8c ?) - (#x6f8d ?) - (#x6f90 ?) - (#x6f92 ?) - (#x6f93 ?) - (#x6f94 ?) - (#x6f96 ?) - (#x6f9a ?) - (#x6f9f ?) - (#x6fa0 ?) - (#x6fa5 ?) - (#x6fa6 ?) - (#x6fa7 ?) - (#x6fa8 ?) - (#x6fae ?) - (#x6faf ?) - (#x6fb0 ?) - (#x6fb5 ?) - (#x6fb6 ?) - (#x6fbc ?) - (#x6fc5 ?) - (#x6fc7 ?) - (#x6fc8 ?) - (#x6fca ?) - (#x6fda ?ɡ) - (#x6fde ?ɢ) - (#x6fe8 ?ɣ) - (#x6fe9 ?ɤ) - (#x6ff0 ?ɥ) - (#x6ff5 ?ɦ) - (#x6ff9 ?ɧ) - (#x6ffc ?ɨ) - (#x6ffd ?ɩ) - (#x7000 ?ɪ) - (#x7005 ?ɫ) - (#x7006 ?ɬ) - (#x7007 ?ɭ) - (#x700d ?ɮ) - (#x7017 ?ɯ) - (#x7020 ?ɰ) - (#x7023 ?ɱ) - (#x702f ?ɲ) - (#x7034 ?ɳ) - (#x7037 ?ɴ) - (#x7039 ?ɵ) - (#x703c ?ɶ) - (#x7043 ?ɷ) - (#x7044 ?ɸ) - (#x7048 ?ɹ) - (#x7049 ?ɺ) - (#x704a ?ɻ) - (#x704b ?ɼ) - (#x704e ?) - (#x7054 ?ɽ) - (#x7055 ?ɾ) - (#x705d ?ɿ) - (#x705e ?) - (#x7064 ?) - (#x7065 ?) - (#x706c ?) - (#x706e ?) - (#x7075 ?) - (#x7076 ?) - (#x707e ?) - (#x7081 ?) - (#x7085 ?) - (#x7086 ?) - (#x7094 ?) - (#x7095 ?) - (#x7096 ?) - (#x7097 ?) - (#x7098 ?) - (#x709b ?) - (#x70a4 ?) - (#x70ab ?) - (#x70b0 ?) - (#x70b1 ?) - (#x70b4 ?) - (#x70b7 ?) - (#x70ca ?) - (#x70d1 ?) - (#x70d3 ?) - (#x70d4 ?) - (#x70d5 ?) - (#x70d6 ?) - (#x70d8 ?) - (#x70dc ?) - (#x70e4 ?) - (#x70fa ?) - (#x7103 ?) - (#x7104 ?) - (#x7105 ?) - (#x7106 ?) - (#x7107 ?) - (#x710b ?) - (#x710c ?) - (#x710f ?) - (#x711e ?) - (#x7120 ?) - (#x712b ?) - (#x712d ?) - (#x712f ?) - (#x7130 ?) - (#x7131 ?) - (#x7138 ?) - (#x7141 ?) - (#x7145 ?) - (#x7146 ?) - (#x7147 ?) - (#x714a ?) - (#x714b ?) - (#x7150 ?) - (#x7152 ?) - (#x7157 ?) - (#x715a ?) - (#x715c ?) - (#x715e ?) - (#x7160 ?) - (#x7168 ?ʡ) - (#x7179 ?ʢ) - (#x7180 ?ʣ) - (#x7185 ?ʤ) - (#x7187 ?ʥ) - (#x718c ?ʦ) - (#x7192 ?ʧ) - (#x719a ?ʨ) - (#x719b ?ʩ) - (#x71a0 ?ʪ) - (#x71a2 ?ʫ) - (#x71af ?ʬ) - (#x71b0 ?ʭ) - (#x71b2 ?ʮ) - (#x71b3 ?ʯ) - (#x71ba ?ʰ) - (#x71bf ?ʱ) - (#x71c0 ?ʲ) - (#x71c1 ?ʳ) - (#x71c4 ?ʴ) - (#x71cb ?ʵ) - (#x71cc ?ʶ) - (#x71d3 ?ʷ) - (#x71d6 ?ʸ) - (#x71d9 ?ʹ) - (#x71da ?ʺ) - (#x71dc ?ʻ) - (#x71f8 ?ʼ) - (#x71fe ?ʽ) - (#x7200 ?ʾ) - (#x7207 ?ʿ) - (#x7208 ?) - (#x7209 ?) - (#x7213 ?) - (#x7217 ?) - (#x721a ?) - (#x721d ?) - (#x721f ?) - (#x7224 ?) - (#x722b ?) - (#x722f ?) - (#x7234 ?) - (#x7238 ?) - (#x7239 ?) - (#x7241 ?) - (#x7242 ?) - (#x7243 ?) - (#x7245 ?) - (#x724e ?) - (#x724f ?) - (#x7250 ?) - (#x7253 ?) - (#x7255 ?) - (#x7256 ?) - (#x725a ?) - (#x725c ?) - (#x725e ?) - (#x7260 ?) - (#x7263 ?) - (#x7268 ?) - (#x726b ?) - (#x726e ?) - (#x726f ?) - (#x7271 ?) - (#x7277 ?) - (#x7278 ?) - (#x727b ?) - (#x727c ?) - (#x727f ?) - (#x7284 ?) - (#x7289 ?) - (#x728d ?) - (#x728e ?) - (#x7293 ?) - (#x729b ?) - (#x72a8 ?) - (#x72ad ?) - (#x72ae ?) - (#x72b1 ?) - (#x72b4 ?) - (#x72be ?) - (#x72c1 ?) - (#x72c7 ?) - (#x72c9 ?) - (#x72cc ?) - (#x72d5 ?) - (#x72d6 ?) - (#x72d8 ?) - (#x72df ?) - (#x72e5 ?) - (#x72f3 ?) - (#x72f4 ?) - (#x72fa ?) - (#x72fb ?) - (#x72fe ?ˡ) - (#x7302 ?ˢ) - (#x7304 ?ˣ) - (#x7305 ?ˤ) - (#x7307 ?˥) - (#x730b ?˦) - (#x730d ?˧) - (#x7312 ?˨) - (#x7313 ?˩) - (#x7318 ?˪) - (#x7319 ?˫) - (#x731e ?ˬ) - (#x7322 ?˭) - (#x7324 ?ˮ) - (#x7327 ?˯) - (#x7328 ?˰) - (#x732c ?˱) - (#x7331 ?˲) - (#x7332 ?˳) - (#x7335 ?˴) - (#x733a ?˵) - (#x733b ?˶) - (#x733d ?˷) - (#x7343 ?˸) - (#x734d ?˹) - (#x7350 ?˺) - (#x7352 ?˻) - (#x7356 ?˼) - (#x7358 ?˽) - (#x735d ?˾) - (#x735e ?˿) - (#x735f ?) - (#x7360 ?) - (#x7366 ?) - (#x7367 ?) - (#x7369 ?) - (#x736b ?) - (#x736c ?) - (#x736e ?) - (#x736f ?) - (#x7371 ?) - (#x7377 ?) - (#x7379 ?) - (#x737c ?) - (#x7380 ?) - (#x7381 ?) - (#x7383 ?) - (#x7385 ?) - (#x7386 ?) - (#x738e ?) - (#x7390 ?) - (#x7393 ?) - (#x7395 ?) - (#x7397 ?) - (#x7398 ?) - (#x739c ?) - (#x739e ?) - (#x739f ?) - (#x73a0 ?) - (#x73a2 ?) - (#x73a5 ?) - (#x73a6 ?) - (#x73aa ?) - (#x73ab ?) - (#x73ad ?) - (#x73b5 ?) - (#x73b7 ?) - (#x73b9 ?) - (#x73bc ?) - (#x73bd ?) - (#x73bf ?) - (#x73c5 ?) - (#x73c6 ?) - (#x73c9 ?) - (#x73cb ?) - (#x73cc ?) - (#x73cf ?) - (#x73d2 ?) - (#x73d3 ?) - (#x73d6 ?) - (#x73d9 ?) - (#x73dd ?) - (#x73e1 ?) - (#x73e3 ?) - (#x73e6 ?) - (#x73e7 ?) - (#x73e9 ?) - (#x73f4 ?) - (#x73f5 ?) - (#x73f7 ?) - (#x73f9 ?) - (#x73fa ?) - (#x73fb ?) - (#x73fd ?) - (#x73ff ?̡) - (#x7400 ?̢) - (#x7401 ?̣) - (#x7404 ?̤) - (#x7407 ?̥) - (#x740a ?̦) - (#x7411 ?̧) - (#x741a ?̨) - (#x741b ?̩) - (#x7424 ?̪) - (#x7426 ?̫) - (#x7428 ?̬) - (#x7429 ?̭) - (#x742a ?̮) - (#x742b ?̯) - (#x742c ?̰) - (#x742d ?̱) - (#x742e ?̲) - (#x742f ?̳) - (#x7430 ?̴) - (#x7431 ?̵) - (#x7439 ?̶) - (#x7440 ?̷) - (#x7443 ?̸) - (#x7444 ?̹) - (#x7446 ?̺) - (#x7447 ?̻) - (#x744b ?̼) - (#x744d ?̽) - (#x7451 ?̾) - (#x7452 ?̿) - (#x7457 ?) - (#x745d ?) - (#x7462 ?) - (#x7466 ?) - (#x7467 ?) - (#x7468 ?) - (#x746b ?) - (#x746d ?) - (#x746e ?) - (#x7471 ?) - (#x7472 ?) - (#x7480 ?) - (#x7481 ?) - (#x7485 ?) - (#x7486 ?) - (#x7487 ?) - (#x7489 ?) - (#x748f ?) - (#x7490 ?) - (#x7491 ?) - (#x7492 ?) - (#x7498 ?) - (#x7499 ?) - (#x749a ?) - (#x749c ?) - (#x749f ?) - (#x74a0 ?) - (#x74a1 ?) - (#x74a3 ?) - (#x74a6 ?) - (#x74a8 ?) - (#x74a9 ?) - (#x74aa ?) - (#x74ab ?) - (#x74ae ?) - (#x74af ?) - (#x74b1 ?) - (#x74b2 ?) - (#x74b5 ?) - (#x74b9 ?) - (#x74bb ?) - (#x74bf ?) - (#x74c8 ?) - (#x74c9 ?) - (#x74cc ?) - (#x74d0 ?) - (#x74d3 ?) - (#x74d8 ?) - (#x74da ?) - (#x74db ?) - (#x74de ?) - (#x74df ?) - (#x74e4 ?) - (#x74e8 ?) - (#x74ea ?) - (#x74eb ?) - (#x74ef ?) - (#x74f4 ?) - (#x74fa ?) - (#x74fb ?) - (#x74fc ?) - (#x74ff ?) - (#x7506 ?) - (#x7512 ?͡) - (#x7516 ?͢) - (#x7517 ?ͣ) - (#x7520 ?ͤ) - (#x7521 ?ͥ) - (#x7524 ?ͦ) - (#x7527 ?ͧ) - (#x7529 ?ͨ) - (#x752a ?ͩ) - (#x752f ?ͪ) - (#x7536 ?ͫ) - (#x7539 ?ͬ) - (#x753d ?ͭ) - (#x753e ?ͮ) - (#x753f ?ͯ) - (#x7540 ?Ͱ) - (#x7543 ?ͱ) - (#x7547 ?Ͳ) - (#x7548 ?ͳ) - (#x754e ?ʹ) - (#x7550 ?͵) - (#x7552 ?Ͷ) - (#x7557 ?ͷ) - (#x755e ?) - (#x755f ?) - (#x7561 ?ͺ) - (#x756f ?ͻ) - (#x7571 ?ͼ) - (#x7579 ?ͽ) - (#x757a ?;) - (#x757b ?Ϳ) - (#x757c ?) - (#x757d ?) - (#x757e ?) - (#x7581 ?) - (#x7585 ?) - (#x7590 ?) - (#x7592 ?) - (#x7593 ?) - (#x7595 ?) - (#x7599 ?) - (#x759c ?) - (#x75a2 ?) - (#x75a4 ?) - (#x75b4 ?) - (#x75ba ?) - (#x75bf ?) - (#x75c0 ?) - (#x75c1 ?) - (#x75c4 ?) - (#x75c6 ?) - (#x75cc ?) - (#x75ce ?) - (#x75cf ?) - (#x75d7 ?) - (#x75dc ?) - (#x75df ?) - (#x75e0 ?) - (#x75e1 ?) - (#x75e4 ?) - (#x75e7 ?) - (#x75ec ?) - (#x75ee ?) - (#x75ef ?) - (#x75f1 ?) - (#x75f9 ?) - (#x7600 ?) - (#x7602 ?) - (#x7603 ?) - (#x7604 ?) - (#x7607 ?) - (#x7608 ?) - (#x760a ?) - (#x760c ?) - (#x760f ?) - (#x7612 ?) - (#x7613 ?) - (#x7615 ?) - (#x7616 ?) - (#x7619 ?) - (#x761b ?) - (#x761c ?) - (#x761d ?) - (#x761e ?) - (#x7623 ?) - (#x7625 ?) - (#x7626 ?) - (#x7629 ?) - (#x762d ?) - (#x7632 ?) - (#x7633 ?) - (#x7635 ?) - (#x7638 ?) - (#x7639 ?) - (#x763a ?Ρ) - (#x763c ?) - (#x7640 ?Τ) - (#x7641 ?Υ) - (#x7643 ?Φ) - (#x7644 ?Χ) - (#x7645 ?Ψ) - (#x7649 ?Ω) - (#x764a ?Σ) - (#x764b ?Ϊ) - (#x7655 ?Ϋ) - (#x7659 ?ά) - (#x765f ?έ) - (#x7664 ?ή) - (#x7665 ?ί) - (#x766d ?ΰ) - (#x766e ?α) - (#x766f ?β) - (#x7671 ?γ) - (#x7674 ?δ) - (#x7681 ?ε) - (#x7685 ?ζ) - (#x768c ?η) - (#x768d ?θ) - (#x7695 ?ι) - (#x769b ?κ) - (#x769c ?λ) - (#x769d ?μ) - (#x769f ?ν) - (#x76a0 ?ξ) - (#x76a2 ?ο) - (#x76a3 ?) - (#x76a4 ?) - (#x76a5 ?) - (#x76a6 ?) - (#x76a7 ?) - (#x76a8 ?) - (#x76aa ?) - (#x76ad ?) - (#x76bd ?) - (#x76c1 ?) - (#x76c5 ?) - (#x76c9 ?) - (#x76cb ?) - (#x76cc ?) - (#x76ce ?) - (#x76d4 ?) - (#x76d9 ?) - (#x76e0 ?) - (#x76e6 ?) - (#x76e8 ?) - (#x76ec ?) - (#x76f0 ?) - (#x76f1 ?) - (#x76f6 ?) - (#x76f9 ?) - (#x76fc ?) - (#x7700 ?) - (#x7706 ?) - (#x770a ?) - (#x770e ?) - (#x7712 ?) - (#x7714 ?) - (#x7715 ?) - (#x7717 ?) - (#x7719 ?) - (#x771a ?) - (#x771c ?) - (#x7722 ?) - (#x7728 ?) - (#x772d ?) - (#x772e ?) - (#x772f ?) - (#x7734 ?) - (#x7735 ?) - (#x7736 ?) - (#x7739 ?) - (#x773d ?) - (#x773e ?) - (#x7742 ?) - (#x7745 ?) - (#x7746 ?) - (#x774a ?) - (#x774d ?) - (#x774e ?) - (#x774f ?) - (#x7752 ?) - (#x7756 ?) - (#x7757 ?) - (#x775c ?) - (#x775e ?) - (#x775f ?) - (#x7760 ?) - (#x7762 ?) - (#x7764 ?ϡ) - (#x7767 ?Ϣ) - (#x776a ?ϣ) - (#x776c ?Ϥ) - (#x7770 ?ϥ) - (#x7772 ?Ϧ) - (#x7773 ?ϧ) - (#x7774 ?Ϩ) - (#x777a ?ϩ) - (#x777d ?Ϫ) - (#x7780 ?ϫ) - (#x7784 ?Ϭ) - (#x778c ?ϭ) - (#x778d ?Ϯ) - (#x7794 ?ϯ) - (#x7795 ?ϰ) - (#x7796 ?ϱ) - (#x779a ?ϲ) - (#x779f ?ϳ) - (#x77a2 ?ϴ) - (#x77a7 ?ϵ) - (#x77aa ?϶) - (#x77ae ?Ϸ) - (#x77af ?ϸ) - (#x77b1 ?Ϲ) - (#x77b5 ?Ϻ) - (#x77be ?ϻ) - (#x77c3 ?ϼ) - (#x77c9 ?Ͻ) - (#x77d1 ?Ͼ) - (#x77d2 ?Ͽ) - (#x77d5 ?) - (#x77d9 ?) - (#x77de ?) - (#x77df ?) - (#x77e0 ?) - (#x77e4 ?) - (#x77e6 ?) - (#x77ea ?) - (#x77ec ?) - (#x77f0 ?) - (#x77f1 ?) - (#x77f4 ?) - (#x77f8 ?) - (#x77fb ?) - (#x7805 ?) - (#x7806 ?) - (#x7809 ?) - (#x780d ?) - (#x780e ?) - (#x7811 ?) - (#x781d ?) - (#x7821 ?) - (#x7822 ?) - (#x7823 ?) - (#x782d ?) - (#x782e ?) - (#x7830 ?) - (#x7835 ?) - (#x7837 ?) - (#x7843 ?) - (#x7844 ?) - (#x7847 ?) - (#x7848 ?) - (#x784c ?) - (#x784e ?) - (#x7852 ?) - (#x785c ?) - (#x785e ?) - (#x7860 ?) - (#x7861 ?) - (#x7863 ?) - (#x7864 ?) - (#x7868 ?) - (#x786a ?) - (#x786e ?) - (#x787a ?) - (#x787e ?) - (#x788a ?) - (#x788f ?) - (#x7894 ?) - (#x7898 ?) - (#x789d ?) - (#x789e ?) - (#x789f ?) - (#x78a1 ?) - (#x78a4 ?) - (#x78a8 ?) - (#x78ac ?) - (#x78ad ?) - (#x78b0 ?) - (#x78b1 ?) - (#x78b2 ?) - (#x78b3 ?) - (#x78bb ?С) - (#x78bd ?Т) - (#x78bf ?У) - (#x78c7 ?Ф) - (#x78c8 ?Х) - (#x78c9 ?Ц) - (#x78cc ?Ч) - (#x78ce ?Ш) - (#x78d2 ?Щ) - (#x78d3 ?Ъ) - (#x78d5 ?Ы) - (#x78d6 ?Ь) - (#x78db ?Ю) - (#x78df ?Я) - (#x78e0 ?а) - (#x78e1 ?б) - (#x78e4 ?Э) - (#x78e6 ?в) - (#x78ea ?г) - (#x78f2 ?д) - (#x78f3 ?е) - (#x78f6 ?з) - (#x78f7 ?и) - (#x78fa ?й) - (#x78fb ?к) - (#x78ff ?л) - (#x7900 ?ж) - (#x7906 ?м) - (#x790c ?н) - (#x7910 ?о) - (#x791a ?п) - (#x791c ?) - (#x791e ?) - (#x791f ?) - (#x7920 ?) - (#x7925 ?) - (#x7927 ?) - (#x7929 ?) - (#x792d ?) - (#x7931 ?) - (#x7934 ?) - (#x7935 ?) - (#x793b ?) - (#x793d ?) - (#x793f ?) - (#x7944 ?) - (#x7945 ?) - (#x7946 ?) - (#x794a ?) - (#x794b ?) - (#x794f ?) - (#x7951 ?) - (#x7954 ?) - (#x7958 ?) - (#x795b ?) - (#x795c ?) - (#x7967 ?) - (#x7969 ?) - (#x796b ?) - (#x7972 ?) - (#x7979 ?) - (#x797b ?) - (#x797c ?) - (#x797e ?) - (#x798b ?) - (#x798c ?) - (#x7991 ?) - (#x7993 ?) - (#x7994 ?) - (#x7995 ?) - (#x7996 ?) - (#x7998 ?) - (#x799b ?) - (#x799c ?) - (#x79a1 ?) - (#x79a8 ?) - (#x79a9 ?) - (#x79ab ?) - (#x79af ?) - (#x79b1 ?) - (#x79b4 ?) - (#x79b8 ?) - (#x79bb ?) - (#x79c2 ?) - (#x79c4 ?) - (#x79c7 ?) - (#x79c8 ?) - (#x79ca ?) - (#x79cf ?) - (#x79d4 ?) - (#x79d6 ?) - (#x79da ?) - (#x79dd ?) - (#x79de ?) - (#x79e0 ?ѡ) - (#x79e2 ?Ѣ) - (#x79e5 ?ѣ) - (#x79ea ?Ѥ) - (#x79eb ?ѥ) - (#x79ed ?Ѧ) - (#x79f1 ?ѧ) - (#x79f8 ?Ѩ) - (#x79fc ?ѩ) - (#x7a02 ?Ѫ) - (#x7a03 ?ѫ) - (#x7a07 ?Ѭ) - (#x7a09 ?ѭ) - (#x7a0a ?Ѯ) - (#x7a0c ?ѯ) - (#x7a11 ?Ѱ) - (#x7a15 ?ѱ) - (#x7a1b ?Ѳ) - (#x7a1e ?ѳ) - (#x7a21 ?Ѵ) - (#x7a27 ?ѵ) - (#x7a2b ?Ѷ) - (#x7a2d ?ѷ) - (#x7a2f ?Ѹ) - (#x7a30 ?ѹ) - (#x7a34 ?Ѻ) - (#x7a35 ?ѻ) - (#x7a38 ?Ѽ) - (#x7a39 ?ѽ) - (#x7a3a ?Ѿ) - (#x7a44 ?ѿ) - (#x7a45 ?) - (#x7a47 ?) - (#x7a48 ?) - (#x7a4c ?) - (#x7a55 ?) - (#x7a56 ?) - (#x7a59 ?) - (#x7a5c ?) - (#x7a5d ?) - (#x7a5f ?) - (#x7a60 ?) - (#x7a65 ?) - (#x7a67 ?) - (#x7a6a ?) - (#x7a6d ?) - (#x7a75 ?) - (#x7a78 ?) - (#x7a7e ?) - (#x7a80 ?) - (#x7a82 ?) - (#x7a85 ?) - (#x7a86 ?) - (#x7a8a ?) - (#x7a8b ?) - (#x7a90 ?) - (#x7a91 ?) - (#x7a94 ?) - (#x7a9e ?) - (#x7aa0 ?) - (#x7aa3 ?) - (#x7aac ?) - (#x7ab3 ?) - (#x7ab5 ?) - (#x7ab9 ?) - (#x7abb ?) - (#x7abc ?) - (#x7ac6 ?) - (#x7ac9 ?) - (#x7acc ?) - (#x7ace ?) - (#x7ad1 ?) - (#x7adb ?) - (#x7ae8 ?) - (#x7ae9 ?) - (#x7aeb ?) - (#x7aec ?) - (#x7af1 ?) - (#x7af4 ?) - (#x7afb ?) - (#x7afd ?) - (#x7afe ?) - (#x7b07 ?) - (#x7b14 ?) - (#x7b1f ?) - (#x7b23 ?) - (#x7b27 ?) - (#x7b29 ?) - (#x7b2a ?) - (#x7b2b ?) - (#x7b2d ?) - (#x7b2e ?) - (#x7b2f ?) - (#x7b30 ?) - (#x7b31 ?ҡ) - (#x7b34 ?Ң) - (#x7b3d ?ң) - (#x7b3f ?Ҥ) - (#x7b40 ?ҥ) - (#x7b41 ?Ҧ) - (#x7b47 ?ҧ) - (#x7b4e ?Ҩ) - (#x7b55 ?ҩ) - (#x7b60 ?Ҫ) - (#x7b64 ?ҫ) - (#x7b66 ?Ҭ) - (#x7b69 ?ҭ) - (#x7b6a ?Ү) - (#x7b6d ?ү) - (#x7b6f ?Ұ) - (#x7b72 ?ұ) - (#x7b73 ?Ҳ) - (#x7b77 ?ҳ) - (#x7b84 ?Ҵ) - (#x7b89 ?ҵ) - (#x7b8e ?Ҷ) - (#x7b90 ?ҷ) - (#x7b91 ?Ҹ) - (#x7b96 ?ҹ) - (#x7b9b ?Һ) - (#x7b9e ?һ) - (#x7ba0 ?Ҽ) - (#x7ba5 ?ҽ) - (#x7bac ?Ҿ) - (#x7baf ?ҿ) - (#x7bb0 ?) - (#x7bb2 ?) - (#x7bb5 ?) - (#x7bb6 ?) - (#x7bba ?) - (#x7bbb ?) - (#x7bbc ?) - (#x7bbd ?) - (#x7bc2 ?) - (#x7bc5 ?) - (#x7bc8 ?) - (#x7bca ?) - (#x7bd4 ?) - (#x7bd6 ?) - (#x7bd7 ?) - (#x7bd9 ?) - (#x7bda ?) - (#x7bdb ?) - (#x7be8 ?) - (#x7bea ?) - (#x7bf2 ?) - (#x7bf4 ?) - (#x7bf5 ?) - (#x7bf8 ?) - (#x7bf9 ?) - (#x7bfa ?) - (#x7bfc ?) - (#x7bfe ?) - (#x7c01 ?) - (#x7c02 ?) - (#x7c03 ?) - (#x7c04 ?) - (#x7c06 ?) - (#x7c09 ?) - (#x7c0b ?) - (#x7c0c ?) - (#x7c0e ?) - (#x7c0f ?) - (#x7c19 ?) - (#x7c1b ?) - (#x7c20 ?) - (#x7c25 ?) - (#x7c26 ?) - (#x7c28 ?) - (#x7c2c ?) - (#x7c31 ?) - (#x7c33 ?) - (#x7c34 ?) - (#x7c36 ?) - (#x7c39 ?) - (#x7c3a ?) - (#x7c46 ?) - (#x7c4a ?) - (#x7c51 ?) - (#x7c52 ?) - (#x7c53 ?) - (#x7c55 ?) - (#x7c59 ?) - (#x7c5a ?) - (#x7c5b ?) - (#x7c5c ?) - (#x7c5d ?) - (#x7c5e ?) - (#x7c61 ?ӡ) - (#x7c63 ?Ӣ) - (#x7c67 ?ӣ) - (#x7c69 ?Ӥ) - (#x7c6d ?ӥ) - (#x7c6e ?Ӧ) - (#x7c70 ?ӧ) - (#x7c72 ?Ө) - (#x7c79 ?ө) - (#x7c7c ?Ӫ) - (#x7c7d ?ӫ) - (#x7c86 ?Ӭ) - (#x7c87 ?ӭ) - (#x7c8f ?Ӯ) - (#x7c94 ?ӯ) - (#x7c9e ?Ӱ) - (#x7ca0 ?ӱ) - (#x7ca6 ?Ӳ) - (#x7cb0 ?ӳ) - (#x7cb6 ?Ӵ) - (#x7cb7 ?ӵ) - (#x7cba ?Ӷ) - (#x7cbb ?ӷ) - (#x7cbc ?Ӹ) - (#x7cbf ?ӹ) - (#x7cc4 ?Ӻ) - (#x7cc7 ?ӻ) - (#x7cc8 ?Ӽ) - (#x7cc9 ?ӽ) - (#x7ccd ?Ӿ) - (#x7ccf ?ӿ) - (#x7cd3 ?) - (#x7cd4 ?) - (#x7cd5 ?) - (#x7cd7 ?) - (#x7cd9 ?) - (#x7cda ?) - (#x7cdd ?) - (#x7ce6 ?) - (#x7ce9 ?) - (#x7ceb ?) - (#x7cf5 ?) - (#x7d03 ?) - (#x7d07 ?) - (#x7d08 ?) - (#x7d09 ?) - (#x7d0f ?) - (#x7d11 ?) - (#x7d12 ?) - (#x7d13 ?) - (#x7d16 ?) - (#x7d1d ?) - (#x7d1e ?) - (#x7d23 ?) - (#x7d26 ?) - (#x7d2a ?) - (#x7d2d ?) - (#x7d31 ?) - (#x7d3c ?) - (#x7d3d ?) - (#x7d3e ?) - (#x7d40 ?) - (#x7d41 ?) - (#x7d47 ?) - (#x7d48 ?) - (#x7d4d ?) - (#x7d51 ?) - (#x7d53 ?) - (#x7d57 ?) - (#x7d59 ?) - (#x7d5a ?) - (#x7d5c ?) - (#x7d5d ?) - (#x7d65 ?) - (#x7d67 ?) - (#x7d6a ?) - (#x7d70 ?) - (#x7d78 ?) - (#x7d7a ?) - (#x7d7b ?) - (#x7d7f ?) - (#x7d81 ?) - (#x7d82 ?) - (#x7d83 ?) - (#x7d85 ?) - (#x7d86 ?) - (#x7d88 ?) - (#x7d8b ?) - (#x7d8c ?) - (#x7d8d ?) - (#x7d91 ?) - (#x7d96 ?) - (#x7d97 ?) - (#x7d9d ?) - (#x7d9e ?ԡ) - (#x7da6 ?Ԣ) - (#x7da7 ?ԣ) - (#x7daa ?Ԥ) - (#x7db3 ?ԥ) - (#x7db6 ?Ԧ) - (#x7db7 ?ԧ) - (#x7db9 ?Ԩ) - (#x7dc2 ?ԩ) - (#x7dc3 ?Ԫ) - (#x7dc4 ?ԫ) - (#x7dc5 ?Ԭ) - (#x7dc6 ?ԭ) - (#x7dcc ?Ԯ) - (#x7dcd ?ԯ) - (#x7dce ?) - (#x7dd7 ?Ա) - (#x7dd9 ?Բ) - (#x7de2 ?Դ) - (#x7de5 ?Ե) - (#x7de6 ?Զ) - (#x7dea ?Է) - (#x7deb ?Ը) - (#x7ded ?Թ) - (#x7df1 ?Ժ) - (#x7df5 ?Ի) - (#x7df6 ?Լ) - (#x7df9 ?Խ) - (#x7dfa ?Ծ) - (#x7e00 ?Գ) - (#x7e08 ?Կ) - (#x7e10 ?) - (#x7e11 ?) - (#x7e15 ?) - (#x7e17 ?) - (#x7e1c ?) - (#x7e1d ?) - (#x7e20 ?) - (#x7e27 ?) - (#x7e28 ?) - (#x7e2c ?) - (#x7e2d ?) - (#x7e2f ?) - (#x7e33 ?) - (#x7e36 ?) - (#x7e3f ?) - (#x7e44 ?) - (#x7e45 ?) - (#x7e47 ?) - (#x7e4e ?) - (#x7e50 ?) - (#x7e52 ?) - (#x7e58 ?) - (#x7e5f ?) - (#x7e61 ?) - (#x7e62 ?) - (#x7e65 ?) - (#x7e6b ?) - (#x7e6e ?) - (#x7e6f ?) - (#x7e73 ?) - (#x7e78 ?) - (#x7e7e ?) - (#x7e81 ?) - (#x7e86 ?) - (#x7e87 ?) - (#x7e8a ?) - (#x7e8d ?) - (#x7e91 ?) - (#x7e95 ?) - (#x7e98 ?) - (#x7e9a ?) - (#x7e9d ?) - (#x7e9e ?) - (#x7f3b ?) - (#x7f3c ?) - (#x7f3d ?) - (#x7f3e ?) - (#x7f3f ?) - (#x7f43 ?) - (#x7f44 ?) - (#x7f47 ?) - (#x7f4f ?) - (#x7f52 ?) - (#x7f53 ?) - (#x7f5b ?) - (#x7f5c ?) - (#x7f5d ?) - (#x7f61 ?) - (#x7f63 ?) - (#x7f64 ?) - (#x7f65 ?) - (#x7f66 ?) - (#x7f6d ?) - (#x7f71 ?ա) - (#x7f7d ?բ) - (#x7f7e ?գ) - (#x7f7f ?դ) - (#x7f80 ?ե) - (#x7f8b ?զ) - (#x7f8d ?է) - (#x7f8f ?ը) - (#x7f90 ?թ) - (#x7f91 ?ժ) - (#x7f96 ?ի) - (#x7f97 ?լ) - (#x7f9c ?խ) - (#x7fa1 ?ծ) - (#x7fa2 ?կ) - (#x7fa6 ?հ) - (#x7faa ?ձ) - (#x7fad ?ղ) - (#x7fb4 ?ճ) - (#x7fbc ?մ) - (#x7fbf ?յ) - (#x7fc0 ?ն) - (#x7fc3 ?շ) - (#x7fc8 ?ո) - (#x7fce ?չ) - (#x7fcf ?պ) - (#x7fdb ?ջ) - (#x7fdf ?ռ) - (#x7fe3 ?ս) - (#x7fe5 ?վ) - (#x7fe8 ?տ) - (#x7fec ?) - (#x7fee ?) - (#x7fef ?) - (#x7ff2 ?) - (#x7ffa ?) - (#x7ffd ?) - (#x7ffe ?) - (#x7fff ?) - (#x8007 ?) - (#x8008 ?) - (#x800a ?) - (#x800d ?) - (#x800e ?) - (#x800f ?) - (#x8011 ?) - (#x8013 ?) - (#x8014 ?) - (#x8016 ?) - (#x801d ?) - (#x801e ?) - (#x801f ?) - (#x8020 ?) - (#x8024 ?) - (#x8026 ?) - (#x802c ?) - (#x802e ?) - (#x8030 ?) - (#x8034 ?) - (#x8035 ?) - (#x8037 ?) - (#x8039 ?) - (#x803a ?) - (#x803c ?) - (#x803e ?) - (#x8040 ?) - (#x8044 ?) - (#x8060 ?) - (#x8064 ?) - (#x8066 ?) - (#x806d ?) - (#x8071 ?) - (#x8075 ?) - (#x8081 ?) - (#x8088 ?) - (#x808e ?) - (#x809c ?) - (#x809e ?) - (#x80a6 ?) - (#x80a7 ?) - (#x80ab ?) - (#x80b8 ?) - (#x80b9 ?) - (#x80c8 ?) - (#x80cd ?) - (#x80cf ?) - (#x80d2 ?) - (#x80d4 ?) - (#x80d5 ?) - (#x80d7 ?) - (#x80d8 ?) - (#x80e0 ?) - (#x80ed ?) - (#x80ee ?) - (#x80f0 ?֡) - (#x80f2 ?֢) - (#x80f3 ?֣) - (#x80f6 ?֤) - (#x80f9 ?֥) - (#x80fa ?֦) - (#x80fe ?֧) - (#x8103 ?֨) - (#x810b ?֩) - (#x8116 ?֪) - (#x8117 ?֫) - (#x8118 ?֬) - (#x811c ?֭) - (#x811e ?֮) - (#x8120 ?֯) - (#x8124 ?ְ) - (#x8127 ?ֱ) - (#x812c ?ֲ) - (#x8130 ?ֳ) - (#x8135 ?ִ) - (#x813a ?ֵ) - (#x813c ?ֶ) - (#x8145 ?ַ) - (#x8147 ?ָ) - (#x814a ?ֹ) - (#x814c ?ֺ) - (#x8152 ?ֻ) - (#x8157 ?ּ) - (#x8160 ?ֽ) - (#x8161 ?־) - (#x8167 ?ֿ) - (#x8168 ?) - (#x8169 ?) - (#x816d ?) - (#x816f ?) - (#x8177 ?) - (#x8181 ?) - (#x8184 ?) - (#x8185 ?) - (#x8186 ?) - (#x818b ?) - (#x818e ?) - (#x8190 ?) - (#x8196 ?) - (#x8198 ?) - (#x819b ?) - (#x819e ?) - (#x81a2 ?) - (#x81ae ?) - (#x81b2 ?) - (#x81b4 ?) - (#x81bb ?) - (#x81c3 ?) - (#x81c5 ?) - (#x81ca ?) - (#x81cb ?) - (#x81ce ?) - (#x81cf ?) - (#x81d5 ?) - (#x81d7 ?) - (#x81db ?) - (#x81dd ?) - (#x81de ?) - (#x81e1 ?) - (#x81e4 ?) - (#x81eb ?) - (#x81ec ?) - (#x81f0 ?) - (#x81f1 ?) - (#x81f2 ?) - (#x81f5 ?) - (#x81f6 ?) - (#x81f8 ?) - (#x81f9 ?) - (#x81fd ?) - (#x81ff ?) - (#x8200 ?) - (#x8203 ?) - (#x820f ?) - (#x8213 ?) - (#x8214 ?) - (#x8219 ?) - (#x821a ?) - (#x821d ?) - (#x8221 ?) - (#x8222 ?) - (#x8228 ?) - (#x8232 ?) - (#x8234 ?) - (#x823a ?) - (#x8243 ?) - (#x8244 ?) - (#x8245 ?) - (#x8246 ?) - (#x824b ?ס) - (#x824e ?ע) - (#x824f ?ף) - (#x8251 ?פ) - (#x8256 ?ץ) - (#x825c ?צ) - (#x8260 ?ק) - (#x8263 ?ר) - (#x8267 ?ש) - (#x826d ?ת) - (#x8274 ?) - (#x827b ?) - (#x827d ?) - (#x827f ?) - (#x8280 ?ׯ) - (#x8281 ?װ) - (#x8283 ?ױ) - (#x8284 ?ײ) - (#x8287 ?׳) - (#x8289 ?״) - (#x828a ?) - (#x828e ?) - (#x8291 ?) - (#x8294 ?) - (#x8296 ?) - (#x8298 ?) - (#x829a ?) - (#x829b ?) - (#x82a0 ?) - (#x82a1 ?) - (#x82a3 ?) - (#x82a4 ?) - (#x82a7 ?) - (#x82a8 ?) - (#x82a9 ?) - (#x82aa ?) - (#x82ae ?) - (#x82b0 ?) - (#x82b2 ?) - (#x82b4 ?) - (#x82b7 ?) - (#x82ba ?) - (#x82bc ?) - (#x82be ?) - (#x82bf ?) - (#x82c6 ?) - (#x82d0 ?) - (#x82d5 ?) - (#x82da ?) - (#x82e0 ?) - (#x82e2 ?) - (#x82e4 ?) - (#x82e8 ?) - (#x82ea ?) - (#x82ed ?) - (#x82ef ?) - (#x82f6 ?) - (#x82f7 ?) - (#x82fd ?) - (#x82fe ?) - (#x8300 ?) - (#x8301 ?) - (#x8307 ?) - (#x8308 ?) - (#x830a ?) - (#x830b ?) - (#x831b ?) - (#x831d ?) - (#x831e ?) - (#x831f ?) - (#x8321 ?) - (#x8322 ?) - (#x832c ?) - (#x832d ?) - (#x832e ?) - (#x8330 ?) - (#x8333 ?) - (#x8337 ?) - (#x833a ?) - (#x833c ?) - (#x833d ?) - (#x8342 ?) - (#x8343 ?) - (#x8344 ?) - (#x8347 ?) - (#x834d ?) - (#x834e ?) - (#x8351 ?) - (#x8353 ?ؾ) - (#x8354 ?) - (#x8355 ?) - (#x8356 ?) - (#x8357 ?) - (#x8370 ?) - (#x8378 ?) - (#x837d ?ء) - (#x837f ?آ) - (#x8380 ?أ) - (#x8382 ?ؤ) - (#x8384 ?إ) - (#x8386 ?ئ) - (#x838d ?ا) - (#x8392 ?ب) - (#x8394 ?ة) - (#x8395 ?ت) - (#x8398 ?ث) - (#x8399 ?ج) - (#x839b ?ح) - (#x839c ?خ) - (#x839d ?د) - (#x83a6 ?ذ) - (#x83a7 ?ر) - (#x83a9 ?ز) - (#x83ac ?س) - (#x83ad ?) - (#x83be ?ش) - (#x83bf ?ص) - (#x83c0 ?ض) - (#x83c7 ?ط) - (#x83c9 ?ظ) - (#x83cf ?ع) - (#x83d0 ?غ) - (#x83d1 ?ػ) - (#x83d4 ?ؼ) - (#x83dd ?ؽ) - (#x83e8 ?ؿ) - (#x83ea ?) - (#x83f6 ?) - (#x83f8 ?) - (#x83f9 ?) - (#x83fc ?) - (#x8401 ?) - (#x8406 ?) - (#x840a ?) - (#x840f ?) - (#x8411 ?) - (#x8415 ?) - (#x8419 ?) - (#x842f ?) - (#x8439 ?) - (#x8445 ?) - (#x8447 ?) - (#x8448 ?) - (#x844a ?) - (#x844d ?) - (#x844f ?) - (#x8451 ?) - (#x8452 ?) - (#x8456 ?) - (#x8458 ?) - (#x8459 ?) - (#x845a ?) - (#x845c ?) - (#x8460 ?) - (#x8464 ?) - (#x8465 ?) - (#x8467 ?) - (#x846a ?) - (#x8470 ?) - (#x8473 ?) - (#x8474 ?) - (#x8476 ?) - (#x8478 ?) - (#x847c ?) - (#x847d ?) - (#x8481 ?) - (#x8485 ?) - (#x8492 ?) - (#x8493 ?) - (#x8495 ?) - (#x849e ?) - (#x84a6 ?) - (#x84a8 ?) - (#x84a9 ?) - (#x84aa ?) - (#x84af ?) - (#x84b1 ?) - (#x84b4 ?) - (#x84ba ?) - (#x84bd ?) - (#x84be ?) - (#x84c0 ?) - (#x84c2 ?) - (#x84c7 ?) - (#x84c8 ?) - (#x84cc ?) - (#x84cf ?) - (#x84d3 ?) - (#x84dc ?١) - (#x84e7 ?٢) - (#x84ea ?٣) - (#x84ef ?٤) - (#x84f0 ?٥) - (#x84f1 ?٦) - (#x84f2 ?٧) - (#x84f7 ?٨) - (#x84fa ?٪) - (#x84fb ?٫) - (#x84fd ?٬) - (#x8502 ?٭) - (#x8503 ?ٮ) - (#x8507 ?ٯ) - (#x850c ?ٰ) - (#x850e ?ٱ) - (#x8510 ?ٲ) - (#x851c ?ٳ) - (#x851e ?ٴ) - (#x8522 ?ٵ) - (#x8523 ?ٶ) - (#x8524 ?ٷ) - (#x8525 ?ٸ) - (#x8527 ?ٹ) - (#x852a ?ٺ) - (#x852b ?ٻ) - (#x852f ?ټ) - (#x8532 ?٩) - (#x8533 ?ٽ) - (#x8534 ?پ) - (#x8536 ?ٿ) - (#x853f ?) - (#x8546 ?) - (#x854f ?) - (#x8550 ?) - (#x8551 ?) - (#x8552 ?) - (#x8553 ?) - (#x8556 ?) - (#x8559 ?) - (#x855c ?) - (#x855d ?) - (#x855e ?) - (#x855f ?) - (#x8560 ?) - (#x8561 ?) - (#x8562 ?) - (#x8564 ?) - (#x856b ?) - (#x856f ?) - (#x8579 ?) - (#x857a ?) - (#x857b ?) - (#x857d ?) - (#x857f ?) - (#x8581 ?) - (#x8585 ?) - (#x8586 ?) - (#x8589 ?) - (#x858b ?) - (#x858c ?) - (#x858f ?) - (#x8593 ?) - (#x8598 ?) - (#x859d ?) - (#x859f ?) - (#x85a0 ?) - (#x85a2 ?) - (#x85a5 ?) - (#x85a7 ?) - (#x85ad ?) - (#x85b4 ?) - (#x85b6 ?) - (#x85b7 ?) - (#x85b8 ?) - (#x85bc ?) - (#x85bd ?) - (#x85be ?) - (#x85bf ?) - (#x85c2 ?) - (#x85c7 ?) - (#x85ca ?) - (#x85cb ?) - (#x85ce ?) - (#x85d8 ?) - (#x85da ?) - (#x85df ?) - (#x85e0 ?) - (#x85e6 ?) - (#x85e8 ?) - (#x85ed ?) - (#x85f3 ?) - (#x85f6 ?) - (#x85fc ?) - (#x85ff ?ڡ) - (#x8600 ?ڢ) - (#x8604 ?ڣ) - (#x8605 ?ڤ) - (#x860d ?ڥ) - (#x860e ?ڦ) - (#x8610 ?ڧ) - (#x8611 ?ڨ) - (#x8612 ?ک) - (#x8618 ?ڪ) - (#x8619 ?ګ) - (#x861b ?ڬ) - (#x861e ?ڭ) - (#x8621 ?ڮ) - (#x8627 ?گ) - (#x8629 ?ڰ) - (#x8636 ?ڱ) - (#x8638 ?ڲ) - (#x863a ?ڳ) - (#x863c ?ڴ) - (#x863d ?ڵ) - (#x8640 ?ڶ) - (#x8641 ?) - (#x8642 ?ڷ) - (#x8646 ?ڸ) - (#x8652 ?ڹ) - (#x8653 ?ں) - (#x8656 ?ڻ) - (#x8657 ?ڼ) - (#x8658 ?ڽ) - (#x8659 ?ھ) - (#x865d ?ڿ) - (#x8660 ?) - (#x8661 ?) - (#x8662 ?) - (#x8663 ?) - (#x8664 ?) - (#x8669 ?) - (#x866c ?) - (#x866f ?) - (#x8675 ?) - (#x8676 ?) - (#x8677 ?) - (#x867a ?) - (#x8688 ?) - (#x868d ?) - (#x8691 ?) - (#x8696 ?) - (#x8698 ?) - (#x869a ?) - (#x869c ?) - (#x86a1 ?) - (#x86a6 ?) - (#x86a7 ?) - (#x86a8 ?) - (#x86ad ?) - (#x86b1 ?) - (#x86b3 ?) - (#x86b4 ?) - (#x86b5 ?) - (#x86b7 ?) - (#x86b8 ?) - (#x86b9 ?) - (#x86bf ?) - (#x86c0 ?) - (#x86c1 ?) - (#x86c3 ?) - (#x86c5 ?) - (#x86d1 ?) - (#x86d2 ?) - (#x86d5 ?) - (#x86d7 ?) - (#x86da ?) - (#x86dc ?) - (#x86e0 ?) - (#x86e3 ?) - (#x86e5 ?) - (#x86e7 ?) - (#x86fa ?) - (#x86fc ?) - (#x86fd ?) - (#x8704 ?) - (#x8705 ?) - (#x8707 ?) - (#x870b ?) - (#x870e ?) - (#x870f ?) - (#x8710 ?) - (#x8713 ?) - (#x8714 ?) - (#x8719 ?) - (#x871e ?) - (#x871f ?) - (#x8721 ?) - (#x8723 ?) - (#x8728 ?ۡ) - (#x872e ?ۢ) - (#x872f ?ۣ) - (#x8731 ?ۤ) - (#x8732 ?ۥ) - (#x8739 ?ۦ) - (#x873a ?ۧ) - (#x873c ?ۨ) - (#x873d ?۩) - (#x873e ?۪) - (#x8740 ?۫) - (#x8743 ?۬) - (#x8745 ?ۭ) - (#x874d ?ۮ) - (#x8758 ?ۯ) - (#x875d ?۰) - (#x8761 ?۱) - (#x8764 ?۲) - (#x8765 ?۳) - (#x876f ?۴) - (#x8771 ?۵) - (#x8772 ?۶) - (#x877b ?۷) - (#x8783 ?۸) - (#x8784 ?۹) - (#x8785 ?ۺ) - (#x8786 ?ۻ) - (#x8787 ?ۼ) - (#x8788 ?۽) - (#x8789 ?۾) - (#x878b ?ۿ) - (#x878c ?) - (#x8790 ?) - (#x8793 ?) - (#x8795 ?) - (#x8797 ?) - (#x8798 ?) - (#x8799 ?) - (#x879e ?) - (#x87a0 ?) - (#x87a3 ?) - (#x87a7 ?) - (#x87ac ?) - (#x87ad ?) - (#x87ae ?) - (#x87b1 ?) - (#x87b5 ?) - (#x87be ?) - (#x87bf ?) - (#x87c1 ?) - (#x87c8 ?) - (#x87c9 ?) - (#x87ca ?) - (#x87ce ?) - (#x87d5 ?) - (#x87d6 ?) - (#x87d9 ?) - (#x87da ?) - (#x87dc ?) - (#x87df ?) - (#x87e2 ?) - (#x87e3 ?) - (#x87e4 ?) - (#x87ea ?) - (#x87eb ?) - (#x87ed ?) - (#x87f1 ?) - (#x87f3 ?) - (#x87f8 ?) - (#x87fa ?) - (#x87ff ?) - (#x8801 ?) - (#x8803 ?) - (#x8806 ?) - (#x8809 ?) - (#x880a ?) - (#x880b ?) - (#x8810 ?) - (#x8812 ?) - (#x8813 ?) - (#x8814 ?) - (#x8818 ?) - (#x8819 ?) - (#x881a ?) - (#x881b ?) - (#x881c ?) - (#x881e ?) - (#x881f ?) - (#x8828 ?) - (#x882d ?) - (#x882e ?) - (#x8830 ?) - (#x8832 ?) - (#x8835 ?) - (#x883a ?ܡ) - (#x883c ?ܢ) - (#x8841 ?ܣ) - (#x8843 ?ܤ) - (#x8845 ?ܥ) - (#x8848 ?ܦ) - (#x8849 ?ܧ) - (#x884a ?ܨ) - (#x884b ?ܩ) - (#x884e ?ܪ) - (#x8851 ?ܫ) - (#x8855 ?ܬ) - (#x8856 ?ܭ) - (#x8858 ?ܮ) - (#x885a ?ܯ) - (#x885c ?ܰ) - (#x885f ?ܱ) - (#x8860 ?ܲ) - (#x8864 ?ܳ) - (#x8869 ?ܴ) - (#x8871 ?ܵ) - (#x8879 ?ܶ) - (#x887b ?ܷ) - (#x8880 ?ܸ) - (#x8898 ?ܹ) - (#x889a ?ܺ) - (#x889b ?ܻ) - (#x889c ?ܼ) - (#x889f ?ܽ) - (#x88a0 ?ܾ) - (#x88a8 ?ܿ) - (#x88aa ?) - (#x88ba ?) - (#x88bd ?) - (#x88be ?) - (#x88c0 ?) - (#x88ca ?) - (#x88cb ?) - (#x88cc ?) - (#x88cd ?) - (#x88ce ?) - (#x88d1 ?) - (#x88d2 ?) - (#x88d3 ?) - (#x88db ?) - (#x88de ?) - (#x88e7 ?) - (#x88ef ?) - (#x88f0 ?) - (#x88f1 ?) - (#x88f5 ?) - (#x88f7 ?) - (#x8901 ?) - (#x8906 ?) - (#x890d ?) - (#x890e ?) - (#x890f ?) - (#x8915 ?) - (#x8916 ?) - (#x8918 ?) - (#x8919 ?) - (#x891a ?) - (#x891c ?) - (#x8920 ?) - (#x8926 ?) - (#x8927 ?) - (#x8928 ?) - (#x8930 ?) - (#x8931 ?) - (#x8932 ?) - (#x8935 ?) - (#x8939 ?) - (#x893a ?) - (#x893e ?) - (#x8940 ?) - (#x8942 ?) - (#x8945 ?) - (#x8946 ?) - (#x8949 ?) - (#x894f ?) - (#x8952 ?) - (#x8957 ?) - (#x895a ?) - (#x895b ?) - (#x895c ?) - (#x8961 ?) - (#x8962 ?) - (#x8963 ?) - (#x896b ?) - (#x896e ?) - (#x8970 ?) - (#x8973 ?) - (#x8975 ?) - (#x897a ?) - (#x897b ?ݡ) - (#x897c ?ݢ) - (#x897d ?ݣ) - (#x8989 ?ݤ) - (#x898d ?ݥ) - (#x8990 ?ݦ) - (#x8994 ?ݧ) - (#x8995 ?ݨ) - (#x899b ?ݩ) - (#x899c ?ݪ) - (#x899f ?ݫ) - (#x89a0 ?ݬ) - (#x89a5 ?ݭ) - (#x89b0 ?ݮ) - (#x89b4 ?ݯ) - (#x89b5 ?ݰ) - (#x89b6 ?ݱ) - (#x89b7 ?ݲ) - (#x89bc ?ݳ) - (#x89d4 ?ݴ) - (#x89d5 ?ݵ) - (#x89d6 ?ݶ) - (#x89d7 ?ݷ) - (#x89d8 ?ݸ) - (#x89e5 ?ݹ) - (#x89e9 ?ݺ) - (#x89eb ?ݻ) - (#x89ed ?ݼ) - (#x89f1 ?ݽ) - (#x89f3 ?ݾ) - (#x89f6 ?ݿ) - (#x89f9 ?) - (#x89fd ?) - (#x89ff ?) - (#x8a04 ?) - (#x8a05 ?) - (#x8a07 ?) - (#x8a0f ?) - (#x8a11 ?) - (#x8a12 ?) - (#x8a14 ?) - (#x8a15 ?) - (#x8a1e ?) - (#x8a20 ?) - (#x8a22 ?) - (#x8a24 ?) - (#x8a26 ?) - (#x8a2b ?) - (#x8a2c ?) - (#x8a2f ?) - (#x8a35 ?) - (#x8a37 ?) - (#x8a3d ?) - (#x8a3e ?) - (#x8a40 ?) - (#x8a43 ?) - (#x8a45 ?) - (#x8a47 ?) - (#x8a49 ?) - (#x8a4d ?) - (#x8a4e ?) - (#x8a53 ?) - (#x8a56 ?) - (#x8a57 ?) - (#x8a58 ?) - (#x8a5c ?) - (#x8a5d ?) - (#x8a61 ?) - (#x8a65 ?) - (#x8a67 ?) - (#x8a75 ?) - (#x8a76 ?) - (#x8a77 ?) - (#x8a79 ?) - (#x8a7a ?) - (#x8a7b ?) - (#x8a7e ?) - (#x8a7f ?) - (#x8a80 ?) - (#x8a83 ?) - (#x8a86 ?) - (#x8a8b ?) - (#x8a8f ?) - (#x8a90 ?) - (#x8a92 ?) - (#x8a96 ?) - (#x8a97 ?) - (#x8a99 ?) - (#x8a9f ?) - (#x8aa7 ?) - (#x8aa9 ?) - (#x8aae ?) - (#x8aaf ?) - (#x8ab3 ?) - (#x8ab6 ?ޡ) - (#x8ab7 ?ޢ) - (#x8abb ?ޣ) - (#x8abe ?ޤ) - (#x8ac3 ?ޥ) - (#x8ac6 ?ަ) - (#x8ac8 ?ާ) - (#x8ac9 ?ި) - (#x8aca ?ީ) - (#x8ad1 ?ު) - (#x8ad3 ?ޫ) - (#x8ad4 ?ެ) - (#x8ad5 ?ޭ) - (#x8ad7 ?ޮ) - (#x8add ?ޯ) - (#x8adf ?ް) - (#x8aec ?ޱ) - (#x8af0 ?) - (#x8af4 ?) - (#x8af5 ?) - (#x8af6 ?) - (#x8afc ?) - (#x8aff ?) - (#x8b05 ?) - (#x8b06 ?) - (#x8b0a ?) - (#x8b0b ?) - (#x8b11 ?) - (#x8b1c ?) - (#x8b1e ?) - (#x8b1f ?) - (#x8b2d ?) - (#x8b30 ?) - (#x8b37 ?) - (#x8b3c ?) - (#x8b42 ?) - (#x8b43 ?) - (#x8b44 ?) - (#x8b45 ?) - (#x8b46 ?) - (#x8b48 ?) - (#x8b4d ?) - (#x8b52 ?) - (#x8b53 ?) - (#x8b54 ?) - (#x8b59 ?) - (#x8b5e ?) - (#x8b63 ?) - (#x8b6d ?) - (#x8b76 ?) - (#x8b78 ?) - (#x8b79 ?) - (#x8b7c ?) - (#x8b7e ?) - (#x8b81 ?) - (#x8b84 ?) - (#x8b85 ?) - (#x8b8b ?) - (#x8b8d ?) - (#x8b8f ?) - (#x8b94 ?) - (#x8b95 ?) - (#x8b9c ?) - (#x8b9e ?) - (#x8b9f ?) - (#x8c38 ?) - (#x8c39 ?) - (#x8c3d ?) - (#x8c3e ?) - (#x8c45 ?) - (#x8c47 ?) - (#x8c49 ?) - (#x8c4b ?) - (#x8c4f ?) - (#x8c51 ?) - (#x8c53 ?) - (#x8c54 ?) - (#x8c57 ?) - (#x8c58 ?) - (#x8c59 ?) - (#x8c5b ?) - (#x8c5d ?) - (#x8c63 ?) - (#x8c64 ?) - (#x8c66 ?) - (#x8c68 ?) - (#x8c69 ?) - (#x8c6d ?) - (#x8c73 ?) - (#x8c75 ?) - (#x8c76 ?) - (#x8c7b ?) - (#x8c7e ?) - (#x8c86 ?) - (#x8c87 ?ߡ) - (#x8c8b ?ߢ) - (#x8c90 ?ߣ) - (#x8c92 ?ߤ) - (#x8c93 ?ߥ) - (#x8c99 ?ߦ) - (#x8c9b ?ߧ) - (#x8c9c ?ߨ) - (#x8ca4 ?ߩ) - (#x8cb9 ?ߪ) - (#x8cba ?߫) - (#x8cc5 ?߬) - (#x8cc6 ?߭) - (#x8cc9 ?߮) - (#x8ccb ?߯) - (#x8ccf ?߰) - (#x8cd5 ?߲) - (#x8cd6 ?߱) - (#x8cd9 ?߳) - (#x8cdd ?ߴ) - (#x8ce1 ?ߵ) - (#x8ce8 ?߶) - (#x8cec ?߷) - (#x8cef ?߸) - (#x8cf0 ?߹) - (#x8cf2 ?ߺ) - (#x8cf5 ?) - (#x8cf7 ?) - (#x8cf8 ?߽) - (#x8cfe ?߾) - (#x8cff ?߿) - (#x8d01 ?) - (#x8d03 ?) - (#x8d09 ?) - (#x8d12 ?) - (#x8d17 ?) - (#x8d1b ?) - (#x8d65 ?) - (#x8d69 ?) - (#x8d6c ?) - (#x8d6e ?) - (#x8d7f ?) - (#x8d82 ?) - (#x8d84 ?) - (#x8d88 ?) - (#x8d8d ?) - (#x8d90 ?) - (#x8d91 ?) - (#x8d95 ?) - (#x8d9e ?) - (#x8d9f ?) - (#x8da0 ?) - (#x8da6 ?) - (#x8dab ?) - (#x8dac ?) - (#x8daf ?) - (#x8db2 ?) - (#x8db5 ?) - (#x8db7 ?) - (#x8db9 ?) - (#x8dbb ?) - (#x8dbc ?) - (#x8dc0 ?) - (#x8dc5 ?) - (#x8dc6 ?) - (#x8dc7 ?) - (#x8dc8 ?) - (#x8dca ?) - (#x8dce ?) - (#x8dd1 ?) - (#x8dd4 ?) - (#x8dd5 ?) - (#x8dd7 ?) - (#x8dd9 ?) - (#x8de4 ?) - (#x8de5 ?) - (#x8de7 ?) - (#x8dec ?) - (#x8df0 ?) - (#x8df1 ?) - (#x8df2 ?) - (#x8df4 ?) - (#x8dfd ?) - (#x8e01 ?) - (#x8e04 ?) - (#x8e05 ?) - (#x8e06 ?) - (#x8e0b ?) - (#x8e11 ?) - (#x8e14 ?) - (#x8e16 ?) - (#x8e20 ?) - (#x8e21 ?) - (#x8e22 ?) - (#x8e23 ?) - (#x8e26 ?) - (#x8e27 ?) - (#x8e31 ?) - (#x8e33 ?) - (#x8e36 ?) - (#x8e37 ?) - (#x8e38 ?) - (#x8e39 ?) - (#x8e3d ?) - (#x8e40 ?) - (#x8e41 ?) - (#x8e4b ?) - (#x8e4d ?) - (#x8e4e ?) - (#x8e4f ?) - (#x8e54 ?) - (#x8e5b ?) - (#x8e5c ?) - (#x8e5d ?) - (#x8e5e ?) - (#x8e61 ?) - (#x8e62 ?) - (#x8e69 ?) - (#x8e6c ?) - (#x8e6d ?) - (#x8e6f ?) - (#x8e70 ?) - (#x8e71 ?) - (#x8e79 ?) - (#x8e7a ?) - (#x8e7b ?) - (#x8e82 ?) - (#x8e83 ?) - (#x8e89 ?) - (#x8e90 ?) - (#x8e92 ?) - (#x8e95 ?) - (#x8e9a ?) - (#x8e9b ?) - (#x8e9d ?) - (#x8e9e ?) - (#x8ea2 ?) - (#x8ea7 ?) - (#x8ea9 ?) - (#x8ead ?) - (#x8eae ?) - (#x8eb3 ?) - (#x8eb5 ?) - (#x8eba ?) - (#x8ebb ?) - (#x8ec0 ?) - (#x8ec1 ?) - (#x8ec3 ?) - (#x8ec4 ?) - (#x8ec7 ?) - (#x8ecf ?) - (#x8ed1 ?) - (#x8ed4 ?) - (#x8edc ?) - (#x8ee8 ?) - (#x8eed ?) - (#x8eee ?) - (#x8ef0 ?) - (#x8ef1 ?) - (#x8ef7 ?) - (#x8ef9 ?) - (#x8efa ?) - (#x8f00 ?) - (#x8f02 ?) - (#x8f07 ?) - (#x8f08 ?) - (#x8f0f ?) - (#x8f10 ?) - (#x8f16 ?) - (#x8f17 ?) - (#x8f18 ?) - (#x8f1e ?) - (#x8f20 ?) - (#x8f21 ?) - (#x8f23 ?) - (#x8f25 ?) - (#x8f27 ?) - (#x8f28 ?) - (#x8f2c ?) - (#x8f2d ?) - (#x8f2e ?) - (#x8f34 ?) - (#x8f35 ?) - (#x8f36 ?) - (#x8f37 ?) - (#x8f3a ?) - (#x8f40 ?) - (#x8f41 ?) - (#x8f43 ?) - (#x8f47 ?) - (#x8f4f ?) - (#x8f51 ?) - (#x8f52 ?) - (#x8f53 ?) - (#x8f54 ?) - (#x8f55 ?) - (#x8f58 ?) - (#x8f5d ?) - (#x8f5e ?) - (#x8f65 ?) - (#x8f9d ?) - (#x8fa0 ?) - (#x8fa1 ?) - (#x8fa4 ?) - (#x8fa5 ?) - (#x8fa6 ?) - (#x8fb5 ?) - (#x8fb6 ?) - (#x8fb8 ?) - (#x8fbe ?) - (#x8fc0 ?) - (#x8fc1 ?) - (#x8fc6 ?) - (#x8fca ?) - (#x8fcb ?) - (#x8fcd ?) - (#x8fd0 ?) - (#x8fd2 ?) - (#x8fd3 ?) - (#x8fd5 ?) - (#x8fe0 ?) - (#x8fe3 ?) - (#x8fe4 ?) - (#x8fe8 ?) - (#x8fee ?) - (#x8ff1 ?) - (#x8ff5 ?) - (#x8ff6 ?) - (#x8ffb ?) - (#x8ffe ?) - (#x9002 ?) - (#x9004 ?) - (#x9008 ?) - (#x900c ?) - (#x9018 ?) - (#x901b ?) - (#x9028 ?) - (#x9029 ?) - (#x902a ?) - (#x902c ?) - (#x902d ?) - (#x902f ?) - (#x9033 ?) - (#x9034 ?) - (#x9037 ?) - (#x903f ?) - (#x9043 ?) - (#x9044 ?) - (#x904c ?) - (#x905b ?) - (#x905d ?) - (#x9062 ?) - (#x9066 ?) - (#x9067 ?) - (#x906c ?) - (#x9070 ?) - (#x9074 ?) - (#x9079 ?) - (#x9085 ?) - (#x9088 ?) - (#x908b ?) - (#x908c ?) - (#x908e ?) - (#x9090 ?) - (#x9095 ?) - (#x9097 ?) - (#x9098 ?) - (#x9099 ?) - (#x909b ?) - (#x90a0 ?) - (#x90a1 ?) - (#x90a2 ?) - (#x90a5 ?) - (#x90b0 ?) - (#x90b2 ?) - (#x90b3 ?) - (#x90b4 ?) - (#x90b6 ?) - (#x90bd ?) - (#x90be ?) - (#x90c3 ?) - (#x90c4 ?) - (#x90c5 ?) - (#x90c7 ?) - (#x90c8 ?) - (#x90cc ?) - (#x90d2 ?) - (#x90d5 ?) - (#x90d7 ?) - (#x90d8 ?) - (#x90d9 ?) - (#x90dc ?) - (#x90dd ?) - (#x90df ?) - (#x90e5 ?) - (#x90eb ?) - (#x90ef ?) - (#x90f0 ?) - (#x90f4 ?) - (#x90f6 ?) - (#x90fe ?) - (#x90ff ?) - (#x9100 ?) - (#x9104 ?) - (#x9105 ?) - (#x9106 ?) - (#x9108 ?) - (#x910d ?) - (#x9110 ?) - (#x9114 ?) - (#x9116 ?) - (#x9117 ?) - (#x9118 ?) - (#x911a ?) - (#x911c ?) - (#x911e ?) - (#x9120 ?) - (#x9122 ?) - (#x9123 ?) - (#x9125 ?) - (#x9127 ?) - (#x9129 ?) - (#x912e ?) - (#x912f ?) - (#x9131 ?) - (#x9134 ?) - (#x9136 ?) - (#x9137 ?) - (#x9139 ?) - (#x913a ?) - (#x913c ?) - (#x913d ?) - (#x9143 ?) - (#x9147 ?) - (#x9148 ?) - (#x914f ?) - (#x9153 ?) - (#x9157 ?) - (#x9159 ?) - (#x915a ?) - (#x915b ?) - (#x9161 ?) - (#x9164 ?) - (#x9167 ?) - (#x916d ?) - (#x9174 ?) - (#x9179 ?) - (#x917a ?) - (#x917b ?) - (#x9181 ?) - (#x9183 ?) - (#x9185 ?) - (#x9186 ?) - (#x918a ?) - (#x918e ?) - (#x9191 ?) - (#x9193 ?) - (#x9194 ?) - (#x9195 ?) - (#x9198 ?) - (#x919e ?) - (#x91a1 ?) - (#x91a6 ?) - (#x91a8 ?) - (#x91ac ?) - (#x91ad ?) - (#x91ae ?) - (#x91b0 ?) - (#x91b1 ?) - (#x91b2 ?) - (#x91b3 ?) - (#x91b6 ?) - (#x91bb ?) - (#x91bc ?) - (#x91bd ?) - (#x91bf ?) - (#x91c2 ?) - (#x91c3 ?) - (#x91c5 ?) - (#x91d3 ?) - (#x91d4 ?) - (#x91d7 ?) - (#x91d9 ?) - (#x91da ?) - (#x91de ?) - (#x91e4 ?) - (#x91e5 ?) - (#x91e9 ?) - (#x91ea ?) - (#x91ec ?) - (#x91ed ?) - (#x91ee ?) - (#x91ef ?) - (#x91f0 ?) - (#x91f1 ?) - (#x91f7 ?) - (#x91f9 ?) - (#x91fb ?) - (#x91fd ?) - (#x9200 ?) - (#x9201 ?) - (#x9204 ?) - (#x9205 ?) - (#x9206 ?) - (#x9207 ?) - (#x9209 ?) - (#x920a ?) - (#x920c ?) - (#x9210 ?) - (#x9212 ?) - (#x9213 ?) - (#x9216 ?) - (#x9218 ?) - (#x921c ?) - (#x921d ?) - (#x9223 ?) - (#x9224 ?) - (#x9225 ?) - (#x9226 ?) - (#x9228 ?) - (#x922e ?) - (#x922f ?) - (#x9230 ?) - (#x9233 ?) - (#x9235 ?) - (#x9236 ?) - (#x9238 ?) - (#x9239 ?) - (#x923a ?) - (#x923c ?) - (#x923e ?) - (#x9240 ?) - (#x9242 ?) - (#x9243 ?) - (#x9246 ?) - (#x9247 ?) - (#x924a ?) - (#x924d ?) - (#x924e ?) - (#x924f ?) - (#x9251 ?) - (#x9258 ?) - (#x9259 ?) - (#x925c ?) - (#x925d ?) - (#x9260 ?) - (#x9261 ?) - (#x9265 ?) - (#x9267 ?) - (#x9268 ?) - (#x9269 ?) - (#x926e ?) - (#x926f ?) - (#x9270 ?) - (#x9275 ?) - (#x9276 ?) - (#x9277 ?) - (#x9278 ?) - (#x9279 ?) - (#x927b ?) - (#x927c ?) - (#x927d ?) - (#x927f ?) - (#x9288 ?) - (#x9289 ?) - (#x928a ?) - (#x928d ?) - (#x928e ?) - (#x9292 ?) - (#x9297 ?) - (#x9299 ?) - (#x929f ?) - (#x92a0 ?) - (#x92a4 ?) - (#x92a5 ?) - (#x92a7 ?) - (#x92a8 ?) - (#x92ab ?) - (#x92af ?) - (#x92b2 ?) - (#x92b6 ?) - (#x92b8 ?) - (#x92ba ?) - (#x92bb ?) - (#x92bc ?) - (#x92bd ?) - (#x92bf ?) - (#x92c0 ?) - (#x92c1 ?) - (#x92c2 ?) - (#x92c3 ?) - (#x92c5 ?) - (#x92c6 ?) - (#x92c7 ?) - (#x92c8 ?) - (#x92cb ?) - (#x92cc ?) - (#x92cd ?) - (#x92ce ?) - (#x92d0 ?) - (#x92d3 ?) - (#x92d5 ?) - (#x92d7 ?) - (#x92d8 ?) - (#x92d9 ?) - (#x92dc ?) - (#x92dd ?) - (#x92df ?) - (#x92e0 ?) - (#x92e1 ?) - (#x92e3 ?) - (#x92e5 ?) - (#x92e7 ?) - (#x92e8 ?) - (#x92ec ?) - (#x92ee ?) - (#x92f0 ?) - (#x92f9 ?) - (#x92fb ?) - (#x92ff ?) - (#x9300 ?) - (#x9302 ?) - (#x9308 ?) - (#x930d ?) - (#x9311 ?) - (#x9314 ?) - (#x9315 ?) - (#x931c ?) - (#x931d ?) - (#x931e ?) - (#x931f ?) - (#x9321 ?) - (#x9324 ?) - (#x9325 ?) - (#x9327 ?) - (#x9329 ?) - (#x932a ?) - (#x9333 ?) - (#x9334 ?) - (#x9336 ?) - (#x9337 ?) - (#x9347 ?) - (#x9348 ?) - (#x9349 ?) - (#x9350 ?) - (#x9351 ?) - (#x9352 ?) - (#x9355 ?) - (#x9357 ?) - (#x9358 ?) - (#x935a ?) - (#x935e ?) - (#x9364 ?) - (#x9365 ?) - (#x9367 ?) - (#x9369 ?) - (#x936a ?) - (#x936d ?) - (#x936f ?) - (#x9370 ?) - (#x9371 ?) - (#x9373 ?) - (#x9374 ?) - (#x9376 ?) - (#x937a ?) - (#x937d ?) - (#x937f ?) - (#x9380 ?) - (#x9381 ?) - (#x9382 ?) - (#x9388 ?) - (#x938a ?) - (#x938b ?) - (#x938d ?) - (#x938f ?) - (#x9392 ?) - (#x9395 ?) - (#x9398 ?) - (#x939b ?) - (#x939e ?) - (#x93a1 ?) - (#x93a3 ?) - (#x93a4 ?) - (#x93a6 ?) - (#x93a8 ?) - (#x93a9 ?) - (#x93ab ?) - (#x93b4 ?) - (#x93b5 ?) - (#x93b6 ?) - (#x93ba ?) - (#x93c1 ?) - (#x93c4 ?) - (#x93c5 ?) - (#x93c6 ?) - (#x93c7 ?) - (#x93c9 ?) - (#x93ca ?) - (#x93cb ?) - (#x93cc ?) - (#x93cd ?) - (#x93d3 ?) - (#x93d9 ?) - (#x93dc ?) - (#x93de ?) - (#x93df ?) - (#x93e2 ?) - (#x93e6 ?) - (#x93e7 ?) - (#x93f7 ?) - (#x93f8 ?) - (#x93f9 ?) - (#x93fa ?) - (#x93fb ?) - (#x93fd ?) - (#x9401 ?) - (#x9402 ?) - (#x9404 ?) - (#x9408 ?) - (#x9409 ?) - (#x940d ?) - (#x940e ?) - (#x940f ?) - (#x9415 ?) - (#x9416 ?) - (#x9417 ?) - (#x941f ?) - (#x942e ?) - (#x942f ?) - (#x9431 ?) - (#x9432 ?) - (#x9433 ?) - (#x9434 ?) - (#x943b ?) - (#x943d ?) - (#x943f ?) - (#x9443 ?) - (#x9445 ?) - (#x9448 ?) - (#x944a ?) - (#x944c ?) - (#x9455 ?) - (#x9459 ?) - (#x945c ?) - (#x945f ?) - (#x9461 ?) - (#x9463 ?) - (#x9468 ?) - (#x946b ?) - (#x946d ?) - (#x946e ?) - (#x946f ?) - (#x9471 ?) - (#x9472 ?) - (#x9483 ?) - (#x9484 ?) - (#x9578 ?) - (#x9579 ?) - (#x957e ?) - (#x9584 ?) - (#x9588 ?) - (#x958c ?) - (#x958d ?) - (#x958e ?) - (#x959d ?) - (#x959e ?) - (#x959f ?) - (#x95a1 ?) - (#x95a6 ?) - (#x95a9 ?) - (#x95ab ?) - (#x95ac ?) - (#x95b4 ?) - (#x95b6 ?) - (#x95ba ?) - (#x95bd ?) - (#x95bf ?) - (#x95c6 ?) - (#x95c8 ?) - (#x95c9 ?) - (#x95cb ?) - (#x95d0 ?) - (#x95d1 ?) - (#x95d2 ?) - (#x95d3 ?) - (#x95d9 ?) - (#x95da ?) - (#x95dd ?) - (#x95de ?) - (#x95df ?) - (#x95e0 ?) - (#x95e4 ?) - (#x95e6 ?) - (#x961d ?) - (#x961e ?) - (#x9622 ?) - (#x9624 ?) - (#x9625 ?) - (#x9626 ?) - (#x962c ?) - (#x9631 ?) - (#x9633 ?) - (#x9637 ?) - (#x9638 ?) - (#x9639 ?) - (#x963a ?) - (#x963c ?) - (#x963d ?) - (#x9641 ?) - (#x9652 ?) - (#x9654 ?) - (#x9656 ?) - (#x9657 ?) - (#x9658 ?) - (#x9661 ?) - (#x966e ?) - (#x9674 ?) - (#x967b ?) - (#x967c ?) - (#x967e ?) - (#x967f ?) - (#x9681 ?) - (#x9682 ?) - (#x9683 ?) - (#x9684 ?) - (#x9689 ?) - (#x9691 ?) - (#x9696 ?) - (#x969a ?) - (#x969d ?) - (#x969f ?) - (#x96a4 ?) - (#x96a5 ?) - (#x96a6 ?) - (#x96a9 ?) - (#x96ae ?) - (#x96af ?) - (#x96b3 ?) - (#x96ba ?) - (#x96ca ?) - (#x96d2 ?) - (#x96d8 ?) - (#x96da ?) - (#x96dd ?) - (#x96de ?) - (#x96df ?) - (#x96e9 ?) - (#x96ef ?) - (#x96f1 ?) - (#x96fa ?) - (#x9702 ?) - (#x9703 ?) - (#x9705 ?) - (#x9709 ?) - (#x971a ?) - (#x971b ?) - (#x971d ?) - (#x9721 ?) - (#x9722 ?) - (#x9723 ?) - (#x9728 ?) - (#x9731 ?) - (#x9733 ?) - (#x9741 ?) - (#x9743 ?) - (#x974a ?) - (#x974e ?) - (#x974f ?) - (#x9755 ?) - (#x9757 ?) - (#x9758 ?) - (#x975a ?) - (#x975b ?) - (#x9763 ?) - (#x9767 ?) - (#x976a ?) - (#x976e ?) - (#x9773 ?) - (#x9776 ?) - (#x9777 ?) - (#x9778 ?) - (#x977b ?) - (#x977d ?) - (#x977f ?) - (#x9780 ?) - (#x9789 ?) - (#x9795 ?) - (#x9796 ?) - (#x9797 ?) - (#x9799 ?) - (#x979a ?) - (#x979e ?) - (#x979f ?) - (#x97a2 ?) - (#x97ac ?) - (#x97ae ?) - (#x97b1 ?) - (#x97b2 ?) - (#x97b5 ?) - (#x97b6 ?) - (#x97b8 ?) - (#x97b9 ?) - (#x97ba ?) - (#x97bc ?) - (#x97be ?) - (#x97bf ?) - (#x97c1 ?) - (#x97c4 ?) - (#x97c5 ?) - (#x97c7 ?) - (#x97c9 ?) - (#x97ca ?) - (#x97cc ?) - (#x97cd ?) - (#x97ce ?) - (#x97d0 ?) - (#x97d1 ?) - (#x97d4 ?) - (#x97d7 ?) - (#x97d8 ?) - (#x97d9 ?) - (#x97db ?) - (#x97dd ?) - (#x97de ?) - (#x97e0 ?) - (#x97e1 ?) - (#x97e4 ?) - (#x97ef ?) - (#x97f1 ?) - (#x97f4 ?) - (#x97f7 ?) - (#x97f8 ?) - (#x97fa ?) - (#x9807 ?) - (#x980a ?) - (#x980d ?) - (#x980e ?) - (#x9814 ?) - (#x9816 ?) - (#x9819 ?) - (#x981c ?) - (#x981e ?) - (#x9820 ?) - (#x9823 ?) - (#x9825 ?) - (#x9826 ?) - (#x982b ?) - (#x982e ?) - (#x982f ?) - (#x9830 ?) - (#x9832 ?) - (#x9833 ?) - (#x9835 ?) - (#x983e ?) - (#x9844 ?) - (#x9847 ?) - (#x984a ?) - (#x9851 ?) - (#x9852 ?) - (#x9853 ?) - (#x9856 ?) - (#x9857 ?) - (#x9859 ?) - (#x985a ?) - (#x9862 ?) - (#x9863 ?) - (#x9865 ?) - (#x9866 ?) - (#x986a ?) - (#x986c ?) - (#x98ab ?) - (#x98ad ?) - (#x98ae ?) - (#x98b0 ?) - (#x98b4 ?) - (#x98b7 ?) - (#x98b8 ?) - (#x98ba ?) - (#x98bb ?) - (#x98bf ?) - (#x98c2 ?) - (#x98c5 ?) - (#x98c8 ?) - (#x98cc ?) - (#x98e1 ?) - (#x98e3 ?) - (#x98e5 ?) - (#x98e6 ?) - (#x98e7 ?) - (#x98ea ?) - (#x98f3 ?) - (#x98f6 ?) - (#x9902 ?) - (#x9907 ?) - (#x9908 ?) - (#x9911 ?) - (#x9915 ?) - (#x9916 ?) - (#x9917 ?) - (#x991a ?) - (#x991b ?) - (#x991c ?) - (#x991f ?) - (#x9922 ?) - (#x9926 ?) - (#x9927 ?) - (#x992b ?) - (#x9931 ?) - (#x9932 ?) - (#x9933 ?) - (#x9934 ?) - (#x9935 ?) - (#x9939 ?) - (#x993a ?) - (#x993b ?) - (#x993c ?) - (#x9940 ?) - (#x9941 ?) - (#x9946 ?) - (#x9947 ?) - (#x9948 ?) - (#x994d ?) - (#x994e ?) - (#x9954 ?) - (#x9958 ?) - (#x9959 ?) - (#x995b ?) - (#x995c ?) - (#x995e ?) - (#x995f ?) - (#x9960 ?) - (#x999b ?) - (#x999d ?) - (#x999f ?) - (#x99a6 ?) - (#x99b0 ?) - (#x99b1 ?) - (#x99b2 ?) - (#x99b5 ?) - (#x99b9 ?) - (#x99ba ?) - (#x99bd ?) - (#x99bf ?) - (#x99c3 ?) - (#x99c9 ?) - (#x99d3 ?) - (#x99d4 ?) - (#x99d9 ?) - (#x99da ?) - (#x99dc ?) - (#x99de ?) - (#x99e7 ?) - (#x99ea ?) - (#x99eb ?) - (#x99ec ?) - (#x99f0 ?) - (#x99f4 ?) - (#x99f5 ?) - (#x99f9 ?) - (#x99fd ?) - (#x99fe ?) - (#x9a02 ?) - (#x9a03 ?) - (#x9a04 ?) - (#x9a0b ?) - (#x9a0c ?) - (#x9a10 ?) - (#x9a11 ?) - (#x9a16 ?) - (#x9a1e ?) - (#x9a20 ?) - (#x9a22 ?) - (#x9a23 ?) - (#x9a24 ?) - (#x9a27 ?) - (#x9a2d ?) - (#x9a2e ?) - (#x9a33 ?) - (#x9a35 ?) - (#x9a36 ?) - (#x9a38 ?) - (#x9a41 ?) - (#x9a44 ?) - (#x9a47 ?) - (#x9a4a ?) - (#x9a4b ?) - (#x9a4c ?) - (#x9a4e ?) - (#x9a51 ?) - (#x9a54 ?) - (#x9a56 ?) - (#x9a5d ?) - (#x9aaa ?) - (#x9aac ?) - (#x9aae ?) - (#x9aaf ?) - (#x9ab2 ?) - (#x9ab4 ?) - (#x9ab5 ?) - (#x9ab6 ?) - (#x9ab9 ?) - (#x9abb ?) - (#x9abe ?) - (#x9abf ?) - (#x9ac1 ?) - (#x9ac3 ?) - (#x9ac6 ?) - (#x9ac8 ?) - (#x9ace ?) - (#x9ad0 ?) - (#x9ad2 ?) - (#x9ad5 ?) - (#x9ad6 ?) - (#x9ad7 ?) - (#x9adb ?) - (#x9adc ?) - (#x9ae0 ?) - (#x9ae4 ?) - (#x9ae5 ?) - (#x9ae7 ?) - (#x9ae9 ?) - (#x9aec ?) - (#x9af2 ?) - (#x9af3 ?) - (#x9af5 ?) - (#x9af9 ?) - (#x9afa ?) - (#x9afd ?) - (#x9aff ?) - (#x9b00 ?) - (#x9b01 ?) - (#x9b02 ?) - (#x9b03 ?) - (#x9b04 ?) - (#x9b05 ?) - (#x9b08 ?) - (#x9b09 ?) - (#x9b0b ?) - (#x9b0c ?) - (#x9b0d ?) - (#x9b0e ?) - (#x9b10 ?) - (#x9b12 ?) - (#x9b16 ?) - (#x9b19 ?) - (#x9b1b ?) - (#x9b1c ?) - (#x9b20 ?) - (#x9b26 ?) - (#x9b2b ?) - (#x9b2d ?) - (#x9b33 ?) - (#x9b34 ?) - (#x9b35 ?) - (#x9b37 ?) - (#x9b39 ?) - (#x9b3a ?) - (#x9b3d ?) - (#x9b48 ?) - (#x9b4b ?) - (#x9b4c ?) - (#x9b55 ?) - (#x9b56 ?) - (#x9b57 ?) - (#x9b5b ?) - (#x9b5e ?) - (#x9b61 ?) - (#x9b63 ?) - (#x9b65 ?) - (#x9b66 ?) - (#x9b68 ?) - (#x9b6a ?) - (#x9b6b ?) - (#x9b6c ?) - (#x9b6d ?) - (#x9b6e ?) - (#x9b73 ?) - (#x9b75 ?) - (#x9b77 ?) - (#x9b78 ?) - (#x9b79 ?) - (#x9b7f ?) - (#x9b80 ?) - (#x9b84 ?) - (#x9b85 ?) - (#x9b86 ?) - (#x9b87 ?) - (#x9b89 ?) - (#x9b8a ?) - (#x9b8b ?) - (#x9b8d ?) - (#x9b8f ?) - (#x9b90 ?) - (#x9b94 ?) - (#x9b9a ?) - (#x9b9d ?) - (#x9b9e ?) - (#x9ba6 ?) - (#x9ba7 ?) - (#x9ba9 ?) - (#x9bac ?) - (#x9bb0 ?) - (#x9bb1 ?) - (#x9bb2 ?) - (#x9bb7 ?) - (#x9bb8 ?) - (#x9bbb ?) - (#x9bbc ?) - (#x9bbe ?) - (#x9bbf ?) - (#x9bc1 ?) - (#x9bc7 ?) - (#x9bc8 ?) - (#x9bce ?) - (#x9bd0 ?) - (#x9bd7 ?) - (#x9bd8 ?) - (#x9bdd ?) - (#x9bdf ?) - (#x9be5 ?) - (#x9be7 ?) - (#x9bea ?) - (#x9beb ?) - (#x9bef ?) - (#x9bf3 ?) - (#x9bf7 ?) - (#x9bf8 ?) - (#x9bf9 ?) - (#x9bfa ?) - (#x9bfd ?) - (#x9bff ?) - (#x9c00 ?) - (#x9c02 ?) - (#x9c0b ?) - (#x9c0f ?) - (#x9c11 ?) - (#x9c16 ?) - (#x9c18 ?) - (#x9c19 ?) - (#x9c1a ?) - (#x9c1c ?) - (#x9c1e ?) - (#x9c22 ?) - (#x9c23 ?) - (#x9c26 ?) - (#x9c27 ?) - (#x9c28 ?) - (#x9c29 ?) - (#x9c2a ?) - (#x9c31 ?) - (#x9c35 ?) - (#x9c36 ?) - (#x9c37 ?) - (#x9c3d ?) - (#x9c41 ?) - (#x9c43 ?) - (#x9c44 ?) - (#x9c45 ?) - (#x9c49 ?) - (#x9c4a ?) - (#x9c4e ?) - (#x9c4f ?) - (#x9c50 ?) - (#x9c53 ?) - (#x9c54 ?) - (#x9c56 ?) - (#x9c58 ?) - (#x9c5b ?) - (#x9c5c ?) - (#x9c5d ?) - (#x9c5e ?) - (#x9c5f ?) - (#x9c63 ?) - (#x9c68 ?) - (#x9c69 ?) - (#x9c6a ?) - (#x9c6b ?) - (#x9c6e ?) - (#x9c70 ?) - (#x9c72 ?) - (#x9c75 ?) - (#x9c77 ?) - (#x9c7b ?) - (#x9ce6 ?) - (#x9cf2 ?) - (#x9cf7 ?) - (#x9cf9 ?) - (#x9d02 ?) - (#x9d0b ?) - (#x9d11 ?) - (#x9d17 ?) - (#x9d18 ?) - (#x9d1c ?) - (#x9d1d ?) - (#x9d1e ?) - (#x9d2f ?) - (#x9d30 ?) - (#x9d32 ?) - (#x9d33 ?) - (#x9d34 ?) - (#x9d3a ?) - (#x9d3c ?) - (#x9d3d ?) - (#x9d42 ?) - (#x9d43 ?) - (#x9d45 ?) - (#x9d47 ?) - (#x9d4a ?) - (#x9d53 ?) - (#x9d54 ?) - (#x9d5f ?) - (#x9d62 ?) - (#x9d63 ?) - (#x9d65 ?) - (#x9d69 ?) - (#x9d6a ?) - (#x9d6b ?) - (#x9d70 ?) - (#x9d76 ?) - (#x9d77 ?) - (#x9d7b ?) - (#x9d7c ?) - (#x9d7e ?) - (#x9d83 ?) - (#x9d84 ?) - (#x9d86 ?) - (#x9d8a ?) - (#x9d8d ?) - (#x9d8e ?) - (#x9d92 ?) - (#x9d93 ?) - (#x9d95 ?) - (#x9d96 ?) - (#x9d97 ?) - (#x9d98 ?) - (#x9da1 ?) - (#x9daa ?) - (#x9dac ?) - (#x9dae ?) - (#x9db1 ?) - (#x9db5 ?) - (#x9db9 ?) - (#x9dbc ?) - (#x9dbf ?) - (#x9dc3 ?) - (#x9dc7 ?) - (#x9dc9 ?) - (#x9dca ?) - (#x9dd4 ?) - (#x9dd5 ?) - (#x9dd6 ?) - (#x9dd7 ?) - (#x9dda ?) - (#x9dde ?) - (#x9ddf ?) - (#x9de0 ?) - (#x9de5 ?) - (#x9de7 ?) - (#x9de9 ?) - (#x9deb ?) - (#x9dee ?) - (#x9df0 ?) - (#x9df3 ?) - (#x9df4 ?) - (#x9dfe ?) - (#x9e02 ?) - (#x9e07 ?) - (#x9e0a ?) - (#x9e0e ?) - (#x9e10 ?) - (#x9e11 ?) - (#x9e12 ?) - (#x9e15 ?) - (#x9e16 ?) - (#x9e19 ?) - (#x9e1c ?) - (#x9e1d ?) - (#x9e7a ?) - (#x9e7b ?) - (#x9e7c ?) - (#x9e80 ?) - (#x9e82 ?) - (#x9e83 ?) - (#x9e84 ?) - (#x9e85 ?) - (#x9e87 ?) - (#x9e8e ?) - (#x9e8f ?) - (#x9e96 ?) - (#x9e98 ?) - (#x9e9b ?) - (#x9e9e ?) - (#x9ea4 ?) - (#x9ea8 ?) - (#x9eac ?) - (#x9eae ?) - (#x9eaf ?) - (#x9eb0 ?) - (#x9eb3 ?) - (#x9eb4 ?) - (#x9eb5 ?) - (#x9ec6 ?) - (#x9ec8 ?) - (#x9ecb ?) - (#x9ed5 ?) - (#x9edf ?) - (#x9ee4 ?) - (#x9ee7 ?) - (#x9eec ?) - (#x9eed ?) - (#x9eee ?) - (#x9ef0 ?) - (#x9ef1 ?) - (#x9ef2 ?) - (#x9ef5 ?) - (#x9ef8 ?) - (#x9eff ?) - (#x9f02 ?) - (#x9f03 ?) - (#x9f09 ?) - (#x9f0f ?) - (#x9f10 ?) - (#x9f11 ?) - (#x9f12 ?) - (#x9f14 ?) - (#x9f16 ?) - (#x9f17 ?) - (#x9f19 ?) - (#x9f1a ?) - (#x9f1b ?) - (#x9f1f ?) - (#x9f22 ?) - (#x9f26 ?) - (#x9f2a ?) - (#x9f2b ?) - (#x9f2f ?) - (#x9f31 ?) - (#x9f32 ?) - (#x9f34 ?) - (#x9f37 ?) - (#x9f39 ?) - (#x9f3a ?) - (#x9f3c ?) - (#x9f3d ?) - (#x9f3f ?) - (#x9f41 ?) - (#x9f43 ?) - (#x9f44 ?) - (#x9f45 ?) - (#x9f46 ?) - (#x9f47 ?) - (#x9f53 ?) - (#x9f55 ?) - (#x9f56 ?) - (#x9f57 ?) - (#x9f58 ?) - (#x9f5a ?) - (#x9f5d ?) - (#x9f5e ?) - (#x9f68 ?) - (#x9f69 ?) - (#x9f6d ?) - (#x9f6e ?) - (#x9f6f ?) - (#x9f70 ?) - (#x9f71 ?) - (#x9f73 ?) - (#x9f75 ?) - (#x9f7a ?) - (#x9f7d ?) - (#x9f8f ?) - (#x9f90 ?) - (#x9f91 ?) - (#x9f92 ?) - (#x9f94 ?) - (#x9f96 ?) - (#x9f97 ?) - (#x9f9e ?) - (#x9fa1 ?) - (#x9fa2 ?) - (#x9fa3 ?) - (#x9fa5 ?) - (#xff5e ?) - - ;; jisx0201 - (#xFF61 ?) - (#xFF62 ?\) - (#xFF63 ?\) - (#xFF64 ?) - (#xFF65 ?) - (#xFF66 ?) - (#xFF67 ?) - (#xFF68 ?) - (#xFF69 ?) - (#xFF6A ?) - (#xFF6B ?) - (#xFF6C ?) - (#xFF6D ?) - (#xFF6E ?) - (#xFF6F ?) - (#xFF70 ?) - (#xFF71 ?) - (#xFF72 ?) - (#xFF73 ?) - (#xFF74 ?) - (#xFF75 ?) - (#xFF76 ?) - (#xFF77 ?) - (#xFF78 ?) - (#xFF79 ?) - (#xFF7A ?) - (#xFF7B ?) - (#xFF7C ?) - (#xFF7D ?) - (#xFF7E ?) - (#xFF7F ?) - (#xFF80 ?) - (#xFF81 ?) - (#xFF82 ?) - (#xFF83 ?) - (#xFF84 ?) - (#xFF85 ?) - (#xFF86 ?) - (#xFF87 ?) - (#xFF88 ?) - (#xFF89 ?) - (#xFF8A ?) - (#xFF8B ?) - (#xFF8C ?) - (#xFF8D ?) - (#xFF8E ?) - (#xFF8F ?) - (#xFF90 ?) - (#xFF91 ?) - (#xFF92 ?) - (#xFF93 ?) - (#xFF94 ?) - (#xFF95 ?) - (#xFF96 ?) - (#xFF97 ?) - (#xFF98 ?) - (#xFF99 ?) - (#xFF9A ?) - (#xFF9B ?) - (#xFF9C ?) - (#xFF9D ?) - (#xFF9E ?) - (#xFF9F ?) - )) - -;;; arch-tag: 7f320453-b293-4159-af5e-6f0bab03048c -;;; subst-jis.el ends here diff --git a/lisp/international/subst-ksc.el b/lisp/international/subst-ksc.el deleted file mode 100644 index 69f5296e917..00000000000 --- a/lisp/international/subst-ksc.el +++ /dev/null @@ -1,8267 +0,0 @@ -;;; subst-ksc.el --- Unicode/KSC-5601 translation -*-coding: euc-kr;-*- - -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; This file 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 3, or (at your option) -;; any later version. - -;; This file 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. - -;;; Commentary: - -;; Provides translation tables between Unicode and korean-ksc5601 for -;; use by the `utf-translate-cjk-mode' option. See subst-jis.el for the -;; method used. - -;;; Code: - -(mapc - (lambda (pair) - (let ((unicode (car pair)) - (char (cadr pair))) - ;; exclude non-supporting components from decode table - (if (utf-translate-cjk-substitutable-p unicode) - (puthash unicode char ucs-unicode-to-mule-cjk)) - (puthash char unicode ucs-mule-cjk-to-unicode))) - '((#xa1 ?) - (#xa4 ?) - (#xa7 ?) - (#xa8 ?) - (#xaa ?) - (#xad ?) - (#xae ?) - (#xb0 ?) - (#xb1 ?) - (#xb2 ?) - (#xb3 ?) - (#xb4 ?) - (#xb6 ?) - (#xb7 ?) - (#xb8 ?) - (#xb9 ?) - (#xba ?) - (#xbc ?) - (#xbd ?) - (#xbe ?) - (#xbf ?) - (#xc6 ?) - (#xd0 ?) - (#xd7 ?) - (#xd8 ?) - (#xde ?) - (#xdf ?) - (#xe6 ?) - (#xf0 ?) - (#xf7 ?) - (#xf8 ?) - (#xfe ?) - (#x111 ?) - (#x126 ?) - (#x127 ?) - (#x131 ?) - (#x132 ?) - (#x133 ?) - (#x138 ?) - (#x13f ?) - (#x140 ?) - (#x141 ?) - (#x142 ?) - (#x149 ?) - (#x14a ?) - (#x14b ?) - (#x152 ?) - (#x153 ?) - (#x166 ?) - (#x167 ?) - (#x2c7 ?) - (#x2d0 ?) - (#x2d8 ?) - (#x2d9 ?) - (#x2da ?) - (#x2db ?) - (#x2dd ?) - (#x391 ?) - (#x392 ?) - (#x393 ?) - (#x394 ?) - (#x395 ?) - (#x396 ?) - (#x397 ?) - (#x398 ?) - (#x399 ?) - (#x39a ?) - (#x39b ?) - (#x39c ?) - (#x39d ?) - (#x39e ?) - (#x39f ?) - (#x3a0 ?) - (#x3a1 ?) - (#x3a3 ?) - (#x3a4 ?) - (#x3a5 ?) - (#x3a6 ?) - (#x3a7 ?) - (#x3a8 ?) - (#x3a9 ?) - (#x3b1 ?) - (#x3b2 ?) - (#x3b3 ?) - (#x3b4 ?) - (#x3b5 ?) - (#x3b6 ?) - (#x3b7 ?) - (#x3b8 ?) - (#x3b9 ?) - (#x3ba ?) - (#x3bb ?) - (#x3bc ?) - (#x3bd ?) - (#x3be ?) - (#x3bf ?) - (#x3c0 ?) - (#x3c1 ?) - (#x3c3 ?) - (#x3c4 ?) - (#x3c5 ?) - (#x3c6 ?) - (#x3c7 ?) - (#x3c8 ?) - (#x3c9 ?) - (#x401 ?) - (#x410 ?) - (#x411 ?) - (#x412 ?) - (#x413 ?) - (#x414 ?) - (#x415 ?) - (#x416 ?) - (#x417 ?) - (#x418 ?) - (#x419 ?) - (#x41a ?) - (#x41b ?) - (#x41c ?) - (#x41d ?) - (#x41e ?) - (#x41f ?) - (#x420 ?) - (#x421 ?) - (#x422 ?) - (#x423 ?) - (#x424 ?) - (#x425 ?) - (#x426 ?) - (#x427 ?) - (#x428 ?) - (#x429 ?) - (#x42a ?) - (#x42b ?) - (#x42c ?) - (#x42d ?) - (#x42e ?) - (#x42f ?) - (#x430 ?) - (#x431 ?) - (#x432 ?) - (#x433 ?) - (#x434 ?) - (#x435 ?) - (#x436 ?) - (#x437 ?) - (#x438 ?) - (#x439 ?) - (#x43a ?) - (#x43b ?) - (#x43c ?) - (#x43d ?) - (#x43e ?) - (#x43f ?) - (#x440 ?) - (#x441 ?) - (#x442 ?) - (#x443 ?) - (#x444 ?) - (#x445 ?) - (#x446 ?) - (#x447 ?) - (#x448 ?) - (#x449 ?) - (#x44a ?) - (#x44b ?) - (#x44c ?) - (#x44d ?) - (#x44e ?) - (#x44f ?) - (#x451 ?) - (#x2015 ?) - (#x2018 ?) - (#x2019 ?) - (#x201c ?) - (#x201d ?) - (#x2020 ?) - (#x2021 ?) - (#x2025 ?) - (#x2026 ?) - (#x2030 ?) - (#x2032 ?) - (#x2033 ?) - (#x203b ?) - (#x2074 ?) - (#x207f ?) - (#x2081 ?) - (#x2082 ?) - (#x2083 ?) - (#x2084 ?) - (#x20ac ?) - (#x2103 ?) - (#x2109 ?) - (#x2113 ?) - (#x2116 ?) - (#x2121 ?) - (#x2122 ?) - (#x2126 ?) - (#x212b ?) - (#x2153 ?) - (#x2154 ?) - (#x215b ?) - (#x215c ?) - (#x215d ?) - (#x215e ?) - (#x2160 ?) - (#x2161 ?) - (#x2162 ?) - (#x2163 ?) - (#x2164 ?) - (#x2165 ?) - (#x2166 ?) - (#x2167 ?) - (#x2168 ?) - (#x2169 ?) - (#x2170 ?) - (#x2171 ?) - (#x2172 ?) - (#x2173 ?) - (#x2174 ?) - (#x2175 ?) - (#x2176 ?) - (#x2177 ?) - (#x2178 ?) - (#x2179 ?) - (#x2190 ?) - (#x2191 ?) - (#x2192 ?) - (#x2193 ?) - (#x2194 ?) - (#x2195 ?) - (#x2196 ?) - (#x2197 ?) - (#x2198 ?) - (#x2199 ?) - (#x21d2 ?) - (#x21d4 ?) - (#x2200 ?) - (#x2202 ?) - (#x2203 ?) - (#x2207 ?) - (#x2208 ?) - (#x220b ?) - (#x220f ?) - (#x2211 ?) - (#x221a ?) - (#x221d ?) - (#x221e ?) - (#x2220 ?) - (#x2225 ?) - (#x2227 ?) - (#x2228 ?) - (#x2229 ?) - (#x222a ?) - (#x222b ?) - (#x222c ?) - (#x222e ?) - (#x2234 ?) - (#x2235 ?) - (#x223c ?) - (#x223d ?) - (#x2252 ?) - (#x2260 ?) - (#x2261 ?) - (#x2264 ?) - (#x2265 ?) - (#x226a ?) - (#x226b ?) - (#x2282 ?) - (#x2283 ?) - (#x2286 ?) - (#x2287 ?) - (#x2299 ?) - (#x22a5 ?) - (#x2312 ?) - (#x2460 ?) - (#x2461 ?) - (#x2462 ?) - (#x2463 ?) - (#x2464 ?) - (#x2465 ?) - (#x2466 ?) - (#x2467 ?) - (#x2468 ?) - (#x2469 ?) - (#x246a ?) - (#x246b ?) - (#x246c ?) - (#x246d ?) - (#x246e ?) - (#x2474 ?) - (#x2475 ?) - (#x2476 ?) - (#x2477 ?) - (#x2478 ?) - (#x2479 ?) - (#x247a ?) - (#x247b ?) - (#x247c ?) - (#x247d ?) - (#x247e ?) - (#x247f ?) - (#x2480 ?) - (#x2481 ?) - (#x2482 ?) - (#x249c ?) - (#x249d ?) - (#x249e ?) - (#x249f ?) - (#x24a0 ?) - (#x24a1 ?) - (#x24a2 ?) - (#x24a3 ?) - (#x24a4 ?) - (#x24a5 ?) - (#x24a6 ?) - (#x24a7 ?) - (#x24a8 ?) - (#x24a9 ?) - (#x24aa ?) - (#x24ab ?) - (#x24ac ?) - (#x24ad ?) - (#x24ae ?) - (#x24af ?) - (#x24b0 ?) - (#x24b1 ?) - (#x24b2 ?) - (#x24b3 ?) - (#x24b4 ?) - (#x24b5 ?) - (#x24d0 ?) - (#x24d1 ?) - (#x24d2 ?) - (#x24d3 ?) - (#x24d4 ?) - (#x24d5 ?) - (#x24d6 ?) - (#x24d7 ?) - (#x24d8 ?) - (#x24d9 ?) - (#x24da ?) - (#x24db ?) - (#x24dc ?) - (#x24dd ?) - (#x24de ?) - (#x24df ?) - (#x24e0 ?) - (#x24e1 ?) - (#x24e2 ?) - (#x24e3 ?) - (#x24e4 ?) - (#x24e5 ?) - (#x24e6 ?) - (#x24e7 ?) - (#x24e8 ?) - (#x24e9 ?) - (#x2500 ?) - (#x2501 ?) - (#x2502 ?) - (#x2503 ?) - (#x250c ?) - (#x250d ?) - (#x250e ?) - (#x250f ?) - (#x2510 ?) - (#x2511 ?) - (#x2512 ?) - (#x2513 ?) - (#x2514 ?) - (#x2515 ?) - (#x2516 ?) - (#x2517 ?) - (#x2518 ?) - (#x2519 ?) - (#x251a ?) - (#x251b ?) - (#x251c ?) - (#x251d ?) - (#x251e ?) - (#x251f ?) - (#x2520 ?) - (#x2521 ?) - (#x2522 ?) - (#x2523 ?) - (#x2524 ?) - (#x2525 ?) - (#x2526 ?) - (#x2527 ?) - (#x2528 ?) - (#x2529 ?) - (#x252a ?) - (#x252b ?) - (#x252c ?) - (#x252d ?) - (#x252e ?) - (#x252f ?) - (#x2530 ?) - (#x2531 ?) - (#x2532 ?) - (#x2533 ?) - (#x2534 ?) - (#x2535 ?) - (#x2536 ?) - (#x2537 ?) - (#x2538 ?) - (#x2539 ?) - (#x253a ?) - (#x253b ?) - (#x253c ?) - (#x253d ?) - (#x253e ?) - (#x253f ?) - (#x2540 ?) - (#x2541 ?) - (#x2542 ?) - (#x2543 ?) - (#x2544 ?) - (#x2545 ?) - (#x2546 ?) - (#x2547 ?) - (#x2548 ?) - (#x2549 ?) - (#x254a ?) - (#x254b ?) - (#x2592 ?) - (#x25a0 ?) - (#x25a1 ?) - (#x25a3 ?) - (#x25a4 ?) - (#x25a5 ?) - (#x25a6 ?) - (#x25a7 ?) - (#x25a8 ?) - (#x25a9 ?) - (#x25b2 ?) - (#x25b3 ?) - (#x25b6 ?) - (#x25b7 ?) - (#x25bc ?) - (#x25bd ?) - (#x25c0 ?) - (#x25c1 ?) - (#x25c6 ?) - (#x25c7 ?) - (#x25c8 ?) - (#x25cb ?) - (#x25ce ?) - (#x25cf ?) - (#x25d0 ?) - (#x25d1 ?) - (#x2605 ?) - (#x2606 ?) - (#x260e ?) - (#x260f ?) - (#x261c ?) - (#x261e ?) - (#x2640 ?) - (#x2642 ?) - (#x2660 ?) - (#x2661 ?) - (#x2663 ?) - (#x2664 ?) - (#x2665 ?) - (#x2667 ?) - (#x2668 ?) - (#x2669 ?) - (#x266a ?) - (#x266c ?) - (#x266d ?) - (#x3000 ?) - (#x3001 ?) - (#x3002 ?) - (#x3003 ?) - (#x3008 ?\) - (#x3009 ?\) - (#x300a ?\) - (#x300b ?\) - (#x300c ?\) - (#x300d ?\) - (#x300e ?\) - (#x300f ?\) - (#x3010 ?\) - (#x3011 ?\) - (#x3013 ?) - (#x3014 ?\) - (#x3015 ?\) - (#x3041 ?) - (#x3042 ?) - (#x3043 ?) - (#x3044 ?) - (#x3045 ?) - (#x3046 ?) - (#x3047 ?) - (#x3048 ?) - (#x3049 ?) - (#x304a ?) - (#x304b ?) - (#x304c ?) - (#x304d ?) - (#x304e ?) - (#x304f ?) - (#x3050 ?) - (#x3051 ?) - (#x3052 ?) - (#x3053 ?) - (#x3054 ?) - (#x3055 ?) - (#x3056 ?) - (#x3057 ?) - (#x3058 ?) - (#x3059 ?) - (#x305a ?) - (#x305b ?) - (#x305c ?) - (#x305d ?) - (#x305e ?) - (#x305f ?) - (#x3060 ?) - (#x3061 ?) - (#x3062 ?) - (#x3063 ?) - (#x3064 ?) - (#x3065 ?) - (#x3066 ?) - (#x3067 ?) - (#x3068 ?) - (#x3069 ?) - (#x306a ?) - (#x306b ?) - (#x306c ?) - (#x306d ?) - (#x306e ?) - (#x306f ?) - (#x3070 ?) - (#x3071 ?) - (#x3072 ?) - (#x3073 ?) - (#x3074 ?) - (#x3075 ?) - (#x3076 ?) - (#x3077 ?) - (#x3078 ?) - (#x3079 ?) - (#x307a ?) - (#x307b ?) - (#x307c ?) - (#x307d ?) - (#x307e ?) - (#x307f ?) - (#x3080 ?) - (#x3081 ?) - (#x3082 ?) - (#x3083 ?) - (#x3084 ?) - (#x3085 ?) - (#x3086 ?) - (#x3087 ?) - (#x3088 ?) - (#x3089 ?) - (#x308a ?) - (#x308b ?) - (#x308c ?) - (#x308d ?) - (#x308e ?) - (#x308f ?) - (#x3090 ?) - (#x3091 ?) - (#x3092 ?) - (#x3093 ?) - (#x30a1 ?) - (#x30a2 ?) - (#x30a3 ?) - (#x30a4 ?) - (#x30a5 ?) - (#x30a6 ?) - (#x30a7 ?) - (#x30a8 ?) - (#x30a9 ?) - (#x30aa ?) - (#x30ab ?) - (#x30ac ?) - (#x30ad ?) - (#x30ae ?) - (#x30af ?) - (#x30b0 ?) - (#x30b1 ?) - (#x30b2 ?) - (#x30b3 ?) - (#x30b4 ?) - (#x30b5 ?) - (#x30b6 ?) - (#x30b7 ?) - (#x30b8 ?) - (#x30b9 ?) - (#x30ba ?) - (#x30bb ?) - (#x30bc ?) - (#x30bd ?) - (#x30be ?) - (#x30bf ?) - (#x30c0 ?) - (#x30c1 ?) - (#x30c2 ?) - (#x30c3 ?) - (#x30c4 ?) - (#x30c5 ?) - (#x30c6 ?) - (#x30c7 ?) - (#x30c8 ?) - (#x30c9 ?) - (#x30ca ?) - (#x30cb ?) - (#x30cc ?) - (#x30cd ?) - (#x30ce ?) - (#x30cf ?) - (#x30d0 ?) - (#x30d1 ?) - (#x30d2 ?) - (#x30d3 ?) - (#x30d4 ?) - (#x30d5 ?) - (#x30d6 ?) - (#x30d7 ?) - (#x30d8 ?) - (#x30d9 ?) - (#x30da ?) - (#x30db ?) - (#x30dc ?) - (#x30dd ?) - (#x30de ?) - (#x30df ?) - (#x30e0 ?) - (#x30e1 ?) - (#x30e2 ?) - (#x30e3 ?) - (#x30e4 ?) - (#x30e5 ?) - (#x30e6 ?) - (#x30e7 ?) - (#x30e8 ?) - (#x30e9 ?) - (#x30ea ?) - (#x30eb ?) - (#x30ec ?) - (#x30ed ?) - (#x30ee ?) - (#x30ef ?) - (#x30f0 ?) - (#x30f1 ?) - (#x30f2 ?) - (#x30f3 ?) - (#x30f4 ?) - (#x30f5 ?) - (#x30f6 ?) - (#x3131 ?) - (#x3132 ?) - (#x3133 ?) - (#x3134 ?) - (#x3135 ?) - (#x3136 ?) - (#x3137 ?) - (#x3138 ?) - (#x3139 ?) - (#x313a ?) - (#x313b ?) - (#x313c ?) - (#x313d ?) - (#x313e ?) - (#x313f ?) - (#x3140 ?) - (#x3141 ?) - (#x3142 ?) - (#x3143 ?) - (#x3144 ?) - (#x3145 ?) - (#x3146 ?) - (#x3147 ?) - (#x3148 ?) - (#x3149 ?) - (#x314a ?) - (#x314b ?) - (#x314c ?) - (#x314d ?) - (#x314e ?) - (#x314f ?) - (#x3150 ?) - (#x3151 ?) - (#x3152 ?) - (#x3153 ?) - (#x3154 ?) - (#x3155 ?) - (#x3156 ?) - (#x3157 ?) - (#x3158 ?) - (#x3159 ?) - (#x315a ?) - (#x315b ?) - (#x315c ?) - (#x315d ?) - (#x315e ?) - (#x315f ?) - (#x3160 ?) - (#x3161 ?) - (#x3162 ?) - (#x3163 ?) - (#x3164 ?) - (#x3165 ?) - (#x3166 ?) - (#x3167 ?) - (#x3168 ?) - (#x3169 ?) - (#x316a ?) - (#x316b ?) - (#x316c ?) - (#x316d ?) - (#x316e ?) - (#x316f ?) - (#x3170 ?) - (#x3171 ?) - (#x3172 ?) - (#x3173 ?) - (#x3174 ?) - (#x3175 ?) - (#x3176 ?) - (#x3177 ?) - (#x3178 ?) - (#x3179 ?) - (#x317a ?) - (#x317b ?) - (#x317c ?) - (#x317d ?) - (#x317e ?) - (#x317f ?) - (#x3180 ?) - (#x3181 ?) - (#x3182 ?) - (#x3183 ?) - (#x3184 ?) - (#x3185 ?) - (#x3186 ?) - (#x3187 ?) - (#x3188 ?) - (#x3189 ?) - (#x318a ?) - (#x318b ?) - (#x318c ?) - (#x318d ?) - (#x318e ?) - (#x3200 ?) - (#x3201 ?) - (#x3202 ?) - (#x3203 ?) - (#x3204 ?) - (#x3205 ?) - (#x3206 ?) - (#x3207 ?) - (#x3208 ?) - (#x3209 ?) - (#x320a ?) - (#x320b ?) - (#x320c ?) - (#x320d ?) - (#x320e ?) - (#x320f ?) - (#x3210 ?) - (#x3211 ?) - (#x3212 ?) - (#x3213 ?) - (#x3214 ?) - (#x3215 ?) - (#x3216 ?) - (#x3217 ?) - (#x3218 ?) - (#x3219 ?) - (#x321a ?) - (#x321b ?) - (#x321c ?) - (#x3260 ?) - (#x3261 ?) - (#x3262 ?) - (#x3263 ?) - (#x3264 ?) - (#x3265 ?) - (#x3266 ?) - (#x3267 ?) - (#x3268 ?) - (#x3269 ?) - (#x326a ?) - (#x326b ?) - (#x326c ?) - (#x326d ?) - (#x326e ?) - (#x326f ?) - (#x3270 ?) - (#x3271 ?) - (#x3272 ?) - (#x3273 ?) - (#x3274 ?) - (#x3275 ?) - (#x3276 ?) - (#x3277 ?) - (#x3278 ?) - (#x3279 ?) - (#x327a ?) - (#x327b ?) - (#x327f ?) - (#x3380 ?) - (#x3381 ?) - (#x3382 ?) - (#x3383 ?) - (#x3384 ?) - (#x3388 ?) - (#x3389 ?) - (#x338a ?) - (#x338b ?) - (#x338c ?) - (#x338d ?) - (#x338e ?) - (#x338f ?) - (#x3390 ?) - (#x3391 ?) - (#x3392 ?) - (#x3393 ?) - (#x3394 ?) - (#x3395 ?) - (#x3396 ?) - (#x3397 ?) - (#x3398 ?) - (#x3399 ?) - (#x339a ?) - (#x339b ?) - (#x339c ?) - (#x339d ?) - (#x339e ?) - (#x339f ?) - (#x33a0 ?) - (#x33a1 ?) - (#x33a2 ?) - (#x33a3 ?) - (#x33a4 ?) - (#x33a5 ?) - (#x33a6 ?) - (#x33a7 ?) - (#x33a8 ?) - (#x33a9 ?) - (#x33aa ?) - (#x33ab ?) - (#x33ac ?) - (#x33ad ?) - (#x33ae ?) - (#x33af ?) - (#x33b0 ?) - (#x33b1 ?) - (#x33b2 ?) - (#x33b3 ?) - (#x33b4 ?) - (#x33b5 ?) - (#x33b6 ?) - (#x33b7 ?) - (#x33b8 ?) - (#x33b9 ?) - (#x33ba ?) - (#x33bb ?) - (#x33bc ?) - (#x33bd ?) - (#x33be ?) - (#x33bf ?) - (#x33c0 ?) - (#x33c1 ?) - (#x33c2 ?) - (#x33c3 ?) - (#x33c4 ?) - (#x33c5 ?) - (#x33c6 ?) - (#x33c7 ?) - (#x33c8 ?) - (#x33c9 ?) - (#x33ca ?) - (#x33cf ?) - (#x33d0 ?) - (#x33d3 ?) - (#x33d6 ?) - (#x33d8 ?) - (#x33db ?) - (#x33dc ?) - (#x33dd ?) - (#x4e00 ?) - (#x4e01 ?) - (#x4e03 ?) - (#x4e07 ?ز) - (#x4e08 ?) - (#x4e09 ?߲) - (#x4e0a ?߾) - (#x4e0b ?) - (#x4e0d ?) - (#x4e11 ?) - (#x4e14 ?) - (#x4e15 ?) - (#x4e16 ?) - (#x4e18 ?) - (#x4e19 ?ܰ) - (#x4e1e ?) - (#x4e2d ?) - (#x4e32 ?) - (#x4e38 ?) - (#x4e39 ?ӡ) - (#x4e3b ?) - (#x4e42 ?) - (#x4e43 ?Ҭ) - (#x4e45 ?) - (#x4e4b ?) - (#x4e4d ?) - (#x4e4e ?) - (#x4e4f ?) - (#x4e56 ?) - (#x4e58 ?) - (#x4e59 ?) - (#x4e5d ?) - (#x4e5e ?) - (#x4e5f ?) - (#x4e6b ?) - (#x4e6d ?) - (#x4e73 ?) - (#x4e76 ?) - (#x4e77 ?߭) - (#x4e7e ?) - (#x4e82 ?կ) - (#x4e86 ?) - (#x4e88 ?) - (#x4e8b ?) - (#x4e8c ?) - (#x4e8e ?) - (#x4e90 ?) - (#x4e91 ?) - (#x4e92 ?) - (#x4e94 ?) - (#x4e95 ?) - (#x4e98 ?) - (#x4e9b ?) - (#x4e9e ?) - (#x4ea1 ?) - (#x4ea2 ?) - (#x4ea4 ?) - (#x4ea5 ?) - (#x4ea6 ?) - (#x4ea8 ?) - (#x4eab ?) - (#x4eac ?) - (#x4ead ?) - (#x4eae ?) - (#x4eb6 ?Ӣ) - (#x4eba ?) - (#x4ec0 ?) - (#x4ec1 ?) - (#x4ec4 ?) - (#x4ec7 ?) - (#x4eca ?) - (#x4ecb ?˿) - (#x4ecd ?) - (#x4ed4 ?) - (#x4ed5 ?) - (#x4ed6 ?) - (#x4ed7 ?) - (#x4ed8 ?) - (#x4ed9 ?) - (#x4edd ?) - (#x4edf ?) - (#x4ee3 ?) - (#x4ee4 ?ֵ) - (#x4ee5 ?) - (#x4ef0 ?) - (#x4ef2 ?) - (#x4ef6 ?) - (#x4ef7 ?) - (#x4efb ?) - (#x4f01 ?) - (#x4f09 ?) - (#x4f0a ?) - (#x4f0b ?) - (#x4f0d ?) - (#x4f0e ?) - (#x4f0f ?) - (#x4f10 ?) - (#x4f11 ?) - (#x4f2f ?) - (#x4f34 ?) - (#x4f36 ?ֶ) - (#x4f38 ?) - (#x4f3a ?) - (#x4f3c ?) - (#x4f3d ?ʡ) - (#x4f43 ?) - (#x4f46 ?ӣ) - (#x4f47 ?) - (#x4f48 ?) - (#x4f4d ?) - (#x4f4e ?) - (#x4f4f ?) - (#x4f50 ?) - (#x4f51 ?) - (#x4f55 ?) - (#x4f59 ?) - (#x4f5a ?) - (#x4f5b ?) - (#x4f5c ?) - (#x4f69 ?) - (#x4f6f ?) - (#x4f70 ?) - (#x4f73 ?ʢ) - (#x4f76 ?) - (#x4f7a ?) - (#x4f7e ?) - (#x4f7f ?) - (#x4f81 ?) - (#x4f83 ?) - (#x4f84 ?) - (#x4f86 ?) - (#x4f88 ?) - (#x4f8a ?) - (#x4f8b ?) - (#x4f8d ?) - (#x4f8f ?) - (#x4f91 ?) - (#x4f96 ?) - (#x4f98 ?) - (#x4f9b ?) - (#x4f9d ?) - (#x4fae ?ٲ) - (#x4faf ?) - (#x4fb5 ?) - (#x4fb6 ?) - (#x4fbf ?) - (#x4fc2 ?) - (#x4fc3 ?) - (#x4fc4 ?) - (#x4fc9 ?) - (#x4fca ?) - (#x4fce ?) - (#x4fd1 ?) - (#x4fd3 ?) - (#x4fd4 ?) - (#x4fd7 ?) - (#x4fda ?) - (#x4fdd ?) - (#x4fdf ?) - (#x4fe0 ?) - (#x4fe1 ?) - (#x4fee ?) - (#x4fef ?) - (#x4ff1 ?) - (#x4ff3 ?) - (#x4ff5 ?) - (#x4ff8 ?) - (#x4ffa ?) - (#x5002 ?ܱ) - (#x5006 ?) - (#x5009 ?) - (#x500b ?) - (#x500d ?) - (#x5011 ?) - (#x5012 ?) - (#x5016 ?) - (#x5019 ?) - (#x501a ?) - (#x501c ?) - (#x501e ?) - (#x501f ?) - (#x5021 ?) - (#x5023 ?ۧ) - (#x5024 ?) - (#x5026 ?) - (#x5027 ?) - (#x5028 ?) - (#x502a ?) - (#x502b ?) - (#x502c ?) - (#x502d ?) - (#x503b ?) - (#x5043 ?) - (#x5047 ?ʣ) - (#x5048 ?̧) - (#x5049 ?) - (#x504f ?) - (#x5055 ?) - (#x505a ?) - (#x505c ?) - (#x5065 ?) - (#x5074 ?) - (#x5075 ?) - (#x5076 ?) - (#x5078 ?) - (#x5080 ?) - (#x5085 ?) - (#x508d ?ۨ) - (#x5091 ?) - (#x5098 ?ߡ) - (#x5099 ?) - (#x50ac ?) - (#x50ad ?) - (#x50b2 ?) - (#x50b3 ?) - (#x50b5 ?) - (#x50b7 ?߿) - (#x50be ?) - (#x50c5 ?) - (#x50c9 ?) - (#x50ca ?) - (#x50cf ?) - (#x50d1 ?) - (#x50d5 ?) - (#x50d6 ?) - (#x50da ?) - (#x50de ?) - (#x50e5 ?) - (#x50e7 ?) - (#x50ed ?) - (#x50f9 ?ʤ) - (#x50fb ?) - (#x50ff ?) - (#x5100 ?) - (#x5101 ?) - (#x5104 ?) - (#x5106 ?) - (#x5109 ?) - (#x5112 ?) - (#x511f ?) - (#x5121 ?) - (#x512a ?) - (#x5132 ?) - (#x5137 ?) - (#x513a ?) - (#x513c ?) - (#x5140 ?) - (#x5141 ?) - (#x5143 ?) - (#x5144 ?) - (#x5145 ?) - (#x5146 ?) - (#x5147 ?) - (#x5148 ?) - (#x5149 ?) - (#x514b ?к) - (#x514c ?) - (#x514d ?) - (#x514e ?) - (#x5152 ?) - (#x515c ?) - (#x5162 ?) - (#x5165 ?) - (#x5167 ?Ү) - (#x5168 ?) - (#x5169 ?) - (#x516a ?) - (#x516b ?) - (#x516c ?) - (#x516d ?) - (#x516e ?) - (#x5171 ?) - (#x5175 ?ܲ) - (#x5176 ?) - (#x5177 ?) - (#x5178 ?) - (#x517c ?) - (#x5180 ?) - (#x5186 ?) - (#x518a ?) - (#x518d ?) - (#x5192 ?ٳ) - (#x5195 ?) - (#x5197 ?) - (#x51a0 ?ή) - (#x51a5 ?٢) - (#x51aa ?) - (#x51ac ?) - (#x51b6 ?) - (#x51b7 ?) - (#x51bd ?֩) - (#x51c4 ?) - (#x51c6 ?) - (#x51c9 ?) - (#x51cb ?) - (#x51cc ?) - (#x51cd ?) - (#x51dc ?) - (#x51dd ?) - (#x51de ?) - (#x51e1 ?) - (#x51f0 ?) - (#x51f1 ?) - (#x51f6 ?) - (#x51f8 ?) - (#x51f9 ?) - (#x51fa ?) - (#x51fd ?) - (#x5200 ?) - (#x5203 ?) - (#x5206 ?) - (#x5207 ?) - (#x5208 ?) - (#x520a ?) - (#x520e ?) - (#x5211 ?) - (#x5217 ?֪) - (#x521d ?) - (#x5224 ?) - (#x5225 ?ܬ) - (#x5229 ?) - (#x522a ?ߢ) - (#x522e ?ξ) - (#x5230 ?) - (#x5236 ?) - (#x5237 ?) - (#x5238 ?) - (#x5239 ?) - (#x523a ?) - (#x523b ?ʾ) - (#x5243 ?) - (#x5247 ?) - (#x524a ?) - (#x524b ?л) - (#x524c ?շ) - (#x524d ?) - (#x5254 ?) - (#x5256 ?) - (#x525b ?˧) - (#x525d ?) - (#x5261 ?) - (#x5269 ?) - (#x526a ?) - (#x526f ?) - (#x5272 ?) - (#x5275 ?) - (#x527d ?) - (#x527f ?) - (#x5283 ?) - (#x5287 ?м) - (#x5288 ?) - (#x5289 ?ױ) - (#x528d ?) - (#x5291 ?) - (#x5292 ?) - (#x529b ?) - (#x529f ?) - (#x52a0 ?ʥ) - (#x52a3 ?֫) - (#x52a4 ?) - (#x52a9 ?) - (#x52aa ?ҽ) - (#x52ab ?̤) - (#x52be ?) - (#x52c1 ?) - (#x52c3 ?) - (#x52c5 ?) - (#x52c7 ?) - (#x52c9 ?) - (#x52cd ?) - (#x52d2 ?) - (#x52d5 ?) - (#x52d6 ?) - (#x52d8 ?) - (#x52d9 ?) - (#x52db ?) - (#x52dd ?) - (#x52de ?) - (#x52df ?ٴ) - (#x52e2 ?) - (#x52e3 ?) - (#x52e4 ?) - (#x52f3 ?) - (#x52f5 ?) - (#x52f8 ?) - (#x52fa ?) - (#x52fb ?в) - (#x52fe ?) - (#x52ff ?ڨ) - (#x5305 ?) - (#x5308 ?) - (#x530d ?) - (#x530f ?) - (#x5310 ?) - (#x5315 ?) - (#x5316 ?) - (#x5317 ?) - (#x5319 ?) - (#x5320 ?) - (#x5321 ?) - (#x5323 ?ˡ) - (#x532a ?) - (#x532f ?) - (#x5339 ?) - (#x533f ?) - (#x5340 ?ϡ) - (#x5341 ?) - (#x5343 ?) - (#x5344 ?) - (#x5347 ?) - (#x5348 ?) - (#x5349 ?) - (#x534a ?) - (#x534d ?س) - (#x5351 ?) - (#x5352 ?) - (#x5353 ?) - (#x5354 ?) - (#x5357 ?) - (#x535a ?) - (#x535c ?) - (#x535e ?ܦ) - (#x5360 ?) - (#x5366 ?) - (#x5368 ?) - (#x536f ?) - (#x5370 ?) - (#x5371 ?) - (#x5374 ?ʿ) - (#x5375 ?հ) - (#x5377 ?) - (#x537d ?) - (#x537f ?) - (#x5384 ?) - (#x5393 ?) - (#x5398 ?) - (#x539a ?) - (#x539f ?) - (#x53a0 ?) - (#x53a5 ?) - (#x53a6 ?) - (#x53ad ?) - (#x53bb ?) - (#x53c3 ?) - (#x53c8 ?) - (#x53c9 ?) - (#x53ca ?) - (#x53cb ?) - (#x53cd ?) - (#x53d4 ?) - (#x53d6 ?) - (#x53d7 ?) - (#x53db ?) - (#x53e1 ?) - (#x53e2 ?) - (#x53e3 ?Ϣ) - (#x53e4 ?ͯ) - (#x53e5 ?ϣ) - (#x53e9 ?Ͱ) - (#x53ea ?) - (#x53eb ?У) - (#x53ec ?) - (#x53ed ?) - (#x53ef ?ʦ) - (#x53f0 ?) - (#x53f1 ?) - (#x53f2 ?) - (#x53f3 ?) - (#x53f8 ?) - (#x5403 ?) - (#x5404 ?) - (#x5408 ?) - (#x5409 ?) - (#x540a ?) - (#x540c ?) - (#x540d ?٣) - (#x540e ?) - (#x540f ?) - (#x5410 ?) - (#x5411 ?) - (#x541b ?) - (#x541d ?) - (#x541f ?) - (#x5420 ?) - (#x5426 ?) - (#x5429 ?) - (#x542b ?) - (#x5433 ?) - (#x5438 ?) - (#x5439 ?) - (#x543b ?) - (#x543c ?) - (#x543e ?) - (#x5442 ?) - (#x5448 ?) - (#x544a ?ͱ) - (#x5451 ?) - (#x5468 ?) - (#x546a ?) - (#x5471 ?Ͳ) - (#x5473 ?ګ) - (#x5475 ?ʧ) - (#x547b ?) - (#x547c ?) - (#x547d ?٤) - (#x5480 ?) - (#x5486 ?) - (#x548c ?) - (#x548e ?Ϥ) - (#x5490 ?) - (#x54a4 ?) - (#x54a8 ?) - (#x54ab ?) - (#x54ac ?) - (#x54b3 ?) - (#x54b8 ?) - (#x54bd ?) - (#x54c0 ?) - (#x54c1 ?) - (#x54c4 ?) - (#x54c8 ?) - (#x54c9 ?) - (#x54e1 ?) - (#x54e5 ?ʨ) - (#x54e8 ?) - (#x54ed ?) - (#x54ee ?) - (#x54f2 ?) - (#x54fa ?) - (#x5504 ?) - (#x5506 ?) - (#x5507 ?) - (#x550e ?) - (#x5510 ?) - (#x551c ?) - (#x552f ?) - (#x5531 ?) - (#x5535 ?) - (#x553e ?) - (#x5544 ?) - (#x5546 ?) - (#x554f ?) - (#x5553 ?) - (#x5556 ?Ӻ) - (#x555e ?) - (#x5563 ?) - (#x557c ?) - (#x5580 ?) - (#x5584 ?) - (#x5586 ?) - (#x5587 ?) - (#x5589 ?) - (#x558a ?) - (#x5598 ?) - (#x5599 ?) - (#x559a ?) - (#x559c ?) - (#x559d ?) - (#x55a7 ?) - (#x55a9 ?) - (#x55aa ?) - (#x55ab ?) - (#x55ac ?) - (#x55ae ?Ӥ) - (#x55c5 ?) - (#x55c7 ?) - (#x55d4 ?) - (#x55da ?) - (#x55dc ?) - (#x55df ?) - (#x55e3 ?) - (#x55e4 ?) - (#x55fd ?) - (#x55fe ?) - (#x5606 ?) - (#x5609 ?ʩ) - (#x5614 ?ϥ) - (#x5617 ?) - (#x562f ?) - (#x5632 ?) - (#x5634 ?) - (#x5636 ?) - (#x5653 ?) - (#x5668 ?) - (#x566b ?) - (#x5674 ?) - (#x5686 ?) - (#x56a5 ?) - (#x56ac ?ޭ) - (#x56ae ?) - (#x56b4 ?) - (#x56bc ?) - (#x56ca ?ҥ) - (#x56cd ?) - (#x56d1 ?) - (#x56da ?) - (#x56db ?) - (#x56de ?) - (#x56e0 ?) - (#x56f0 ?) - (#x56f9 ?ַ) - (#x56fa ?ͳ) - (#x5703 ?) - (#x5704 ?) - (#x5708 ?) - (#x570b ?) - (#x570d ?) - (#x5712 ?) - (#x5713 ?) - (#x5716 ?) - (#x5718 ?ӥ) - (#x571f ?) - (#x5728 ?) - (#x572d ?Ф) - (#x5730 ?) - (#x573b ?) - (#x5740 ?) - (#x5742 ?) - (#x5747 ?г) - (#x574a ?۩) - (#x574d ?ӻ) - (#x574e ?) - (#x5750 ?) - (#x5751 ?) - (#x5761 ?) - (#x5764 ?) - (#x5766 ?) - (#x576a ?) - (#x576e ?) - (#x5770 ?) - (#x5775 ?Ϧ) - (#x577c ?) - (#x5782 ?) - (#x5788 ?) - (#x578b ?) - (#x5793 ?) - (#x57a0 ?) - (#x57a2 ?ϧ) - (#x57a3 ?) - (#x57c3 ?) - (#x57c7 ?) - (#x57c8 ?) - (#x57cb ?) - (#x57ce ?) - (#x57df ?) - (#x57e0 ?) - (#x57f0 ?) - (#x57f4 ?) - (#x57f7 ?) - (#x57f9 ?) - (#x57fa ?) - (#x57fc ?) - (#x5800 ?) - (#x5802 ?) - (#x5805 ?̱) - (#x5806 ?) - (#x5808 ?˨) - (#x5809 ?) - (#x580a ?) - (#x581e ?) - (#x5821 ?) - (#x5824 ?) - (#x5827 ?) - (#x582a ?) - (#x582f ?) - (#x5830 ?) - (#x5831 ?) - (#x5834 ?) - (#x5835 ?) - (#x583a ?) - (#x584a ?) - (#x584b ?) - (#x584f ?) - (#x5851 ?) - (#x5854 ?) - (#x5857 ?) - (#x5858 ?) - (#x585a ?) - (#x585e ?) - (#x5861 ?) - (#x5862 ?) - (#x5864 ?) - (#x5875 ?) - (#x5879 ?) - (#x587c ?) - (#x587e ?) - (#x5883 ?) - (#x5885 ?) - (#x5889 ?) - (#x5893 ?) - (#x589c ?) - (#x589e ?) - (#x589f ?) - (#x58a8 ?) - (#x58a9 ?) - (#x58ae ?) - (#x58b3 ?) - (#x58ba ?) - (#x58bb ?) - (#x58be ?) - (#x58c1 ?) - (#x58c5 ?) - (#x58c7 ?Ӧ) - (#x58ce ?) - (#x58d1 ?) - (#x58d3 ?) - (#x58d5 ?) - (#x58d8 ?פ) - (#x58d9 ?) - (#x58de ?) - (#x58df ?) - (#x58e4 ?) - (#x58eb ?) - (#x58ec ?) - (#x58ef ?) - (#x58f9 ?) - (#x58fa ?) - (#x58fb ?) - (#x58fd ?) - (#x590f ?) - (#x5914 ?) - (#x5915 ?) - (#x5916 ?) - (#x5919 ?) - (#x591a ?) - (#x591c ?) - (#x5922 ?) - (#x5927 ?) - (#x5929 ?) - (#x592a ?) - (#x592b ?) - (#x592d ?) - (#x592e ?) - (#x5931 ?) - (#x5937 ?) - (#x593e ?) - (#x5944 ?) - (#x5947 ?) - (#x5948 ?ү) - (#x5949 ?) - (#x594e ?Х) - (#x594f ?) - (#x5950 ?) - (#x5951 ?) - (#x5954 ?) - (#x5955 ?) - (#x5957 ?) - (#x595a ?) - (#x5960 ?) - (#x5962 ?) - (#x5967 ?) - (#x596a ?) - (#x596b ?) - (#x596c ?) - (#x596d ?) - (#x596e ?) - (#x5973 ?ҳ) - (#x5974 ?ҿ) - (#x5978 ?) - (#x597d ?) - (#x5982 ?) - (#x5983 ?) - (#x5984 ?) - (#x598a ?) - (#x5993 ?) - (#x5996 ?) - (#x5997 ?) - (#x5999 ?) - (#x59a5 ?) - (#x59a8 ?۪) - (#x59ac ?) - (#x59b9 ?) - (#x59bb ?) - (#x59be ?) - (#x59c3 ?) - (#x59c6 ?ٵ) - (#x59c9 ?) - (#x59cb ?) - (#x59d0 ?) - (#x59d1 ?ʹ) - (#x59d3 ?) - (#x59d4 ?) - (#x59d9 ?) - (#x59da ?) - (#x59dc ?˩) - (#x59dd ?) - (#x59e6 ?) - (#x59e8 ?) - (#x59ea ?) - (#x59ec ?) - (#x59ee ?) - (#x59f8 ?) - (#x59fb ?) - (#x59ff ?) - (#x5a01 ?) - (#x5a03 ?) - (#x5a11 ?) - (#x5a18 ?Ҧ) - (#x5a1b ?) - (#x5a1c ?) - (#x5a1f ?) - (#x5a20 ?) - (#x5a25 ?) - (#x5a29 ?ش) - (#x5a36 ?) - (#x5a3c ?) - (#x5a41 ?ץ) - (#x5a46 ?) - (#x5a49 ?) - (#x5a5a ?) - (#x5a62 ?) - (#x5a66 ?) - (#x5a92 ?) - (#x5a9a ?ڬ) - (#x5a9b ?) - (#x5aa4 ?) - (#x5ac1 ?ʪ) - (#x5ac2 ?) - (#x5ac4 ?) - (#x5ac9 ?) - (#x5acc ?) - (#x5ae1 ?) - (#x5ae6 ?) - (#x5ae9 ?) - (#x5b05 ?) - (#x5b09 ?) - (#x5b0b ?) - (#x5b0c ?) - (#x5b16 ?) - (#x5b2a ?ޮ) - (#x5b40 ?) - (#x5b43 ?) - (#x5b50 ?) - (#x5b51 ?) - (#x5b54 ?) - (#x5b55 ?) - (#x5b57 ?) - (#x5b58 ?) - (#x5b5a ?ݡ) - (#x5b5c ?) - (#x5b5d ?) - (#x5b5f ?) - (#x5b63 ?) - (#x5b64 ?͵) - (#x5b69 ?) - (#x5b6b ?) - (#x5b70 ?) - (#x5b71 ?) - (#x5b75 ?ݢ) - (#x5b78 ?) - (#x5b7a ?) - (#x5b7c ?) - (#x5b85 ?) - (#x5b87 ?) - (#x5b88 ?) - (#x5b89 ?) - (#x5b8b ?) - (#x5b8c ?) - (#x5b8f ?) - (#x5b93 ?) - (#x5b95 ?) - (#x5b96 ?) - (#x5b97 ?) - (#x5b98 ?ί) - (#x5b99 ?) - (#x5b9a ?) - (#x5b9b ?) - (#x5b9c ?) - (#x5ba2 ?) - (#x5ba3 ?) - (#x5ba4 ?) - (#x5ba5 ?) - (#x5ba6 ?) - (#x5bac ?) - (#x5bae ?) - (#x5bb0 ?) - (#x5bb3 ?) - (#x5bb4 ?) - (#x5bb5 ?) - (#x5bb6 ?ʫ) - (#x5bb8 ?) - (#x5bb9 ?) - (#x5bbf ?) - (#x5bc0 ?) - (#x5bc2 ?) - (#x5bc3 ?) - (#x5bc4 ?) - (#x5bc5 ?) - (#x5bc6 ?) - (#x5bc7 ?Ϩ) - (#x5bcc ?ݣ) - (#x5bd0 ?) - (#x5bd2 ?) - (#x5bd3 ?) - (#x5bd4 ?) - (#x5bd7 ?Ҽ) - (#x5bde ?ج) - (#x5bdf ?) - (#x5be1 ?) - (#x5be2 ?) - (#x5be4 ?) - (#x5be5 ?) - (#x5be6 ?) - (#x5be7 ?һ) - (#x5be8 ?) - (#x5be9 ?) - (#x5beb ?) - (#x5bec ?ΰ) - (#x5bee ?) - (#x5bef ?) - (#x5bf5 ?) - (#x5bf6 ?) - (#x5bf8 ?) - (#x5bfa ?) - (#x5c01 ?) - (#x5c04 ?) - (#x5c07 ?) - (#x5c08 ?) - (#x5c09 ?) - (#x5c0a ?) - (#x5c0b ?) - (#x5c0d ?) - (#x5c0e ?) - (#x5c0f ?) - (#x5c11 ?) - (#x5c16 ?) - (#x5c19 ?) - (#x5c24 ?) - (#x5c28 ?۫) - (#x5c31 ?) - (#x5c38 ?) - (#x5c39 ?) - (#x5c3a ?) - (#x5c3b ?Ͷ) - (#x5c3c ?) - (#x5c3e ?ڭ) - (#x5c3f ?) - (#x5c40 ?) - (#x5c45 ?) - (#x5c46 ?) - (#x5c48 ?) - (#x5c4b ?) - (#x5c4d ?) - (#x5c4e ?) - (#x5c51 ?) - (#x5c55 ?) - (#x5c5b ?ܳ) - (#x5c60 ?) - (#x5c62 ?צ) - (#x5c64 ?) - (#x5c65 ?) - (#x5c6c ?) - (#x5c6f ?) - (#x5c71 ?ߣ) - (#x5c79 ?) - (#x5c90 ?) - (#x5c91 ?) - (#x5ca1 ?˪) - (#x5ca9 ?) - (#x5cab ?) - (#x5cac ?ˢ) - (#x5cb1 ?) - (#x5cb3 ?) - (#x5cb5 ?) - (#x5cb7 ?ھ) - (#x5cb8 ?) - (#x5cba ?ֹ) - (#x5cbe ?) - (#x5cc0 ?) - (#x5cd9 ?) - (#x5ce0 ?) - (#x5ce8 ?) - (#x5cef ?) - (#x5cf0 ?) - (#x5cf4 ?) - (#x5cf6 ?) - (#x5cfb ?) - (#x5cfd ?) - (#x5d07 ?) - (#x5d0d ?) - (#x5d0e ?) - (#x5d11 ?) - (#x5d14 ?) - (#x5d16 ?) - (#x5d17 ?˫) - (#x5d19 ?) - (#x5d27 ?) - (#x5d29 ?) - (#x5d4b ?ڮ) - (#x5d4c ?) - (#x5d50 ?չ) - (#x5d69 ?) - (#x5d6c ?) - (#x5d6f ?) - (#x5d87 ?ϩ) - (#x5d8b ?) - (#x5d9d ?) - (#x5da0 ?) - (#x5da2 ?) - (#x5daa ?) - (#x5db8 ?) - (#x5dba ?ֺ) - (#x5dbc ?) - (#x5dbd ?) - (#x5dcd ?) - (#x5dd2 ?ص) - (#x5dd6 ?) - (#x5ddd ?) - (#x5dde ?) - (#x5de1 ?) - (#x5de2 ?) - (#x5de5 ?) - (#x5de6 ?) - (#x5de7 ?) - (#x5de8 ?) - (#x5deb ?) - (#x5dee ?) - (#x5df1 ?) - (#x5df2 ?) - (#x5df3 ?) - (#x5df4 ?) - (#x5df7 ?) - (#x5dfd ?) - (#x5dfe ?) - (#x5e02 ?) - (#x5e03 ?) - (#x5e06 ?) - (#x5e0c ?) - (#x5e11 ?) - (#x5e16 ?) - (#x5e19 ?) - (#x5e1b ?) - (#x5e1d ?) - (#x5e25 ?) - (#x5e2b ?) - (#x5e2d ?) - (#x5e33 ?) - (#x5e36 ?) - (#x5e38 ?) - (#x5e3d ?ٶ) - (#x5e3f ?) - (#x5e40 ?) - (#x5e44 ?) - (#x5e45 ?) - (#x5e47 ?۬) - (#x5e4c ?) - (#x5e55 ?ح) - (#x5e5f ?) - (#x5e61 ?) - (#x5e62 ?) - (#x5e63 ?) - (#x5e72 ?) - (#x5e73 ?) - (#x5e74 ?Ҵ) - (#x5e77 ?ܴ) - (#x5e78 ?) - (#x5e79 ?) - (#x5e7b ?) - (#x5e7c ?) - (#x5e7d ?) - (#x5e7e ?) - (#x5e84 ?) - (#x5e87 ?) - (#x5e8a ?) - (#x5e8f ?) - (#x5e95 ?) - (#x5e97 ?) - (#x5e9a ?) - (#x5e9c ?ݤ) - (#x5ea0 ?) - (#x5ea6 ?) - (#x5ea7 ?) - (#x5eab ?ͷ) - (#x5ead ?) - (#x5eb5 ?) - (#x5eb6 ?) - (#x5eb7 ?ˬ) - (#x5eb8 ?) - (#x5ebe ?) - (#x5ec2 ?) - (#x5ec8 ?) - (#x5ec9 ?֯) - (#x5eca ?) - (#x5ed0 ?Ϫ) - (#x5ed3 ?Ω) - (#x5ed6 ?) - (#x5eda ?) - (#x5edb ?) - (#x5edf ?) - (#x5ee0 ?) - (#x5ee2 ?) - (#x5ee3 ?) - (#x5eec ?) - (#x5ef3 ?) - (#x5ef6 ?) - (#x5ef7 ?) - (#x5efa ?) - (#x5efb ?) - (#x5f01 ?ܧ) - (#x5f04 ?) - (#x5f0a ?) - (#x5f0f ?) - (#x5f11 ?) - (#x5f13 ?) - (#x5f14 ?) - (#x5f15 ?) - (#x5f17 ?) - (#x5f18 ?) - (#x5f1b ?) - (#x5f1f ?) - (#x5f26 ?) - (#x5f27 ?) - (#x5f29 ?) - (#x5f31 ?) - (#x5f35 ?) - (#x5f3a ?˭) - (#x5f3c ?) - (#x5f48 ?) - (#x5f4a ?ˮ) - (#x5f4c ?گ) - (#x5f4e ?ض) - (#x5f56 ?ӧ) - (#x5f57 ?) - (#x5f59 ?) - (#x5f5b ?) - (#x5f62 ?) - (#x5f66 ?) - (#x5f67 ?) - (#x5f69 ?) - (#x5f6a ?) - (#x5f6b ?) - (#x5f6c ?ޯ) - (#x5f6d ?) - (#x5f70 ?) - (#x5f71 ?) - (#x5f77 ?ۭ) - (#x5f79 ?) - (#x5f7c ?) - (#x5f7f ?) - (#x5f80 ?) - (#x5f81 ?) - (#x5f85 ?) - (#x5f87 ?) - (#x5f8a ?) - (#x5f8b ?) - (#x5f8c ?) - (#x5f90 ?) - (#x5f91 ?) - (#x5f92 ?) - (#x5f97 ?) - (#x5f98 ?) - (#x5f99 ?) - (#x5f9e ?) - (#x5fa0 ?) - (#x5fa1 ?) - (#x5fa8 ?) - (#x5fa9 ?) - (#x5faa ?) - (#x5fae ?ڰ) - (#x5fb5 ?) - (#x5fb7 ?) - (#x5fb9 ?) - (#x5fbd ?) - (#x5fc3 ?) - (#x5fc5 ?) - (#x5fcc ?) - (#x5fcd ?) - (#x5fd6 ?) - (#x5fd7 ?) - (#x5fd8 ?) - (#x5fd9 ?) - (#x5fe0 ?) - (#x5feb ?) - (#x5ff5 ?ҷ) - (#x5ffd ?) - (#x5fff ?) - (#x600f ?) - (#x6012 ?) - (#x6016 ?) - (#x601c ?ֻ) - (#x601d ?) - (#x6020 ?) - (#x6021 ?) - (#x6025 ?) - (#x6027 ?) - (#x6028 ?) - (#x602a ?) - (#x602f ?̥) - (#x6041 ?) - (#x6042 ?) - (#x6043 ?) - (#x604d ?) - (#x6050 ?) - (#x6052 ?) - (#x6055 ?) - (#x6059 ?) - (#x605d ?ο) - (#x6062 ?) - (#x6063 ?) - (#x6064 ?) - (#x6065 ?) - (#x6068 ?) - (#x6069 ?) - (#x606a ?) - (#x606c ?Ҹ) - (#x606d ?) - (#x606f ?) - (#x6070 ?) - (#x6085 ?) - (#x6089 ?) - (#x608c ?) - (#x608d ?) - (#x6094 ?) - (#x6096 ?) - (#x609a ?) - (#x609b ?) - (#x609f ?) - (#x60a0 ?) - (#x60a3 ?) - (#x60a4 ?) - (#x60a7 ?) - (#x60b0 ?) - (#x60b2 ?) - (#x60b3 ?) - (#x60b4 ?) - (#x60b6 ?ڿ) - (#x60b8 ?) - (#x60bc ?) - (#x60bd ?) - (#x60c5 ?) - (#x60c7 ?) - (#x60d1 ?) - (#x60da ?) - (#x60dc ?) - (#x60df ?) - (#x60e0 ?) - (#x60e1 ?) - (#x60f0 ?) - (#x60f1 ?) - (#x60f3 ?) - (#x60f6 ?) - (#x60f9 ?) - (#x60fa ?) - (#x60fb ?) - (#x6101 ?) - (#x6106 ?) - (#x6108 ?) - (#x6109 ?) - (#x610d ?) - (#x610e ?) - (#x610f ?) - (#x6115 ?) - (#x611a ?) - (#x611b ?) - (#x611f ?) - (#x6127 ?) - (#x6130 ?) - (#x6134 ?) - (#x6137 ?) - (#x613c ?) - (#x613e ?) - (#x613f ?) - (#x6142 ?) - (#x6144 ?) - (#x6147 ?) - (#x6148 ?) - (#x614a ?) - (#x614b ?) - (#x614c ?) - (#x6153 ?) - (#x6155 ?ٷ) - (#x6158 ?) - (#x6159 ?) - (#x615d ?) - (#x615f ?) - (#x6162 ?ط) - (#x6163 ?α) - (#x6164 ?) - (#x6167 ?) - (#x6168 ?) - (#x616b ?) - (#x616e ?) - (#x6170 ?) - (#x6176 ?) - (#x6177 ?˯) - (#x617d ?) - (#x617e ?) - (#x6181 ?) - (#x6182 ?) - (#x618a ?) - (#x618e ?) - (#x6190 ?) - (#x6191 ?) - (#x6194 ?) - (#x6198 ?) - (#x6199 ?) - (#x619a ?) - (#x61a4 ?) - (#x61a7 ?) - (#x61a9 ?̨) - (#x61ab ?) - (#x61ac ?) - (#x61ae ?) - (#x61b2 ?) - (#x61b6 ?) - (#x61ba ?Ӽ) - (#x61be ?) - (#x61c3 ?) - (#x61c7 ?) - (#x61c8 ?) - (#x61c9 ?) - (#x61ca ?) - (#x61cb ?) - (#x61e6 ?) - (#x61f2 ?) - (#x61f6 ?) - (#x61f7 ?) - (#x61f8 ?) - (#x61fa ?) - (#x61fc ?ϫ) - (#x61ff ?) - (#x6200 ?) - (#x6207 ?) - (#x6208 ?) - (#x620a ?) - (#x620c ?) - (#x620d ?) - (#x620e ?) - (#x6210 ?) - (#x6211 ?) - (#x6212 ?) - (#x6216 ?) - (#x621a ?) - (#x621f ?н) - (#x6221 ?) - (#x622a ?) - (#x622e ?) - (#x6230 ?) - (#x6231 ?) - (#x6234 ?) - (#x6236 ?) - (#x623e ?) - (#x623f ?ۮ) - (#x6240 ?) - (#x6241 ?) - (#x6247 ?) - (#x6248 ?) - (#x6249 ?) - (#x624b ?) - (#x624d ?) - (#x6253 ?) - (#x6258 ?) - (#x626e ?) - (#x6271 ?) - (#x6276 ?ݦ) - (#x6279 ?) - (#x627c ?) - (#x627f ?) - (#x6280 ?) - (#x6284 ?) - (#x6289 ?̼) - (#x628a ?) - (#x6291 ?) - (#x6292 ?) - (#x6295 ?) - (#x6297 ?) - (#x6298 ?) - (#x629b ?) - (#x62ab ?) - (#x62b1 ?) - (#x62b5 ?) - (#x62b9 ?) - (#x62bc ?) - (#x62bd ?) - (#x62c2 ?) - (#x62c7 ?) - (#x62c8 ?ҹ) - (#x62c9 ?) - (#x62cc ?) - (#x62cd ?) - (#x62cf ?) - (#x62d0 ?) - (#x62d2 ?) - (#x62d3 ?) - (#x62d4 ?) - (#x62d6 ?) - (#x62d7 ?) - (#x62d8 ?Ϭ) - (#x62d9 ?) - (#x62db ?) - (#x62dc ?) - (#x62ec ?) - (#x62ed ?) - (#x62ee ?) - (#x62ef ?) - (#x62f1 ?) - (#x62f3 ?) - (#x62f7 ?) - (#x62fe ?) - (#x62ff ?) - (#x6301 ?) - (#x6307 ?) - (#x6309 ?) - (#x6311 ?) - (#x632b ?) - (#x632f ?) - (#x633a ?) - (#x633b ?) - (#x633d ?ظ) - (#x633e ?) - (#x6349 ?) - (#x634c ?) - (#x634f ?) - (#x6350 ?) - (#x6355 ?) - (#x6367 ?) - (#x6368 ?) - (#x636e ?) - (#x6372 ?) - (#x6377 ?) - (#x637a ?) - (#x637b ?Һ) - (#x637f ?) - (#x6383 ?) - (#x6388 ?) - (#x6389 ?) - (#x638c ?) - (#x6392 ?) - (#x6396 ?) - (#x6398 ?) - (#x639b ?) - (#x63a0 ?) - (#x63a1 ?) - (#x63a2 ?) - (#x63a5 ?) - (#x63a7 ?) - (#x63a8 ?) - (#x63a9 ?) - (#x63aa ?) - (#x63c0 ?) - (#x63c4 ?) - (#x63c6 ?Ц) - (#x63cf ?) - (#x63d0 ?) - (#x63d6 ?) - (#x63da ?) - (#x63db ?) - (#x63e1 ?) - (#x63ed ?̩) - (#x63ee ?) - (#x63f4 ?) - (#x63f6 ?) - (#x63f7 ?ߺ) - (#x640d ?) - (#x640f ?) - (#x6414 ?) - (#x6416 ?) - (#x6417 ?) - (#x641c ?) - (#x6422 ?) - (#x642c ?) - (#x642d ?) - (#x643a ?) - (#x643e ?) - (#x6458 ?) - (#x6460 ?) - (#x6469 ?ؤ) - (#x646f ?) - (#x6478 ?ٸ) - (#x6479 ?ٹ) - (#x647a ?) - (#x6488 ?) - (#x6491 ?) - (#x6492 ?߮) - (#x6493 ?) - (#x649a ?ҵ) - (#x649e ?) - (#x64a4 ?) - (#x64a5 ?) - (#x64ab ?) - (#x64ad ?) - (#x64ae ?) - (#x64b0 ?) - (#x64b2 ?) - (#x64bb ?ӵ) - (#x64c1 ?) - (#x64c4 ?) - (#x64c5 ?) - (#x64c7 ?) - (#x64ca ?̪) - (#x64cd ?) - (#x64ce ?) - (#x64d2 ?) - (#x64d4 ?ӽ) - (#x64d8 ?) - (#x64da ?) - (#x64e1 ?) - (#x64e2 ?) - (#x64e5 ?պ) - (#x64e6 ?) - (#x64e7 ?) - (#x64ec ?) - (#x64f2 ?) - (#x64f4 ?) - (#x64fa ?) - (#x64fe ?) - (#x6500 ?) - (#x6504 ?) - (#x6518 ?) - (#x651d ?) - (#x6523 ?) - (#x652a ?) - (#x652b ?) - (#x652c ?ջ) - (#x652f ?) - (#x6536 ?) - (#x6537 ?) - (#x6538 ?) - (#x6539 ?) - (#x653b ?) - (#x653e ?ۯ) - (#x653f ?) - (#x6545 ?ͺ) - (#x6548 ?) - (#x654d ?) - (#x654e ?) - (#x654f ?) - (#x6551 ?ϭ) - (#x6556 ?) - (#x6557 ?) - (#x655e ?) - (#x6562 ?) - (#x6563 ?ߤ) - (#x6566 ?) - (#x656c ?) - (#x656d ?) - (#x6572 ?ͻ) - (#x6574 ?) - (#x6575 ?) - (#x6577 ?ݧ) - (#x6578 ?) - (#x657e ?) - (#x6582 ?ְ) - (#x6583 ?) - (#x6585 ?) - (#x6587 ?) - (#x658c ?ް) - (#x6590 ?) - (#x6591 ?) - (#x6597 ?) - (#x6599 ?) - (#x659b ?) - (#x659c ?) - (#x659f ?) - (#x65a1 ?) - (#x65a4 ?) - (#x65a5 ?) - (#x65a7 ?ݨ) - (#x65ab ?) - (#x65ac ?) - (#x65af ?) - (#x65b0 ?) - (#x65b7 ?Ө) - (#x65b9 ?۰) - (#x65bc ?) - (#x65bd ?) - (#x65c1 ?۱) - (#x65c5 ?) - (#x65cb ?) - (#x65cc ?) - (#x65cf ?) - (#x65d2 ?ײ) - (#x65d7 ?) - (#x65e0 ?) - (#x65e3 ?) - (#x65e5 ?) - (#x65e6 ?ө) - (#x65e8 ?) - (#x65e9 ?) - (#x65ec ?) - (#x65ed ?) - (#x65f1 ?) - (#x65f4 ?) - (#x65fa ?) - (#x65fb ?) - (#x65fc ?) - (#x65fd ?) - (#x65ff ?) - (#x6606 ?) - (#x6607 ?) - (#x6609 ?۲) - (#x660a ?) - (#x660c ?) - (#x660e ?٥) - (#x660f ?) - (#x6610 ?) - (#x6611 ?) - (#x6613 ?) - (#x6614 ?) - (#x6615 ?) - (#x661e ?ܵ) - (#x661f ?) - (#x6620 ?) - (#x6625 ?) - (#x6627 ?) - (#x6628 ?) - (#x662d ?) - (#x662f ?) - (#x6630 ?) - (#x6631 ?) - (#x6634 ?) - (#x6636 ?) - (#x663a ?ܶ) - (#x663b ?) - (#x6641 ?) - (#x6642 ?) - (#x6643 ?) - (#x6644 ?) - (#x6649 ?) - (#x664b ?) - (#x664f ?) - (#x6659 ?) - (#x665b ?) - (#x665d ?) - (#x665e ?) - (#x665f ?) - (#x6664 ?) - (#x6665 ?) - (#x6666 ?) - (#x6667 ?) - (#x6668 ?) - (#x6669 ?ع) - (#x666b ?) - (#x666e ?) - (#x666f ?) - (#x6673 ?) - (#x6674 ?) - (#x6676 ?) - (#x6677 ?) - (#x6678 ?) - (#x667a ?) - (#x6684 ?) - (#x6687 ?ʬ) - (#x6688 ?) - (#x6689 ?) - (#x668e ?) - (#x6690 ?) - (#x6691 ?) - (#x6696 ?) - (#x6697 ?) - (#x6698 ?) - (#x669d ?٦) - (#x66a0 ?ͼ) - (#x66a2 ?) - (#x66ab ?) - (#x66ae ?ٺ) - (#x66b2 ?) - (#x66b3 ?) - (#x66b4 ?) - (#x66b9 ?) - (#x66bb ?) - (#x66be ?) - (#x66c4 ?) - (#x66c6 ?) - (#x66c7 ?Ӿ) - (#x66c9 ?) - (#x66d6 ?) - (#x66d9 ?) - (#x66dc ?) - (#x66dd ?) - (#x66e0 ?) - (#x66e6 ?) - (#x66f0 ?) - (#x66f2 ?) - (#x66f3 ?) - (#x66f4 ?) - (#x66f7 ?) - (#x66f8 ?) - (#x66f9 ?) - (#x66fa ?) - (#x66fc ?غ) - (#x66fe ?) - (#x66ff ?) - (#x6700 ?) - (#x6703 ?) - (#x6708 ?) - (#x6709 ?) - (#x670b ?) - (#x670d ?) - (#x6714 ?) - (#x6715 ?) - (#x6717 ?) - (#x671b ?) - (#x671d ?) - (#x671e ?ѡ) - (#x671f ?Ѣ) - (#x6726 ?) - (#x6727 ?) - (#x6728 ?) - (#x672a ?ڱ) - (#x672b ?) - (#x672c ?) - (#x672d ?) - (#x672e ?) - (#x6731 ?) - (#x6734 ?) - (#x6736 ?) - (#x673a ?) - (#x673d ?) - (#x6746 ?) - (#x6749 ?ߴ) - (#x674e ?) - (#x674f ?) - (#x6750 ?) - (#x6751 ?) - (#x6753 ?) - (#x6756 ?) - (#x675c ?) - (#x675e ?ѣ) - (#x675f ?) - (#x676d ?) - (#x676f ?) - (#x6770 ?) - (#x6771 ?) - (#x6773 ?) - (#x6775 ?) - (#x6777 ?) - (#x677b ?) - (#x677e ?) - (#x677f ?) - (#x6787 ?) - (#x6789 ?) - (#x678b ?۳) - (#x678f ?) - (#x6790 ?) - (#x6793 ?) - (#x6795 ?) - (#x6797 ?) - (#x679a ?) - (#x679c ?) - (#x679d ?) - (#x67af ?ͽ) - (#x67b0 ?) - (#x67b3 ?) - (#x67b6 ?ʭ) - (#x67b7 ?ʮ) - (#x67b8 ?Ϯ) - (#x67be ?) - (#x67c4 ?ܷ) - (#x67cf ?) - (#x67d0 ?ٻ) - (#x67d1 ?) - (#x67d2 ?) - (#x67d3 ?) - (#x67d4 ?) - (#x67da ?) - (#x67dd ?) - (#x67e9 ?ϯ) - (#x67ec ?) - (#x67ef ?ʯ) - (#x67f0 ?Ұ) - (#x67f1 ?) - (#x67f3 ?׳) - (#x67f4 ?) - (#x67f5 ?) - (#x67f6 ?) - (#x67fb ?) - (#x67fe ?) - (#x6812 ?) - (#x6813 ?) - (#x6816 ?) - (#x6817 ?) - (#x6821 ?) - (#x6822 ?) - (#x682a ?) - (#x682f ?) - (#x6838 ?) - (#x6839 ?) - (#x683c ?̫) - (#x683d ?) - (#x6840 ?) - (#x6841 ?) - (#x6842 ?) - (#x6843 ?) - (#x6848 ?) - (#x684e ?) - (#x6850 ?) - (#x6851 ?) - (#x6853 ?) - (#x6854 ?) - (#x686d ?) - (#x6876 ?) - (#x687f ?) - (#x6881 ?) - (#x6885 ?) - (#x688f ?) - (#x6893 ?) - (#x6894 ?) - (#x6897 ?) - (#x689d ?) - (#x689f ?) - (#x68a1 ?) - (#x68a2 ?) - (#x68a7 ?) - (#x68a8 ?) - (#x68ad ?) - (#x68af ?) - (#x68b0 ?) - (#x68b1 ?) - (#x68b3 ?) - (#x68b5 ?) - (#x68b6 ?ڲ) - (#x68c4 ?ѥ) - (#x68c5 ?ܸ) - (#x68c9 ?) - (#x68cb ?Ѥ) - (#x68cd ?) - (#x68d2 ?) - (#x68d5 ?) - (#x68d7 ?) - (#x68d8 ?о) - (#x68da ?) - (#x68df ?) - (#x68e0 ?) - (#x68e7 ?) - (#x68e8 ?͡) - (#x68ee ?ߵ) - (#x68f2 ?) - (#x68f9 ?ԡ) - (#x68fa ?β) - (#x6900 ?) - (#x6905 ?) - (#x690d ?) - (#x690e ?) - (#x6912 ?) - (#x6927 ?٧) - (#x6930 ?) - (#x693d ?) - (#x693f ?) - (#x694a ?) - (#x6953 ?) - (#x6954 ?) - (#x6955 ?) - (#x6957 ?) - (#x6959 ?) - (#x695a ?) - (#x695e ?) - (#x6960 ?) - (#x6961 ?) - (#x6962 ?) - (#x6963 ?ڳ) - (#x6968 ?) - (#x696b ?) - (#x696d ?) - (#x696e ?) - (#x696f ?) - (#x6975 ?п) - (#x6977 ?) - (#x6978 ?) - (#x6979 ?) - (#x6995 ?) - (#x699b ?) - (#x699c ?۴) - (#x69a5 ?) - (#x69a7 ?) - (#x69ae ?) - (#x69b4 ?״) - (#x69bb ?) - (#x69c1 ?;) - (#x69c3 ?) - (#x69cb ?ϰ) - (#x69cc ?) - (#x69cd ?) - (#x69d0 ?) - (#x69e8 ?Ϊ) - (#x69ea ?) - (#x69fb ?Ч) - (#x69fd ?) - (#x69ff ?) - (#x6a02 ?) - (#x6a0a ?) - (#x6a11 ?) - (#x6a13 ?ק) - (#x6a17 ?) - (#x6a19 ?) - (#x6a1e ?) - (#x6a1f ?) - (#x6a21 ?ټ) - (#x6a23 ?) - (#x6a35 ?) - (#x6a38 ?) - (#x6a39 ?) - (#x6a3a ?) - (#x6a3d ?) - (#x6a44 ?) - (#x6a48 ?) - (#x6a4b ?) - (#x6a52 ?) - (#x6a53 ?) - (#x6a58 ?й) - (#x6a59 ?) - (#x6a5f ?Ѧ) - (#x6a61 ?) - (#x6a6b ?) - (#x6a80 ?Ӫ) - (#x6a84 ?̬) - (#x6a89 ?) - (#x6a8d ?) - (#x6a8e ?) - (#x6a97 ?) - (#x6a9c ?) - (#x6aa2 ?) - (#x6aa3 ?) - (#x6ab3 ?ޱ) - (#x6abb ?) - (#x6ac2 ?Ԣ) - (#x6ac3 ?) - (#x6ad3 ?) - (#x6ada ?) - (#x6adb ?) - (#x6af6 ?) - (#x6afb ?) - (#x6b04 ?ձ) - (#x6b0a ?) - (#x6b0c ?) - (#x6b12 ?ղ) - (#x6b16 ?ռ) - (#x6b20 ?) - (#x6b21 ?) - (#x6b23 ?) - (#x6b32 ?) - (#x6b3a ?ѧ) - (#x6b3d ?) - (#x6b3e ?γ) - (#x6b46 ?) - (#x6b47 ?) - (#x6b4c ?ʰ) - (#x6b4e ?) - (#x6b50 ?ϱ) - (#x6b5f ?) - (#x6b61 ?) - (#x6b62 ?) - (#x6b63 ?) - (#x6b64 ?) - (#x6b65 ?) - (#x6b66 ?) - (#x6b6a ?) - (#x6b72 ?) - (#x6b77 ?) - (#x6b78 ?) - (#x6b7b ?) - (#x6b7f ?) - (#x6b83 ?) - (#x6b84 ?) - (#x6b86 ?) - (#x6b89 ?) - (#x6b8a ?) - (#x6b96 ?) - (#x6b98 ?) - (#x6b9e ?) - (#x6bae ?ֱ) - (#x6baf ?) - (#x6bb2 ?) - (#x6bb5 ?ӫ) - (#x6bb7 ?) - (#x6bba ?߯) - (#x6bbc ?) - (#x6bbf ?) - (#x6bc1 ?) - (#x6bc5 ?) - (#x6bc6 ?ϲ) - (#x6bcb ?) - (#x6bcd ?ٽ) - (#x6bcf ?) - (#x6bd2 ?Ը) - (#x6bd3 ?) - (#x6bd4 ?) - (#x6bd6 ?) - (#x6bd7 ?) - (#x6bd8 ?) - (#x6bdb ?پ) - (#x6beb ?) - (#x6bec ?ϳ) - (#x6c08 ?) - (#x6c0f ?) - (#x6c11 ?) - (#x6c13 ?) - (#x6c23 ?Ѩ) - (#x6c34 ?) - (#x6c37 ?) - (#x6c38 ?) - (#x6c3e ?) - (#x6c40 ?) - (#x6c41 ?) - (#x6c42 ?ϴ) - (#x6c4e ?) - (#x6c50 ?) - (#x6c55 ?ߥ) - (#x6c57 ?) - (#x6c5a ?) - (#x6c5d ?) - (#x6c5e ?) - (#x6c5f ?˰) - (#x6c60 ?) - (#x6c68 ?) - (#x6c6a ?) - (#x6c6d ?) - (#x6c70 ?) - (#x6c72 ?) - (#x6c76 ?ڡ) - (#x6c7a ?̽) - (#x6c7d ?ѩ) - (#x6c7e ?) - (#x6c81 ?) - (#x6c82 ?Ѫ) - (#x6c83 ?) - (#x6c85 ?) - (#x6c86 ?) - (#x6c87 ?) - (#x6c88 ?) - (#x6c8c ?) - (#x6c90 ?) - (#x6c92 ?) - (#x6c93 ?) - (#x6c94 ?) - (#x6c95 ?ک) - (#x6c96 ?) - (#x6c99 ?) - (#x6c9a ?) - (#x6c9b ?) - (#x6cab ?) - (#x6cae ?) - (#x6cb3 ?) - (#x6cb8 ?) - (#x6cb9 ?) - (#x6cbb ?) - (#x6cbc ?) - (#x6cbd ?Ϳ) - (#x6cbe ?) - (#x6cbf ?) - (#x6cc1 ?) - (#x6cc2 ?) - (#x6cc4 ?) - (#x6cc9 ?) - (#x6cca ?) - (#x6ccc ?) - (#x6cd3 ?) - (#x6cd5 ?) - (#x6cd7 ?) - (#x6cdb ?) - (#x6ce1 ?) - (#x6ce2 ?) - (#x6ce3 ?) - (#x6ce5 ?) - (#x6ce8 ?) - (#x6ceb ?) - (#x6cee ?) - (#x6cef ?) - (#x6cf0 ?) - (#x6cf3 ?) - (#x6d0b ?) - (#x6d0c ?֬) - (#x6d11 ?) - (#x6d17 ?) - (#x6d19 ?) - (#x6d1b ?զ) - (#x6d1e ?) - (#x6d25 ?) - (#x6d27 ?) - (#x6d29 ?) - (#x6d2a ?) - (#x6d32 ?) - (#x6d35 ?) - (#x6d36 ?) - (#x6d38 ?) - (#x6d39 ?) - (#x6d3b ?) - (#x6d3d ?) - (#x6d3e ?) - (#x6d41 ?) - (#x6d59 ?) - (#x6d5a ?) - (#x6d5c ?) - (#x6d63 ?) - (#x6d66 ?) - (#x6d69 ?) - (#x6d6a ?) - (#x6d6c ?) - (#x6d6e ?ݩ) - (#x6d74 ?) - (#x6d77 ?) - (#x6d78 ?) - (#x6d79 ?) - (#x6d7f ?) - (#x6d85 ?) - (#x6d87 ?) - (#x6d88 ?) - (#x6d89 ?) - (#x6d8c ?) - (#x6d8d ?) - (#x6d8e ?) - (#x6d91 ?) - (#x6d93 ?) - (#x6d95 ?) - (#x6daf ?) - (#x6db2 ?) - (#x6db5 ?) - (#x6dc0 ?) - (#x6dc3 ?) - (#x6dc4 ?) - (#x6dc5 ?) - (#x6dc6 ?) - (#x6dc7 ?ѫ) - (#x6dcb ?) - (#x6dcf ?) - (#x6dd1 ?) - (#x6dd8 ?ԣ) - (#x6dd9 ?) - (#x6dda ?ר) - (#x6dde ?) - (#x6de1 ?ӿ) - (#x6de8 ?) - (#x6dea ?) - (#x6deb ?) - (#x6dee ?) - (#x6df1 ?) - (#x6df3 ?) - (#x6df5 ?) - (#x6df7 ?) - (#x6df8 ?) - (#x6df9 ?) - (#x6dfa ?) - (#x6dfb ?) - (#x6e17 ?߶) - (#x6e19 ?) - (#x6e1a ?) - (#x6e1b ?) - (#x6e1f ?) - (#x6e20 ?) - (#x6e21 ?Ԥ) - (#x6e23 ?) - (#x6e24 ?) - (#x6e25 ?) - (#x6e26 ?) - (#x6e2b ?) - (#x6e2c ?) - (#x6e2d ?) - (#x6e2f ?) - (#x6e32 ?) - (#x6e34 ?) - (#x6e36 ?) - (#x6e38 ?) - (#x6e3a ?) - (#x6e3c ?ڴ) - (#x6e3d ?) - (#x6e3e ?) - (#x6e43 ?) - (#x6e44 ?ڵ) - (#x6e4a ?) - (#x6e4d ?Ӭ) - (#x6e56 ?) - (#x6e58 ?) - (#x6e5b ?) - (#x6e5c ?) - (#x6e5e ?) - (#x6e5f ?) - (#x6e67 ?) - (#x6e6b ?) - (#x6e6e ?) - (#x6e6f ?) - (#x6e72 ?) - (#x6e73 ?) - (#x6e7a ?) - (#x6e90 ?) - (#x6e96 ?) - (#x6e9c ?) - (#x6e9d ?ϵ) - (#x6e9f ?٨) - (#x6ea2 ?) - (#x6ea5 ?ݪ) - (#x6eaa ?͢) - (#x6eab ?) - (#x6eaf ?) - (#x6eb1 ?) - (#x6eb6 ?) - (#x6eba ?) - (#x6ec2 ?۵) - (#x6ec4 ?) - (#x6ec5 ?) - (#x6ec9 ?) - (#x6ecb ?) - (#x6ecc ?) - (#x6ece ?) - (#x6ed1 ?) - (#x6ed3 ?) - (#x6ed4 ?ԥ) - (#x6eef ?) - (#x6ef4 ?) - (#x6ef8 ?) - (#x6efe ?) - (#x6eff ?ػ) - (#x6f01 ?) - (#x6f02 ?) - (#x6f06 ?) - (#x6f0f ?ש) - (#x6f11 ?) - (#x6f14 ?) - (#x6f15 ?) - (#x6f20 ?خ) - (#x6f22 ?) - (#x6f23 ?) - (#x6f2b ?ؼ) - (#x6f2c ?) - (#x6f31 ?) - (#x6f32 ?) - (#x6f38 ?) - (#x6f3f ?) - (#x6f41 ?) - (#x6f51 ?) - (#x6f54 ?̾) - (#x6f57 ?) - (#x6f58 ?) - (#x6f5a ?) - (#x6f5b ?) - (#x6f5e ?) - (#x6f5f ?) - (#x6f62 ?) - (#x6f64 ?) - (#x6f6d ?) - (#x6f6e ?) - (#x6f70 ?) - (#x6f7a ?) - (#x6f7c ?) - (#x6f7d ?) - (#x6f7e ?) - (#x6f81 ?) - (#x6f84 ?) - (#x6f88 ?) - (#x6f8d ?) - (#x6f8e ?) - (#x6f90 ?) - (#x6f94 ?) - (#x6f97 ?) - (#x6fa3 ?) - (#x6fa4 ?) - (#x6fa7 ?) - (#x6fae ?) - (#x6faf ?) - (#x6fb1 ?) - (#x6fb3 ?) - (#x6fb9 ?) - (#x6fbe ?Ӷ) - (#x6fc0 ?̭) - (#x6fc1 ?) - (#x6fc2 ?ֲ) - (#x6fc3 ?) - (#x6fca ?) - (#x6fd5 ?) - (#x6fda ?) - (#x6fdf ?) - (#x6fe0 ?) - (#x6fe1 ?) - (#x6fe4 ?Ԧ) - (#x6fe9 ?) - (#x6feb ?ս) - (#x6fec ?) - (#x6fef ?) - (#x6ff1 ?) - (#x6ffe ?) - (#x7001 ?) - (#x7005 ?) - (#x7006 ?Թ) - (#x7009 ?) - (#x700b ?) - (#x700f ?) - (#x7011 ?) - (#x7015 ?) - (#x7018 ?) - (#x701a ?) - (#x701b ?) - (#x701c ?) - (#x701d ?) - (#x701e ?) - (#x701f ?) - (#x7023 ?) - (#x7027 ?) - (#x7028 ?) - (#x702f ?) - (#x7037 ?) - (#x703e ?ճ) - (#x704c ?δ) - (#x7050 ?) - (#x7051 ?) - (#x7058 ?) - (#x705d ?) - (#x7063 ?ؽ) - (#x706b ?) - (#x7070 ?) - (#x7078 ?϶) - (#x707c ?) - (#x707d ?) - (#x7085 ?) - (#x708a ?) - (#x708e ?) - (#x7092 ?) - (#x7098 ?) - (#x7099 ?) - (#x709a ?) - (#x70a1 ?) - (#x70a4 ?) - (#x70ab ?) - (#x70ac ?) - (#x70ad ?) - (#x70af ?) - (#x70b3 ?ܹ) - (#x70b7 ?) - (#x70b8 ?) - (#x70b9 ?) - (#x70c8 ?֭) - (#x70cb ?) - (#x70cf ?) - (#x70d8 ?) - (#x70d9 ?է) - (#x70dd ?) - (#x70df ?) - (#x70f1 ?) - (#x70f9 ?) - (#x70fd ?) - (#x7104 ?) - (#x7109 ?) - (#x710c ?) - (#x7119 ?) - (#x711a ?) - (#x711e ?) - (#x7121 ?) - (#x7126 ?) - (#x7130 ?) - (#x7136 ?) - (#x7147 ?) - (#x7149 ?֡) - (#x714a ?) - (#x714c ?) - (#x714e ?) - (#x7150 ?) - (#x7156 ?) - (#x7159 ?) - (#x715c ?) - (#x715e ?߰) - (#x7164 ?) - (#x7165 ?) - (#x7166 ?) - (#x7167 ?) - (#x7169 ?) - (#x716c ?) - (#x716e ?) - (#x717d ?) - (#x7184 ?) - (#x7189 ?) - (#x718a ?) - (#x718f ?) - (#x7192 ?) - (#x7194 ?) - (#x7199 ?) - (#x719f ?) - (#x71a2 ?) - (#x71ac ?) - (#x71b1 ?) - (#x71b9 ?) - (#x71ba ?) - (#x71be ?) - (#x71c1 ?) - (#x71c3 ?) - (#x71c8 ?) - (#x71c9 ?) - (#x71ce ?) - (#x71d0 ?) - (#x71d2 ?) - (#x71d4 ?) - (#x71d5 ?) - (#x71df ?) - (#x71e5 ?) - (#x71e6 ?) - (#x71e7 ?) - (#x71ed ?) - (#x71ee ?) - (#x71fb ?) - (#x71fc ?) - (#x71fe ?ԧ) - (#x71ff ?) - (#x7200 ?) - (#x7206 ?) - (#x7210 ?) - (#x721b ?մ) - (#x722a ?) - (#x722c ?) - (#x722d ?) - (#x7230 ?) - (#x7232 ?) - (#x7235 ?) - (#x7236 ?ݫ) - (#x723a ?) - (#x723b ?) - (#x723d ?) - (#x723e ?) - (#x7240 ?) - (#x7246 ?) - (#x7247 ?) - (#x7248 ?) - (#x724c ?) - (#x7252 ?) - (#x7258 ?Ժ) - (#x7259 ?) - (#x725b ?) - (#x725d ?) - (#x725f ?ٿ) - (#x7261 ?) - (#x7262 ?) - (#x7267 ?) - (#x7269 ?ڪ) - (#x7272 ?) - (#x7279 ?) - (#x727d ?̲) - (#x7280 ?) - (#x7281 ?) - (#x72a2 ?Ի) - (#x72a7 ?) - (#x72ac ?̳) - (#x72af ?) - (#x72c0 ?) - (#x72c2 ?) - (#x72c4 ?) - (#x72ce ?) - (#x72d0 ?) - (#x72d7 ?Ϸ) - (#x72d9 ?) - (#x72e1 ?) - (#x72e9 ?) - (#x72f8 ?) - (#x72f9 ?) - (#x72fc ?) - (#x72fd ?) - (#x730a ?) - (#x7316 ?) - (#x731b ?) - (#x731c ?) - (#x731d ?) - (#x7325 ?) - (#x7329 ?) - (#x732a ?) - (#x732b ?) - (#x7336 ?) - (#x7337 ?) - (#x733e ?) - (#x733f ?) - (#x7344 ?) - (#x7345 ?) - (#x7350 ?) - (#x7352 ?) - (#x7357 ?) - (#x7368 ?Լ) - (#x736a ?) - (#x7370 ?) - (#x7372 ?) - (#x7375 ?ִ) - (#x7378 ?) - (#x737a ?ӷ) - (#x737b ?) - (#x7384 ?) - (#x7386 ?) - (#x7387 ?) - (#x7389 ?) - (#x738b ?) - (#x738e ?) - (#x7394 ?) - (#x7396 ?ϸ) - (#x7397 ?) - (#x7398 ?Ѭ) - (#x739f ?) - (#x73a7 ?) - (#x73a9 ?) - (#x73ad ?) - (#x73b2 ?ּ) - (#x73b3 ?) - (#x73b9 ?) - (#x73c0 ?) - (#x73c2 ?ʱ) - (#x73c9 ?) - (#x73ca ?ߦ) - (#x73cc ?) - (#x73cd ?) - (#x73cf ?) - (#x73d6 ?) - (#x73d9 ?) - (#x73dd ?) - (#x73de ?ը) - (#x73e0 ?) - (#x73e3 ?) - (#x73e4 ?) - (#x73e5 ?) - (#x73e6 ?) - (#x73e9 ?) - (#x73ea ?Ш) - (#x73ed ?) - (#x73f7 ?) - (#x73f9 ?) - (#x73fd ?) - (#x73fe ?) - (#x7401 ?) - (#x7403 ?Ϲ) - (#x7405 ?) - (#x7406 ?) - (#x7407 ?) - (#x7409 ?) - (#x7413 ?) - (#x741b ?) - (#x7420 ?) - (#x7421 ?) - (#x7422 ?) - (#x7425 ?) - (#x7426 ?ѭ) - (#x7428 ?) - (#x742a ?Ѯ) - (#x742b ?) - (#x742c ?) - (#x742e ?) - (#x742f ?ε) - (#x7430 ?) - (#x7433 ?) - (#x7434 ?) - (#x7435 ?) - (#x7436 ?) - (#x7438 ?) - (#x743a ?) - (#x743f ?) - (#x7440 ?) - (#x7441 ?) - (#x7443 ?) - (#x7444 ?) - (#x744b ?) - (#x7455 ?) - (#x7457 ?) - (#x7459 ?) - (#x745a ?) - (#x745b ?) - (#x745c ?) - (#x745e ?) - (#x745f ?) - (#x7460 ?) - (#x7462 ?) - (#x7464 ?) - (#x7465 ?) - (#x7468 ?) - (#x7469 ?) - (#x746a ?إ) - (#x746f ?) - (#x747e ?) - (#x7482 ?ѯ) - (#x7483 ?) - (#x7487 ?) - (#x7489 ?֢) - (#x748b ?) - (#x7498 ?) - (#x749c ?) - (#x749e ?) - (#x749f ?) - (#x74a1 ?) - (#x74a3 ?Ѱ) - (#x74a5 ?) - (#x74a7 ?) - (#x74a8 ?) - (#x74aa ?) - (#x74b0 ?) - (#x74b2 ?) - (#x74b5 ?) - (#x74b9 ?) - (#x74bd ?) - (#x74bf ?) - (#x74c6 ?) - (#x74ca ?) - (#x74cf ?) - (#x74d4 ?) - (#x74d8 ?ζ) - (#x74da ?) - (#x74dc ?) - (#x74e0 ?) - (#x74e2 ?) - (#x74e3 ?) - (#x74e6 ?) - (#x74ee ?) - (#x74f7 ?) - (#x7501 ?ܺ) - (#x7504 ?̴) - (#x7511 ?) - (#x7515 ?) - (#x7518 ?) - (#x751a ?) - (#x751b ?) - (#x751f ?) - (#x7523 ?ߧ) - (#x7525 ?) - (#x7526 ?) - (#x7528 ?) - (#x752b ?) - (#x752c ?) - (#x7530 ?) - (#x7531 ?) - (#x7532 ?ˣ) - (#x7533 ?) - (#x7537 ?) - (#x7538 ?) - (#x753a ?) - (#x7547 ?д) - (#x754c ?ͣ) - (#x754f ?) - (#x7551 ?) - (#x7553 ?) - (#x7554 ?) - (#x7559 ?) - (#x755b ?) - (#x755c ?) - (#x755d ?) - (#x7562 ?) - (#x7565 ?) - (#x7566 ?) - (#x756a ?) - (#x756f ?) - (#x7570 ?) - (#x7575 ?) - (#x7576 ?) - (#x7578 ?ѱ) - (#x757a ?˱) - (#x757f ?Ѳ) - (#x7586 ?˲) - (#x7587 ?) - (#x758a ?) - (#x758b ?) - (#x758e ?) - (#x758f ?) - (#x7591 ?) - (#x759d ?ߨ) - (#x75a5 ?) - (#x75ab ?) - (#x75b1 ?) - (#x75b2 ?) - (#x75b3 ?) - (#x75b5 ?) - (#x75b8 ?Ӹ) - (#x75b9 ?) - (#x75bc ?) - (#x75bd ?) - (#x75be ?) - (#x75c2 ?ʲ) - (#x75c5 ?ܻ) - (#x75c7 ?) - (#x75cd ?) - (#x75d2 ?) - (#x75d4 ?) - (#x75d5 ?) - (#x75d8 ?) - (#x75d9 ?) - (#x75db ?) - (#x75e2 ?) - (#x75f0 ?) - (#x75f2 ?ئ) - (#x75f4 ?) - (#x75fa ?) - (#x75fc ?) - (#x7600 ?) - (#x760d ?) - (#x7619 ?) - (#x761f ?) - (#x7620 ?) - (#x7621 ?) - (#x7622 ?) - (#x7624 ?) - (#x7626 ?) - (#x763b ?ת) - (#x7642 ?) - (#x764c ?) - (#x764e ?) - (#x7652 ?) - (#x7656 ?) - (#x7661 ?) - (#x7664 ?) - (#x7669 ?) - (#x766c ?) - (#x7670 ?) - (#x7672 ?) - (#x7678 ?ͤ) - (#x767b ?) - (#x767c ?ۡ) - (#x767d ?) - (#x767e ?) - (#x7684 ?) - (#x7686 ?) - (#x7687 ?) - (#x768e ?) - (#x7690 ?) - (#x7693 ?) - (#x76ae ?) - (#x76ba ?) - (#x76bf ?٩) - (#x76c2 ?) - (#x76c3 ?) - (#x76c6 ?) - (#x76c8 ?) - (#x76ca ?) - (#x76d2 ?) - (#x76d6 ?) - (#x76db ?) - (#x76dc ?Ԩ) - (#x76de ?) - (#x76df ?) - (#x76e1 ?) - (#x76e3 ?) - (#x76e4 ?) - (#x76e7 ?) - (#x76ee ?) - (#x76f2 ?) - (#x76f4 ?) - (#x76f8 ?) - (#x76fc ?) - (#x76fe ?) - (#x7701 ?) - (#x7704 ?) - (#x7708 ?) - (#x7709 ?ڶ) - (#x770b ?) - (#x771e ?) - (#x7720 ?) - (#x7729 ?) - (#x7737 ?) - (#x7738 ?) - (#x773a ?) - (#x773c ?) - (#x7740 ?) - (#x774d ?) - (#x775b ?) - (#x7761 ?) - (#x7763 ?Խ) - (#x7766 ?) - (#x776b ?) - (#x7779 ?ԩ) - (#x777e ?) - (#x777f ?) - (#x778b ?) - (#x7791 ?٪) - (#x779e ?ؾ) - (#x77a5 ?ܭ) - (#x77ac ?) - (#x77ad ?) - (#x77b0 ?) - (#x77b3 ?) - (#x77bb ?) - (#x77bc ?̡) - (#x77bf ?Ϻ) - (#x77d7 ?) - (#x77db ?) - (#x77dc ?) - (#x77e2 ?) - (#x77e3 ?) - (#x77e5 ?) - (#x77e9 ?ϻ) - (#x77ed ?ӭ) - (#x77ee ?) - (#x77ef ?) - (#x77f3 ?) - (#x7802 ?) - (#x7812 ?) - (#x7825 ?) - (#x7826 ?) - (#x7827 ?) - (#x782c ?) - (#x7832 ?) - (#x7834 ?) - (#x7845 ?Щ) - (#x784f ?) - (#x785d ?) - (#x786b ?) - (#x786c ?) - (#x786f ?) - (#x787c ?) - (#x7881 ?ѳ) - (#x7887 ?) - (#x788c ?) - (#x788d ?) - (#x788e ?) - (#x7891 ?) - (#x7897 ?) - (#x78a3 ?) - (#x78a7 ?ܡ) - (#x78a9 ?) - (#x78ba ?) - (#x78bb ?) - (#x78bc ?ا) - (#x78c1 ?) - (#x78c5 ?۶) - (#x78ca ?) - (#x78cb ?) - (#x78ce ?ͥ) - (#x78d0 ?) - (#x78e8 ?ب) - (#x78ec ?) - (#x78ef ?Ѵ) - (#x78f5 ?) - (#x78fb ?) - (#x7901 ?) - (#x790e ?) - (#x7916 ?) - (#x792a ?) - (#x792b ?) - (#x792c ?) - (#x793a ?) - (#x793e ?) - (#x7940 ?) - (#x7941 ?ѵ) - (#x7947 ?Ѷ) - (#x7948 ?ѷ) - (#x7949 ?) - (#x7950 ?) - (#x7956 ?) - (#x7957 ?) - (#x795a ?) - (#x795b ?) - (#x795c ?) - (#x795d ?) - (#x795e ?) - (#x7960 ?) - (#x7965 ?) - (#x7968 ?) - (#x796d ?) - (#x797a ?Ѹ) - (#x797f ?) - (#x7981 ?) - (#x798d ?) - (#x798e ?) - (#x798f ?) - (#x7991 ?) - (#x79a6 ?) - (#x79a7 ?) - (#x79aa ?) - (#x79ae ?) - (#x79b1 ?Ԫ) - (#x79b3 ?) - (#x79b9 ?) - (#x79bd ?) - (#x79be ?) - (#x79bf ?Ծ) - (#x79c0 ?) - (#x79c1 ?) - (#x79c9 ?ܼ) - (#x79ca ?Ҷ) - (#x79cb ?) - (#x79d1 ?Ρ) - (#x79d2 ?) - (#x79d5 ?) - (#x79d8 ?) - (#x79df ?) - (#x79e4 ?) - (#x79e6 ?) - (#x79e7 ?) - (#x79e9 ?) - (#x79fb ?) - (#x7a00 ?) - (#x7a05 ?) - (#x7a08 ?) - (#x7a0b ?) - (#x7a0d ?) - (#x7a14 ?) - (#x7a17 ?) - (#x7a19 ?) - (#x7a1a ?) - (#x7a1c ?) - (#x7a1f ?) - (#x7a20 ?) - (#x7a2e ?) - (#x7a31 ?) - (#x7a36 ?) - (#x7a37 ?) - (#x7a3b ?ԫ) - (#x7a3c ?ʳ) - (#x7a3d ?ͦ) - (#x7a3f ?) - (#x7a40 ?) - (#x7a46 ?) - (#x7a49 ?) - (#x7a4d ?) - (#x7a4e ?) - (#x7a57 ?) - (#x7a61 ?) - (#x7a62 ?) - (#x7a69 ?) - (#x7a6b ?) - (#x7a70 ?) - (#x7a74 ?) - (#x7a76 ?ϼ) - (#x7a79 ?) - (#x7a7a ?) - (#x7a7d ?) - (#x7a7f ?) - (#x7a81 ?) - (#x7a84 ?) - (#x7a88 ?) - (#x7a92 ?) - (#x7a93 ?) - (#x7a95 ?) - (#x7a98 ?) - (#x7a9f ?) - (#x7aa9 ?) - (#x7aaa ?) - (#x7aae ?) - (#x7aaf ?) - (#x7aba ?Ъ) - (#x7ac4 ?) - (#x7ac5 ?Ы) - (#x7ac7 ?) - (#x7aca ?) - (#x7acb ?ء) - (#x7ad7 ?) - (#x7ad9 ?) - (#x7add ?ܽ) - (#x7adf ?) - (#x7ae0 ?) - (#x7ae3 ?) - (#x7ae5 ?) - (#x7aea ?) - (#x7aed ?) - (#x7aef ?Ӯ) - (#x7af6 ?) - (#x7af9 ?) - (#x7afa ?) - (#x7aff ?) - (#x7b0f ?) - (#x7b11 ?) - (#x7b19 ?) - (#x7b1b ?) - (#x7b1e ?) - (#x7b20 ?آ) - (#x7b26 ?ݬ) - (#x7b2c ?) - (#x7b2d ?ֽ) - (#x7b39 ?) - (#x7b46 ?) - (#x7b49 ?) - (#x7b4b ?) - (#x7b4c ?) - (#x7b4d ?) - (#x7b4f ?) - (#x7b50 ?) - (#x7b51 ?) - (#x7b52 ?) - (#x7b54 ?) - (#x7b56 ?) - (#x7b60 ?е) - (#x7b6c ?) - (#x7b6e ?) - (#x7b75 ?) - (#x7b7d ?) - (#x7b87 ?) - (#x7b8b ?) - (#x7b8f ?) - (#x7b94 ?) - (#x7b95 ?ѹ) - (#x7b97 ?ߩ) - (#x7b9a ?) - (#x7b9d ?) - (#x7ba1 ?η) - (#x7bad ?) - (#x7bb1 ?) - (#x7bb4 ?) - (#x7bb8 ?) - (#x7bc0 ?) - (#x7bc1 ?) - (#x7bc4 ?) - (#x7bc6 ?) - (#x7bc7 ?) - (#x7bc9 ?) - (#x7bd2 ?) - (#x7be0 ?) - (#x7be4 ?Կ) - (#x7be9 ?) - (#x7c07 ?) - (#x7c12 ?) - (#x7c1e ?ӯ) - (#x7c21 ?) - (#x7c27 ?) - (#x7c2a ?) - (#x7c2b ?) - (#x7c3d ?) - (#x7c3e ?ֳ) - (#x7c3f ?ݭ) - (#x7c43 ?վ) - (#x7c4c ?) - (#x7c4d ?) - (#x7c60 ?) - (#x7c64 ?) - (#x7c6c ?) - (#x7c73 ?ڷ) - (#x7c83 ?) - (#x7c89 ?) - (#x7c92 ?أ) - (#x7c95 ?) - (#x7c97 ?) - (#x7c98 ?) - (#x7c9f ?) - (#x7ca5 ?) - (#x7ca7 ?) - (#x7cae ?) - (#x7cb1 ?) - (#x7cb2 ?) - (#x7cb3 ?) - (#x7cb9 ?) - (#x7cbe ?) - (#x7cca ?) - (#x7cd6 ?) - (#x7cde ?) - (#x7cdf ?) - (#x7ce0 ?˳) - (#x7ce7 ?) - (#x7cfb ?ͧ) - (#x7cfe ?Ь) - (#x7d00 ?Ѻ) - (#x7d02 ?) - (#x7d04 ?) - (#x7d05 ?) - (#x7d06 ?) - (#x7d07 ?) - (#x7d08 ?) - (#x7d0a ?ڢ) - (#x7d0b ?ڣ) - (#x7d0d ?ҡ) - (#x7d10 ?) - (#x7d14 ?) - (#x7d17 ?) - (#x7d18 ?) - (#x7d19 ?) - (#x7d1a ?) - (#x7d1b ?) - (#x7d20 ?) - (#x7d21 ?۷) - (#x7d22 ?) - (#x7d2b ?) - (#x7d2c ?) - (#x7d2e ?) - (#x7d2f ?) - (#x7d30 ?) - (#x7d33 ?) - (#x7d35 ?) - (#x7d39 ?) - (#x7d3a ?) - (#x7d42 ?) - (#x7d43 ?) - (#x7d44 ?) - (#x7d45 ?) - (#x7d46 ?) - (#x7d50 ?̿) - (#x7d5e ?) - (#x7d61 ?թ) - (#x7d62 ?) - (#x7d66 ?) - (#x7d68 ?) - (#x7d6a ?) - (#x7d6e ?) - (#x7d71 ?) - (#x7d72 ?) - (#x7d73 ?˴) - (#x7d76 ?) - (#x7d79 ?̵) - (#x7d7f ?Ͻ) - (#x7d8e ?) - (#x7d8f ?) - (#x7d93 ?) - (#x7d9c ?) - (#x7da0 ?) - (#x7da2 ?) - (#x7dac ?) - (#x7dad ?) - (#x7db1 ?˵) - (#x7db2 ?) - (#x7db4 ?) - (#x7db5 ?) - (#x7db8 ?) - (#x7dba ?ѻ) - (#x7dbb ?) - (#x7dbd ?) - (#x7dbe ?) - (#x7dbf ?) - (#x7dc7 ?) - (#x7dca ?) - (#x7dcb ?) - (#x7dd6 ?) - (#x7dd8 ?) - (#x7dda ?) - (#x7ddd ?) - (#x7dde ?Ӱ) - (#x7de0 ?) - (#x7de1 ?) - (#x7de3 ?) - (#x7de8 ?) - (#x7de9 ?) - (#x7dec ?) - (#x7def ?) - (#x7df4 ?֣) - (#x7dfb ?) - (#x7e09 ?) - (#x7e0a ?) - (#x7e15 ?) - (#x7e1b ?) - (#x7e1d ?) - (#x7e1e ?) - (#x7e1f ?) - (#x7e21 ?) - (#x7e23 ?) - (#x7e2b ?) - (#x7e2e ?) - (#x7e2f ?) - (#x7e31 ?) - (#x7e37 ?) - (#x7e3d ?) - (#x7e3e ?) - (#x7e41 ?) - (#x7e43 ?) - (#x7e46 ?) - (#x7e47 ?) - (#x7e52 ?) - (#x7e54 ?) - (#x7e55 ?) - (#x7e5e ?) - (#x7e61 ?) - (#x7e69 ?) - (#x7e6a ?) - (#x7e6b ?ͨ) - (#x7e6d ?̶) - (#x7e70 ?) - (#x7e79 ?) - (#x7e7c ?ͩ) - (#x7e82 ?) - (#x7e8c ?) - (#x7e8f ?) - (#x7e93 ?) - (#x7e96 ?) - (#x7e98 ?) - (#x7e9b ?) - (#x7e9c ?տ) - (#x7f36 ?ݮ) - (#x7f38 ?) - (#x7f3a ?) - (#x7f4c ?) - (#x7f50 ?θ) - (#x7f54 ?) - (#x7f55 ?) - (#x7f6a ?) - (#x7f6b ?) - (#x7f6e ?) - (#x7f70 ?) - (#x7f72 ?) - (#x7f75 ?) - (#x7f77 ?) - (#x7f79 ?) - (#x7f85 ?) - (#x7f88 ?Ѽ) - (#x7f8a ?) - (#x7f8c ?˶) - (#x7f8e ?ڸ) - (#x7f94 ?) - (#x7f9a ?־) - (#x7f9e ?) - (#x7fa4 ?) - (#x7fa8 ?) - (#x7fa9 ?) - (#x7fb2 ?) - (#x7fb8 ?) - (#x7fb9 ?) - (#x7fbd ?) - (#x7fc1 ?) - (#x7fc5 ?) - (#x7fca ?) - (#x7fcc ?) - (#x7fce ?ֿ) - (#x7fd2 ?) - (#x7fd4 ?) - (#x7fd5 ?) - (#x7fdf ?) - (#x7fe0 ?) - (#x7fe1 ?) - (#x7fe9 ?) - (#x7feb ?) - (#x7ff0 ?) - (#x7ff9 ?) - (#x7ffc ?) - (#x8000 ?) - (#x8001 ?) - (#x8003 ?) - (#x8005 ?) - (#x8006 ?ѽ) - (#x8009 ?Ͼ) - (#x800c ?) - (#x8010 ?ұ) - (#x8015 ?) - (#x8017 ?) - (#x8018 ?) - (#x802d ?Ѿ) - (#x8033 ?) - (#x8036 ?) - (#x803d ?) - (#x803f ?) - (#x8043 ?) - (#x8046 ?) - (#x804a ?) - (#x8056 ?) - (#x8058 ?) - (#x805a ?) - (#x805e ?ڤ) - (#x806f ?֤) - (#x8070 ?) - (#x8072 ?) - (#x8073 ?) - (#x8077 ?) - (#x807d ?) - (#x807e ?) - (#x807f ?) - (#x8084 ?) - (#x8085 ?) - (#x8086 ?) - (#x8087 ?) - (#x8089 ?) - (#x808b ?) - (#x808c ?ѿ) - (#x8096 ?) - (#x809b ?) - (#x809d ?) - (#x80a1 ?) - (#x80a2 ?) - (#x80a5 ?) - (#x80a9 ?̷) - (#x80aa ?۸) - (#x80af ?) - (#x80b1 ?) - (#x80b2 ?) - (#x80b4 ?) - (#x80ba ?) - (#x80c3 ?) - (#x80c4 ?) - (#x80cc ?) - (#x80ce ?) - (#x80da ?) - (#x80db ?ˤ) - (#x80de ?) - (#x80e1 ?) - (#x80e4 ?) - (#x80e5 ?) - (#x80f1 ?) - (#x80f4 ?) - (#x80f8 ?) - (#x80fd ?) - (#x8102 ?) - (#x8105 ?) - (#x8106 ?) - (#x8107 ?) - (#x8108 ?) - (#x810a ?) - (#x8118 ?) - (#x811a ?) - (#x811b ?) - (#x8123 ?) - (#x8129 ?) - (#x812b ?) - (#x812f ?) - (#x8139 ?) - (#x813e ?ޡ) - (#x814b ?) - (#x814e ?) - (#x8150 ?ݯ) - (#x8151 ?ݰ) - (#x8154 ?˷) - (#x8155 ?) - (#x8165 ?) - (#x8166 ?) - (#x816b ?) - (#x8170 ?) - (#x8171 ?) - (#x8178 ?) - (#x8179 ?) - (#x817a ?) - (#x817f ?) - (#x8180 ?۹) - (#x8188 ?̮) - (#x818a ?) - (#x818f ?) - (#x819a ?ݱ) - (#x819c ?د) - (#x819d ?) - (#x81a0 ?) - (#x81a3 ?) - (#x81a8 ?) - (#x81b3 ?) - (#x81b5 ?) - (#x81ba ?) - (#x81bd ?) - (#x81be ?) - (#x81bf ?) - (#x81c0 ?) - (#x81c2 ?ޢ) - (#x81c6 ?) - (#x81cd ?) - (#x81d8 ?) - (#x81df ?) - (#x81e3 ?) - (#x81e5 ?) - (#x81e7 ?) - (#x81e8 ?) - (#x81ea ?) - (#x81ed ?) - (#x81f3 ?) - (#x81f4 ?) - (#x81fa ?) - (#x81fb ?) - (#x81fc ?Ͽ) - (#x81fe ?) - (#x8205 ?) - (#x8207 ?) - (#x8208 ?) - (#x820a ?) - (#x820c ?) - (#x820d ?) - (#x8212 ?) - (#x821b ?) - (#x821c ?) - (#x821e ?) - (#x821f ?) - (#x8221 ?˸) - (#x822a ?) - (#x822b ?ۺ) - (#x822c ?) - (#x8235 ?) - (#x8236 ?) - (#x8237 ?) - (#x8239 ?) - (#x8240 ?ݲ) - (#x8245 ?) - (#x8247 ?) - (#x8259 ?) - (#x8264 ?) - (#x8266 ?) - (#x826e ?) - (#x826f ?) - (#x8271 ?) - (#x8272 ?) - (#x8276 ?) - (#x8278 ?) - (#x827e ?) - (#x828b ?) - (#x828d ?) - (#x828e ?) - (#x8292 ?) - (#x8299 ?ݳ) - (#x829a ?) - (#x829d ?) - (#x829f ?߷) - (#x82a5 ?) - (#x82a6 ?) - (#x82a9 ?) - (#x82ac ?) - (#x82ad ?) - (#x82ae ?) - (#x82af ?) - (#x82b1 ?) - (#x82b3 ?ۻ) - (#x82b7 ?) - (#x82b8 ?) - (#x82b9 ?) - (#x82bb ?) - (#x82bc ?) - (#x82bd ?) - (#x82bf ?) - (#x82d1 ?) - (#x82d2 ?) - (#x82d4 ?) - (#x82d5 ?) - (#x82d7 ?) - (#x82db ?ʴ) - (#x82de ?) - (#x82df ?) - (#x82e1 ?) - (#x82e5 ?) - (#x82e6 ?) - (#x82e7 ?) - (#x82f1 ?) - (#x82fd ?) - (#x82fe ?) - (#x8301 ?) - (#x8302 ?) - (#x8303 ?) - (#x8304 ?ʵ) - (#x8305 ?) - (#x8309 ?) - (#x8317 ?٫) - (#x8328 ?) - (#x832b ?) - (#x832f ?) - (#x8331 ?) - (#x8334 ?) - (#x8335 ?) - (#x8336 ?) - (#x8338 ?) - (#x8339 ?) - (#x8340 ?) - (#x8347 ?) - (#x8349 ?) - (#x834a ?) - (#x834f ?) - (#x8351 ?) - (#x8352 ?) - (#x8373 ?) - (#x8377 ?) - (#x837b ?) - (#x8389 ?) - (#x838a ?) - (#x838e ?) - (#x8396 ?) - (#x8398 ?) - (#x839e ?) - (#x83a2 ?) - (#x83a9 ?ݴ) - (#x83aa ?) - (#x83ab ?ذ) - (#x83bd ?) - (#x83c1 ?) - (#x83c5 ?ι) - (#x83c9 ?) - (#x83ca ?) - (#x83cc ?ж) - (#x83d3 ?) - (#x83d6 ?) - (#x83dc ?) - (#x83e9 ?) - (#x83eb ?) - (#x83ef ?) - (#x83f0 ?) - (#x83f1 ?) - (#x83f2 ?ޣ) - (#x83f4 ?) - (#x83f9 ?) - (#x83fd ?) - (#x8403 ?) - (#x8404 ?Ԭ) - (#x840a ?) - (#x840c ?) - (#x840d ?) - (#x840e ?) - (#x8429 ?) - (#x842c ?ؿ) - (#x8431 ?) - (#x8438 ?) - (#x843d ?ժ) - (#x8449 ?) - (#x8457 ?) - (#x845b ?) - (#x8461 ?) - (#x8463 ?) - (#x8466 ?) - (#x846b ?) - (#x846c ?) - (#x846f ?) - (#x8475 ?Э) - (#x847a ?) - (#x8490 ?) - (#x8494 ?) - (#x8499 ?) - (#x849c ?ߪ) - (#x84a1 ?ۼ) - (#x84b2 ?) - (#x84b8 ?) - (#x84bb ?) - (#x84bc ?) - (#x84bf ?) - (#x84c0 ?) - (#x84c2 ?٬) - (#x84c4 ?) - (#x84c6 ?) - (#x84c9 ?) - (#x84cb ?) - (#x84cd ?) - (#x84d1 ?) - (#x84da ?) - (#x84ec ?) - (#x84ee ?֥) - (#x84f4 ?) - (#x84fc ?) - (#x8511 ?١) - (#x8513 ?) - (#x8514 ?) - (#x8517 ?) - (#x8518 ?߸) - (#x851a ?) - (#x851e ?) - (#x8521 ?) - (#x8523 ?) - (#x8525 ?) - (#x852c ?) - (#x852d ?) - (#x852f ?) - (#x853d ?) - (#x853f ?) - (#x8541 ?) - (#x8543 ?) - (#x8549 ?) - (#x854e ?) - (#x8553 ?) - (#x8559 ?) - (#x8563 ?) - (#x8568 ?) - (#x8569 ?) - (#x856a ?) - (#x856d ?) - (#x8584 ?) - (#x8587 ?ڹ) - (#x858f ?) - (#x8591 ?˹) - (#x8594 ?) - (#x859b ?) - (#x85a6 ?) - (#x85a8 ?) - (#x85a9 ?߱) - (#x85aa ?) - (#x85af ?) - (#x85b0 ?) - (#x85ba ?) - (#x85c1 ?) - (#x85c9 ?) - (#x85cd ?) - (#x85ce ?) - (#x85cf ?) - (#x85d5 ?) - (#x85dc ?) - (#x85dd ?) - (#x85e4 ?) - (#x85e5 ?) - (#x85e9 ?) - (#x85ea ?) - (#x85f7 ?) - (#x85fa ?) - (#x85fb ?) - (#x85ff ?Ϋ) - (#x8602 ?) - (#x8606 ?) - (#x8607 ?) - (#x860a ?) - (#x8616 ?) - (#x8617 ?ܢ) - (#x861a ?) - (#x862d ?յ) - (#x863f ?ա) - (#x864e ?) - (#x8650 ?) - (#x8654 ?) - (#x8655 ?) - (#x865b ?) - (#x865c ?) - (#x865e ?) - (#x865f ?) - (#x8667 ?) - (#x8679 ?) - (#x868a ?ڥ) - (#x868c ?۽) - (#x8693 ?) - (#x86a3 ?) - (#x86a4 ?) - (#x86a9 ?) - (#x86c7 ?) - (#x86cb ?ӱ) - (#x86d4 ?) - (#x86d9 ?) - (#x86db ?) - (#x86df ?) - (#x86e4 ?) - (#x86ed ?) - (#x86fe ?) - (#x8700 ?) - (#x8702 ?) - (#x8703 ?) - (#x8708 ?) - (#x8718 ?) - (#x871a ?ޤ) - (#x871c ?) - (#x874e ?) - (#x8755 ?) - (#x8757 ?) - (#x875f ?) - (#x8766 ?) - (#x8768 ?) - (#x8774 ?) - (#x8776 ?) - (#x8778 ?) - (#x8782 ?) - (#x878d ?) - (#x879f ?٭) - (#x87a2 ?) - (#x87b3 ?) - (#x87ba ?բ) - (#x87c4 ?) - (#x87e0 ?) - (#x87ec ?) - (#x87ef ?) - (#x87f2 ?) - (#x87f9 ?) - (#x87fb ?) - (#x87fe ?) - (#x8805 ?) - (#x881f ?) - (#x8822 ?) - (#x8823 ?) - (#x8831 ?) - (#x8836 ?) - (#x883b ?) - (#x8840 ?) - (#x8846 ?) - (#x884c ?) - (#x884d ?) - (#x8852 ?) - (#x8853 ?) - (#x8857 ?ʶ) - (#x8859 ?) - (#x885b ?) - (#x885d ?) - (#x8861 ?) - (#x8862 ?) - (#x8863 ?) - (#x8868 ?) - (#x886b ?߹) - (#x8870 ?) - (#x8872 ?Ҥ) - (#x8877 ?) - (#x887e ?) - (#x887f ?) - (#x8881 ?) - (#x8882 ?ٱ) - (#x8888 ?ʷ) - (#x888b ?) - (#x888d ?) - (#x8892 ?Ӳ) - (#x8896 ?) - (#x8897 ?) - (#x889e ?) - (#x88ab ?) - (#x88b4 ?) - (#x88c1 ?) - (#x88c2 ?֮) - (#x88cf ?) - (#x88d4 ?) - (#x88d5 ?) - (#x88d9 ?) - (#x88dc ?) - (#x88dd ?) - (#x88df ?) - (#x88e1 ?) - (#x88e8 ?ޥ) - (#x88f3 ?) - (#x88f4 ?) - (#x88f5 ?) - (#x88f8 ?գ) - (#x88fd ?) - (#x8907 ?) - (#x8910 ?) - (#x8912 ?) - (#x8913 ?) - (#x8918 ?) - (#x8919 ?) - (#x8925 ?) - (#x892a ?) - (#x8936 ?) - (#x8938 ?) - (#x893b ?) - (#x8941 ?˺) - (#x8944 ?) - (#x895f ?) - (#x8964 ?) - (#x896a ?) - (#x8972 ?) - (#x897f ?) - (#x8981 ?) - (#x8983 ?) - (#x8986 ?) - (#x8987 ?) - (#x898b ?̸) - (#x898f ?Ю) - (#x8993 ?) - (#x8996 ?) - (#x89a1 ?̯) - (#x89a9 ?ԭ) - (#x89aa ?) - (#x89b2 ?) - (#x89ba ?) - (#x89bd ?) - (#x89c0 ?κ) - (#x89d2 ?) - (#x89e3 ?) - (#x89f4 ?) - (#x89f8 ?) - (#x8a00 ?) - (#x8a02 ?) - (#x8a03 ?ݵ) - (#x8a08 ?ͪ) - (#x8a0a ?) - (#x8a0c ?) - (#x8a0e ?) - (#x8a13 ?) - (#x8a16 ?) - (#x8a17 ?) - (#x8a18 ?) - (#x8a1b ?) - (#x8a1d ?) - (#x8a1f ?) - (#x8a23 ?) - (#x8a25 ?) - (#x8a2a ?۾) - (#x8a2d ?) - (#x8a31 ?) - (#x8a34 ?) - (#x8a36 ?ʸ) - (#x8a3a ?) - (#x8a3b ?) - (#x8a50 ?) - (#x8a54 ?) - (#x8a55 ?) - (#x8a5b ?) - (#x8a5e ?) - (#x8a60 ?) - (#x8a62 ?) - (#x8a63 ?) - (#x8a66 ?) - (#x8a69 ?) - (#x8a6d ?) - (#x8a6e ?) - (#x8a70 ?) - (#x8a71 ?) - (#x8a72 ?) - (#x8a73 ?) - (#x8a75 ?) - (#x8a79 ?) - (#x8a85 ?) - (#x8a87 ?Σ) - (#x8a8c ?) - (#x8a8d ?) - (#x8a93 ?) - (#x8a95 ?) - (#x8a98 ?) - (#x8a9e ?) - (#x8aa0 ?) - (#x8aa1 ?ͫ) - (#x8aa3 ?) - (#x8aa4 ?) - (#x8aa5 ?) - (#x8aa6 ?) - (#x8aa8 ?) - (#x8aaa ?) - (#x8ab0 ?) - (#x8ab2 ?Τ) - (#x8ab9 ?ަ) - (#x8abc ?) - (#x8abe ?) - (#x8abf ?) - (#x8ac2 ?) - (#x8ac4 ?) - (#x8ac7 ?) - (#x8acb ?) - (#x8acd ?) - (#x8acf ?) - (#x8ad2 ?) - (#x8ad6 ?) - (#x8adb ?) - (#x8adc ?) - (#x8ae1 ?) - (#x8ae6 ?) - (#x8ae7 ?) - (#x8aea ?) - (#x8aeb ?) - (#x8aed ?) - (#x8aee ?) - (#x8af1 ?) - (#x8af6 ?) - (#x8af7 ?) - (#x8af8 ?) - (#x8afa ?) - (#x8afe ?) - (#x8b00 ?) - (#x8b01 ?) - (#x8b02 ?) - (#x8b04 ?) - (#x8b0e ?ں) - (#x8b10 ?) - (#x8b14 ?) - (#x8b16 ?) - (#x8b17 ?ۿ) - (#x8b19 ?) - (#x8b1a ?) - (#x8b1b ?˻) - (#x8b1d ?) - (#x8b20 ?) - (#x8b28 ?) - (#x8b2b ?) - (#x8b2c ?) - (#x8b33 ?) - (#x8b39 ?) - (#x8b41 ?) - (#x8b49 ?) - (#x8b4e ?) - (#x8b4f ?) - (#x8b58 ?) - (#x8b5a ?) - (#x8b5c ?) - (#x8b66 ?) - (#x8b6c ?ާ) - (#x8b6f ?) - (#x8b70 ?) - (#x8b74 ?̹) - (#x8b77 ?) - (#x8b7d ?) - (#x8b80 ?) - (#x8b8a ?ܨ) - (#x8b90 ?) - (#x8b92 ?) - (#x8b93 ?) - (#x8b96 ?) - (#x8b9a ?) - (#x8c37 ?) - (#x8c3f ?ͬ) - (#x8c41 ?) - (#x8c46 ?) - (#x8c48 ?) - (#x8c4a ?) - (#x8c4c ?) - (#x8c55 ?) - (#x8c5a ?) - (#x8c61 ?) - (#x8c6a ?) - (#x8c6b ?) - (#x8c79 ?) - (#x8c7a ?) - (#x8c82 ?) - (#x8c8a ?) - (#x8c8c ?) - (#x8c9d ?) - (#x8c9e ?) - (#x8ca0 ?ݶ) - (#x8ca1 ?) - (#x8ca2 ?) - (#x8ca7 ?) - (#x8ca8 ?) - (#x8ca9 ?) - (#x8caa ?) - (#x8cab ?λ) - (#x8cac ?) - (#x8caf ?) - (#x8cb0 ?) - (#x8cb3 ?) - (#x8cb4 ?) - (#x8cb6 ?) - (#x8cb7 ?) - (#x8cb8 ?) - (#x8cbb ?ި) - (#x8cbc ?) - (#x8cbd ?) - (#x8cbf ?) - (#x8cc0 ?) - (#x8cc1 ?) - (#x8cc2 ?) - (#x8cc3 ?) - (#x8cc4 ?) - (#x8cc7 ?) - (#x8cc8 ?ʹ) - (#x8cca ?) - (#x8cd1 ?) - (#x8cd3 ?) - (#x8cda ?) - (#x8cdc ?) - (#x8cde ?) - (#x8ce0 ?) - (#x8ce2 ?) - (#x8ce3 ?) - (#x8ce4 ?) - (#x8ce6 ?ݷ) - (#x8cea ?) - (#x8ced ?Ԯ) - (#x8cf4 ?) - (#x8cfb ?ݸ) - (#x8cfc ?) - (#x8cfd ?) - (#x8d04 ?) - (#x8d05 ?) - (#x8d07 ?) - (#x8d08 ?) - (#x8d0a ?) - (#x8d0d ?) - (#x8d13 ?) - (#x8d16 ?) - (#x8d64 ?) - (#x8d66 ?) - (#x8d6b ?) - (#x8d70 ?) - (#x8d73 ?Я) - (#x8d74 ?ݹ) - (#x8d77 ?) - (#x8d85 ?) - (#x8d8a ?) - (#x8d99 ?) - (#x8da3 ?) - (#x8da8 ?) - (#x8db3 ?) - (#x8dba ?ݺ) - (#x8dbe ?) - (#x8dc6 ?) - (#x8dcb ?ۢ) - (#x8dcc ?) - (#x8dcf ?ʺ) - (#x8ddb ?) - (#x8ddd ?) - (#x8de1 ?) - (#x8de3 ?) - (#x8de8 ?Υ) - (#x8def ?) - (#x8df3 ?ԯ) - (#x8e0a ?) - (#x8e0f ?) - (#x8e10 ?) - (#x8e1e ?) - (#x8e2a ?) - (#x8e30 ?) - (#x8e35 ?) - (#x8e42 ?) - (#x8e44 ?) - (#x8e47 ?) - (#x8e48 ?) - (#x8e49 ?) - (#x8e4a ?) - (#x8e59 ?) - (#x8e5f ?) - (#x8e60 ?) - (#x8e74 ?) - (#x8e76 ?) - (#x8e81 ?) - (#x8e87 ?) - (#x8e8a ?) - (#x8e8d ?) - (#x8eaa ?) - (#x8eab ?) - (#x8eac ?) - (#x8ec0 ?) - (#x8eca ?) - (#x8ecb ?) - (#x8ecc ?) - (#x8ecd ?) - (#x8ed2 ?) - (#x8edf ?) - (#x8eeb ?) - (#x8ef8 ?) - (#x8efb ?ʻ) - (#x8efe ?) - (#x8f03 ?) - (#x8f05 ?) - (#x8f09 ?) - (#x8f12 ?) - (#x8f13 ?) - (#x8f14 ?) - (#x8f15 ?) - (#x8f1b ?) - (#x8f1c ?) - (#x8f1d ?) - (#x8f1e ?) - (#x8f1f ?) - (#x8f26 ?֦) - (#x8f27 ?ܾ) - (#x8f29 ?) - (#x8f2a ?) - (#x8f2f ?) - (#x8f33 ?) - (#x8f38 ?) - (#x8f39 ?) - (#x8f3b ?) - (#x8f3e ?) - (#x8f3f ?) - (#x8f44 ?) - (#x8f45 ?) - (#x8f49 ?) - (#x8f4d ?) - (#x8f4e ?) - (#x8f5d ?) - (#x8f5f ?) - (#x8f62 ?) - (#x8f9b ?) - (#x8f9c ?) - (#x8fa3 ?ո) - (#x8fa6 ?) - (#x8fa8 ?ܩ) - (#x8fad ?) - (#x8faf ?ܪ) - (#x8fb0 ?) - (#x8fb1 ?) - (#x8fb2 ?) - (#x8fc2 ?) - (#x8fc5 ?) - (#x8fce ?) - (#x8fd1 ?) - (#x8fd4 ?) - (#x8fe6 ?ʼ) - (#x8fea ?) - (#x8feb ?) - (#x8fed ?) - (#x8ff0 ?) - (#x8ff2 ?̦) - (#x8ff7 ?ڻ) - (#x8ff9 ?) - (#x8ffd ?) - (#x9000 ?) - (#x9001 ?) - (#x9002 ?) - (#x9003 ?Ա) - (#x9005 ?) - (#x9006 ?) - (#x9008 ?) - (#x900b ?) - (#x900d ?) - (#x900f ?) - (#x9010 ?) - (#x9011 ?) - (#x9014 ?Բ) - (#x9015 ?) - (#x9017 ?) - (#x9019 ?) - (#x901a ?) - (#x901d ?) - (#x901e ?) - (#x901f ?) - (#x9020 ?) - (#x9021 ?) - (#x9022 ?) - (#x9023 ?֧) - (#x902e ?) - (#x9031 ?) - (#x9032 ?) - (#x9035 ?а) - (#x9038 ?) - (#x903c ?) - (#x903e ?) - (#x9041 ?) - (#x9042 ?) - (#x9047 ?) - (#x904a ?) - (#x904b ?) - (#x904d ?) - (#x904e ?Φ) - (#x9050 ?) - (#x9051 ?) - (#x9053 ?Գ) - (#x9054 ?ӹ) - (#x9055 ?) - (#x9059 ?) - (#x905c ?) - (#x905d ?) - (#x905e ?) - (#x9060 ?) - (#x9061 ?) - (#x9063 ?̺) - (#x9069 ?) - (#x906d ?) - (#x906e ?) - (#x906f ?) - (#x9072 ?) - (#x9075 ?) - (#x9077 ?) - (#x9078 ?) - (#x907a ?) - (#x907c ?ס) - (#x907d ?) - (#x907f ?) - (#x9080 ?) - (#x9081 ?) - (#x9082 ?) - (#x9083 ?) - (#x9084 ?) - (#x9087 ?) - (#x9088 ?ر) - (#x908a ?ܫ) - (#x908f ?դ) - (#x9091 ?) - (#x9095 ?) - (#x9099 ?) - (#x90a2 ?) - (#x90a3 ?) - (#x90a6 ?) - (#x90a8 ?) - (#x90aa ?) - (#x90af ?) - (#x90b0 ?) - (#x90b1 ?) - (#x90b5 ?) - (#x90b8 ?) - (#x90c1 ?) - (#x90ca ?) - (#x90de ?) - (#x90e1 ?) - (#x90e8 ?ݻ) - (#x90ed ?ά) - (#x90f5 ?) - (#x90fd ?Դ) - (#x9102 ?) - (#x9112 ?) - (#x9115 ?) - (#x9119 ?ީ) - (#x9127 ?) - (#x912d ?) - (#x9132 ?ӳ) - (#x9149 ?) - (#x914a ?) - (#x914b ?) - (#x914c ?) - (#x914d ?) - (#x914e ?) - (#x9152 ?) - (#x9162 ?) - (#x9169 ?ٮ) - (#x916a ?լ) - (#x916c ?) - (#x9175 ?) - (#x9177 ?) - (#x9178 ?߫) - (#x9187 ?) - (#x9189 ?) - (#x918b ?) - (#x918d ?) - (#x9192 ?) - (#x919c ?) - (#x91ab ?) - (#x91ac ?) - (#x91ae ?) - (#x91af ?) - (#x91b1 ?ۣ) - (#x91b4 ?) - (#x91b5 ?) - (#x91c0 ?) - (#x91c7 ?) - (#x91c9 ?) - (#x91cb ?) - (#x91cc ?) - (#x91cd ?) - (#x91ce ?) - (#x91cf ?) - (#x91d0 ?) - (#x91d1 ?) - (#x91d7 ?) - (#x91d8 ?) - (#x91dc ?ݼ) - (#x91dd ?) - (#x91e3 ?) - (#x91e7 ?) - (#x91ea ?) - (#x91f5 ?) - (#x920d ?) - (#x9210 ?̢) - (#x9211 ?) - (#x9212 ?) - (#x9217 ?) - (#x921e ?з) - (#x9234 ?) - (#x923a ?) - (#x923f ?) - (#x9240 ?˥) - (#x9245 ?) - (#x9249 ?) - (#x9257 ?) - (#x925b ?) - (#x925e ?) - (#x9262 ?ۤ) - (#x9264 ?) - (#x9265 ?) - (#x9266 ?) - (#x9280 ?) - (#x9283 ?) - (#x9285 ?) - (#x9291 ?) - (#x9293 ?) - (#x9296 ?) - (#x9298 ?ٯ) - (#x929c ?) - (#x92b3 ?) - (#x92b6 ?) - (#x92b7 ?) - (#x92b9 ?) - (#x92cc ?) - (#x92cf ?) - (#x92d2 ?) - (#x92e4 ?) - (#x92ea ?) - (#x92f8 ?) - (#x92fc ?˼) - (#x9304 ?) - (#x9310 ?) - (#x9318 ?) - (#x931a ?) - (#x931e ?) - (#x931f ?) - (#x9320 ?) - (#x9321 ?) - (#x9322 ?) - (#x9324 ?) - (#x9326 ?) - (#x9328 ?) - (#x932b ?) - (#x932e ?) - (#x932f ?) - (#x9348 ?) - (#x934a ?֨) - (#x934b ?Χ) - (#x934d ?Ե) - (#x9354 ?) - (#x935b ?Ӵ) - (#x936e ?) - (#x9375 ?) - (#x937c ?) - (#x937e ?) - (#x938c ?) - (#x9394 ?) - (#x9396 ?) - (#x939a ?) - (#x93a3 ?) - (#x93a7 ?) - (#x93ac ?) - (#x93ad ?) - (#x93b0 ?) - (#x93c3 ?) - (#x93d1 ?) - (#x93de ?) - (#x93e1 ?) - (#x93e4 ?ׯ) - (#x93f6 ?) - (#x9404 ?) - (#x9418 ?) - (#x9425 ?) - (#x942b ?) - (#x9435 ?) - (#x9438 ?) - (#x9444 ?) - (#x9451 ?) - (#x9452 ?) - (#x945b ?) - (#x947d ?) - (#x947f ?) - (#x9577 ?) - (#x9580 ?ڦ) - (#x9583 ?) - (#x9589 ?) - (#x958b ?) - (#x958f ?) - (#x9591 ?) - (#x9592 ?) - (#x9593 ?) - (#x9594 ?) - (#x9598 ?˦) - (#x95a3 ?) - (#x95a4 ?) - (#x95a5 ?) - (#x95a8 ?б) - (#x95ad ?) - (#x95b1 ?) - (#x95bb ?) - (#x95bc ?) - (#x95c7 ?) - (#x95ca ?) - (#x95d4 ?) - (#x95d5 ?) - (#x95d6 ?) - (#x95dc ?μ) - (#x95e1 ?) - (#x95e2 ?ܣ) - (#x961c ?ݽ) - (#x9621 ?) - (#x962a ?) - (#x962e ?) - (#x9632 ?) - (#x963b ?) - (#x963f ?) - (#x9640 ?) - (#x9642 ?) - (#x9644 ?ݾ) - (#x964b ?װ) - (#x964c ?) - (#x964d ?˽) - (#x9650 ?) - (#x965b ?) - (#x965c ?) - (#x965d ?) - (#x965e ?) - (#x965f ?) - (#x9662 ?) - (#x9663 ?) - (#x9664 ?) - (#x966a ?) - (#x9670 ?) - (#x9673 ?) - (#x9675 ?) - (#x9676 ?Զ) - (#x9677 ?) - (#x9678 ?) - (#x967d ?) - (#x9685 ?) - (#x9686 ?) - (#x968a ?) - (#x968b ?) - (#x968d ?) - (#x968e ?ͭ) - (#x9694 ?̰) - (#x9695 ?) - (#x9698 ?) - (#x9699 ?) - (#x969b ?) - (#x969c ?) - (#x96a3 ?) - (#x96a7 ?) - (#x96a8 ?) - (#x96aa ?) - (#x96b1 ?) - (#x96b7 ?) - (#x96bb ?) - (#x96c0 ?) - (#x96c1 ?) - (#x96c4 ?) - (#x96c5 ?) - (#x96c6 ?) - (#x96c7 ?) - (#x96c9 ?) - (#x96cb ?) - (#x96cc ?) - (#x96cd ?) - (#x96ce ?) - (#x96d5 ?) - (#x96d6 ?) - (#x96d9 ?) - (#x96db ?) - (#x96dc ?) - (#x96e2 ?) - (#x96e3 ?) - (#x96e8 ?) - (#x96e9 ?) - (#x96ea ?) - (#x96ef ?ڧ) - (#x96f0 ?) - (#x96f2 ?) - (#x96f6 ?) - (#x96f7 ?) - (#x96f9 ?) - (#x96fb ?) - (#x9700 ?) - (#x9706 ?) - (#x9707 ?) - (#x9711 ?) - (#x9713 ?) - (#x9716 ?) - (#x9719 ?) - (#x971c ?) - (#x971e ?) - (#x9727 ?) - (#x9730 ?߬) - (#x9732 ?) - (#x9739 ?ܤ) - (#x973d ?) - (#x9742 ?) - (#x9744 ?) - (#x9748 ?) - (#x9751 ?) - (#x9756 ?) - (#x975c ?) - (#x975e ?ު) - (#x9761 ?ڼ) - (#x9762 ?) - (#x9769 ?) - (#x976d ?) - (#x9774 ?) - (#x9777 ?) - (#x977a ?) - (#x978b ?) - (#x978d ?) - (#x978f ?) - (#x97a0 ?) - (#x97a8 ?) - (#x97ab ?) - (#x97ad ?) - (#x97c6 ?) - (#x97cb ?) - (#x97d3 ?) - (#x97dc ?Է) - (#x97f3 ?) - (#x97f6 ?) - (#x97fb ?) - (#x97ff ?) - (#x9800 ?) - (#x9801 ?) - (#x9802 ?) - (#x9803 ?) - (#x9805 ?) - (#x9806 ?) - (#x9808 ?) - (#x980a ?) - (#x980c ?) - (#x9810 ?) - (#x9811 ?) - (#x9812 ?) - (#x9813 ?) - (#x9817 ?) - (#x9818 ?) - (#x982d ?) - (#x9830 ?) - (#x9838 ?) - (#x9839 ?) - (#x983b ?) - (#x9846 ?Ψ) - (#x984c ?) - (#x984d ?) - (#x984e ?) - (#x9854 ?) - (#x9858 ?) - (#x985a ?) - (#x985e ?) - (#x9865 ?) - (#x9867 ?) - (#x986b ?) - (#x986f ?) - (#x98a8 ?) - (#x98af ?߽) - (#x98b1 ?) - (#x98c4 ?) - (#x98c7 ?) - (#x98db ?ޫ) - (#x98dc ?) - (#x98df ?) - (#x98e1 ?) - (#x98e2 ?) - (#x98ed ?) - (#x98ee ?) - (#x98ef ?) - (#x98f4 ?) - (#x98fc ?) - (#x98fd ?) - (#x98fe ?) - (#x9903 ?) - (#x9909 ?) - (#x990a ?) - (#x990c ?) - (#x9910 ?) - (#x9913 ?) - (#x9918 ?) - (#x991e ?) - (#x9920 ?ܿ) - (#x9928 ?ν) - (#x9945 ?) - (#x9949 ?) - (#x994b ?) - (#x994c ?) - (#x994d ?) - (#x9951 ?) - (#x9952 ?) - (#x9954 ?) - (#x9957 ?) - (#x9996 ?) - (#x9999 ?) - (#x999d ?) - (#x99a5 ?) - (#x99a8 ?) - (#x99ac ?ة) - (#x99ad ?) - (#x99ae ?) - (#x99b1 ?) - (#x99b3 ?) - (#x99b4 ?) - (#x99b9 ?) - (#x99c1 ?) - (#x99d0 ?) - (#x99d1 ?) - (#x99d2 ?) - (#x99d5 ?ʽ) - (#x99d9 ?ݿ) - (#x99dd ?) - (#x99df ?) - (#x99ed ?) - (#x99f1 ?խ) - (#x99ff ?) - (#x9a01 ?) - (#x9a08 ?) - (#x9a0e ?) - (#x9a0f ?) - (#x9a19 ?) - (#x9a2b ?) - (#x9a30 ?) - (#x9a36 ?) - (#x9a37 ?) - (#x9a40 ?) - (#x9a43 ?) - (#x9a45 ?) - (#x9a4d ?) - (#x9a55 ?) - (#x9a57 ?) - (#x9a5a ?) - (#x9a5b ?) - (#x9a5f ?) - (#x9a62 ?) - (#x9a65 ?) - (#x9a69 ?) - (#x9a6a ?) - (#x9aa8 ?) - (#x9ab8 ?) - (#x9ad3 ?) - (#x9ad4 ?) - (#x9ad8 ?) - (#x9ae5 ?) - (#x9aee ?ۥ) - (#x9b1a ?) - (#x9b27 ?ע) - (#x9b2a ?) - (#x9b31 ?) - (#x9b3c ?С) - (#x9b41 ?) - (#x9b42 ?) - (#x9b43 ?ۦ) - (#x9b44 ?) - (#x9b45 ?) - (#x9b4f ?) - (#x9b54 ?ت) - (#x9b5a ?) - (#x9b6f ?) - (#x9b8e ?) - (#x9b91 ?) - (#x9b9f ?) - (#x9bab ?) - (#x9bae ?) - (#x9bc9 ?) - (#x9bd6 ?) - (#x9be4 ?) - (#x9be8 ?) - (#x9c0d ?) - (#x9c10 ?) - (#x9c12 ?) - (#x9c15 ?) - (#x9c25 ?) - (#x9c32 ?) - (#x9c3b ?) - (#x9c47 ?˾) - (#x9c49 ?ܮ) - (#x9c57 ?) - (#x9ce5 ?) - (#x9ce7 ?) - (#x9ce9 ?) - (#x9cf3 ?) - (#x9cf4 ?ٰ) - (#x9cf6 ?) - (#x9d09 ?) - (#x9d1b ?) - (#x9d26 ?) - (#x9d28 ?) - (#x9d3b ?) - (#x9d51 ?̻) - (#x9d5d ?) - (#x9d60 ?) - (#x9d61 ?) - (#x9d6c ?) - (#x9d72 ?) - (#x9da9 ?) - (#x9daf ?) - (#x9db4 ?) - (#x9dc4 ?ͮ) - (#x9dd7 ?) - (#x9df2 ?) - (#x9df8 ?) - (#x9df9 ?) - (#x9dfa ?) - (#x9e1a ?) - (#x9e1e ?ն) - (#x9e75 ?) - (#x9e79 ?) - (#x9e7d ?) - (#x9e7f ?) - (#x9e92 ?) - (#x9e93 ?) - (#x9e97 ?) - (#x9e9d ?) - (#x9e9f ?) - (#x9ea5 ?) - (#x9eb4 ?) - (#x9eb5 ?) - (#x9ebb ?ث) - (#x9ebe ?) - (#x9ec3 ?) - (#x9ecd ?) - (#x9ece ?) - (#x9ed1 ?) - (#x9ed4 ?̣) - (#x9ed8 ?) - (#x9edb ?) - (#x9edc ?) - (#x9ede ?) - (#x9ee8 ?) - (#x9ef4 ?ڽ) - (#x9f07 ?) - (#x9f08 ?ܯ) - (#x9f0e ?) - (#x9f13 ?) - (#x9f20 ?) - (#x9f3b ?ެ) - (#x9f4a ?) - (#x9f4b ?) - (#x9f4e ?) - (#x9f52 ?) - (#x9f5f ?) - (#x9f61 ?) - (#x9f67 ?) - (#x9f6a ?) - (#x9f6c ?) - (#x9f77 ?) - (#x9f8d ?ף) - (#x9f90 ?) - (#x9f95 ?) - (#x9f9c ?) - (#xac00 ?) - (#xac01 ?) - (#xac04 ?) - (#xac07 ?) - (#xac08 ?) - (#xac09 ?) - (#xac0a ?) - (#xac10 ?) - (#xac11 ?) - (#xac12 ?) - (#xac13 ?) - (#xac14 ?) - (#xac15 ?) - (#xac16 ?) - (#xac17 ?) - (#xac19 ?) - (#xac1a ?) - (#xac1b ?) - (#xac1c ?) - (#xac1d ?) - (#xac20 ?) - (#xac24 ?) - (#xac2c ?) - (#xac2d ?) - (#xac2f ?) - (#xac30 ?) - (#xac31 ?) - (#xac38 ?) - (#xac39 ?) - (#xac3c ?) - (#xac40 ?) - (#xac4b ?) - (#xac4d ?) - (#xac54 ?) - (#xac58 ?) - (#xac5c ?) - (#xac70 ?) - (#xac71 ?) - (#xac74 ?) - (#xac77 ?) - (#xac78 ?) - (#xac7a ?) - (#xac80 ?) - (#xac81 ?) - (#xac83 ?) - (#xac84 ?) - (#xac85 ?) - (#xac86 ?) - (#xac89 ?) - (#xac8a ?) - (#xac8b ?) - (#xac8c ?) - (#xac90 ?) - (#xac94 ?) - (#xac9c ?) - (#xac9d ?) - (#xac9f ?) - (#xaca0 ?) - (#xaca1 ?) - (#xaca8 ?) - (#xaca9 ?) - (#xacaa ?) - (#xacac ?) - (#xacaf ?) - (#xacb0 ?) - (#xacb8 ?) - (#xacb9 ?) - (#xacbb ?) - (#xacbc ?) - (#xacbd ?) - (#xacc1 ?) - (#xacc4 ?) - (#xacc8 ?) - (#xaccc ?) - (#xacd5 ?) - (#xacd7 ?) - (#xace0 ?) - (#xace1 ?) - (#xace4 ?) - (#xace7 ?) - (#xace8 ?) - (#xacea ?) - (#xacec ?) - (#xacef ?) - (#xacf0 ?) - (#xacf1 ?) - (#xacf3 ?) - (#xacf5 ?) - (#xacf6 ?) - (#xacfc ?) - (#xacfd ?) - (#xad00 ?) - (#xad04 ?) - (#xad06 ?) - (#xad0c ?) - (#xad0d ?) - (#xad0f ?) - (#xad11 ?) - (#xad18 ?) - (#xad1c ?) - (#xad20 ?) - (#xad29 ?) - (#xad2c ?) - (#xad2d ?) - (#xad34 ?) - (#xad35 ?) - (#xad38 ?) - (#xad3c ?) - (#xad44 ?) - (#xad45 ?) - (#xad47 ?) - (#xad49 ?) - (#xad50 ?) - (#xad54 ?) - (#xad58 ?) - (#xad61 ?) - (#xad63 ?) - (#xad6c ?) - (#xad6d ?) - (#xad70 ?) - (#xad73 ?) - (#xad74 ?) - (#xad75 ?) - (#xad76 ?) - (#xad7b ?) - (#xad7c ?) - (#xad7d ?) - (#xad7f ?) - (#xad81 ?) - (#xad82 ?) - (#xad88 ?) - (#xad89 ?) - (#xad8c ?) - (#xad90 ?) - (#xad9c ?) - (#xad9d ?) - (#xada4 ?) - (#xadb7 ?) - (#xadc0 ?) - (#xadc1 ?) - (#xadc4 ?) - (#xadc8 ?) - (#xadd0 ?) - (#xadd1 ?) - (#xadd3 ?) - (#xaddc ?) - (#xade0 ?) - (#xade4 ?) - (#xadf8 ?) - (#xadf9 ?) - (#xadfc ?) - (#xadff ?) - (#xae00 ?) - (#xae01 ?) - (#xae08 ?) - (#xae09 ?) - (#xae0b ?) - (#xae0d ?) - (#xae14 ?) - (#xae30 ?) - (#xae31 ?) - (#xae34 ?) - (#xae37 ?) - (#xae38 ?) - (#xae3a ?) - (#xae40 ?) - (#xae41 ?) - (#xae43 ?) - (#xae45 ?) - (#xae46 ?) - (#xae4a ?) - (#xae4c ?) - (#xae4d ?) - (#xae4e ?) - (#xae50 ?) - (#xae54 ?) - (#xae56 ?) - (#xae5c ?) - (#xae5d ?) - (#xae5f ?) - (#xae60 ?) - (#xae61 ?) - (#xae65 ?) - (#xae68 ?) - (#xae69 ?) - (#xae6c ?) - (#xae70 ?) - (#xae78 ?) - (#xae79 ?) - (#xae7b ?) - (#xae7c ?) - (#xae7d ?) - (#xae84 ?) - (#xae85 ?) - (#xae8c ?) - (#xaebc ?) - (#xaebd ?) - (#xaebe ?) - (#xaec0 ?) - (#xaec4 ?) - (#xaecc ?) - (#xaecd ?) - (#xaecf ?) - (#xaed0 ?) - (#xaed1 ?) - (#xaed8 ?) - (#xaed9 ?) - (#xaedc ?) - (#xaee8 ?) - (#xaeeb ?) - (#xaeed ?) - (#xaef4 ?) - (#xaef8 ?) - (#xaefc ?) - (#xaf07 ?) - (#xaf08 ?) - (#xaf0d ?) - (#xaf10 ?) - (#xaf2c ?) - (#xaf2d ?) - (#xaf30 ?) - (#xaf32 ?) - (#xaf34 ?) - (#xaf3c ?) - (#xaf3d ?) - (#xaf3f ?) - (#xaf41 ?) - (#xaf42 ?) - (#xaf43 ?) - (#xaf48 ?) - (#xaf49 ?) - (#xaf50 ?) - (#xaf5c ?) - (#xaf5d ?) - (#xaf64 ?) - (#xaf65 ?) - (#xaf79 ?) - (#xaf80 ?) - (#xaf84 ?) - (#xaf88 ?) - (#xaf90 ?) - (#xaf91 ?) - (#xaf95 ?) - (#xaf9c ?) - (#xafb8 ?) - (#xafb9 ?) - (#xafbc ?) - (#xafc0 ?) - (#xafc7 ?) - (#xafc8 ?) - (#xafc9 ?) - (#xafcb ?) - (#xafcd ?) - (#xafce ?) - (#xafd4 ?) - (#xafdc ?) - (#xafe8 ?) - (#xafe9 ?) - (#xaff0 ?) - (#xaff1 ?) - (#xaff4 ?) - (#xaff8 ?) - (#xb000 ?) - (#xb001 ?) - (#xb004 ?) - (#xb00c ?) - (#xb010 ?) - (#xb014 ?) - (#xb01c ?) - (#xb01d ?) - (#xb028 ?) - (#xb044 ?) - (#xb045 ?) - (#xb048 ?) - (#xb04a ?) - (#xb04c ?) - (#xb04e ?) - (#xb053 ?) - (#xb054 ?) - (#xb055 ?) - (#xb057 ?) - (#xb059 ?) - (#xb05d ?) - (#xb07c ?) - (#xb07d ?) - (#xb080 ?) - (#xb084 ?) - (#xb08c ?) - (#xb08d ?) - (#xb08f ?) - (#xb091 ?) - (#xb098 ?) - (#xb099 ?) - (#xb09a ?) - (#xb09c ?) - (#xb09f ?) - (#xb0a0 ?) - (#xb0a1 ?) - (#xb0a2 ?) - (#xb0a8 ?) - (#xb0a9 ?) - (#xb0ab ?) - (#xb0ac ?) - (#xb0ad ?) - (#xb0ae ?) - (#xb0af ?) - (#xb0b1 ?) - (#xb0b3 ?) - (#xb0b4 ?) - (#xb0b5 ?) - (#xb0b8 ?) - (#xb0bc ?) - (#xb0c4 ?) - (#xb0c5 ?) - (#xb0c7 ?) - (#xb0c8 ?) - (#xb0c9 ?) - (#xb0d0 ?) - (#xb0d1 ?) - (#xb0d4 ?) - (#xb0d8 ?) - (#xb0e0 ?) - (#xb0e5 ?) - (#xb108 ?) - (#xb109 ?) - (#xb10b ?) - (#xb10c ?) - (#xb110 ?) - (#xb112 ?) - (#xb113 ?) - (#xb118 ?) - (#xb119 ?) - (#xb11b ?) - (#xb11c ?) - (#xb11d ?) - (#xb123 ?) - (#xb124 ?) - (#xb125 ?) - (#xb128 ?) - (#xb12c ?) - (#xb134 ?) - (#xb135 ?) - (#xb137 ?) - (#xb138 ?) - (#xb139 ?) - (#xb140 ?) - (#xb141 ?) - (#xb144 ?) - (#xb148 ?) - (#xb150 ?) - (#xb151 ?) - (#xb154 ?) - (#xb155 ?) - (#xb158 ?) - (#xb15c ?) - (#xb160 ?) - (#xb178 ?) - (#xb179 ?) - (#xb17c ?) - (#xb180 ?) - (#xb182 ?) - (#xb188 ?) - (#xb189 ?) - (#xb18b ?) - (#xb18d ?) - (#xb192 ?) - (#xb193 ?) - (#xb194 ?) - (#xb198 ?) - (#xb19c ?) - (#xb1a8 ?) - (#xb1cc ?) - (#xb1d0 ?) - (#xb1d4 ?) - (#xb1dc ?) - (#xb1dd ?) - (#xb1df ?) - (#xb1e8 ?) - (#xb1e9 ?) - (#xb1ec ?) - (#xb1f0 ?) - (#xb1f9 ?) - (#xb1fb ?) - (#xb1fd ?) - (#xb204 ?) - (#xb205 ?) - (#xb208 ?) - (#xb20b ?) - (#xb20c ?) - (#xb214 ?) - (#xb215 ?) - (#xb217 ?) - (#xb219 ?) - (#xb220 ?) - (#xb234 ?) - (#xb23c ?) - (#xb258 ?) - (#xb25c ?) - (#xb260 ?) - (#xb268 ?) - (#xb269 ?) - (#xb274 ?) - (#xb275 ?) - (#xb27c ?) - (#xb284 ?) - (#xb285 ?) - (#xb289 ?) - (#xb290 ?) - (#xb291 ?) - (#xb294 ?) - (#xb298 ?) - (#xb299 ?) - (#xb29a ?) - (#xb2a0 ?) - (#xb2a1 ?) - (#xb2a3 ?) - (#xb2a5 ?) - (#xb2a6 ?) - (#xb2aa ?) - (#xb2ac ?) - (#xb2b0 ?) - (#xb2b4 ?) - (#xb2c8 ?) - (#xb2c9 ?) - (#xb2cc ?) - (#xb2d0 ?) - (#xb2d2 ?) - (#xb2d8 ?) - (#xb2d9 ?) - (#xb2db ?) - (#xb2dd ?) - (#xb2e2 ?) - (#xb2e4 ?) - (#xb2e5 ?) - (#xb2e6 ?) - (#xb2e8 ?) - (#xb2eb ?) - (#xb2ec ?) - (#xb2ed ?) - (#xb2ee ?) - (#xb2ef ?) - (#xb2f3 ?) - (#xb2f4 ?) - (#xb2f5 ?) - (#xb2f7 ?) - (#xb2f8 ?) - (#xb2f9 ?) - (#xb2fa ?) - (#xb2fb ?) - (#xb2ff ?) - (#xb300 ?) - (#xb301 ?) - (#xb304 ?) - (#xb308 ?) - (#xb310 ?) - (#xb311 ?) - (#xb313 ?) - (#xb314 ?) - (#xb315 ?) - (#xb31c ?) - (#xb354 ?) - (#xb355 ?) - (#xb356 ?) - (#xb358 ?) - (#xb35b ?) - (#xb35c ?) - (#xb35e ?) - (#xb35f ?) - (#xb364 ?) - (#xb365 ?) - (#xb367 ?) - (#xb369 ?) - (#xb36b ?) - (#xb36e ?) - (#xb370 ?) - (#xb371 ?) - (#xb374 ?) - (#xb378 ?) - (#xb380 ?) - (#xb381 ?) - (#xb383 ?) - (#xb384 ?) - (#xb385 ?) - (#xb38c ?) - (#xb390 ?) - (#xb394 ?) - (#xb3a0 ?) - (#xb3a1 ?) - (#xb3a8 ?) - (#xb3ac ?) - (#xb3c4 ?) - (#xb3c5 ?) - (#xb3c8 ?) - (#xb3cb ?) - (#xb3cc ?) - (#xb3ce ?) - (#xb3d0 ?) - (#xb3d4 ?) - (#xb3d5 ?) - (#xb3d7 ?) - (#xb3d9 ?) - (#xb3db ?) - (#xb3dd ?) - (#xb3e0 ?) - (#xb3e4 ?) - (#xb3e8 ?) - (#xb3fc ?) - (#xb410 ?) - (#xb418 ?) - (#xb41c ?) - (#xb420 ?) - (#xb428 ?) - (#xb429 ?) - (#xb42b ?) - (#xb434 ?) - (#xb450 ?) - (#xb451 ?) - (#xb454 ?) - (#xb458 ?) - (#xb460 ?) - (#xb461 ?) - (#xb463 ?) - (#xb465 ?) - (#xb46c ?) - (#xb480 ?) - (#xb488 ?) - (#xb49d ?) - (#xb4a4 ?) - (#xb4a8 ?) - (#xb4ac ?) - (#xb4b5 ?) - (#xb4b7 ?) - (#xb4b9 ?) - (#xb4c0 ?) - (#xb4c4 ?) - (#xb4c8 ?) - (#xb4d0 ?) - (#xb4d5 ?) - (#xb4dc ?) - (#xb4dd ?) - (#xb4e0 ?) - (#xb4e3 ?) - (#xb4e4 ?) - (#xb4e6 ?) - (#xb4ec ?) - (#xb4ed ?) - (#xb4ef ?) - (#xb4f1 ?) - (#xb4f8 ?) - (#xb514 ?) - (#xb515 ?) - (#xb518 ?) - (#xb51b ?) - (#xb51c ?) - (#xb524 ?) - (#xb525 ?) - (#xb527 ?) - (#xb528 ?) - (#xb529 ?) - (#xb52a ?) - (#xb530 ?) - (#xb531 ?) - (#xb534 ?) - (#xb538 ?) - (#xb540 ?) - (#xb541 ?) - (#xb543 ?) - (#xb544 ?) - (#xb545 ?) - (#xb54b ?) - (#xb54c ?) - (#xb54d ?) - (#xb550 ?) - (#xb554 ?) - (#xb55c ?) - (#xb55d ?) - (#xb55f ?) - (#xb560 ?) - (#xb561 ?) - (#xb5a0 ?) - (#xb5a1 ?) - (#xb5a4 ?) - (#xb5a8 ?) - (#xb5aa ?) - (#xb5ab ?) - (#xb5b0 ?) - (#xb5b1 ?) - (#xb5b3 ?) - (#xb5b4 ?) - (#xb5b5 ?) - (#xb5bb ?) - (#xb5bc ?) - (#xb5bd ?) - (#xb5c0 ?) - (#xb5c4 ?) - (#xb5cc ?) - (#xb5cd ?) - (#xb5cf ?) - (#xb5d0 ?) - (#xb5d1 ?) - (#xb5d8 ?) - (#xb5ec ?) - (#xb610 ?) - (#xb611 ?) - (#xb614 ?) - (#xb618 ?) - (#xb625 ?) - (#xb62c ?) - (#xb634 ?) - (#xb648 ?) - (#xb664 ?) - (#xb668 ?) - (#xb69c ?) - (#xb69d ?) - (#xb6a0 ?) - (#xb6a4 ?) - (#xb6ab ?) - (#xb6ac ?) - (#xb6b1 ?) - (#xb6d4 ?) - (#xb6f0 ?) - (#xb6f4 ?) - (#xb6f8 ?) - (#xb700 ?) - (#xb701 ?) - (#xb705 ?) - (#xb728 ?) - (#xb729 ?) - (#xb72c ?) - (#xb72f ?) - (#xb730 ?) - (#xb738 ?) - (#xb739 ?) - (#xb73b ?) - (#xb744 ?) - (#xb748 ?) - (#xb74c ?) - (#xb754 ?) - (#xb755 ?) - (#xb760 ?) - (#xb764 ?) - (#xb768 ?) - (#xb770 ?) - (#xb771 ?) - (#xb773 ?) - (#xb775 ?) - (#xb77c ?) - (#xb77d ?) - (#xb780 ?) - (#xb784 ?) - (#xb78c ?) - (#xb78d ?) - (#xb78f ?) - (#xb790 ?) - (#xb791 ?) - (#xb792 ?) - (#xb796 ?) - (#xb797 ?) - (#xb798 ?) - (#xb799 ?) - (#xb79c ?) - (#xb7a0 ?) - (#xb7a8 ?) - (#xb7a9 ?) - (#xb7ab ?) - (#xb7ac ?) - (#xb7ad ?) - (#xb7b4 ?) - (#xb7b5 ?) - (#xb7b8 ?) - (#xb7c7 ?) - (#xb7c9 ?) - (#xb7ec ?) - (#xb7ed ?) - (#xb7f0 ?) - (#xb7f4 ?) - (#xb7fc ?) - (#xb7fd ?) - (#xb7ff ?) - (#xb800 ?) - (#xb801 ?) - (#xb807 ?) - (#xb808 ?) - (#xb809 ?) - (#xb80c ?) - (#xb810 ?) - (#xb818 ?) - (#xb819 ?) - (#xb81b ?) - (#xb81d ?) - (#xb824 ?) - (#xb825 ?) - (#xb828 ?) - (#xb82c ?) - (#xb834 ?) - (#xb835 ?) - (#xb837 ?) - (#xb838 ?) - (#xb839 ?) - (#xb840 ?) - (#xb844 ?) - (#xb851 ?) - (#xb853 ?) - (#xb85c ?) - (#xb85d ?) - (#xb860 ?) - (#xb864 ?) - (#xb86c ?) - (#xb86d ?) - (#xb86f ?) - (#xb871 ?) - (#xb878 ?) - (#xb87c ?) - (#xb88d ?) - (#xb8a8 ?) - (#xb8b0 ?) - (#xb8b4 ?) - (#xb8b8 ?) - (#xb8c0 ?) - (#xb8c1 ?) - (#xb8c3 ?) - (#xb8c5 ?) - (#xb8cc ?) - (#xb8d0 ?) - (#xb8d4 ?) - (#xb8dd ?) - (#xb8df ?) - (#xb8e1 ?) - (#xb8e8 ?) - (#xb8e9 ?) - (#xb8ec ?) - (#xb8f0 ?) - (#xb8f8 ?) - (#xb8f9 ?) - (#xb8fb ?) - (#xb8fd ?) - (#xb904 ?) - (#xb918 ?) - (#xb920 ?) - (#xb93c ?) - (#xb93d ?) - (#xb940 ?) - (#xb944 ?) - (#xb94c ?) - (#xb94f ?) - (#xb951 ?) - (#xb958 ?) - (#xb959 ?) - (#xb95c ?) - (#xb960 ?) - (#xb968 ?) - (#xb969 ?) - (#xb96b ?) - (#xb96d ?) - (#xb974 ?) - (#xb975 ?) - (#xb978 ?) - (#xb97c ?) - (#xb984 ?) - (#xb985 ?) - (#xb987 ?) - (#xb989 ?) - (#xb98a ?) - (#xb98d ?) - (#xb98e ?) - (#xb9ac ?) - (#xb9ad ?) - (#xb9b0 ?) - (#xb9b4 ?) - (#xb9bc ?) - (#xb9bd ?) - (#xb9bf ?) - (#xb9c1 ?) - (#xb9c8 ?) - (#xb9c9 ?) - (#xb9cc ?) - (#xb9ce ?) - (#xb9cf ?) - (#xb9d0 ?) - (#xb9d1 ?) - (#xb9d2 ?) - (#xb9d8 ?) - (#xb9d9 ?) - (#xb9db ?) - (#xb9dd ?) - (#xb9de ?) - (#xb9e1 ?) - (#xb9e3 ?) - (#xb9e4 ?) - (#xb9e5 ?) - (#xb9e8 ?) - (#xb9ec ?) - (#xb9f4 ?) - (#xb9f5 ?) - (#xb9f7 ?) - (#xb9f8 ?) - (#xb9f9 ?) - (#xb9fa ?) - (#xba00 ?) - (#xba01 ?) - (#xba08 ?) - (#xba15 ?) - (#xba38 ?) - (#xba39 ?) - (#xba3c ?) - (#xba40 ?) - (#xba42 ?) - (#xba48 ?) - (#xba49 ?) - (#xba4b ?) - (#xba4d ?) - (#xba4e ?) - (#xba53 ?) - (#xba54 ?) - (#xba55 ?) - (#xba58 ?) - (#xba5c ?) - (#xba64 ?) - (#xba65 ?) - (#xba67 ?) - (#xba68 ?) - (#xba69 ?) - (#xba70 ?) - (#xba71 ?) - (#xba74 ?) - (#xba78 ?) - (#xba83 ?) - (#xba84 ?) - (#xba85 ?) - (#xba87 ?) - (#xba8c ?) - (#xbaa8 ?) - (#xbaa9 ?) - (#xbaab ?) - (#xbaac ?) - (#xbab0 ?) - (#xbab2 ?) - (#xbab8 ?) - (#xbab9 ?) - (#xbabb ?) - (#xbabd ?) - (#xbac4 ?) - (#xbac8 ?) - (#xbad8 ?) - (#xbad9 ?) - (#xbafc ?) - (#xbb00 ?) - (#xbb04 ?) - (#xbb0d ?) - (#xbb0f ?) - (#xbb11 ?) - (#xbb18 ?) - (#xbb1c ?) - (#xbb20 ?) - (#xbb29 ?) - (#xbb2b ?) - (#xbb34 ?) - (#xbb35 ?) - (#xbb36 ?) - (#xbb38 ?) - (#xbb3b ?) - (#xbb3c ?) - (#xbb3d ?) - (#xbb3e ?) - (#xbb44 ?) - (#xbb45 ?) - (#xbb47 ?) - (#xbb49 ?) - (#xbb4d ?) - (#xbb4f ?) - (#xbb50 ?) - (#xbb54 ?) - (#xbb58 ?) - (#xbb61 ?) - (#xbb63 ?) - (#xbb6c ?) - (#xbb88 ?) - (#xbb8c ?) - (#xbb90 ?) - (#xbba4 ?) - (#xbba8 ?) - (#xbbac ?) - (#xbbb4 ?) - (#xbbb7 ?) - (#xbbc0 ?) - (#xbbc4 ?) - (#xbbc8 ?) - (#xbbd0 ?) - (#xbbd3 ?) - (#xbbf8 ?) - (#xbbf9 ?) - (#xbbfc ?) - (#xbbff ?) - (#xbc00 ?) - (#xbc02 ?) - (#xbc08 ?) - (#xbc09 ?) - (#xbc0b ?) - (#xbc0c ?) - (#xbc0d ?) - (#xbc0f ?) - (#xbc11 ?) - (#xbc14 ?) - (#xbc15 ?) - (#xbc16 ?) - (#xbc17 ?) - (#xbc18 ?) - (#xbc1b ?) - (#xbc1c ?) - (#xbc1d ?) - (#xbc1e ?) - (#xbc1f ?) - (#xbc24 ?) - (#xbc25 ?) - (#xbc27 ?) - (#xbc29 ?) - (#xbc2d ?) - (#xbc30 ?) - (#xbc31 ?) - (#xbc34 ?) - (#xbc38 ?) - (#xbc40 ?) - (#xbc41 ?) - (#xbc43 ?) - (#xbc44 ?) - (#xbc45 ?) - (#xbc49 ?) - (#xbc4c ?) - (#xbc4d ?) - (#xbc50 ?) - (#xbc5d ?) - (#xbc84 ?) - (#xbc85 ?) - (#xbc88 ?) - (#xbc8b ?) - (#xbc8c ?) - (#xbc8e ?) - (#xbc94 ?) - (#xbc95 ?) - (#xbc97 ?) - (#xbc99 ?) - (#xbc9a ?) - (#xbca0 ?) - (#xbca1 ?) - (#xbca4 ?) - (#xbca7 ?) - (#xbca8 ?) - (#xbcb0 ?) - (#xbcb1 ?) - (#xbcb3 ?) - (#xbcb4 ?) - (#xbcb5 ?) - (#xbcbc ?) - (#xbcbd ?) - (#xbcc0 ?) - (#xbcc4 ?) - (#xbccd ?) - (#xbccf ?) - (#xbcd0 ?) - (#xbcd1 ?) - (#xbcd5 ?) - (#xbcd8 ?) - (#xbcdc ?) - (#xbcf4 ?) - (#xbcf5 ?) - (#xbcf6 ?) - (#xbcf8 ?) - (#xbcfc ?) - (#xbd04 ?) - (#xbd05 ?) - (#xbd07 ?) - (#xbd09 ?) - (#xbd10 ?) - (#xbd14 ?) - (#xbd24 ?) - (#xbd2c ?) - (#xbd40 ?) - (#xbd48 ?) - (#xbd49 ?) - (#xbd4c ?) - (#xbd50 ?) - (#xbd58 ?) - (#xbd59 ?) - (#xbd64 ?) - (#xbd68 ?) - (#xbd80 ?) - (#xbd81 ?) - (#xbd84 ?) - (#xbd87 ?) - (#xbd88 ?) - (#xbd89 ?) - (#xbd8a ?) - (#xbd90 ?) - (#xbd91 ?) - (#xbd93 ?) - (#xbd95 ?) - (#xbd99 ?) - (#xbd9a ?) - (#xbd9c ?) - (#xbda4 ?) - (#xbdb0 ?) - (#xbdb8 ?) - (#xbdd4 ?) - (#xbdd5 ?) - (#xbdd8 ?) - (#xbddc ?) - (#xbde9 ?) - (#xbdf0 ?) - (#xbdf4 ?) - (#xbdf8 ?) - (#xbe00 ?) - (#xbe03 ?) - (#xbe05 ?) - (#xbe0c ?) - (#xbe0d ?) - (#xbe10 ?) - (#xbe14 ?) - (#xbe1c ?) - (#xbe1d ?) - (#xbe1f ?) - (#xbe44 ?) - (#xbe45 ?) - (#xbe48 ?) - (#xbe4c ?) - (#xbe4e ?) - (#xbe54 ?) - (#xbe55 ?) - (#xbe57 ?) - (#xbe59 ?) - (#xbe5a ?) - (#xbe5b ?) - (#xbe60 ?) - (#xbe61 ?) - (#xbe64 ?) - (#xbe68 ?) - (#xbe6a ?) - (#xbe70 ?) - (#xbe71 ?) - (#xbe73 ?) - (#xbe74 ?) - (#xbe75 ?) - (#xbe7b ?) - (#xbe7c ?) - (#xbe7d ?) - (#xbe80 ?) - (#xbe84 ?) - (#xbe8c ?) - (#xbe8d ?) - (#xbe8f ?) - (#xbe90 ?) - (#xbe91 ?) - (#xbe98 ?) - (#xbe99 ?) - (#xbea8 ?) - (#xbed0 ?) - (#xbed1 ?) - (#xbed4 ?) - (#xbed7 ?) - (#xbed8 ?) - (#xbee0 ?) - (#xbee3 ?) - (#xbee4 ?) - (#xbee5 ?) - (#xbeec ?) - (#xbf01 ?) - (#xbf08 ?) - (#xbf09 ?) - (#xbf18 ?) - (#xbf19 ?) - (#xbf1b ?) - (#xbf1c ?) - (#xbf1d ?) - (#xbf40 ?) - (#xbf41 ?) - (#xbf44 ?) - (#xbf48 ?) - (#xbf50 ?) - (#xbf51 ?) - (#xbf55 ?) - (#xbf94 ?) - (#xbfb0 ?) - (#xbfc5 ?) - (#xbfcc ?) - (#xbfcd ?) - (#xbfd0 ?) - (#xbfd4 ?) - (#xbfdc ?) - (#xbfdf ?) - (#xbfe1 ?) - (#xc03c ?) - (#xc051 ?) - (#xc058 ?) - (#xc05c ?) - (#xc060 ?) - (#xc068 ?) - (#xc069 ?) - (#xc090 ?) - (#xc091 ?) - (#xc094 ?) - (#xc098 ?) - (#xc0a0 ?) - (#xc0a1 ?) - (#xc0a3 ?) - (#xc0a5 ?) - (#xc0ac ?) - (#xc0ad ?) - (#xc0af ?) - (#xc0b0 ?) - (#xc0b3 ?) - (#xc0b4 ?) - (#xc0b5 ?) - (#xc0b6 ?) - (#xc0bc ?) - (#xc0bd ?) - (#xc0bf ?) - (#xc0c0 ?) - (#xc0c1 ?) - (#xc0c5 ?) - (#xc0c8 ?) - (#xc0c9 ?) - (#xc0cc ?) - (#xc0d0 ?) - (#xc0d8 ?) - (#xc0d9 ?) - (#xc0db ?) - (#xc0dc ?) - (#xc0dd ?) - (#xc0e4 ?) - (#xc0e5 ?) - (#xc0e8 ?) - (#xc0ec ?) - (#xc0f4 ?) - (#xc0f5 ?) - (#xc0f7 ?) - (#xc0f9 ?) - (#xc100 ?) - (#xc104 ?) - (#xc108 ?) - (#xc110 ?) - (#xc115 ?) - (#xc11c ?) - (#xc11d ?) - (#xc11e ?) - (#xc11f ?) - (#xc120 ?) - (#xc123 ?) - (#xc124 ?) - (#xc126 ?) - (#xc127 ?) - (#xc12c ?) - (#xc12d ?) - (#xc12f ?) - (#xc130 ?) - (#xc131 ?) - (#xc136 ?) - (#xc138 ?) - (#xc139 ?) - (#xc13c ?) - (#xc140 ?) - (#xc148 ?) - (#xc149 ?) - (#xc14b ?) - (#xc14c ?) - (#xc14d ?) - (#xc154 ?) - (#xc155 ?) - (#xc158 ?) - (#xc15c ?) - (#xc164 ?) - (#xc165 ?) - (#xc167 ?) - (#xc168 ?) - (#xc169 ?) - (#xc170 ?) - (#xc174 ?) - (#xc178 ?) - (#xc185 ?) - (#xc18c ?) - (#xc18d ?) - (#xc18e ?) - (#xc190 ?) - (#xc194 ?) - (#xc196 ?) - (#xc19c ?) - (#xc19d ?) - (#xc19f ?) - (#xc1a1 ?) - (#xc1a5 ?) - (#xc1a8 ?) - (#xc1a9 ?) - (#xc1ac ?) - (#xc1b0 ?) - (#xc1bd ?) - (#xc1c4 ?) - (#xc1c8 ?) - (#xc1cc ?) - (#xc1d4 ?) - (#xc1d7 ?) - (#xc1d8 ?) - (#xc1e0 ?) - (#xc1e4 ?) - (#xc1e8 ?) - (#xc1f0 ?) - (#xc1f1 ?) - (#xc1f3 ?) - (#xc1fc ?) - (#xc1fd ?) - (#xc200 ?) - (#xc204 ?) - (#xc20c ?) - (#xc20d ?) - (#xc20f ?) - (#xc211 ?) - (#xc218 ?) - (#xc219 ?) - (#xc21c ?) - (#xc21f ?) - (#xc220 ?) - (#xc228 ?) - (#xc229 ?) - (#xc22b ?) - (#xc22d ?) - (#xc22f ?) - (#xc231 ?) - (#xc232 ?) - (#xc234 ?) - (#xc248 ?) - (#xc250 ?) - (#xc251 ?) - (#xc254 ?) - (#xc258 ?) - (#xc260 ?) - (#xc265 ?) - (#xc26c ?) - (#xc26d ?) - (#xc270 ?) - (#xc274 ?) - (#xc27c ?) - (#xc27d ?) - (#xc27f ?) - (#xc281 ?) - (#xc288 ?) - (#xc289 ?) - (#xc290 ?) - (#xc298 ?) - (#xc29b ?) - (#xc29d ?) - (#xc2a4 ?) - (#xc2a5 ?) - (#xc2a8 ?) - (#xc2ac ?) - (#xc2ad ?) - (#xc2b4 ?) - (#xc2b5 ?) - (#xc2b7 ?) - (#xc2b9 ?) - (#xc2dc ?) - (#xc2dd ?) - (#xc2e0 ?) - (#xc2e3 ?) - (#xc2e4 ?) - (#xc2eb ?) - (#xc2ec ?) - (#xc2ed ?) - (#xc2ef ?) - (#xc2f1 ?) - (#xc2f6 ?) - (#xc2f8 ?) - (#xc2f9 ?) - (#xc2fb ?) - (#xc2fc ?) - (#xc300 ?) - (#xc308 ?) - (#xc309 ?) - (#xc30c ?) - (#xc30d ?) - (#xc313 ?) - (#xc314 ?) - (#xc315 ?) - (#xc318 ?) - (#xc31c ?) - (#xc324 ?) - (#xc325 ?) - (#xc328 ?) - (#xc329 ?) - (#xc345 ?) - (#xc368 ?) - (#xc369 ?) - (#xc36c ?) - (#xc370 ?) - (#xc372 ?) - (#xc378 ?) - (#xc379 ?) - (#xc37c ?) - (#xc37d ?) - (#xc384 ?) - (#xc388 ?) - (#xc38c ?) - (#xc3c0 ?) - (#xc3d8 ?) - (#xc3d9 ?) - (#xc3dc ?) - (#xc3df ?) - (#xc3e0 ?) - (#xc3e2 ?) - (#xc3e8 ?) - (#xc3e9 ?) - (#xc3ed ?) - (#xc3f4 ?) - (#xc3f5 ?) - (#xc3f8 ?) - (#xc408 ?) - (#xc410 ?) - (#xc424 ?) - (#xc42c ?) - (#xc430 ?) - (#xc434 ?) - (#xc43c ?) - (#xc43d ?) - (#xc448 ?) - (#xc464 ?) - (#xc465 ?) - (#xc468 ?) - (#xc46c ?) - (#xc474 ?) - (#xc475 ?) - (#xc479 ?) - (#xc480 ?) - (#xc494 ?) - (#xc49c ?) - (#xc4b8 ?) - (#xc4bc ?) - (#xc4e9 ?) - (#xc4f0 ?) - (#xc4f1 ?) - (#xc4f4 ?) - (#xc4f8 ?) - (#xc4fa ?) - (#xc4ff ?) - (#xc500 ?) - (#xc501 ?) - (#xc50c ?) - (#xc510 ?) - (#xc514 ?) - (#xc51c ?) - (#xc528 ?) - (#xc529 ?) - (#xc52c ?) - (#xc530 ?) - (#xc538 ?) - (#xc539 ?) - (#xc53b ?) - (#xc53d ?) - (#xc544 ?) - (#xc545 ?) - (#xc548 ?) - (#xc549 ?) - (#xc54a ?) - (#xc54c ?) - (#xc54d ?) - (#xc54e ?) - (#xc553 ?) - (#xc554 ?) - (#xc555 ?) - (#xc557 ?) - (#xc558 ?) - (#xc559 ?) - (#xc55d ?) - (#xc55e ?) - (#xc560 ?) - (#xc561 ?) - (#xc564 ?) - (#xc568 ?) - (#xc570 ?) - (#xc571 ?) - (#xc573 ?) - (#xc574 ?) - (#xc575 ?) - (#xc57c ?) - (#xc57d ?) - (#xc580 ?) - (#xc584 ?) - (#xc587 ?) - (#xc58c ?) - (#xc58d ?) - (#xc58f ?) - (#xc591 ?) - (#xc595 ?) - (#xc597 ?) - (#xc598 ?) - (#xc59c ?) - (#xc5a0 ?) - (#xc5a9 ?) - (#xc5b4 ?) - (#xc5b5 ?) - (#xc5b8 ?) - (#xc5b9 ?) - (#xc5bb ?) - (#xc5bc ?) - (#xc5bd ?) - (#xc5be ?) - (#xc5c4 ?) - (#xc5c5 ?) - (#xc5c6 ?) - (#xc5c7 ?) - (#xc5c8 ?) - (#xc5c9 ?) - (#xc5ca ?) - (#xc5cc ?) - (#xc5ce ?) - (#xc5d0 ?) - (#xc5d1 ?) - (#xc5d4 ?) - (#xc5d8 ?) - (#xc5e0 ?) - (#xc5e1 ?) - (#xc5e3 ?) - (#xc5e5 ?) - (#xc5ec ?) - (#xc5ed ?) - (#xc5ee ?) - (#xc5f0 ?) - (#xc5f4 ?) - (#xc5f6 ?) - (#xc5f7 ?) - (#xc5fc ?) - (#xc5fd ?) - (#xc5fe ?) - (#xc5ff ?) - (#xc600 ?) - (#xc601 ?) - (#xc605 ?) - (#xc606 ?) - (#xc607 ?) - (#xc608 ?) - (#xc60c ?) - (#xc610 ?) - (#xc618 ?) - (#xc619 ?) - (#xc61b ?) - (#xc61c ?) - (#xc624 ?) - (#xc625 ?) - (#xc628 ?) - (#xc62c ?) - (#xc62d ?) - (#xc62e ?) - (#xc630 ?) - (#xc633 ?) - (#xc634 ?) - (#xc635 ?) - (#xc637 ?) - (#xc639 ?) - (#xc63b ?) - (#xc640 ?) - (#xc641 ?) - (#xc644 ?) - (#xc648 ?) - (#xc650 ?) - (#xc651 ?) - (#xc653 ?) - (#xc654 ?) - (#xc655 ?) - (#xc65c ?) - (#xc65d ?) - (#xc660 ?) - (#xc66c ?) - (#xc66f ?) - (#xc671 ?) - (#xc678 ?) - (#xc679 ?) - (#xc67c ?) - (#xc680 ?) - (#xc688 ?) - (#xc689 ?) - (#xc68b ?) - (#xc68d ?) - (#xc694 ?) - (#xc695 ?) - (#xc698 ?) - (#xc69c ?) - (#xc6a4 ?) - (#xc6a5 ?) - (#xc6a7 ?) - (#xc6a9 ?) - (#xc6b0 ?) - (#xc6b1 ?) - (#xc6b4 ?) - (#xc6b8 ?) - (#xc6b9 ?) - (#xc6ba ?) - (#xc6c0 ?) - (#xc6c1 ?) - (#xc6c3 ?) - (#xc6c5 ?) - (#xc6cc ?) - (#xc6cd ?) - (#xc6d0 ?) - (#xc6d4 ?) - (#xc6dc ?) - (#xc6dd ?) - (#xc6e0 ?) - (#xc6e1 ?) - (#xc6e8 ?) - (#xc6e9 ?) - (#xc6ec ?) - (#xc6f0 ?) - (#xc6f8 ?) - (#xc6f9 ?) - (#xc6fd ?) - (#xc704 ?) - (#xc705 ?) - (#xc708 ?) - (#xc70c ?) - (#xc714 ?) - (#xc715 ?) - (#xc717 ?) - (#xc719 ?) - (#xc720 ?) - (#xc721 ?) - (#xc724 ?) - (#xc728 ?) - (#xc730 ?) - (#xc731 ?) - (#xc733 ?) - (#xc735 ?) - (#xc737 ?) - (#xc73c ?) - (#xc73d ?) - (#xc740 ?) - (#xc744 ?) - (#xc74a ?) - (#xc74c ?) - (#xc74d ?) - (#xc74f ?) - (#xc751 ?) - (#xc752 ?) - (#xc753 ?) - (#xc754 ?) - (#xc755 ?) - (#xc756 ?) - (#xc757 ?) - (#xc758 ?) - (#xc75c ?) - (#xc760 ?) - (#xc768 ?) - (#xc76b ?) - (#xc774 ?) - (#xc775 ?) - (#xc778 ?) - (#xc77c ?) - (#xc77d ?) - (#xc77e ?) - (#xc783 ?) - (#xc784 ?) - (#xc785 ?) - (#xc787 ?) - (#xc788 ?) - (#xc789 ?) - (#xc78a ?) - (#xc78e ?) - (#xc790 ?) - (#xc791 ?) - (#xc794 ?) - (#xc796 ?) - (#xc797 ?) - (#xc798 ?) - (#xc79a ?) - (#xc7a0 ?) - (#xc7a1 ?) - (#xc7a3 ?) - (#xc7a4 ?) - (#xc7a5 ?) - (#xc7a6 ?) - (#xc7ac ?) - (#xc7ad ?) - (#xc7b0 ?) - (#xc7b4 ?) - (#xc7bc ?) - (#xc7bd ?) - (#xc7bf ?) - (#xc7c0 ?) - (#xc7c1 ?) - (#xc7c8 ?) - (#xc7c9 ?) - (#xc7cc ?) - (#xc7ce ?) - (#xc7d0 ?) - (#xc7d8 ?) - (#xc7dd ?) - (#xc7e4 ?) - (#xc7e8 ?) - (#xc7ec ?) - (#xc800 ?) - (#xc801 ?) - (#xc804 ?) - (#xc808 ?) - (#xc80a ?) - (#xc810 ?) - (#xc811 ?) - (#xc813 ?) - (#xc815 ?) - (#xc816 ?) - (#xc81c ?) - (#xc81d ?) - (#xc820 ?) - (#xc824 ?) - (#xc82c ?) - (#xc82d ?) - (#xc82f ?) - (#xc831 ?) - (#xc838 ?) - (#xc83c ?) - (#xc840 ?) - (#xc848 ?) - (#xc849 ?) - (#xc84c ?) - (#xc84d ?) - (#xc854 ?) - (#xc870 ?) - (#xc871 ?) - (#xc874 ?) - (#xc878 ?) - (#xc87a ?) - (#xc880 ?) - (#xc881 ?) - (#xc883 ?) - (#xc885 ?) - (#xc886 ?) - (#xc887 ?) - (#xc88b ?) - (#xc88c ?) - (#xc88d ?) - (#xc894 ?) - (#xc89d ?) - (#xc89f ?) - (#xc8a1 ?) - (#xc8a8 ?) - (#xc8bc ?) - (#xc8bd ?) - (#xc8c4 ?) - (#xc8c8 ?) - (#xc8cc ?) - (#xc8d4 ?) - (#xc8d5 ?) - (#xc8d7 ?) - (#xc8d9 ?) - (#xc8e0 ?) - (#xc8e1 ?) - (#xc8e4 ?) - (#xc8f5 ?) - (#xc8fc ?) - (#xc8fd ?) - (#xc900 ?) - (#xc904 ?) - (#xc905 ?) - (#xc906 ?) - (#xc90c ?) - (#xc90d ?) - (#xc90f ?) - (#xc911 ?) - (#xc918 ?) - (#xc92c ?) - (#xc934 ?) - (#xc950 ?) - (#xc951 ?) - (#xc954 ?) - (#xc958 ?) - (#xc960 ?) - (#xc961 ?) - (#xc963 ?) - (#xc96c ?) - (#xc970 ?) - (#xc974 ?) - (#xc97c ?) - (#xc988 ?) - (#xc989 ?) - (#xc98c ?) - (#xc990 ?) - (#xc998 ?) - (#xc999 ?) - (#xc99b ?) - (#xc99d ?) - (#xc9c0 ?) - (#xc9c1 ?) - (#xc9c4 ?) - (#xc9c7 ?) - (#xc9c8 ?) - (#xc9ca ?) - (#xc9d0 ?) - (#xc9d1 ?) - (#xc9d3 ?) - (#xc9d5 ?¡) - (#xc9d6 ?¢) - (#xc9d9 ?£) - (#xc9da ?¤) - (#xc9dc ?¥) - (#xc9dd ?¦) - (#xc9e0 ?§) - (#xc9e2 ?¨) - (#xc9e4 ?©) - (#xc9e7 ?ª) - (#xc9ec ?«) - (#xc9ed ?¬) - (#xc9ef ?) - (#xc9f0 ?®) - (#xc9f1 ?¯) - (#xc9f8 ?°) - (#xc9f9 ?±) - (#xc9fc ?²) - (#xca00 ?³) - (#xca08 ?´) - (#xca09 ?µ) - (#xca0b ?¶) - (#xca0c ?·) - (#xca0d ?¸) - (#xca14 ?¹) - (#xca18 ?º) - (#xca29 ?») - (#xca4c ?¼) - (#xca4d ?½) - (#xca50 ?¾) - (#xca54 ?¿) - (#xca5c ?) - (#xca5d ?) - (#xca5f ?) - (#xca60 ?) - (#xca61 ?) - (#xca68 ?) - (#xca7d ?) - (#xca84 ?) - (#xca98 ?) - (#xcabc ?) - (#xcabd ?) - (#xcac0 ?) - (#xcac4 ?) - (#xcacc ?) - (#xcacd ?) - (#xcacf ?) - (#xcad1 ?) - (#xcad3 ?) - (#xcad8 ?) - (#xcad9 ?) - (#xcae0 ?) - (#xcaec ?) - (#xcaf4 ?) - (#xcb08 ?) - (#xcb10 ?) - (#xcb14 ?) - (#xcb18 ?) - (#xcb20 ?) - (#xcb21 ?) - (#xcb41 ?) - (#xcb48 ?) - (#xcb49 ?) - (#xcb4c ?) - (#xcb50 ?) - (#xcb58 ?) - (#xcb59 ?) - (#xcb5d ?) - (#xcb64 ?) - (#xcb78 ?) - (#xcb79 ?) - (#xcb9c ?) - (#xcbb8 ?) - (#xcbd4 ?) - (#xcbe4 ?) - (#xcbe7 ?) - (#xcbe9 ?) - (#xcc0c ?) - (#xcc0d ?) - (#xcc10 ?) - (#xcc14 ?) - (#xcc1c ?) - (#xcc1d ?) - (#xcc21 ?) - (#xcc22 ?) - (#xcc27 ?) - (#xcc28 ?) - (#xcc29 ?) - (#xcc2c ?) - (#xcc2e ?) - (#xcc30 ?) - (#xcc38 ?) - (#xcc39 ?) - (#xcc3b ?) - (#xcc3c ?á) - (#xcc3d ?â) - (#xcc3e ?ã) - (#xcc44 ?ä) - (#xcc45 ?å) - (#xcc48 ?æ) - (#xcc4c ?ç) - (#xcc54 ?è) - (#xcc55 ?é) - (#xcc57 ?ê) - (#xcc58 ?ë) - (#xcc59 ?ì) - (#xcc60 ?í) - (#xcc64 ?î) - (#xcc66 ?ï) - (#xcc68 ?ð) - (#xcc70 ?ñ) - (#xcc75 ?ò) - (#xcc98 ?ó) - (#xcc99 ?ô) - (#xcc9c ?õ) - (#xcca0 ?ö) - (#xcca8 ?÷) - (#xcca9 ?ø) - (#xccab ?ù) - (#xccac ?ú) - (#xccad ?û) - (#xccb4 ?ü) - (#xccb5 ?ý) - (#xccb8 ?þ) - (#xccbc ?ÿ) - (#xccc4 ?) - (#xccc5 ?) - (#xccc7 ?) - (#xccc9 ?) - (#xccd0 ?) - (#xccd4 ?) - (#xcce4 ?) - (#xccec ?) - (#xccf0 ?) - (#xcd01 ?) - (#xcd08 ?) - (#xcd09 ?) - (#xcd0c ?) - (#xcd10 ?) - (#xcd18 ?) - (#xcd19 ?) - (#xcd1b ?) - (#xcd1d ?) - (#xcd24 ?) - (#xcd28 ?) - (#xcd2c ?) - (#xcd39 ?) - (#xcd5c ?) - (#xcd60 ?) - (#xcd64 ?) - (#xcd6c ?) - (#xcd6d ?) - (#xcd6f ?) - (#xcd71 ?) - (#xcd78 ?) - (#xcd88 ?) - (#xcd94 ?) - (#xcd95 ?) - (#xcd98 ?) - (#xcd9c ?) - (#xcda4 ?) - (#xcda5 ?) - (#xcda7 ?) - (#xcda9 ?) - (#xcdb0 ?) - (#xcdc4 ?) - (#xcdcc ?) - (#xcdd0 ?) - (#xcde8 ?) - (#xcdec ?) - (#xcdf0 ?) - (#xcdf8 ?) - (#xcdf9 ?) - (#xcdfb ?) - (#xcdfd ?) - (#xce04 ?) - (#xce08 ?) - (#xce0c ?) - (#xce14 ?) - (#xce19 ?) - (#xce20 ?) - (#xce21 ?) - (#xce24 ?) - (#xce28 ?) - (#xce30 ?) - (#xce31 ?) - (#xce33 ?) - (#xce35 ?) - (#xce58 ?ġ) - (#xce59 ?Ģ) - (#xce5c ?ģ) - (#xce5f ?Ĥ) - (#xce60 ?ĥ) - (#xce61 ?Ħ) - (#xce68 ?ħ) - (#xce69 ?Ĩ) - (#xce6b ?ĩ) - (#xce6d ?Ī) - (#xce74 ?ī) - (#xce75 ?Ĭ) - (#xce78 ?ĭ) - (#xce7c ?Į) - (#xce84 ?į) - (#xce85 ?İ) - (#xce87 ?ı) - (#xce89 ?IJ) - (#xce90 ?ij) - (#xce91 ?Ĵ) - (#xce94 ?ĵ) - (#xce98 ?Ķ) - (#xcea0 ?ķ) - (#xcea1 ?ĸ) - (#xcea3 ?Ĺ) - (#xcea4 ?ĺ) - (#xcea5 ?Ļ) - (#xceac ?ļ) - (#xcead ?Ľ) - (#xcec1 ?ľ) - (#xcee4 ?Ŀ) - (#xcee5 ?) - (#xcee8 ?) - (#xceeb ?) - (#xceec ?) - (#xcef4 ?) - (#xcef5 ?) - (#xcef7 ?) - (#xcef8 ?) - (#xcef9 ?) - (#xcf00 ?) - (#xcf01 ?) - (#xcf04 ?) - (#xcf08 ?) - (#xcf10 ?) - (#xcf11 ?) - (#xcf13 ?) - (#xcf15 ?) - (#xcf1c ?) - (#xcf20 ?) - (#xcf24 ?) - (#xcf2c ?) - (#xcf2d ?) - (#xcf2f ?) - (#xcf30 ?) - (#xcf31 ?) - (#xcf38 ?) - (#xcf54 ?) - (#xcf55 ?) - (#xcf58 ?) - (#xcf5c ?) - (#xcf64 ?) - (#xcf65 ?) - (#xcf67 ?) - (#xcf69 ?) - (#xcf70 ?) - (#xcf71 ?) - (#xcf74 ?) - (#xcf78 ?) - (#xcf80 ?) - (#xcf85 ?) - (#xcf8c ?) - (#xcfa1 ?) - (#xcfa8 ?) - (#xcfb0 ?) - (#xcfc4 ?) - (#xcfe0 ?) - (#xcfe1 ?) - (#xcfe4 ?) - (#xcfe8 ?) - (#xcff0 ?) - (#xcff1 ?) - (#xcff3 ?) - (#xcff5 ?) - (#xcffc ?) - (#xd000 ?) - (#xd004 ?) - (#xd011 ?) - (#xd018 ?) - (#xd02d ?) - (#xd034 ?) - (#xd035 ?) - (#xd038 ?) - (#xd03c ?) - (#xd044 ?š) - (#xd045 ?Ţ) - (#xd047 ?ţ) - (#xd049 ?Ť) - (#xd050 ?ť) - (#xd054 ?Ŧ) - (#xd058 ?ŧ) - (#xd060 ?Ũ) - (#xd06c ?ũ) - (#xd06d ?Ū) - (#xd070 ?ū) - (#xd074 ?Ŭ) - (#xd07c ?ŭ) - (#xd07d ?Ů) - (#xd081 ?ů) - (#xd0a4 ?Ű) - (#xd0a5 ?ű) - (#xd0a8 ?Ų) - (#xd0ac ?ų) - (#xd0b4 ?Ŵ) - (#xd0b5 ?ŵ) - (#xd0b7 ?Ŷ) - (#xd0b9 ?ŷ) - (#xd0c0 ?Ÿ) - (#xd0c1 ?Ź) - (#xd0c4 ?ź) - (#xd0c8 ?Ż) - (#xd0c9 ?ż) - (#xd0d0 ?Ž) - (#xd0d1 ?ž) - (#xd0d3 ?ſ) - (#xd0d4 ?) - (#xd0d5 ?) - (#xd0dc ?) - (#xd0dd ?) - (#xd0e0 ?) - (#xd0e4 ?) - (#xd0ec ?) - (#xd0ed ?) - (#xd0ef ?) - (#xd0f0 ?) - (#xd0f1 ?) - (#xd0f8 ?) - (#xd10d ?) - (#xd130 ?) - (#xd131 ?) - (#xd134 ?) - (#xd138 ?) - (#xd13a ?) - (#xd140 ?) - (#xd141 ?) - (#xd143 ?) - (#xd144 ?) - (#xd145 ?) - (#xd14c ?) - (#xd14d ?) - (#xd150 ?) - (#xd154 ?) - (#xd15c ?) - (#xd15d ?) - (#xd15f ?) - (#xd161 ?) - (#xd168 ?) - (#xd16c ?) - (#xd17c ?) - (#xd184 ?) - (#xd188 ?) - (#xd1a0 ?) - (#xd1a1 ?) - (#xd1a4 ?) - (#xd1a8 ?) - (#xd1b0 ?) - (#xd1b1 ?) - (#xd1b3 ?) - (#xd1b5 ?) - (#xd1ba ?) - (#xd1bc ?) - (#xd1c0 ?) - (#xd1d8 ?) - (#xd1f4 ?) - (#xd1f8 ?) - (#xd207 ?) - (#xd209 ?) - (#xd210 ?) - (#xd22c ?) - (#xd22d ?) - (#xd230 ?) - (#xd234 ?) - (#xd23c ?) - (#xd23d ?) - (#xd23f ?) - (#xd241 ?) - (#xd248 ?) - (#xd25c ?) - (#xd264 ?ơ) - (#xd280 ?Ƣ) - (#xd281 ?ƣ) - (#xd284 ?Ƥ) - (#xd288 ?ƥ) - (#xd290 ?Ʀ) - (#xd291 ?Ƨ) - (#xd295 ?ƨ) - (#xd29c ?Ʃ) - (#xd2a0 ?ƪ) - (#xd2a4 ?ƫ) - (#xd2ac ?Ƭ) - (#xd2b1 ?ƭ) - (#xd2b8 ?Ʈ) - (#xd2b9 ?Ư) - (#xd2bc ?ư) - (#xd2bf ?Ʊ) - (#xd2c0 ?Ʋ) - (#xd2c2 ?Ƴ) - (#xd2c8 ?ƴ) - (#xd2c9 ?Ƶ) - (#xd2cb ?ƶ) - (#xd2d4 ?Ʒ) - (#xd2d8 ?Ƹ) - (#xd2dc ?ƹ) - (#xd2e4 ?ƺ) - (#xd2e5 ?ƻ) - (#xd2f0 ?Ƽ) - (#xd2f1 ?ƽ) - (#xd2f4 ?ƾ) - (#xd2f8 ?ƿ) - (#xd300 ?) - (#xd301 ?) - (#xd303 ?) - (#xd305 ?) - (#xd30c ?) - (#xd30d ?) - (#xd30e ?) - (#xd310 ?) - (#xd314 ?) - (#xd316 ?) - (#xd31c ?) - (#xd31d ?) - (#xd31f ?) - (#xd320 ?) - (#xd321 ?) - (#xd325 ?) - (#xd328 ?) - (#xd329 ?) - (#xd32c ?) - (#xd330 ?) - (#xd338 ?) - (#xd339 ?) - (#xd33b ?) - (#xd33c ?) - (#xd33d ?) - (#xd344 ?) - (#xd345 ?) - (#xd37c ?) - (#xd37d ?) - (#xd380 ?) - (#xd384 ?) - (#xd38c ?) - (#xd38d ?) - (#xd38f ?) - (#xd390 ?) - (#xd391 ?) - (#xd398 ?) - (#xd399 ?) - (#xd39c ?) - (#xd3a0 ?) - (#xd3a8 ?) - (#xd3a9 ?) - (#xd3ab ?) - (#xd3ad ?) - (#xd3b4 ?) - (#xd3b8 ?) - (#xd3bc ?) - (#xd3c4 ?) - (#xd3c5 ?) - (#xd3c8 ?) - (#xd3c9 ?) - (#xd3d0 ?) - (#xd3d8 ?) - (#xd3e1 ?) - (#xd3e3 ?) - (#xd3ec ?) - (#xd3ed ?) - (#xd3f0 ?) - (#xd3f4 ?) - (#xd3fc ?) - (#xd3fd ?) - (#xd3ff ?) - (#xd401 ?) - (#xd408 ?ǡ) - (#xd41d ?Ǣ) - (#xd440 ?ǣ) - (#xd444 ?Ǥ) - (#xd45c ?ǥ) - (#xd460 ?Ǧ) - (#xd464 ?ǧ) - (#xd46d ?Ǩ) - (#xd46f ?ǩ) - (#xd478 ?Ǫ) - (#xd479 ?ǫ) - (#xd47c ?Ǭ) - (#xd47f ?ǭ) - (#xd480 ?Ǯ) - (#xd482 ?ǯ) - (#xd488 ?ǰ) - (#xd489 ?DZ) - (#xd48b ?Dz) - (#xd48d ?dz) - (#xd494 ?Ǵ) - (#xd4a9 ?ǵ) - (#xd4cc ?Ƕ) - (#xd4d0 ?Ƿ) - (#xd4d4 ?Ǹ) - (#xd4dc ?ǹ) - (#xd4df ?Ǻ) - (#xd4e8 ?ǻ) - (#xd4ec ?Ǽ) - (#xd4f0 ?ǽ) - (#xd4f8 ?Ǿ) - (#xd4fb ?ǿ) - (#xd4fd ?) - (#xd504 ?) - (#xd508 ?) - (#xd50c ?) - (#xd514 ?) - (#xd515 ?) - (#xd517 ?) - (#xd53c ?) - (#xd53d ?) - (#xd540 ?) - (#xd544 ?) - (#xd54c ?) - (#xd54d ?) - (#xd54f ?) - (#xd551 ?) - (#xd558 ?) - (#xd559 ?) - (#xd55c ?) - (#xd560 ?) - (#xd565 ?) - (#xd568 ?) - (#xd569 ?) - (#xd56b ?) - (#xd56d ?) - (#xd574 ?) - (#xd575 ?) - (#xd578 ?) - (#xd57c ?) - (#xd584 ?) - (#xd585 ?) - (#xd587 ?) - (#xd588 ?) - (#xd589 ?) - (#xd590 ?) - (#xd5a5 ?) - (#xd5c8 ?) - (#xd5c9 ?) - (#xd5cc ?) - (#xd5d0 ?) - (#xd5d2 ?) - (#xd5d8 ?) - (#xd5d9 ?) - (#xd5db ?) - (#xd5dd ?) - (#xd5e4 ?) - (#xd5e5 ?) - (#xd5e8 ?) - (#xd5ec ?) - (#xd5f4 ?) - (#xd5f5 ?) - (#xd5f7 ?) - (#xd5f9 ?) - (#xd600 ?) - (#xd601 ?) - (#xd604 ?) - (#xd608 ?) - (#xd610 ?) - (#xd611 ?) - (#xd613 ?) - (#xd614 ?) - (#xd615 ?) - (#xd61c ?) - (#xd620 ?) - (#xd624 ?ȡ) - (#xd62d ?Ȣ) - (#xd638 ?ȣ) - (#xd639 ?Ȥ) - (#xd63c ?ȥ) - (#xd640 ?Ȧ) - (#xd645 ?ȧ) - (#xd648 ?Ȩ) - (#xd649 ?ȩ) - (#xd64b ?Ȫ) - (#xd64d ?ȫ) - (#xd651 ?Ȭ) - (#xd654 ?ȭ) - (#xd655 ?Ȯ) - (#xd658 ?ȯ) - (#xd65c ?Ȱ) - (#xd667 ?ȱ) - (#xd669 ?Ȳ) - (#xd670 ?ȳ) - (#xd671 ?ȴ) - (#xd674 ?ȵ) - (#xd683 ?ȶ) - (#xd685 ?ȷ) - (#xd68c ?ȸ) - (#xd68d ?ȹ) - (#xd690 ?Ⱥ) - (#xd694 ?Ȼ) - (#xd69d ?ȼ) - (#xd69f ?Ƚ) - (#xd6a1 ?Ⱦ) - (#xd6a8 ?ȿ) - (#xd6ac ?) - (#xd6b0 ?) - (#xd6b9 ?) - (#xd6bb ?) - (#xd6c4 ?) - (#xd6c5 ?) - (#xd6c8 ?) - (#xd6cc ?) - (#xd6d1 ?) - (#xd6d4 ?) - (#xd6d7 ?) - (#xd6d9 ?) - (#xd6e0 ?) - (#xd6e4 ?) - (#xd6e8 ?) - (#xd6f0 ?) - (#xd6f5 ?) - (#xd6fc ?) - (#xd6fd ?) - (#xd700 ?) - (#xd704 ?) - (#xd711 ?) - (#xd718 ?) - (#xd719 ?) - (#xd71c ?) - (#xd720 ?) - (#xd728 ?) - (#xd729 ?) - (#xd72b ?) - (#xd72d ?) - (#xd734 ?) - (#xd735 ?) - (#xd738 ?) - (#xd73c ?) - (#xd744 ?) - (#xd747 ?) - (#xd749 ?) - (#xd750 ?) - (#xd751 ?) - (#xd754 ?) - (#xd756 ?) - (#xd757 ?) - (#xd758 ?) - (#xd759 ?) - (#xd760 ?) - (#xd761 ?) - (#xd763 ?) - (#xd765 ?) - (#xd769 ?) - (#xd76c ?) - (#xd770 ?) - (#xd774 ?) - (#xd77c ?) - (#xd77d ?) - (#xd781 ?) - (#xd788 ?) - (#xd789 ?) - (#xd78c ?) - (#xd790 ?) - (#xd798 ?) - (#xd799 ?) - (#xd79b ?) - (#xd79d ?) - (#xf900 ?) - (#xf901 ?) - (#xf902 ?) - (#xf903 ?) - (#xf904 ?) - (#xf905 ?έ) - (#xf906 ?) - (#xf907 ?Т) - (#xf908 ?и) - (#xf909 ?) - (#xf90a ?) - (#xf90b ?) - (#xf90c ?) - (#xf90d ?) - (#xf90e ?) - (#xf90f ?) - (#xf910 ?) - (#xf911 ?) - (#xf912 ?) - (#xf913 ?) - (#xf914 ?) - (#xf915 ?) - (#xf916 ?) - (#xf917 ?) - (#xf918 ?) - (#xf919 ?) - (#xf91a ?) - (#xf91b ?) - (#xf91c ?) - (#xf91d ?) - (#xf91e ?) - (#xf91f ?) - (#xf920 ?) - (#xf921 ?) - (#xf922 ?) - (#xf923 ?) - (#xf924 ?) - (#xf925 ?) - (#xf926 ?Ң) - (#xf927 ?ң) - (#xf928 ?ҧ) - (#xf929 ?Ҩ) - (#xf92a ?ҩ) - (#xf92b ?Ҫ) - (#xf92c ?ҫ) - (#xf92d ?ҭ) - (#xf92e ?Ҳ) - (#xf92f ?Ҿ) - (#xf930 ?) - (#xf931 ?) - (#xf932 ?) - (#xf933 ?) - (#xf934 ?) - (#xf935 ?) - (#xf936 ?) - (#xf937 ?) - (#xf938 ?) - (#xf939 ?) - (#xf93a ?) - (#xf93b ?) - (#xf93c ?) - (#xf93d ?) - (#xf93e ?) - (#xf93f ?) - (#xf940 ?) - (#xf941 ?) - (#xf942 ?) - (#xf943 ?) - (#xf944 ?) - (#xf945 ?) - (#xf946 ?) - (#xf947 ?) - (#xf948 ?) - (#xf949 ?) - (#xf94a ?) - (#xf94b ?) - (#xf94c ?) - (#xf94d ?) - (#xf94e ?) - (#xf94f ?) - (#xf950 ?) - (#xf951 ?) - (#xf952 ?) - (#xf953 ?) - (#xf954 ?) - (#xf955 ?) - (#xf956 ?) - (#xf957 ?) - (#xf958 ?) - (#xf959 ?) - (#xf95a ?) - (#xf95b ?) - (#xf95c ?ե) - (#xf95d ?ի) - (#xf95e ?ծ) - (#xf95f ?ָ) - (#xf960 ?) - (#xf961 ?) - (#xf962 ?) - (#xf963 ?) - (#xf964 ?) - (#xf965 ?ܥ) - (#xf966 ?ݥ) - (#xf967 ?) - (#xf968 ?) - (#xf969 ?) - (#xf96a ?) - (#xf96b ?߳) - (#xf96c ?) - (#xf96d ?) - (#xf96e ?) - (#xf96f ?) - (#xf970 ?) - (#xf971 ?) - (#xf972 ?) - (#xf973 ?) - (#xf974 ?) - (#xf975 ?) - (#xf976 ?) - (#xf977 ?) - (#xf978 ?) - (#xf979 ?) - (#xf97a ?) - (#xf97b ?) - (#xf97c ?) - (#xf97d ?) - (#xf97e ?) - (#xf97f ?) - (#xf980 ?) - (#xf981 ?) - (#xf982 ?) - (#xf983 ?) - (#xf984 ?) - (#xf985 ?) - (#xf986 ?) - (#xf987 ?) - (#xf988 ?) - (#xf989 ?) - (#xf98a ?) - (#xf98b ?) - (#xf98c ?) - (#xf98d ?) - (#xf98e ?) - (#xf98f ?) - (#xf990 ?) - (#xf991 ?) - (#xf992 ?) - (#xf993 ?) - (#xf994 ?) - (#xf995 ?) - (#xf996 ?) - (#xf997 ?) - (#xf998 ?) - (#xf999 ?) - (#xf99a ?) - (#xf99b ?) - (#xf99c ?) - (#xf99d ?) - (#xf99e ?) - (#xf99f ?) - (#xf9a0 ?) - (#xf9a1 ?) - (#xf9a2 ?) - (#xf9a3 ?) - (#xf9a4 ?) - (#xf9a5 ?) - (#xf9a6 ?) - (#xf9a7 ?) - (#xf9a8 ?) - (#xf9a9 ?) - (#xf9aa ?) - (#xf9ab ?) - (#xf9ac ?) - (#xf9ad ?) - (#xf9ae ?) - (#xf9af ?) - (#xf9b0 ?) - (#xf9b1 ?) - (#xf9b2 ?) - (#xf9b3 ?) - (#xf9b4 ?) - (#xf9b5 ?) - (#xf9b6 ?) - (#xf9b7 ?) - (#xf9b8 ?) - (#xf9b9 ?) - (#xf9ba ?) - (#xf9bb ?) - (#xf9bc ?) - (#xf9bd ?) - (#xf9be ?) - (#xf9bf ?) - (#xf9c0 ?) - (#xf9c1 ?) - (#xf9c2 ?) - (#xf9c3 ?) - (#xf9c4 ?) - (#xf9c5 ?) - (#xf9c6 ?) - (#xf9c7 ?) - (#xf9c8 ?) - (#xf9c9 ?) - (#xf9ca ?) - (#xf9cb ?) - (#xf9cc ?) - (#xf9cd ?) - (#xf9ce ?) - (#xf9cf ?) - (#xf9d0 ?) - (#xf9d1 ?) - (#xf9d2 ?) - (#xf9d3 ?) - (#xf9d4 ?) - (#xf9d5 ?) - (#xf9d6 ?) - (#xf9d7 ?) - (#xf9d8 ?) - (#xf9d9 ?) - (#xf9da ?) - (#xf9db ?) - (#xf9dc ?) - (#xf9dd ?) - (#xf9de ?) - (#xf9df ?) - (#xf9e0 ?) - (#xf9e1 ?) - (#xf9e2 ?) - (#xf9e3 ?) - (#xf9e4 ?) - (#xf9e5 ?) - (#xf9e6 ?) - (#xf9e7 ?) - (#xf9e8 ?) - (#xf9e9 ?) - (#xf9ea ?) - (#xf9eb ?) - (#xf9ec ?) - (#xf9ed ?) - (#xf9ee ?) - (#xf9ef ?) - (#xf9f0 ?) - (#xf9f1 ?) - (#xf9f2 ?) - (#xf9f3 ?) - (#xf9f4 ?) - (#xf9f5 ?) - (#xf9f6 ?) - (#xf9f7 ?) - (#xf9f8 ?) - (#xf9f9 ?) - (#xf9fa ?) - (#xf9fb ?) - (#xf9fc ?) - (#xf9fd ?) - (#xf9fe ?) - (#xf9ff ?) - (#xfa00 ?) - (#xfa01 ?) - (#xfa02 ?) - (#xfa03 ?) - (#xfa04 ?) - (#xfa05 ?) - (#xfa06 ?) - (#xfa07 ?) - (#xfa08 ?) - (#xfa09 ?) - (#xfa0a ?) - (#xfa0b ?) - (#xff01 ?) - (#xff02 ?) - (#xff03 ?) - (#xff04 ?) - (#xff05 ?) - (#xff06 ?) - (#xff07 ?) - (#xff08 ?\) - (#xff09 ?\) - (#xff0a ?) - (#xff0b ?) - (#xff0c ?) - (#xff0d ?) - (#xff0e ?) - (#xff0f ?) - (#xff10 ?) - (#xff11 ?) - (#xff12 ?) - (#xff13 ?) - (#xff14 ?) - (#xff15 ?) - (#xff16 ?) - (#xff17 ?) - (#xff18 ?) - (#xff19 ?) - (#xff1a ?) - (#xff1b ?) - (#xff1c ?) - (#xff1d ?) - (#xff1e ?) - (#xff1f ?) - (#xff20 ?) - (#xff21 ?) - (#xff22 ?) - (#xff23 ?) - (#xff24 ?) - (#xff25 ?) - (#xff26 ?) - (#xff27 ?) - (#xff28 ?) - (#xff29 ?) - (#xff2a ?) - (#xff2b ?) - (#xff2c ?) - (#xff2d ?) - (#xff2e ?) - (#xff2f ?) - (#xff30 ?) - (#xff31 ?) - (#xff32 ?) - (#xff33 ?) - (#xff34 ?) - (#xff35 ?) - (#xff36 ?) - (#xff37 ?) - (#xff38 ?) - (#xff39 ?) - (#xff3a ?) - (#xff3b ?\) - (#xff3c ?) - (#xff3d ?\) - (#xff3e ?) - (#xff3f ?) - (#xff40 ?) - (#xff41 ?) - (#xff42 ?) - (#xff43 ?) - (#xff44 ?) - (#xff45 ?) - (#xff46 ?) - (#xff47 ?) - (#xff48 ?) - (#xff49 ?) - (#xff4a ?) - (#xff4b ?) - (#xff4c ?) - (#xff4d ?) - (#xff4e ?) - (#xff4f ?) - (#xff50 ?) - (#xff51 ?) - (#xff52 ?) - (#xff53 ?) - (#xff54 ?) - (#xff55 ?) - (#xff56 ?) - (#xff57 ?) - (#xff58 ?) - (#xff59 ?) - (#xff5a ?) - (#xff5b ?\) - (#xff5c ?) - (#xff5d ?\) - (#xff5e ?) - (#xffe0 ?) - (#xffe1 ?) - (#xffe2 ?) - (#xffe3 ?) - (#xffe5 ?) - (#xffe6 ?))) - -;;; arch-tag: b978fd7b-d182-4f63-af47-a028e074c57f -;;; subst-ksc.el ends here diff --git a/lisp/international/titdic-cnv.el b/lisp/international/titdic-cnv.el index e6c0b5b3630..541f38d38a3 100644 --- a/lisp/international/titdic-cnv.el +++ b/lisp/international/titdic-cnv.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: Quail, TIT, cxterm @@ -272,7 +275,7 @@ SPC, 6, 3, 4, or 7 specifing a tone (SPC:$(0?v(N(B, 6:$(0Dm(N(B, 3:$(0&9Vy (princ ";; Quail package `") (princ package) - (princ "' -*- coding:iso-2022-7bit; ") + (princ (format "' -*- coding:%s; " coding-system-for-write)) (princ "byte-compile-disable-print-circle:t; -*-\n") (princ ";; Generated by the command `titdic-convert'\n;;\tDate: ") (princ (current-time-string)) @@ -471,10 +474,8 @@ SPC, 6, 3, 4, or 7 specifing a tone (SPC:$(0?v(N(B, 6:$(0Dm(N(B, 3:$(0&9Vy Optional argument DIRNAME if specified is the directory name under which the generated Quail package is saved." (interactive "FTIT dictionary file: ") - (let ((coding-system-for-write 'iso-2022-7bit-unix)) + (let ((coding-system-for-write nil)) (with-temp-file (tit-make-quail-package-file-name filename dirname) - ;; Explicitly speficy eol format to `unix'. - (set-buffer-file-coding-system 'iso-2022-7bit-unix) (let ((standard-output (current-buffer))) (with-temp-buffer (set-buffer-multibyte nil) @@ -501,26 +502,25 @@ the generated Quail package is saved." (setq coding-system (nth 1 slot)) (message "Decoding with coding system %s..." coding-system) (goto-char (point-min)) - (decode-coding-region (point-min) (point-max) coding-system)) + (decode-coding-region (point-min) (point-max) coding-system) + ;; Explicitly set eol format to `unix'. + (setq coding-system-for-write + (coding-system-change-eol-conversion coding-system 'unix)) + (remove-text-properties (point-min) (point-max) '(charset nil))) + (set-buffer-multibyte t) ;; Set point the starting position of the body part. (goto-char (point-min)) (if (not (search-forward "\nBEGIN" nil t)) (error "TIT dictionary can't be decoded correctly")) - ;; Process the header part in multibyte mode. - (with-current-buffer standard-output - (set-buffer-multibyte t)) - (set-buffer-multibyte t) + ;; Process the header part. (forward-line 1) (narrow-to-region (point-min) (point)) (tit-process-header filename) (widen) - ;; Process the body part. For speed, we turn off multibyte facility. - (with-current-buffer standard-output - (set-buffer-multibyte nil)) - (set-buffer-multibyte nil) + ;; Process the body part (tit-process-body)))))) ;;;###autoload @@ -1120,7 +1120,7 @@ the generated Quail package is saved." (or (file-readable-p filename) (error "%s does not exist" filename)) (let ((tail quail-misc-package-ext-info) - (default-buffer-file-coding-system 'iso-2022-7bit) + coding-system-for-write slot name title dicfile coding quailfile converter copyright dicbuf) @@ -1147,11 +1147,12 @@ the generated Quail package is saved." converter (nth 5 slot) copyright (nth 6 slot)) (message "Converting %s to %s..." dicfile quailfile) + ;; Explicitly set eol format to `unix'. + (setq coding-system-for-write + (coding-system-change-eol-conversion coding 'unix)) (with-temp-file (expand-file-name quailfile dirname) - ;; Explicitly speficy eol format to `unix'. - (set-buffer-file-coding-system 'iso-2022-7bit-unix) - (insert ";; Quail package `" name "' -*- coding:iso-2022-7bit; ") - (insert "byte-compile-disable-print-circle:t; -*-\n"); + (insert (format ";; Quail package `%s' -*- coding:%s; " name coding)) + (insert "byte-compile-disable-print-circle:t; -*-\n") (insert ";; Generated by the command `miscdic-convert'\n") (insert ";; Date: " (current-time-string) "\n") (insert ";; Source dictionary file: " dicfile "\n") @@ -1163,7 +1164,9 @@ the generated Quail package is saved." (insert ";;; Code:\n\n") (insert "(require 'quail)\n") (insert "(quail-define-package \"" name "\" \"" - (if (eq coding 'big5) "Chinese-BIG5" "Chinese-CNS") + (if (eq coding 'big5) "Chinese-BIG5" + (if (eq coding 'iso-2022-cn-ext) "Chinese-CNS" + "Chinese-GB")) "\" \"" title "\" t\n") (let* ((coding-system-for-read coding) (dicbuf (find-file-noselect filename))) @@ -1193,7 +1196,8 @@ to store generated Quail packages." command-line-args-left (cdr command-line-args-left)) (if (file-directory-p filename) (dolist (file (directory-files filename t nil t)) - (miscdic-convert file dir)) + (or (file-directory-p file) + (miscdic-convert file dir))) (miscdic-convert filename dir)))) (kill-emacs 0)) diff --git a/lisp/international/ucs-tables.el b/lisp/international/ucs-tables.el deleted file mode 100644 index 18ab5688d1f..00000000000 --- a/lisp/international/ucs-tables.el +++ /dev/null @@ -1,2546 +0,0 @@ -;;; ucs-tables.el --- translation to, from and via Unicode -*- coding: iso-2022-7bit -*- - -;; Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: i18n - -;; 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 3, 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. - -;;; Commentary: - -;; This file provides tables mapping between Unicode numbers and -;; emacs-mule characters from the iso-8859 charsets (and others). It -;; also provides some auxiliary functions. - -;; These tables are used to construct other mappings between the Mule -;; iso8859 charsets and the emacs-unicode charsets and a table that -;; unifies iso-8859 characters using a single charset as far as -;; possible. These tables are used by latin1-disp.el to display some -;; Unicode characters without a Unicode font and by utf-8.el to unify -;; Latin-N as far as possible on encoding. - -;; More drastically, they can be used to unify 8859 into Latin-1 plus -;; mule-unicode-0100-24ff on decoding, with the corresponding -;; adjustments on encoding; see `ucs-unify-8859'. Be wary of using -;; unification when, for instance, editing Lisp files such as this one -;; which are supposed to contain distinct 8859 charsets. Also, it can -;; make reading and writing of emacs-mule and iso-2022-based encodings -;; not idempotent. - -;; Global minor modes are provided to unify on encoding and decoding. -;; These could be extended to non-iso-8859 charsets. However 8859 is -;; all that users normally care about unifying although, for instance, -;; Greek occurs in as many as nine Emacs charsets. - -;; The translation-table `utf-translation-table-for-encode' is -;; populated, which could be used for more general unification on -;; decoding. This is used by the `mule-utf-8' coding system to encode -;; extra characters, and also by the coding systems set up by -;; code-pages.el. The decoding tables here take account of -;; `utf-fragment-on-decoding' which may specify decoding Greek and -;; Cyrillic into 8859 charsets. - -;; Unification also arranges for `translation-table-for-input' to be -;; set either globally or locally. This is used to translate input -;; characters appropriately for the buffer's coding system (if -;; possible). Unification on decoding sets it globally to translate -;; to Unicode. Unification on encoding uses hooks to set it up -;; locally to buffers. Thus in the latter case, typing `"a' into a -;; Latin-1 buffer using the `latin-2-prefix' method translates the -;; generated latin-iso8859-2 `,Bd(B' into latin-iso8859-1 `,Ad(B'. - -;; NB, this code depends on the default value of -;; `enable-character-translation'. (Making it nil would anyway lead -;; to inconsistent behaviour between CCL-based coding systems which -;; use explicit translation tables and the rest.) - -;; Command `ucs-insert' is convenient for inserting a given unicode. -;; (See also the `ucs' input method.) - -;;; Code: - -;;; Define tables, to be populated later. - -(defvar ucs-mule-8859-to-ucs-table (make-translation-table) - "Char table from Emacs ISO-8859 characters to Unicode. -This maps Emacs characters from the non-Latin-1 -...-iso8859-... charsets to their Unicode code points. This is a -many-to-one mapping.") - -(defvar ucs-mule-8859-to-mule-unicode (make-translation-table) - "Char table from Emacs ISO-8859 characters to Mule Unicode. -This maps Emacs characters from the non-Latin-1 -...-iso8859-... charsets to characters from the -mule-unicode-... charsets. This is a many-to-one mapping. The -characters translated to are suitable for encoding using the -`mule-utf-8' coding system.") - -;; (defvar ucs-ucs-to-mule-8859-table (make-translation-table) -;; "Translation table from Unicode to Emacs ISO-8859 characters. -;; This maps Unicode code points to corresponding Emacs characters from -;; the ...-iso8859-... charsets. This is made a one-to-one mapping where -;; the same character occurs in more than one set by preferring the Emacs -;; iso-8859-N character with lowest N.") - -;; (defvar ucs-mule-unicode-to-mule-8859 (make-translation-table) -;; "Translation table from Mule Unicode to Emacs ISO-8859 characters. -;; This maps non-Latin-1 Emacs characters from the -;; mule-unicode-... charsets used by the `mule-utf-8' coding system to -;; characters from the ...-iso8859-... charsets. This is made a -;; one-to-one mapping where the same character occurs in more than one -;; set by preferring the Emacs iso-8859-N character with lowest N.") - -(defvar ucs-8859-1-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-2. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-2-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-2. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-3-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-3. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-4-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-4. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-5-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-5. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-7-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-7. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-8-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-8. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-9-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-9. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-14-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-14. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(defvar ucs-8859-15-encode-table nil - "Used as `translation-table-for-encode' for iso-8859-15. -Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.") - -(setq translation-table-for-input (make-translation-table)) -;; It will normally be set locally, before the major mode is invoked. -(put 'translation-table-for-input 'permanent-local t) - -(define-translation-table 'ucs-translation-table-for-decode) - -;;; Set up the tables. - -;; Most of these tables were derived from ones in Mule-UCS. - -;; There doesn't seem to be a need to make these let bindings into -;; defvars, so we'll let the data get GC'ed. -(let ((ucs-8859-2-alist - '((?\,B (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,B!(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (?\,B"(B . ?\x02D8) ;; BREVE - (?\,B#(B . ?\x0141) ;; LATIN CAPITAL LETTER L WITH STROKE - (?\,B$(B . ?\x00A4) ;; CURRENCY SIGN - (?\,B%(B . ?\x013D) ;; LATIN CAPITAL LETTER L WITH CARON - (?\,B&(B . ?\x015A) ;; LATIN CAPITAL LETTER S WITH ACUTE - (?\,B'(B . ?\x00A7) ;; SECTION SIGN - (?\,B((B . ?\x00A8) ;; DIAERESIS - (?\,B)(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON - (?\,B*(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (?\,B+(B . ?\x0164) ;; LATIN CAPITAL LETTER T WITH CARON - (?\,B,(B . ?\x0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE - (?\,B-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,B.(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (?\,B/(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (?\,B0(B . ?\x00B0) ;; DEGREE SIGN - (?\,B1(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK - (?\,B2(B . ?\x02DB) ;; OGONEK - (?\,B3(B . ?\x0142) ;; LATIN SMALL LETTER L WITH STROKE - (?\,B4(B . ?\x00B4) ;; ACUTE ACCENT - (?\,B5(B . ?\x013E) ;; LATIN SMALL LETTER L WITH CARON - (?\,B6(B . ?\x015B) ;; LATIN SMALL LETTER S WITH ACUTE - (?\,B7(B . ?\x02C7) ;; CARON - (?\,B8(B . ?\x00B8) ;; CEDILLA - (?\,B9(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON - (?\,B:(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (?\,B;(B . ?\x0165) ;; LATIN SMALL LETTER T WITH CARON - (?\,B<(B . ?\x017A) ;; LATIN SMALL LETTER Z WITH ACUTE - (?\,B=(B . ?\x02DD) ;; DOUBLE ACUTE ACCENT - (?\,B>(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON - (?\,B?(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (?\,B@(B . ?\x0154) ;; LATIN CAPITAL LETTER R WITH ACUTE - (?\,BA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,BB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,BC(B . ?\x0102) ;; LATIN CAPITAL LETTER A WITH BREVE - (?\,BD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,BE(B . ?\x0139) ;; LATIN CAPITAL LETTER L WITH ACUTE - (?\,BF(B . ?\x0106) ;; LATIN CAPITAL LETTER C WITH ACUTE - (?\,BG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (?\,BH(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON - (?\,BI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,BJ(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (?\,BK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,BL(B . ?\x011A) ;; LATIN CAPITAL LETTER E WITH CARON - (?\,BM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,BN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,BO(B . ?\x010E) ;; LATIN CAPITAL LETTER D WITH CARON - (?\,BP(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (?\,BQ(B . ?\x0143) ;; LATIN CAPITAL LETTER N WITH ACUTE - (?\,BR(B . ?\x0147) ;; LATIN CAPITAL LETTER N WITH CARON - (?\,BS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (?\,BT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,BU(B . ?\x0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE - (?\,BV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,BW(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,BX(B . ?\x0158) ;; LATIN CAPITAL LETTER R WITH CARON - (?\,BY(B . ?\x016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE - (?\,BZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,B[(B . ?\x0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE - (?\,B\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,B](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (?\,B^(B . ?\x0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA - (?\,B_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,B`(B . ?\x0155) ;; LATIN SMALL LETTER R WITH ACUTE - (?\,Ba(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,Bb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,Bc(B . ?\x0103) ;; LATIN SMALL LETTER A WITH BREVE - (?\,Bd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,Be(B . ?\x013A) ;; LATIN SMALL LETTER L WITH ACUTE - (?\,Bf(B . ?\x0107) ;; LATIN SMALL LETTER C WITH ACUTE - (?\,Bg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (?\,Bh(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON - (?\,Bi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,Bj(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK - (?\,Bk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,Bl(B . ?\x011B) ;; LATIN SMALL LETTER E WITH CARON - (?\,Bm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,Bn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,Bo(B . ?\x010F) ;; LATIN SMALL LETTER D WITH CARON - (?\,Bp(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE - (?\,Bq(B . ?\x0144) ;; LATIN SMALL LETTER N WITH ACUTE - (?\,Br(B . ?\x0148) ;; LATIN SMALL LETTER N WITH CARON - (?\,Bs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (?\,Bt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,Bu(B . ?\x0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE - (?\,Bv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,Bw(B . ?\x00F7) ;; DIVISION SIGN - (?\,Bx(B . ?\x0159) ;; LATIN SMALL LETTER R WITH CARON - (?\,By(B . ?\x016F) ;; LATIN SMALL LETTER U WITH RING ABOVE - (?\,Bz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,B{(B . ?\x0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE - (?\,B|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,B}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (?\,B~(B . ?\x0163) ;; LATIN SMALL LETTER T WITH CEDILLA - (?\,B(B . ?\x02D9) ;; DOT ABOVE - )) - - (ucs-8859-3-alist - '((?\,C (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,C!(B . ?\x0126) ;; LATIN CAPITAL LETTER H WITH STROKE - (?\,C"(B . ?\x02D8) ;; BREVE - (?\,C#(B . ?\x00A3) ;; POUND SIGN - (?\,C$(B . ?\x00A4) ;; CURRENCY SIGN - (?\,C&(B . ?\x0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX - (?\,C'(B . ?\x00A7) ;; SECTION SIGN - (?\,C((B . ?\x00A8) ;; DIAERESIS - (?\,C)(B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE - (?\,C*(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (?\,C+(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE - (?\,C,(B . ?\x0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX - (?\,C-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,C/(B . ?\x017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE - (?\,C0(B . ?\x00B0) ;; DEGREE SIGN - (?\,C1(B . ?\x0127) ;; LATIN SMALL LETTER H WITH STROKE - (?\,C2(B . ?\x00B2) ;; SUPERSCRIPT TWO - (?\,C3(B . ?\x00B3) ;; SUPERSCRIPT THREE - (?\,C4(B . ?\x00B4) ;; ACUTE ACCENT - (?\,C5(B . ?\x00B5) ;; MICRO SIGN - (?\,C6(B . ?\x0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX - (?\,C7(B . ?\x00B7) ;; MIDDLE DOT - (?\,C8(B . ?\x00B8) ;; CEDILLA - (?\,C9(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I - (?\,C:(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (?\,C;(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE - (?\,C<(B . ?\x0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX - (?\,C=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF - (?\,C?(B . ?\x017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE - (?\,C@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (?\,CA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,CB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,CD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,CE(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE - (?\,CF(B . ?\x0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX - (?\,CG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (?\,CH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (?\,CI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,CJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (?\,CK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,CL(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (?\,CM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,CN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,CO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (?\,CQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (?\,CR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (?\,CS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (?\,CT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,CU(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE - (?\,CV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,CW(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,CX(B . ?\x011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX - (?\,CY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (?\,CZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,C[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (?\,C\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,C](B . ?\x016C) ;; LATIN CAPITAL LETTER U WITH BREVE - (?\,C^(B . ?\x015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX - (?\,C_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,C`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (?\,Ca(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,Cb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,Cd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,Ce(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE - (?\,Cf(B . ?\x0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX - (?\,Cg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (?\,Ch(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (?\,Ci(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,Cj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (?\,Ck(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,Cl(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (?\,Cm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,Cn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,Co(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (?\,Cq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE - (?\,Cr(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (?\,Cs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (?\,Ct(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,Cu(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE - (?\,Cv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,Cw(B . ?\x00F7) ;; DIVISION SIGN - (?\,Cx(B . ?\x011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX - (?\,Cy(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (?\,Cz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,C{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (?\,C|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,C}(B . ?\x016D) ;; LATIN SMALL LETTER U WITH BREVE - (?\,C~(B . ?\x015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX - (?\,C(B . ?\x02D9) ;; DOT ABOVE - )) - - (ucs-8859-4-alist - '((?\,D (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,D!(B . ?\x0104) ;; LATIN CAPITAL LETTER A WITH OGONEK - (?\,D"(B . ?\x0138) ;; LATIN SMALL LETTER KRA - (?\,D#(B . ?\x0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA - (?\,D$(B . ?\x00A4) ;; CURRENCY SIGN - (?\,D%(B . ?\x0128) ;; LATIN CAPITAL LETTER I WITH TILDE - (?\,D&(B . ?\x013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA - (?\,D'(B . ?\x00A7) ;; SECTION SIGN - (?\,D((B . ?\x00A8) ;; DIAERESIS - (?\,D)(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON - (?\,D*(B . ?\x0112) ;; LATIN CAPITAL LETTER E WITH MACRON - (?\,D+(B . ?\x0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA - (?\,D,(B . ?\x0166) ;; LATIN CAPITAL LETTER T WITH STROKE - (?\,D-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,D.(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (?\,D/(B . ?\x00AF) ;; MACRON - (?\,D0(B . ?\x00B0) ;; DEGREE SIGN - (?\,D1(B . ?\x0105) ;; LATIN SMALL LETTER A WITH OGONEK - (?\,D2(B . ?\x02DB) ;; OGONEK - (?\,D3(B . ?\x0157) ;; LATIN SMALL LETTER R WITH CEDILLA - (?\,D4(B . ?\x00B4) ;; ACUTE ACCENT - (?\,D5(B . ?\x0129) ;; LATIN SMALL LETTER I WITH TILDE - (?\,D6(B . ?\x013C) ;; LATIN SMALL LETTER L WITH CEDILLA - (?\,D7(B . ?\x02C7) ;; CARON - (?\,D8(B . ?\x00B8) ;; CEDILLA - (?\,D9(B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON - (?\,D:(B . ?\x0113) ;; LATIN SMALL LETTER E WITH MACRON - (?\,D;(B . ?\x0123) ;; LATIN SMALL LETTER G WITH CEDILLA - (?\,D<(B . ?\x0167) ;; LATIN SMALL LETTER T WITH STROKE - (?\,D=(B . ?\x014A) ;; LATIN CAPITAL LETTER ENG - (?\,D>(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON - (?\,D?(B . ?\x014B) ;; LATIN SMALL LETTER ENG - (?\,D@(B . ?\x0100) ;; LATIN CAPITAL LETTER A WITH MACRON - (?\,DA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,DB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,DC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (?\,DD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,DE(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (?\,DF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE - (?\,DG(B . ?\x012E) ;; LATIN CAPITAL LETTER I WITH OGONEK - (?\,DH(B . ?\x010C) ;; LATIN CAPITAL LETTER C WITH CARON - (?\,DI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,DJ(B . ?\x0118) ;; LATIN CAPITAL LETTER E WITH OGONEK - (?\,DK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,DL(B . ?\x0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE - (?\,DM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,DN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,DO(B . ?\x012A) ;; LATIN CAPITAL LETTER I WITH MACRON - (?\,DP(B . ?\x0110) ;; LATIN CAPITAL LETTER D WITH STROKE - (?\,DQ(B . ?\x0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA - (?\,DR(B . ?\x014C) ;; LATIN CAPITAL LETTER O WITH MACRON - (?\,DS(B . ?\x0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA - (?\,DT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,DU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (?\,DV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,DW(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,DX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (?\,DY(B . ?\x0172) ;; LATIN CAPITAL LETTER U WITH OGONEK - (?\,DZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,D[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (?\,D\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,D](B . ?\x0168) ;; LATIN CAPITAL LETTER U WITH TILDE - (?\,D^(B . ?\x016A) ;; LATIN CAPITAL LETTER U WITH MACRON - (?\,D_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,D`(B . ?\x0101) ;; LATIN SMALL LETTER A WITH MACRON - (?\,Da(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,Db(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,Dc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE - (?\,Dd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,De(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (?\,Df(B . ?\x00E6) ;; LATIN SMALL LETTER AE - (?\,Dg(B . ?\x012F) ;; LATIN SMALL LETTER I WITH OGONEK - (?\,Dh(B . ?\x010D) ;; LATIN SMALL LETTER C WITH CARON - (?\,Di(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,Dj(B . ?\x0119) ;; LATIN SMALL LETTER E WITH OGONEK - (?\,Dk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,Dl(B . ?\x0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE - (?\,Dm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,Dn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,Do(B . ?\x012B) ;; LATIN SMALL LETTER I WITH MACRON - (?\,Dp(B . ?\x0111) ;; LATIN SMALL LETTER D WITH STROKE - (?\,Dq(B . ?\x0146) ;; LATIN SMALL LETTER N WITH CEDILLA - (?\,Dr(B . ?\x014D) ;; LATIN SMALL LETTER O WITH MACRON - (?\,Ds(B . ?\x0137) ;; LATIN SMALL LETTER K WITH CEDILLA - (?\,Dt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,Du(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE - (?\,Dv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,Dw(B . ?\x00F7) ;; DIVISION SIGN - (?\,Dx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE - (?\,Dy(B . ?\x0173) ;; LATIN SMALL LETTER U WITH OGONEK - (?\,Dz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,D{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (?\,D|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,D}(B . ?\x0169) ;; LATIN SMALL LETTER U WITH TILDE - (?\,D~(B . ?\x016B) ;; LATIN SMALL LETTER U WITH MACRON - (?\,D(B . ?\x02D9) ;; DOT ABOVE - )) - - (ucs-8859-5-alist - '((?\,L (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,L!(B . ?\x0401) ;; CYRILLIC CAPITAL LETTER IO - (?\,L"(B . ?\x0402) ;; CYRILLIC CAPITAL LETTER DJE - (?\,L#(B . ?\x0403) ;; CYRILLIC CAPITAL LETTER GJE - (?\,L$(B . ?\x0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE - (?\,L%(B . ?\x0405) ;; CYRILLIC CAPITAL LETTER DZE - (?\,L&(B . ?\x0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I - (?\,L'(B . ?\x0407) ;; CYRILLIC CAPITAL LETTER YI - (?\,L((B . ?\x0408) ;; CYRILLIC CAPITAL LETTER JE - (?\,L)(B . ?\x0409) ;; CYRILLIC CAPITAL LETTER LJE - (?\,L*(B . ?\x040A) ;; CYRILLIC CAPITAL LETTER NJE - (?\,L+(B . ?\x040B) ;; CYRILLIC CAPITAL LETTER TSHE - (?\,L,(B . ?\x040C) ;; CYRILLIC CAPITAL LETTER KJE - (?\,L-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,L.(B . ?\x040E) ;; CYRILLIC CAPITAL LETTER SHORT U - (?\,L/(B . ?\x040F) ;; CYRILLIC CAPITAL LETTER DZHE - (?\,L0(B . ?\x0410) ;; CYRILLIC CAPITAL LETTER A - (?\,L1(B . ?\x0411) ;; CYRILLIC CAPITAL LETTER BE - (?\,L2(B . ?\x0412) ;; CYRILLIC CAPITAL LETTER VE - (?\,L3(B . ?\x0413) ;; CYRILLIC CAPITAL LETTER GHE - (?\,L4(B . ?\x0414) ;; CYRILLIC CAPITAL LETTER DE - (?\,L5(B . ?\x0415) ;; CYRILLIC CAPITAL LETTER IE - (?\,L6(B . ?\x0416) ;; CYRILLIC CAPITAL LETTER ZHE - (?\,L7(B . ?\x0417) ;; CYRILLIC CAPITAL LETTER ZE - (?\,L8(B . ?\x0418) ;; CYRILLIC CAPITAL LETTER I - (?\,L9(B . ?\x0419) ;; CYRILLIC CAPITAL LETTER SHORT I - (?\,L:(B . ?\x041A) ;; CYRILLIC CAPITAL LETTER KA - (?\,L;(B . ?\x041B) ;; CYRILLIC CAPITAL LETTER EL - (?\,L<(B . ?\x041C) ;; CYRILLIC CAPITAL LETTER EM - (?\,L=(B . ?\x041D) ;; CYRILLIC CAPITAL LETTER EN - (?\,L>(B . ?\x041E) ;; CYRILLIC CAPITAL LETTER O - (?\,L?(B . ?\x041F) ;; CYRILLIC CAPITAL LETTER PE - (?\,L@(B . ?\x0420) ;; CYRILLIC CAPITAL LETTER ER - (?\,LA(B . ?\x0421) ;; CYRILLIC CAPITAL LETTER ES - (?\,LB(B . ?\x0422) ;; CYRILLIC CAPITAL LETTER TE - (?\,LC(B . ?\x0423) ;; CYRILLIC CAPITAL LETTER U - (?\,LD(B . ?\x0424) ;; CYRILLIC CAPITAL LETTER EF - (?\,LE(B . ?\x0425) ;; CYRILLIC CAPITAL LETTER HA - (?\,LF(B . ?\x0426) ;; CYRILLIC CAPITAL LETTER TSE - (?\,LG(B . ?\x0427) ;; CYRILLIC CAPITAL LETTER CHE - (?\,LH(B . ?\x0428) ;; CYRILLIC CAPITAL LETTER SHA - (?\,LI(B . ?\x0429) ;; CYRILLIC CAPITAL LETTER SHCHA - (?\,LJ(B . ?\x042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN - (?\,LK(B . ?\x042B) ;; CYRILLIC CAPITAL LETTER YERU - (?\,LL(B . ?\x042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN - (?\,LM(B . ?\x042D) ;; CYRILLIC CAPITAL LETTER E - (?\,LN(B . ?\x042E) ;; CYRILLIC CAPITAL LETTER YU - (?\,LO(B . ?\x042F) ;; CYRILLIC CAPITAL LETTER YA - (?\,LP(B . ?\x0430) ;; CYRILLIC SMALL LETTER A - (?\,LQ(B . ?\x0431) ;; CYRILLIC SMALL LETTER BE - (?\,LR(B . ?\x0432) ;; CYRILLIC SMALL LETTER VE - (?\,LS(B . ?\x0433) ;; CYRILLIC SMALL LETTER GHE - (?\,LT(B . ?\x0434) ;; CYRILLIC SMALL LETTER DE - (?\,LU(B . ?\x0435) ;; CYRILLIC SMALL LETTER IE - (?\,LV(B . ?\x0436) ;; CYRILLIC SMALL LETTER ZHE - (?\,LW(B . ?\x0437) ;; CYRILLIC SMALL LETTER ZE - (?\,LX(B . ?\x0438) ;; CYRILLIC SMALL LETTER I - (?\,LY(B . ?\x0439) ;; CYRILLIC SMALL LETTER SHORT I - (?\,LZ(B . ?\x043A) ;; CYRILLIC SMALL LETTER KA - (?\,L[(B . ?\x043B) ;; CYRILLIC SMALL LETTER EL - (?\,L\(B . ?\x043C) ;; CYRILLIC SMALL LETTER EM - (?\,L](B . ?\x043D) ;; CYRILLIC SMALL LETTER EN - (?\,L^(B . ?\x043E) ;; CYRILLIC SMALL LETTER O - (?\,L_(B . ?\x043F) ;; CYRILLIC SMALL LETTER PE - (?\,L`(B . ?\x0440) ;; CYRILLIC SMALL LETTER ER - (?\,La(B . ?\x0441) ;; CYRILLIC SMALL LETTER ES - (?\,Lb(B . ?\x0442) ;; CYRILLIC SMALL LETTER TE - (?\,Lc(B . ?\x0443) ;; CYRILLIC SMALL LETTER U - (?\,Ld(B . ?\x0444) ;; CYRILLIC SMALL LETTER EF - (?\,Le(B . ?\x0445) ;; CYRILLIC SMALL LETTER HA - (?\,Lf(B . ?\x0446) ;; CYRILLIC SMALL LETTER TSE - (?\,Lg(B . ?\x0447) ;; CYRILLIC SMALL LETTER CHE - (?\,Lh(B . ?\x0448) ;; CYRILLIC SMALL LETTER SHA - (?\,Li(B . ?\x0449) ;; CYRILLIC SMALL LETTER SHCHA - (?\,Lj(B . ?\x044A) ;; CYRILLIC SMALL LETTER HARD SIGN - (?\,Lk(B . ?\x044B) ;; CYRILLIC SMALL LETTER YERU - (?\,Ll(B . ?\x044C) ;; CYRILLIC SMALL LETTER SOFT SIGN - (?\,Lm(B . ?\x044D) ;; CYRILLIC SMALL LETTER E - (?\,Ln(B . ?\x044E) ;; CYRILLIC SMALL LETTER YU - (?\,Lo(B . ?\x044F) ;; CYRILLIC SMALL LETTER YA - (?\,Lp(B . ?\x2116) ;; NUMERO SIGN - (?\,Lq(B . ?\x0451) ;; CYRILLIC SMALL LETTER IO - (?\,Lr(B . ?\x0452) ;; CYRILLIC SMALL LETTER DJE - (?\,Ls(B . ?\x0453) ;; CYRILLIC SMALL LETTER GJE - (?\,Lt(B . ?\x0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE - (?\,Lu(B . ?\x0455) ;; CYRILLIC SMALL LETTER DZE - (?\,Lv(B . ?\x0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I - (?\,Lw(B . ?\x0457) ;; CYRILLIC SMALL LETTER YI - (?\,Lx(B . ?\x0458) ;; CYRILLIC SMALL LETTER JE - (?\,Ly(B . ?\x0459) ;; CYRILLIC SMALL LETTER LJE - (?\,Lz(B . ?\x045A) ;; CYRILLIC SMALL LETTER NJE - (?\,L{(B . ?\x045B) ;; CYRILLIC SMALL LETTER TSHE - (?\,L|(B . ?\x045C) ;; CYRILLIC SMALL LETTER KJE - (?\,L}(B . ?\x00A7) ;; SECTION SIGN - (?\,L~(B . ?\x045E) ;; CYRILLIC SMALL LETTER SHORT U - (?\,L(B . ?\x045F) ;; CYRILLIC SMALL LETTER DZHE - )) - - ;; Arabic probably isn't so useful in the absence of Arabic - ;; language support. - (ucs-8859-6-alist - '((?,G (B . ?\x00A0) ;; NO-BREAK SPACE - (?,G$(B . ?\x00A4) ;; CURRENCY SIGN - (?,G,(B . ?\x060C) ;; ARABIC COMMA - (?,G-(B . ?\x00AD) ;; SOFT HYPHEN - (?,G;(B . ?\x061B) ;; ARABIC SEMICOLON - (?,G?(B . ?\x061F) ;; ARABIC QUESTION MARK - (?,GA(B . ?\x0621) ;; ARABIC LETTER HAMZA - (?,GB(B . ?\x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE - (?,GC(B . ?\x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE - (?,GD(B . ?\x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE - (?,GE(B . ?\x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW - (?,GF(B . ?\x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE - (?,GG(B . ?\x0627) ;; ARABIC LETTER ALEF - (?,GH(B . ?\x0628) ;; ARABIC LETTER BEH - (?,GI(B . ?\x0629) ;; ARABIC LETTER TEH MARBUTA - (?,GJ(B . ?\x062A) ;; ARABIC LETTER TEH - (?,GK(B . ?\x062B) ;; ARABIC LETTER THEH - (?,GL(B . ?\x062C) ;; ARABIC LETTER JEEM - (?,GM(B . ?\x062D) ;; ARABIC LETTER HAH - (?,GN(B . ?\x062E) ;; ARABIC LETTER KHAH - (?,GO(B . ?\x062F) ;; ARABIC LETTER DAL - (?,GP(B . ?\x0630) ;; ARABIC LETTER THAL - (?,GQ(B . ?\x0631) ;; ARABIC LETTER REH - (?,GR(B . ?\x0632) ;; ARABIC LETTER ZAIN - (?,GS(B . ?\x0633) ;; ARABIC LETTER SEEN - (?,GT(B . ?\x0634) ;; ARABIC LETTER SHEEN - (?,GU(B . ?\x0635) ;; ARABIC LETTER SAD - (?,GV(B . ?\x0636) ;; ARABIC LETTER DAD - (?,GW(B . ?\x0637) ;; ARABIC LETTER TAH - (?,GX(B . ?\x0638) ;; ARABIC LETTER ZAH - (?,GY(B . ?\x0639) ;; ARABIC LETTER AIN - (?,GZ(B . ?\x063A) ;; ARABIC LETTER GHAIN - (?,G`(B . ?\x0640) ;; ARABIC TATWEEL - (?,Ga(B . ?\x0641) ;; ARABIC LETTER FEH - (?,Gb(B . ?\x0642) ;; ARABIC LETTER QAF - (?,Gc(B . ?\x0643) ;; ARABIC LETTER KAF - (?,Gd(B . ?\x0644) ;; ARABIC LETTER LAM - (?,Ge(B . ?\x0645) ;; ARABIC LETTER MEEM - (?,Gf(B . ?\x0646) ;; ARABIC LETTER NOON - (?,Gg(B . ?\x0647) ;; ARABIC LETTER HEH - (?,Gh(B . ?\x0648) ;; ARABIC LETTER WAW - (?,Gi(B . ?\x0649) ;; ARABIC LETTER ALEF MAKSURA - (?,Gj(B . ?\x064A) ;; ARABIC LETTER YEH - (?,Gk(B . ?\x064B) ;; ARABIC FATHATAN - (?,Gl(B . ?\x064C) ;; ARABIC DAMMATAN - (?,Gm(B . ?\x064D) ;; ARABIC KASRATAN - (?,Gn(B . ?\x064E) ;; ARABIC FATHA - (?,Go(B . ?\x064F) ;; ARABIC DAMMA - (?,Gp(B . ?\x0650) ;; ARABIC KASRA - (?,Gq(B . ?\x0651) ;; ARABIC SHADDA - (?,Gr(B . ?\x0652) ;; ARABIC SUKUN - )) - - (ucs-8859-7-alist - '((?\,F (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,F!(B . ?\x2018) ;; LEFT SINGLE QUOTATION MARK - (?\,F"(B . ?\x2019) ;; RIGHT SINGLE QUOTATION MARK - (?\,F#(B . ?\x00A3) ;; POUND SIGN - (?\,F&(B . ?\x00A6) ;; BROKEN BAR - (?\,F'(B . ?\x00A7) ;; SECTION SIGN - (?\,F((B . ?\x00A8) ;; DIAERESIS - (?\,F)(B . ?\x00A9) ;; COPYRIGHT SIGN - (?\,F+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,F,(B . ?\x00AC) ;; NOT SIGN - (?\,F-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,F/(B . ?\x2015) ;; HORIZONTAL BAR - (?\,F0(B . ?\x00B0) ;; DEGREE SIGN - (?\,F1(B . ?\x00B1) ;; PLUS-MINUS SIGN - (?\,F2(B . ?\x00B2) ;; SUPERSCRIPT TWO - (?\,F3(B . ?\x00B3) ;; SUPERSCRIPT THREE - (?\,F4(B . ?\x0384) ;; GREEK TONOS - (?\,F5(B . ?\x0385) ;; GREEK DIALYTIKA TONOS - (?\,F6(B . ?\x0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS - (?\,F7(B . ?\x00B7) ;; MIDDLE DOT - (?\,F8(B . ?\x0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS - (?\,F9(B . ?\x0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS - (?\,F:(B . ?\x038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS - (?\,F;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,F<(B . ?\x038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS - (?\,F=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF - (?\,F>(B . ?\x038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS - (?\,F?(B . ?\x038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS - (?\,F@(B . ?\x0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS - (?\,FA(B . ?\x0391) ;; GREEK CAPITAL LETTER ALPHA - (?\,FB(B . ?\x0392) ;; GREEK CAPITAL LETTER BETA - (?\,FC(B . ?\x0393) ;; GREEK CAPITAL LETTER GAMMA - (?\,FD(B . ?\x0394) ;; GREEK CAPITAL LETTER DELTA - (?\,FE(B . ?\x0395) ;; GREEK CAPITAL LETTER EPSILON - (?\,FF(B . ?\x0396) ;; GREEK CAPITAL LETTER ZETA - (?\,FG(B . ?\x0397) ;; GREEK CAPITAL LETTER ETA - (?\,FH(B . ?\x0398) ;; GREEK CAPITAL LETTER THETA - (?\,FI(B . ?\x0399) ;; GREEK CAPITAL LETTER IOTA - (?\,FJ(B . ?\x039A) ;; GREEK CAPITAL LETTER KAPPA - (?\,FK(B . ?\x039B) ;; GREEK CAPITAL LETTER LAMDA - (?\,FL(B . ?\x039C) ;; GREEK CAPITAL LETTER MU - (?\,FM(B . ?\x039D) ;; GREEK CAPITAL LETTER NU - (?\,FN(B . ?\x039E) ;; GREEK CAPITAL LETTER XI - (?\,FO(B . ?\x039F) ;; GREEK CAPITAL LETTER OMICRON - (?\,FP(B . ?\x03A0) ;; GREEK CAPITAL LETTER PI - (?\,FQ(B . ?\x03A1) ;; GREEK CAPITAL LETTER RHO - (?\,FS(B . ?\x03A3) ;; GREEK CAPITAL LETTER SIGMA - (?\,FT(B . ?\x03A4) ;; GREEK CAPITAL LETTER TAU - (?\,FU(B . ?\x03A5) ;; GREEK CAPITAL LETTER UPSILON - (?\,FV(B . ?\x03A6) ;; GREEK CAPITAL LETTER PHI - (?\,FW(B . ?\x03A7) ;; GREEK CAPITAL LETTER CHI - (?\,FX(B . ?\x03A8) ;; GREEK CAPITAL LETTER PSI - (?\,FY(B . ?\x03A9) ;; GREEK CAPITAL LETTER OMEGA - (?\,FZ(B . ?\x03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA - (?\,F[(B . ?\x03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA - (?\,F\(B . ?\x03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS - (?\,F](B . ?\x03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS - (?\,F^(B . ?\x03AE) ;; GREEK SMALL LETTER ETA WITH TONOS - (?\,F_(B . ?\x03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS - (?\,F`(B . ?\x03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS - (?\,Fa(B . ?\x03B1) ;; GREEK SMALL LETTER ALPHA - (?\,Fb(B . ?\x03B2) ;; GREEK SMALL LETTER BETA - (?\,Fc(B . ?\x03B3) ;; GREEK SMALL LETTER GAMMA - (?\,Fd(B . ?\x03B4) ;; GREEK SMALL LETTER DELTA - (?\,Fe(B . ?\x03B5) ;; GREEK SMALL LETTER EPSILON - (?\,Ff(B . ?\x03B6) ;; GREEK SMALL LETTER ZETA - (?\,Fg(B . ?\x03B7) ;; GREEK SMALL LETTER ETA - (?\,Fh(B . ?\x03B8) ;; GREEK SMALL LETTER THETA - (?\,Fi(B . ?\x03B9) ;; GREEK SMALL LETTER IOTA - (?\,Fj(B . ?\x03BA) ;; GREEK SMALL LETTER KAPPA - (?\,Fk(B . ?\x03BB) ;; GREEK SMALL LETTER LAMDA - (?\,Fl(B . ?\x03BC) ;; GREEK SMALL LETTER MU - (?\,Fm(B . ?\x03BD) ;; GREEK SMALL LETTER NU - (?\,Fn(B . ?\x03BE) ;; GREEK SMALL LETTER XI - (?\,Fo(B . ?\x03BF) ;; GREEK SMALL LETTER OMICRON - (?\,Fp(B . ?\x03C0) ;; GREEK SMALL LETTER PI - (?\,Fq(B . ?\x03C1) ;; GREEK SMALL LETTER RHO - (?\,Fr(B . ?\x03C2) ;; GREEK SMALL LETTER FINAL SIGMA - (?\,Fs(B . ?\x03C3) ;; GREEK SMALL LETTER SIGMA - (?\,Ft(B . ?\x03C4) ;; GREEK SMALL LETTER TAU - (?\,Fu(B . ?\x03C5) ;; GREEK SMALL LETTER UPSILON - (?\,Fv(B . ?\x03C6) ;; GREEK SMALL LETTER PHI - (?\,Fw(B . ?\x03C7) ;; GREEK SMALL LETTER CHI - (?\,Fx(B . ?\x03C8) ;; GREEK SMALL LETTER PSI - (?\,Fy(B . ?\x03C9) ;; GREEK SMALL LETTER OMEGA - (?\,Fz(B . ?\x03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA - (?\,F{(B . ?\x03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA - (?\,F|(B . ?\x03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS - (?\,F}(B . ?\x03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS - (?\,F~(B . ?\x03CE) ;; GREEK SMALL LETTER OMEGA WITH TONOS - )) - - (ucs-8859-8-alist - '((?\,H (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,H"(B . ?\x00A2) ;; CENT SIGN - (?\,H#(B . ?\x00A3) ;; POUND SIGN - (?\,H$(B . ?\x00A4) ;; CURRENCY SIGN - (?\,H%(B . ?\x00A5) ;; YEN SIGN - (?\,H&(B . ?\x00A6) ;; BROKEN BAR - (?\,H'(B . ?\x00A7) ;; SECTION SIGN - (?\,H((B . ?\x00A8) ;; DIAERESIS - (?\,H)(B . ?\x00A9) ;; COPYRIGHT SIGN - (?\,H*(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,H+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,H,(B . ?\x00AC) ;; NOT SIGN - (?\,H-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,H.(B . ?\x00AE) ;; REGISTERED SIGN - (?\,H/(B . ?\x00AF) ;; MACRON - (?\,H0(B . ?\x00B0) ;; DEGREE SIGN - (?\,H1(B . ?\x00B1) ;; PLUS-MINUS SIGN - (?\,H2(B . ?\x00B2) ;; SUPERSCRIPT TWO - (?\,H3(B . ?\x00B3) ;; SUPERSCRIPT THREE - (?\,H4(B . ?\x00B4) ;; ACUTE ACCENT - (?\,H5(B . ?\x00B5) ;; MICRO SIGN - (?\,H6(B . ?\x00B6) ;; PILCROW SIGN - (?\,H7(B . ?\x00B7) ;; MIDDLE DOT - (?\,H8(B . ?\x00B8) ;; CEDILLA - (?\,H9(B . ?\x00B9) ;; SUPERSCRIPT ONE - (?\,H:(B . ?\x00F7) ;; DIVISION SIGN - (?\,H;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,H<(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER - (?\,H=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF - (?\,H>(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS - ;; These are commented out since the current 8859-8 standard - ;; does not yet define these codepoints, although there are - ;; drafts which do). -; (?\,H@(B . ?\x05B0) ;; HEBREW POINT SHEVA -; (?\,HA(B . ?\x05B1) ;; HEBREW POINT HATAF SEGOL -; (?\,HB(B . ?\x05B2) ;; HEBREW POINT HATAF PATAH -; (?\,HC(B . ?\x05B3) ;; HEBREW POINT HATAF QAMATS -; (?\,HD(B . ?\x05B4) ;; HEBREW POINT HIRIQ -; (?\,HE(B . ?\x05B5) ;; HEBREW POINT TSERE -; (?\,HF(B . ?\x05B6) ;; HEBREW POINT SEGOL -; (?\,HG(B . ?\x05B7) ;; HEBREW POINT PATAH -; (?\,HH(B . ?\x05B8) ;; HEBREW POINT QAMATS -; (?\,HI(B . ?\x05B9) ;; HEBREW POINT HOLAM -; (?\,HK(B . ?\x05BB) ;; HEBREW POINT QUBUTS -; (?\,HL(B . ?\x05BC) ;; HEBREW POINT DAGESH -; (?\,HM(B . ?\x05BD) ;; HEBREW POINT METEG -; (?\,HN(B . ?\x05BE) ;; HEBREW POINT MAQAF -; (?\,HO(B . ?\x05BF) ;; HEBREW POINT RAFE -; (?\,HP(B . ?\x05C0) ;; HEBREW PUNCTUATION PASEQ -; (?\,HQ(B . ?\x05C1) ;; HEBREW POINT SHIN DOT -; (?\,HR(B . ?\x05C2) ;; HEBREW POINT SIN DOT -; (?\,HS(B . ?\x05C3) ;; HEBREW PUNCTUATION SOF PASUQ - (?\,H[(B . ?\x202D) ;; LEFT-TO-RIGHT OVERRIDE - (?\,H\(B . ?\x202E) ;; RIGHT-TO-LEFT OVERRIDE - (?\,H](B . ?\x202C) ;; POP DIRECTIONAL FORMATTING - (?\,H_(B . ?\x2017) ;; DOUBLE LOW LINE - (?\,H`(B . ?\x05D0) ;; HEBREW LETTER ALEF - (?\,Ha(B . ?\x05D1) ;; HEBREW LETTER BET - (?\,Hb(B . ?\x05D2) ;; HEBREW LETTER GIMEL - (?\,Hc(B . ?\x05D3) ;; HEBREW LETTER DALET - (?\,Hd(B . ?\x05D4) ;; HEBREW LETTER HE - (?\,He(B . ?\x05D5) ;; HEBREW LETTER VAV - (?\,Hf(B . ?\x05D6) ;; HEBREW LETTER ZAYIN - (?\,Hg(B . ?\x05D7) ;; HEBREW LETTER HET - (?\,Hh(B . ?\x05D8) ;; HEBREW LETTER TET - (?\,Hi(B . ?\x05D9) ;; HEBREW LETTER YOD - (?\,Hj(B . ?\x05DA) ;; HEBREW LETTER FINAL KAF - (?\,Hk(B . ?\x05DB) ;; HEBREW LETTER KAF - (?\,Hl(B . ?\x05DC) ;; HEBREW LETTER LAMED - (?\,Hm(B . ?\x05DD) ;; HEBREW LETTER FINAL MEM - (?\,Hn(B . ?\x05DE) ;; HEBREW LETTER MEM - (?\,Ho(B . ?\x05DF) ;; HEBREW LETTER FINAL NUN - (?\,Hp(B . ?\x05E0) ;; HEBREW LETTER NUN - (?\,Hq(B . ?\x05E1) ;; HEBREW LETTER SAMEKH - (?\,Hr(B . ?\x05E2) ;; HEBREW LETTER AYIN - (?\,Hs(B . ?\x05E3) ;; HEBREW LETTER FINAL PE - (?\,Ht(B . ?\x05E4) ;; HEBREW LETTER PE - (?\,Hu(B . ?\x05E5) ;; HEBREW LETTER FINAL TSADI - (?\,Hv(B . ?\x05E6) ;; HEBREW LETTER TSADI - (?\,Hw(B . ?\x05E7) ;; HEBREW LETTER QOF - (?\,Hx(B . ?\x05E8) ;; HEBREW LETTER RESH - (?\,Hy(B . ?\x05E9) ;; HEBREW LETTER SHIN - (?\,Hz(B . ?\x05EA) ;; HEBREW LETTER TAV - (?\,H{(B . ?\x202A) ;; LEFT-TO-RIGHT EMBEDDING - (?\,H|(B . ?\x202B) ;; RIGHT-TO-LEFT EMBEDDING - (?\,H}(B . ?\x200E) ;; LEFT-TO-RIGHT MARK - (?\,H~(B . ?\x200F) ;; RIGHT-TO-LEFT MARK - )) - - (ucs-8859-9-alist - '((?\,M (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,M!(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK - (?\,M"(B . ?\x00A2) ;; CENT SIGN - (?\,M#(B . ?\x00A3) ;; POUND SIGN - (?\,M$(B . ?\x00A4) ;; CURRENCY SIGN - (?\,M%(B . ?\x00A5) ;; YEN SIGN - (?\,M&(B . ?\x00A6) ;; BROKEN BAR - (?\,M'(B . ?\x00A7) ;; SECTION SIGN - (?\,M((B . ?\x00A8) ;; DIAERESIS - (?\,M)(B . ?\x00A9) ;; COPYRIGHT SIGN - (?\,M*(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR - (?\,M+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,M,(B . ?\x00AC) ;; NOT SIGN - (?\,M-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,M.(B . ?\x00AE) ;; REGISTERED SIGN - (?\,M/(B . ?\x00AF) ;; MACRON - (?\,M0(B . ?\x00B0) ;; DEGREE SIGN - (?\,M1(B . ?\x00B1) ;; PLUS-MINUS SIGN - (?\,M2(B . ?\x00B2) ;; SUPERSCRIPT TWO - (?\,M3(B . ?\x00B3) ;; SUPERSCRIPT THREE - (?\,M4(B . ?\x00B4) ;; ACUTE ACCENT - (?\,M5(B . ?\x00B5) ;; MICRO SIGN - (?\,M6(B . ?\x00B6) ;; PILCROW SIGN - (?\,M7(B . ?\x00B7) ;; MIDDLE DOT - (?\,M8(B . ?\x00B8) ;; CEDILLA - (?\,M9(B . ?\x00B9) ;; SUPERSCRIPT ONE - (?\,M:(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR - (?\,M;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,M<(B . ?\x00BC) ;; VULGAR FRACTION ONE QUARTER - (?\,M=(B . ?\x00BD) ;; VULGAR FRACTION ONE HALF - (?\,M>(B . ?\x00BE) ;; VULGAR FRACTION THREE QUARTERS - (?\,M?(B . ?\x00BF) ;; INVERTED QUESTION MARK - (?\,M@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (?\,MA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,MB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,MC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (?\,MD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,ME(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (?\,MF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE - (?\,MG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (?\,MH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (?\,MI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,MJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (?\,MK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,ML(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (?\,MM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,MN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,MO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (?\,MP(B . ?\x011E) ;; LATIN CAPITAL LETTER G WITH BREVE - (?\,MQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (?\,MR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (?\,MS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (?\,MT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,MU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (?\,MV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,MW(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,MX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (?\,MY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (?\,MZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,M[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (?\,M\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,M](B . ?\x0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE - (?\,M^(B . ?\x015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA - (?\,M_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,M`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (?\,Ma(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,Mb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,Mc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE - (?\,Md(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,Me(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (?\,Mf(B . ?\x00E6) ;; LATIN SMALL LETTER AE - (?\,Mg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (?\,Mh(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (?\,Mi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,Mj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (?\,Mk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,Ml(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (?\,Mm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,Mn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,Mo(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (?\,Mp(B . ?\x011F) ;; LATIN SMALL LETTER G WITH BREVE - (?\,Mq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE - (?\,Mr(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (?\,Ms(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (?\,Mt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,Mu(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE - (?\,Mv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,Mw(B . ?\x00F7) ;; DIVISION SIGN - (?\,Mx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE - (?\,My(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (?\,Mz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,M{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (?\,M|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,M}(B . ?\x0131) ;; LATIN SMALL LETTER DOTLESS I - (?\,M~(B . ?\x015F) ;; LATIN SMALL LETTER S WITH CEDILLA - (?\,M(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS - )) - - (ucs-8859-14-alist - '((?\,_ (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,_!(B . ?\x1E02) ;; LATIN CAPITAL LETTER B WITH DOT ABOVE - (?\,_"(B . ?\x1E03) ;; LATIN SMALL LETTER B WITH DOT ABOVE - (?\,_#(B . ?\x00A3) ;; POUND SIGN - (?\,_$(B . ?\x010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE - (?\,_%(B . ?\x010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE - (?\,_&(B . ?\x1E0A) ;; LATIN CAPITAL LETTER D WITH DOT ABOVE - (?\,_'(B . ?\x00A7) ;; SECTION SIGN - (?\,_((B . ?\x1E80) ;; LATIN CAPITAL LETTER W WITH GRAVE - (?\,_)(B . ?\x00A9) ;; COPYRIGHT SIGN - (?\,_*(B . ?\x1E82) ;; LATIN CAPITAL LETTER W WITH ACUTE - (?\,_+(B . ?\x1E0B) ;; LATIN SMALL LETTER D WITH DOT ABOVE - (?\,_,(B . ?\x1EF2) ;; LATIN CAPITAL LETTER Y WITH GRAVE - (?\,_-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,_.(B . ?\x00AE) ;; REGISTERED SIGN - (?\,_/(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (?\,_0(B . ?\x1E1E) ;; LATIN CAPITAL LETTER F WITH DOT ABOVE - (?\,_1(B . ?\x1E1F) ;; LATIN SMALL LETTER F WITH DOT ABOVE - (?\,_2(B . ?\x0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE - (?\,_3(B . ?\x0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE - (?\,_4(B . ?\x1E40) ;; LATIN CAPITAL LETTER M WITH DOT ABOVE - (?\,_5(B . ?\x1E41) ;; LATIN SMALL LETTER M WITH DOT ABOVE - (?\,_6(B . ?\x00B6) ;; PILCROW SIGN - (?\,_7(B . ?\x1E56) ;; LATIN CAPITAL LETTER P WITH DOT ABOVE - (?\,_8(B . ?\x1E81) ;; LATIN SMALL LETTER W WITH GRAVE - (?\,_9(B . ?\x1E57) ;; LATIN SMALL LETTER P WITH DOT ABOVE - (?\,_:(B . ?\x1E83) ;; LATIN SMALL LETTER W WITH ACUTE - (?\,_;(B . ?\x1E60) ;; LATIN CAPITAL LETTER S WITH DOT ABOVE - (?\,_<(B . ?\x1EF3) ;; LATIN SMALL LETTER Y WITH GRAVE - (?\,_=(B . ?\x1E84) ;; LATIN CAPITAL LETTER W WITH DIAERESIS - (?\,_>(B . ?\x1E85) ;; LATIN SMALL LETTER W WITH DIAERESIS - (?\,_?(B . ?\x1E61) ;; LATIN SMALL LETTER S WITH DOT ABOVE - (?\,_@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (?\,_A(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,_B(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,_C(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (?\,_D(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,_E(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (?\,_F(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE - (?\,_G(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (?\,_H(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (?\,_I(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,_J(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (?\,_K(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,_L(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (?\,_M(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,_N(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,_O(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (?\,_P(B . ?\x0174) ;; LATIN CAPITAL LETTER W WITH CIRCUMFLEX - (?\,_Q(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (?\,_R(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (?\,_S(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (?\,_T(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,_U(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (?\,_V(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,_W(B . ?\x1E6A) ;; LATIN CAPITAL LETTER T WITH DOT ABOVE - (?\,_X(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (?\,_Y(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (?\,_Z(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,_[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (?\,_\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,_](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (?\,_^(B . ?\x0176) ;; LATIN CAPITAL LETTER Y WITH CIRCUMFLEX - (?\,__(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,_`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (?\,_a(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,_b(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,_c(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE - (?\,_d(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,_e(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (?\,_f(B . ?\x00E6) ;; LATIN SMALL LETTER AE - (?\,_g(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (?\,_h(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (?\,_i(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,_j(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (?\,_k(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,_l(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (?\,_m(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,_n(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,_o(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (?\,_p(B . ?\x0175) ;; LATIN SMALL LETTER W WITH CIRCUMFLEX - (?\,_q(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE - (?\,_r(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (?\,_s(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (?\,_t(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,_u(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE - (?\,_v(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,_w(B . ?\x1E6B) ;; LATIN SMALL LETTER T WITH DOT ABOVE - (?\,_x(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE - (?\,_y(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (?\,_z(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,_{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (?\,_|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,_}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (?\,_~(B . ?\x0177) ;; LATIN SMALL LETTER Y WITH CIRCUMFLEX - (?\,_(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS - )) - - (ucs-8859-15-alist - '((?\,b (B . ?\x00A0) ;; NO-BREAK SPACE - (?\,b!(B . ?\x00A1) ;; INVERTED EXCLAMATION MARK - (?\,b"(B . ?\x00A2) ;; CENT SIGN - (?\,b#(B . ?\x00A3) ;; POUND SIGN - (?\,b$(B . ?\x20AC) ;; EURO SIGN - (?\,b%(B . ?\x00A5) ;; YEN SIGN - (?\,b&(B . ?\x0160) ;; LATIN CAPITAL LETTER S WITH CARON - (?\,b'(B . ?\x00A7) ;; SECTION SIGN - (?\,b((B . ?\x0161) ;; LATIN SMALL LETTER S WITH CARON - (?\,b)(B . ?\x00A9) ;; COPYRIGHT SIGN - (?\,b*(B . ?\x00AA) ;; FEMININE ORDINAL INDICATOR - (?\,b+(B . ?\x00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,b,(B . ?\x00AC) ;; NOT SIGN - (?\,b-(B . ?\x00AD) ;; SOFT HYPHEN - (?\,b.(B . ?\x00AE) ;; REGISTERED SIGN - (?\,b/(B . ?\x00AF) ;; MACRON - (?\,b0(B . ?\x00B0) ;; DEGREE SIGN - (?\,b1(B . ?\x00B1) ;; PLUS-MINUS SIGN - (?\,b2(B . ?\x00B2) ;; SUPERSCRIPT TWO - (?\,b3(B . ?\x00B3) ;; SUPERSCRIPT THREE - (?\,b4(B . ?\x017D) ;; LATIN CAPITAL LETTER Z WITH CARON - (?\,b5(B . ?\x00B5) ;; MICRO SIGN - (?\,b6(B . ?\x00B6) ;; PILCROW SIGN - (?\,b7(B . ?\x00B7) ;; MIDDLE DOT - (?\,b8(B . ?\x017E) ;; LATIN SMALL LETTER Z WITH CARON - (?\,b9(B . ?\x00B9) ;; SUPERSCRIPT ONE - (?\,b:(B . ?\x00BA) ;; MASCULINE ORDINAL INDICATOR - (?\,b;(B . ?\x00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - (?\,b<(B . ?\x0152) ;; LATIN CAPITAL LIGATURE OE - (?\,b=(B . ?\x0153) ;; LATIN SMALL LIGATURE OE - (?\,b>(B . ?\x0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS - (?\,b?(B . ?\x00BF) ;; INVERTED QUESTION MARK - (?\,b@(B . ?\x00C0) ;; LATIN CAPITAL LETTER A WITH GRAVE - (?\,bA(B . ?\x00C1) ;; LATIN CAPITAL LETTER A WITH ACUTE - (?\,bB(B . ?\x00C2) ;; LATIN CAPITAL LETTER A WITH CIRCUMFLEX - (?\,bC(B . ?\x00C3) ;; LATIN CAPITAL LETTER A WITH TILDE - (?\,bD(B . ?\x00C4) ;; LATIN CAPITAL LETTER A WITH DIAERESIS - (?\,bE(B . ?\x00C5) ;; LATIN CAPITAL LETTER A WITH RING ABOVE - (?\,bF(B . ?\x00C6) ;; LATIN CAPITAL LETTER AE - (?\,bG(B . ?\x00C7) ;; LATIN CAPITAL LETTER C WITH CEDILLA - (?\,bH(B . ?\x00C8) ;; LATIN CAPITAL LETTER E WITH GRAVE - (?\,bI(B . ?\x00C9) ;; LATIN CAPITAL LETTER E WITH ACUTE - (?\,bJ(B . ?\x00CA) ;; LATIN CAPITAL LETTER E WITH CIRCUMFLEX - (?\,bK(B . ?\x00CB) ;; LATIN CAPITAL LETTER E WITH DIAERESIS - (?\,bL(B . ?\x00CC) ;; LATIN CAPITAL LETTER I WITH GRAVE - (?\,bM(B . ?\x00CD) ;; LATIN CAPITAL LETTER I WITH ACUTE - (?\,bN(B . ?\x00CE) ;; LATIN CAPITAL LETTER I WITH CIRCUMFLEX - (?\,bO(B . ?\x00CF) ;; LATIN CAPITAL LETTER I WITH DIAERESIS - (?\,bP(B . ?\x00D0) ;; LATIN CAPITAL LETTER ETH - (?\,bQ(B . ?\x00D1) ;; LATIN CAPITAL LETTER N WITH TILDE - (?\,bR(B . ?\x00D2) ;; LATIN CAPITAL LETTER O WITH GRAVE - (?\,bS(B . ?\x00D3) ;; LATIN CAPITAL LETTER O WITH ACUTE - (?\,bT(B . ?\x00D4) ;; LATIN CAPITAL LETTER O WITH CIRCUMFLEX - (?\,bU(B . ?\x00D5) ;; LATIN CAPITAL LETTER O WITH TILDE - (?\,bV(B . ?\x00D6) ;; LATIN CAPITAL LETTER O WITH DIAERESIS - (?\,bW(B . ?\x00D7) ;; MULTIPLICATION SIGN - (?\,bX(B . ?\x00D8) ;; LATIN CAPITAL LETTER O WITH STROKE - (?\,bY(B . ?\x00D9) ;; LATIN CAPITAL LETTER U WITH GRAVE - (?\,bZ(B . ?\x00DA) ;; LATIN CAPITAL LETTER U WITH ACUTE - (?\,b[(B . ?\x00DB) ;; LATIN CAPITAL LETTER U WITH CIRCUMFLEX - (?\,b\(B . ?\x00DC) ;; LATIN CAPITAL LETTER U WITH DIAERESIS - (?\,b](B . ?\x00DD) ;; LATIN CAPITAL LETTER Y WITH ACUTE - (?\,b^(B . ?\x00DE) ;; LATIN CAPITAL LETTER THORN - (?\,b_(B . ?\x00DF) ;; LATIN SMALL LETTER SHARP S - (?\,b`(B . ?\x00E0) ;; LATIN SMALL LETTER A WITH GRAVE - (?\,ba(B . ?\x00E1) ;; LATIN SMALL LETTER A WITH ACUTE - (?\,bb(B . ?\x00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX - (?\,bc(B . ?\x00E3) ;; LATIN SMALL LETTER A WITH TILDE - (?\,bd(B . ?\x00E4) ;; LATIN SMALL LETTER A WITH DIAERESIS - (?\,be(B . ?\x00E5) ;; LATIN SMALL LETTER A WITH RING ABOVE - (?\,bf(B . ?\x00E6) ;; LATIN SMALL LETTER AE - (?\,bg(B . ?\x00E7) ;; LATIN SMALL LETTER C WITH CEDILLA - (?\,bh(B . ?\x00E8) ;; LATIN SMALL LETTER E WITH GRAVE - (?\,bi(B . ?\x00E9) ;; LATIN SMALL LETTER E WITH ACUTE - (?\,bj(B . ?\x00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX - (?\,bk(B . ?\x00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS - (?\,bl(B . ?\x00EC) ;; LATIN SMALL LETTER I WITH GRAVE - (?\,bm(B . ?\x00ED) ;; LATIN SMALL LETTER I WITH ACUTE - (?\,bn(B . ?\x00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX - (?\,bo(B . ?\x00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS - (?\,bp(B . ?\x00F0) ;; LATIN SMALL LETTER ETH - (?\,bq(B . ?\x00F1) ;; LATIN SMALL LETTER N WITH TILDE - (?\,br(B . ?\x00F2) ;; LATIN SMALL LETTER O WITH GRAVE - (?\,bs(B . ?\x00F3) ;; LATIN SMALL LETTER O WITH ACUTE - (?\,bt(B . ?\x00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX - (?\,bu(B . ?\x00F5) ;; LATIN SMALL LETTER O WITH TILDE - (?\,bv(B . ?\x00F6) ;; LATIN SMALL LETTER O WITH DIAERESIS - (?\,bw(B . ?\x00F7) ;; DIVISION SIGN - (?\,bx(B . ?\x00F8) ;; LATIN SMALL LETTER O WITH STROKE - (?\,by(B . ?\x00F9) ;; LATIN SMALL LETTER U WITH GRAVE - (?\,bz(B . ?\x00FA) ;; LATIN SMALL LETTER U WITH ACUTE - (?\,b{(B . ?\x00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX - (?\,b|(B . ?\x00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS - (?\,b}(B . ?\x00FD) ;; LATIN SMALL LETTER Y WITH ACUTE - (?\,b~(B . ?\x00FE) ;; LATIN SMALL LETTER THORN - (?\,b(B . ?\x00FF) ;; LATIN SMALL LETTER Y WITH DIAERESIS - )) - - (ucs-8859-1-alist - (let ((i 160) - l) - (while (< i 256) - (push (cons (make-char 'latin-iso8859-1 (- i 128)) i) - l) - (setq i (1+ i))) - (nreverse l)))) - - ;; Note: Here, using decode-char is safe because - ;; utf-fragment-on-decoding is by default nil, thus the translation - ;; table `utf-translation-table-for-decode' does nothing. - - ;; Convert the lists to the basic char tables. - (dolist (n (list 15 14 9 8 7 6 5 4 3 2 1)) - (let ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))) - (dolist (pair alist) - (let ((mule (car pair)) - (uc (cdr pair)) - (mu (decode-char 'ucs (cdr pair)))) - (aset ucs-mule-8859-to-ucs-table mule uc) - ;; (aset ucs-ucs-to-mule-8859-table uc mule) - ;; (aset ucs-mule-unicode-to-mule-8859 mu mule) - (aset ucs-mule-8859-to-mule-unicode mule mu) - (aset ucs-mule-to-mule-unicode mule mu))))) - - ;; Derive tables that can be used as per-coding-system - ;; `translation-table-for-encode's. - ;; N.B., there's no 8859-6 coding system. - (dolist (n (list 15 14 9 8 7 5 4 3 2 1)) - (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n)))) - (encode-translator (set (intern (format "ucs-8859-%d-encode-table" - n)) - (make-translation-table))) - (coding-system - (coding-system-base (intern (format "iso-8859-%d" n)))) - (dependency (coding-system-get coding-system 'dependency)) - elt) - ;; Start with the mule-unicode component (except for latin-iso8859-1). - (if (/= n 1) - (dolist (pair alist) - (let ((mule (car pair)) - (mu (decode-char 'ucs (cdr pair)))) - (aset encode-translator mu mule)))) - ;; Find characters from other 8859 sets which map to the same - ;; unicode as some character in this set. - (map-char-table (lambda (k v) - (if (and (setq elt (rassq v alist)) - (not (assq k alist))) - (aset encode-translator k (car elt)))) - ucs-mule-8859-to-ucs-table) - (optimize-char-table encode-translator) - - (or (memq 'unify-8859-on-encoding-mode dependency) - (setq dependency (cons 'unify-8859-on-encoding-mode dependency))) - (or (memq 'unify-8859-on-decoding-mode dependency) - (setq dependency (cons 'unify-8859-on-decoding-mode dependency))) - (coding-system-put coding-system 'dependency dependency)))) - -(defun ucs-unify-8859 (for-encode for-decode) - "Set up translation-tables for unifying characters from ISO 8859. - -On decoding, non-ASCII characters are mapped into the `iso-latin-1' -and `mule-unicode-0100-24ff' charsets. On encoding, these are mapped -back appropriate for the coding system. - -With prefix arg, do unification on encoding only, i.e. don't unify -everything on input operations." - (when for-decode - ;; Unify 8859 on decoding. (Non-CCL coding systems only.) - (if utf-fragment-on-decoding - (progn (map-char-table - (lambda (k v) - (if v (aset ucs-mule-8859-to-mule-unicode v nil))) - utf-fragmentation-table) - (optimize-char-table ucs-mule-8859-to-mule-unicode)) - ;; Reset in case it was changed. - (map-char-table - (lambda (k v) - (if v (aset ucs-mule-8859-to-mule-unicode v k))) - utf-fragmentation-table)) - - ;; For non-CCL coding systems (e.g. iso-latin-2). - (set-char-table-parent standard-translation-table-for-decode - ucs-mule-8859-to-mule-unicode) - ;; For CCL coding systems other than mule-utf-* - (define-translation-table 'ucs-translation-table-for-decode - ucs-mule-8859-to-mule-unicode) - - ;; Translate Quail input globally. - (setq-default translation-table-for-input ucs-mule-to-mule-unicode) - ;; In case this is set up, but we should use the global - ;; translation-table. - (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup)) - - (when for-encode - ;; Make mule-utf-* encode all characters in ucs-mule-to-mule-unicode. - (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le - mule-utf-16be-with-signature - mule-utf-16le-with-signature))) - (define-translation-table 'utf-translation-table-for-encode - ucs-mule-to-mule-unicode) - (dolist (coding coding-list) - (set-char-table-parent (coding-system-get coding 'safe-chars) - ucs-mule-to-mule-unicode))) - - ;; Adjust the 8859 coding systems to fragment the unified characters - ;; on encoding. - (dolist (n '(1 2 3 4 5 7 8 9 14 15)) - (let* ((coding-system - (coding-system-base (intern (format "iso-8859-%d" n)))) - (table (symbol-value - (intern (format "ucs-8859-%d-encode-table" n)))) - (safe (coding-system-get coding-system 'safe-chars))) - ;; Actually, the coding system's safe-chars are not normally - ;; used after they've been registered, but we might as well - ;; record them. Setting the parent here is a convenience. - (set-char-table-parent safe table) - (coding-system-put coding-system 'translation-table-for-encode table))) - (add-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup))) - -(defun ucs-fragment-8859 (for-encode for-decode) - "Undo the unification done by `ucs-unify-8859'. -With prefix arg, undo unification on encoding only, i.e. don't undo -unification on input operations." - (when for-decode - ;; Don't Unify 8859 on decoding. - ;; For non-CCL coding systems (e.g. iso-latin-2). - (set-char-table-parent standard-translation-table-for-decode nil) - ;; For CCL coding systems other than mule-utf-* (e.g. cyrillic-koi8). - (define-translation-table 'ucs-translation-table-for-decode) - (setq-default translation-table-for-input nil)) - - (when for-encode - ;; Disable mule-utf-* encoding for all characters in - ;; ucs-mule-to-mule-unicode except what was originally supported - ;; and what is translated by utf-translation-table-for-decode when - ;; `utf-fragment-on-decoding' is non-nil. - (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le - mule-utf-16be-with-signature - mule-utf-16le-with-signature)) - (safe (coding-system-get 'mule-utf-8 'safe-chars))) - (dolist (coding coding-list) - (set-char-table-parent (coding-system-get coding 'safe-chars) nil)) - (if (not utf-fragment-on-decoding) - (define-translation-table 'utf-translation-table-for-encode) - (define-translation-table 'utf-translation-table-for-encode - utf-defragmentation-table))) - - ;; For each charset, remove the parent of `safe-chars' property of - ;; the corresponding coding system. - (dolist (n '(1 2 3 4 5 7 8 9 14 15)) - (let* ((coding-system - (coding-system-base (intern (format "iso-8859-%d" n)))) - (safe (coding-system-get coding-system 'safe-chars))) - (if (char-table-parent safe) - (set-char-table-parent safe nil)) - (coding-system-put coding-system 'translation-table-for-encode nil))) - (remove-hook 'minibuffer-setup-hook 'ucs-minibuffer-setup))) - -(defun ucs-insert (arg) - "Insert the Emacs character representation of the given Unicode. -Interactively, prompts for a hex string giving the code." - (interactive "sUnicode (hex): ") - (or (integerp arg) - (setq arg (string-to-number arg 16))) - (let ((c (decode-char 'ucs arg))) - (if c - (insert c) - (if (or (< arg 0) (> arg #x10FFFF)) - (error "Not a Unicode character code: 0x%X" arg) - (error "Character U+%04X is not yet supported" arg))))) - -;;; Dealing with non-8859 character sets. - -;; We only set up translation on encoding to utf-8. Also translation -;; tables ucs-CS-encode-table are constructed for some coding systems -;; CS which could be used as `translation-table-for-encode', currently -;; for indian-is13194, lao, thai, tibetan-iso-8bit and -;; vietnamese-viscii. - -;; The alists here cover both coding systems (external charsets), like -;; VISCII, and individual Emacs charsets, like `ipa'. -(let ((vietnamese-viscii - '((?,1!(B . ?$,1o/(B) - (?,1"(B . ?$,1o1(B) - (?,1#(B . ?$,1o7(B) - (?,1$(B . ?$,1o%(B) - (?,1%(B . ?$,1o'(B) - (?,1&(B . ?$,1o)(B) - (?,1'(B . ?$,1o-(B) - (?,1((B . ?$,1o=(B) - (?,1)(B . ?$,1o9(B) - (?,1*(B . ?$,1o?(B) - (?,1+(B . ?$,1oA(B) - (?,1,(B . ?$,1oC(B) - (?,1-(B . ?$,1oE(B) - (?,1.(B . ?$,1oG(B) - (?,1/(B . ?$,1oQ(B) - (?,10(B . ?$,1oS(B) - (?,11(B . ?$,1oU(B) - (?,12(B . ?$,1oW(B) - (?,15(B . ?$,1oY(B) - (?,16(B . ?$,1o](B) - (?,17(B . ?$,1o_(B) - (?,18(B . ?$,1oK(B) - (?,1=(B . ?$,1!a(B) - (?,1>(B . ?$,1o[(B) - (?,1F(B . ?$,1o3(B) - (?,1G(B . ?$,1o5(B) - (?,1O(B . ?$,1os(B) - (?,1Q(B . ?$,1oi(B) - (?,1U(B . ?$,1o!(B) - (?,1V(B . ?$,1ow(B) - (?,1W(B . ?$,1ok(B) - (?,1X(B . ?$,1om(B) - (?,1[(B . ?$,1oy(B) - (?,1\(B . ?$,1ou(B) - (?,1^(B . ?$,1oa(B) - (?,1_(B . ?$,1!p(B) - (?,1`(B . ?,A`(B) - (?,1a(B . ?,Aa(B) - (?,1b(B . ?,Ab(B) - (?,1c(B . ?,Ac(B) - (?,1d(B . ?$,1o#(B) - (?,1e(B . ?$,1 #(B) - (?,1f(B . ?$,1oo(B) - (?,1g(B . ?$,1o+(B) - (?,1h(B . ?,Ah(B) - (?,1i(B . ?,Ai(B) - (?,1j(B . ?,Aj(B) - (?,1k(B . ?$,1o;(B) - (?,1l(B . ?,Al(B) - (?,1m(B . ?,Am(B) - (?,1n(B . ?$,1 I(B) - (?,1o(B . ?$,1oI(B) - (?,1p(B . ?$,1 1(B) - (?,1q(B . ?$,1oq(B) - (?,1r(B . ?,Ar(B) - (?,1s(B . ?,As(B) - (?,1t(B . ?,At(B) - (?,1u(B . ?,Au(B) - (?,1v(B . ?$,1oO(B) - (?,1w(B . ?$,1oM(B) - (?,1x(B . ?$,1oe(B) - (?,1y(B . ?,Ay(B) - (?,1z(B . ?,Az(B) - (?,1{(B . ?$,1!)(B) - (?,1|(B . ?$,1og(B) - (?,1}(B . ?,A}(B) - (?,1~(B . ?$,1oc(B) - - (?,2!(B . ?$,1o.(B) - (?,2"(B . ?$,1o0(B) - (?,2#(B . ?$,1o6(B) - (?,2$(B . ?$,1o$(B) - (?,2%(B . ?$,1o&(B) - (?,2&(B . ?$,1o((B) - (?,2'(B . ?$,1o,(B) - (?,2((B . ?$,1o<(B) - (?,2)(B . ?$,1o8(B) - (?,2*(B . ?$,1o>(B) - (?,2+(B . ?$,1o@(B) - (?,2,(B . ?$,1oB(B) - (?,2-(B . ?$,1oD(B) - (?,2.(B . ?$,1oF(B) - (?,2/(B . ?$,1oP(B) - (?,20(B . ?$,1oR(B) - (?,21(B . ?$,1oT(B) - (?,22(B . ?$,1oV(B) - (?,25(B . ?$,1oX(B) - (?,26(B . ?$,1o\(B) - (?,27(B . ?$,1o^(B) - (?,28(B . ?$,1oJ(B) - (?,2=(B . ?$,1!`(B) - (?,2>(B . ?$,1oZ(B) - (?,2F(B . ?$,1o2(B) - (?,2G(B . ?$,1o4(B) - (?,2O(B . ?$,1or(B) - (?,2Q(B . ?$,1oh(B) - (?,2U(B . ?$,1o (B) - (?,2V(B . ?$,1ov(B) - (?,2W(B . ?$,1oj(B) - (?,2X(B . ?$,1ol(B) - (?,2[(B . ?$,1ox(B) - (?,2\(B . ?$,1ot(B) - (?,2^(B . ?$,1o`(B) - (?,2_(B . ?$,1!o(B) - (?,2`(B . ?,A@(B) - (?,2a(B . ?,AA(B) - (?,2b(B . ?,AB(B) - (?,2c(B . ?,AC(B) - (?,2d(B . ?$,1o"(B) - (?,2e(B . ?$,1 "(B) - (?,2f(B . ?$,1on(B) - (?,2g(B . ?$,1o*(B) - (?,2h(B . ?,AH(B) - (?,2i(B . ?,AI(B) - (?,2j(B . ?,AJ(B) - (?,2k(B . ?$,1o:(B) - (?,2l(B . ?,AL(B) - (?,2m(B . ?,AM(B) - (?,2n(B . ?$,1 H(B) - (?,2o(B . ?$,1oH(B) - (?,2p(B . ?$,1 0(B) - (?,2q(B . ?$,1op(B) - (?,2r(B . ?,AR(B) - (?,2s(B . ?,AS(B) - (?,2t(B . ?,AT(B) - (?,2u(B . ?,AU(B) - (?,2v(B . ?$,1oN(B) - (?,2w(B . ?$,1oL(B) - (?,2x(B . ?$,1od(B) - (?,2y(B . ?,AY(B) - (?,2z(B . ?,AZ(B) - (?,2{(B . ?$,1!((B) - (?,2|(B . ?$,1of(B) - (?,2}(B . ?,A](B) - (?,2~(B . ?$,1ob(B))) - - (thai-tis620 - '((?,T!(B . ?$,1Ba(B) - (?,T"(B . ?$,1Bb(B) - (?,T#(B . ?$,1Bc(B) - (?,T$(B . ?$,1Bd(B) - (?,T%(B . ?$,1Be(B) - (?,T&(B . ?$,1Bf(B) - (?,T'(B . ?$,1Bg(B) - (?,T((B . ?$,1Bh(B) - (?,T)(B . ?$,1Bi(B) - (?,T*(B . ?$,1Bj(B) - (?,T+(B . ?$,1Bk(B) - (?,T,(B . ?$,1Bl(B) - (?,T-(B . ?$,1Bm(B) - (?,T.(B . ?$,1Bn(B) - (?,T/(B . ?$,1Bo(B) - (?,T0(B . ?$,1Bp(B) - (?,T1(B . ?$,1Bq(B) - (?,T2(B . ?$,1Br(B) - (?,T3(B . ?$,1Bs(B) - (?,T4(B . ?$,1Bt(B) - (?,T5(B . ?$,1Bu(B) - (?,T6(B . ?$,1Bv(B) - (?,T7(B . ?$,1Bw(B) - (?,T8(B . ?$,1Bx(B) - (?,T9(B . ?$,1By(B) - (?,T:(B . ?$,1Bz(B) - (?,T;(B . ?$,1B{(B) - (?,T<(B . ?$,1B|(B) - (?,T=(B . ?$,1B}(B) - (?,T>(B . ?$,1B~(B) - (?,T?(B . ?$,1B(B) - (?,T@(B . ?$,1C (B) - (?,TA(B . ?$,1C!(B) - (?,TB(B . ?$,1C"(B) - (?,TC(B . ?$,1C#(B) - (?,TD(B . ?$,1C$(B) - (?,TE(B . ?$,1C%(B) - (?,TF(B . ?$,1C&(B) - (?,TG(B . ?$,1C'(B) - (?,TH(B . ?$,1C((B) - (?,TI(B . ?$,1C)(B) - (?,TJ(B . ?$,1C*(B) - (?,TK(B . ?$,1C+(B) - (?,TL(B . ?$,1C,(B) - (?,TM(B . ?$,1C-(B) - (?,TN(B . ?$,1C.(B) - (?,TO(B . ?$,1C/(B) - (?,TP(B . ?$,1C0(B) - (?,TQ(B . ?$,1C1(B) - (?,TR(B . ?$,1C2(B) - (?,TS(B . ?$,1C3(B) - (?,TT(B . ?$,1C4(B) - (?,TU(B . ?$,1C5(B) - (?,TV(B . ?$,1C6(B) - (?,TW(B . ?$,1C7(B) - (?,TX(B . ?$,1C8(B) - (?,TY(B . ?$,1C9(B) - (?,TZ(B . ?$,1C:(B) - (?,T_(B . ?$,1C?(B) - (?,T`(B . ?$,1C@(B) - (?,Ta(B . ?$,1CA(B) - (?,Tb(B . ?$,1CB(B) - (?,Tc(B . ?$,1CC(B) - (?,Td(B . ?$,1CD(B) - (?,Te(B . ?$,1CE(B) - (?,Tf(B . ?$,1CF(B) - (?,Tg(B . ?$,1CG(B) - (?,Th(B . ?$,1CH(B) - (?,Ti(B . ?$,1CI(B) - (?,Tj(B . ?$,1CJ(B) - (?,Tk(B . ?$,1CK(B) - (?,Tl(B . ?$,1CL(B) - (?,Tm(B . ?$,1CM(B) - (?,Tn(B . ?$,1CN(B) - (?,To(B . ?$,1CO(B) - (?,Tp(B . ?$,1CP(B) - (?,Tq(B . ?$,1CQ(B) - (?,Tr(B . ?$,1CR(B) - (?,Ts(B . ?$,1CS(B) - (?,Tt(B . ?$,1CT(B) - (?,Tu(B . ?$,1CU(B) - (?,Tv(B . ?$,1CV(B) - (?,Tw(B . ?$,1CW(B) - (?,Tx(B . ?$,1CX(B) - (?,Ty(B . ?$,1CY(B) - (?,Tz(B . ?$,1CZ(B) - (?,T{(B . ?$,1C[(B))) - - (tibetan-iso-8bit - '((?$(7!0(B . ?$,1E@(B) - (?$(7!1(B . ?$,1EA(B) - (?$(7!2(B . ?$,1EB(B) - (?$(7!3(B . ?$,1EC(B) - (?$(7!4(B . ?$,1ED(B) - (?$(7!5(B . ?$,1EE(B) - (?$(7!6(B . ?$,1EF(B) - (?$(7!7(B . ?$,1EG(B) - (?$(7!8(B . ?$,1EH(B) - (?$(7!9(B . ?$,1EI(B) - (?$(7!:(B . ?$,1EJ(B) - (?$(7!;(B . ?$,1EK(B) - (?$(7!<(B . ?$,1EL(B) - (?$(7!=(B . ?$,1EM(B) - (?$(7!>(B . ?$,1EN(B) - (?$(7!?(B . ?$,1EO(B) - (?$(7!@(B . ?$,1EP(B) - (?$(7!A(B . ?$,1EQ(B) - (?$(7!B(B . ?$,1ER(B) - (?$(7!C(B . ?$,1ES(B) - (?$(7!D(B . ?$,1ET(B) - (?$(7!E(B . ?$,1EU(B) - (?$(7!F(B . ?$,1EV(B) - (?$(7!G(B . ?$,1EW(B) - (?$(7!H(B . ?$,1EX(B) - (?$(7!I(B . ?$,1EY(B) - (?$(7!J(B . ?$,1EZ(B) - (?$(7!K(B . ?$,1E[(B) - (?$(7!L(B . ?$,1E\(B) - (?$(7!M(B . ?$,1E](B) - (?$(7!N(B . ?$,1E^(B) - (?$(7!O(B . ?$,1E_(B) - (?$(7!P(B . ?$,1E`(B) - (?$(7!Q(B . ?$,1Ea(B) - (?$(7!R(B . ?$,1Eb(B) - (?$(7!S(B . ?$,1Ec(B) - (?$(7!T(B . ?$,1Ed(B) - (?$(7!U(B . ?$,1Ee(B) - (?$(7!V(B . ?$,1Ef(B) - (?$(7!W(B . ?$,1Eg(B) - (?$(7!X(B . ?$,1Eh(B) - (?$(7!Y(B . ?$,1Ei(B) - (?$(7!Z(B . ?$,1Ej(B) - (?$(7![(B . ?$,1Ek(B) - (?$(7!\(B . ?$,1El(B) - (?$(7!](B . ?$,1Em(B) - (?$(7!^(B . ?$,1En(B) - (?$(7!_(B . ?$,1Eo(B) - (?$(7!`(B . ?$,1Ep(B) - (?$(7!a(B . ?$,1Eq(B) - (?$(7!b(B . ?$,1Er(B) - (?$(7!c(B . ?$,1Es(B) - (?$(7!d(B . ?$,1Et(B) - (?$(7!e(B . ?$,1Eu(B) - (?$(7!f(B . ?$,1Ev(B) - (?$(7!g(B . ?$,1Ew(B) - (?$(7!h(B . ?$,1Ex(B) - (?$(7!i(B . ?$,1Ey(B) - (?$(7!j(B . ?$,1Ez(B) - (?$(7!k(B . ?$,1E{(B) - (?$(7!l(B . ?$,1E|(B) - (?$(7!m(B . ?$,1E}(B) - (?$(7!n(B . ?$,1E~(B) - (?$(7!o(B . ?$,1E(B) - (?$(7"!(B . ?$,1F (B) - (?$(7""(B . ?$,1F!(B) - (?$(7"#(B . ?$,1F"(B) - (?$(7"$(B . ?$,1F#(B) - (?$(7"%(B . ?$,1F$(B) - (?$(7"&(B . ?$,1F%(B) - (?$(7"'(B . ?$,1F&(B) - (?$(7"((B . ?$,1F'(B) - (?$(7"*(B . ?$,1F)(B) - (?$(7"+(B . ?$,1F*(B) - (?$(7",(B . ?$,1F+(B) - (?$(7"-(B . ?$,1F,(B) - (?$(7".(B . ?$,1F-(B) - (?$(7"/(B . ?$,1F.(B) - (?$(7"0(B . ?$,1F/(B) - (?$(7"1(B . ?$,1F0(B) - (?$(7"2(B . ?$,1F1(B) - (?$(7"3(B . ?$,1F2(B) - (?$(7"4(B . ?$,1F3(B) - (?$(7"5(B . ?$,1F4(B) - (?$(7"6(B . ?$,1F5(B) - (?$(7"7(B . ?$,1F6(B) - (?$(7"8(B . ?$,1F7(B) - (?$(7"9(B . ?$,1F8(B) - (?$(7":(B . ?$,1F9(B) - (?$(7";(B . ?$,1F:(B) - (?$(7"<(B . ?$,1F;(B) - (?$(7"=(B . ?$,1F<(B) - (?$(7">(B . ?$,1F=(B) - (?$(7"?(B . ?$,1F>(B) - (?$(7"@(B . ?$,1F?(B) - (?$(7"A(B . ?$,1F@(B) - (?$(7"B(B . ?$,1FA(B) - (?$(7"C(B . ?$,1FB(B) - (?$(7"D(B . ?$,1FC(B) - (?$(7"E(B . ?$,1FD(B) - (?$(7"F(B . ?$,1FE(B) - (?$(7"G(B . ?$,1FF(B) - (?$(7"H(B . ?$,1FG(B) - (?$(7"I(B . ?$,1FH(B) - (?$(7"J(B . ?$,1FI(B) - (?$(7"K(B . ?$,1FJ(B) - (?$(7"R(B . ?$,1FQ(B) - (?$(7"S(B . ?$,1FR(B) - (?$(7"T(B . ?$,1FS(B) - (?$(7"U(B . ?$,1FT(B) - (?$(7"V(B . ?$,1FU(B) - (?$(7"W(B . ?$,1FV(B) - (?$(7"X(B . ?$,1FW(B) - (?$(7"Y(B . ?$,1FX(B) - (?$(7"Z(B . ?$,1FY(B) - (?$(7"[(B . ?$,1FZ(B) - (?$(7"\(B . ?$,1F[(B) - (?$(7"](B . ?$,1F\(B) - (?$(7"^(B . ?$,1F](B) - (?$(7"_(B . ?$,1F^(B) - (?$(7"`(B . ?$,1F_(B) - (?$(7"a(B . ?$,1F`(B) - (?$(7"b(B . ?$,1Fa(B) - (?$(7"c(B . ?$,1Fb(B) - (?$(7"d(B . ?$,1Fc(B) - (?$(7"e(B . ?$,1Fd(B) - (?$(7"f(B . ?$,1Fe(B) - (?$(7"g(B . ?$,1Ff(B) - (?$(7"h(B . ?$,1Fg(B) - (?$(7"i(B . ?$,1Fh(B) - (?$(7"j(B . ?$,1Fi(B) - (?$(7"k(B . ?$,1Fj(B) - (?$(7"l(B . ?$,1Fk(B) - (?$(7#!(B . ?$,1Fp(B) - (?$(7#"(B . ?$,1Fq(B) - (?$(7##(B . ?$,1Fr(B) - (?$(7#$(B . ?$,1Fs(B) - (?$(7#%(B . ?$,1Ft(B) - (?$(7#&(B . ?$,1Fu(B) - (?$(7#'(B . ?$,1Fv(B) - (?$(7#((B . ?$,1Fw(B) - (?$(7#*(B . ?$,1Fy(B) - (?$(7#+(B . ?$,1Fz(B) - (?$(7#,(B . ?$,1F{(B) - (?$(7#-(B . ?$,1F|(B) - (?$(7#.(B . ?$,1F}(B) - (?$(7#/(B . ?$,1F~(B) - (?$(7#0(B . ?$,1F(B) - (?$(7#1(B . ?$,1G (B) - (?$(7#2(B . ?$,1G!(B) - (?$(7#3(B . ?$,1G"(B) - (?$(7#4(B . ?$,1G#(B) - (?$(7#5(B . ?$,1G$(B) - (?$(7#6(B . ?$,1G%(B) - (?$(7#7(B . ?$,1G&(B) - (?$(7#8(B . ?$,1G'(B) - (?$(7#9(B . ?$,1G((B) - (?$(7#:(B . ?$,1G)(B) - (?$(7#;(B . ?$,1G*(B) - (?$(7#<(B . ?$,1G+(B) - (?$(7#=(B . ?$,1G,(B) - (?$(7#>(B . ?$,1G-(B) - (?$(7#?(B . ?$,1G.(B) - (?$(7#@(B . ?$,1G/(B) - (?$(7#A(B . ?$,1G0(B) - (?$(7#B(B . ?$,1G1(B) - (?$(7#C(B . ?$,1G2(B) - (?$(7#D(B . ?$,1G3(B) - (?$(7#E(B . ?$,1G4(B) - (?$(7#F(B . ?$,1G5(B) - (?$(7#G(B . ?$,1G6(B) - (?$(7#H(B . ?$,1G7(B) - (?$(7#I(B . ?$,1G8(B) - (?$(7#J(B . ?$,1G9(B) - (?$(7#K(B . ?$,1G:(B) - (?$(7#L(B . ?$,1G;(B) - (?$(7#M(B . ?$,1G<(B) - (?$(7#O(B . ?$,1G>(B) - (?$(7#P(B . ?$,1G?(B) - (?$(7#Q(B . ?$,1G@(B) - (?$(7#R(B . ?$,1GA(B) - (?$(7#S(B . ?$,1GB(B) - (?$(7#T(B . ?$,1GC(B) - (?$(7#U(B . ?$,1GD(B) - (?$(7#V(B . ?$,1GE(B) - (?$(7#W(B . ?$,1GF(B) - (?$(7#X(B . ?$,1GG(B) - (?$(7#Y(B . ?$,1GH(B) - (?$(7#Z(B . ?$,1GI(B) - (?$(7#[(B . ?$,1GJ(B) - (?$(7#\(B . ?$,1GK(B) - (?$(7#](B . ?$,1GL(B) - (?$(7#`(B . ?$,1GO(B))) - - (ipa - '((?,0 (B . ?i) - (?,0!(B . ?$,1#j(B) - (?,0"(B . ?e) - (?,0#(B . ?$,1#[(B) - (?,0$(B . ?,Af(B) - (?,0%(B . ?a) - (?,0&(B . ?$,1#h(B) - (?,0'(B . ?$,1#Y(B) - (?,0((B . ?$,1#P(B) - (?,0)(B . ?$,1#o(B) - (?,0*(B . ?$,1#d(B) - (?,0+(B . ?$,1$,(B) - (?,0,(B . ?$,1#Q(B) - (?,0-(B . ?y) - (?,0.(B . ?$,1$/(B) - (?,0/(B . ?,Ax(B) - (?,00(B . ?$,1 s(B) - (?,01(B . ?$,1#v(B) - (?,02(B . ?$,1$)(B) - (?,03(B . ?$,1#u(B) - (?,04(B . ?u) - (?,05(B . ?$,1$*(B) - (?,06(B . ?o) - (?,07(B . ?$,1#T(B) - (?,08(B . ?$,1#R(B) - (?,0:(B . ?$,1#Z(B) - (?,0@(B . ?p) - (?,0A(B . ?b) - (?,0B(B . ?t) - (?,0C(B . ?d) - (?,0D(B . ?k) - (?,0E(B . ?g) - (?,0F(B . ?f) - (?,0G(B . ?v) - (?,0H(B . ?$,1'8(B) - (?,0I(B . ?,Ap(B) - (?,0J(B . ?s) - (?,0K(B . ?z) - (?,0L(B . ?$,1$#(B) - (?,0M(B . ?$,1$2(B) - (?,0N(B . ?,Ag(B) - (?,0O(B . ?x) - (?,0P(B . ?$,1$!(B) - (?,0Q(B . ?h) - (?,0R(B . ?m) - (?,0S(B . ?n) - (?,0T(B . ?$,1#r(B) - (?,0U(B . ?$,1 k(B) - (?,0V(B . ?r) - (?,0W(B . ?$,1$ (B) - (?,0X(B . ?$,1#y(B) - (?,0Y(B . ?j) - (?,0Z(B . ?l) - (?,0[(B . ?$,1$.(B) - (?,0\(B . ?$,1$?(B) - (?,0](B . ?$,1#e(B) - (?,0^(B . ?w) - (?,0_(B . ?$,1$-(B) - (?,0p(B . ?$,1$h(B) - (?,0q(B . ?$,1$l(B) - (?,0r(B . ?$,1$p(B))) - - (ethiopic - '((?$(3!!(B . ?$,1M@(B) - (?$(3!"(B . ?$,1MA(B) - (?$(3!#(B . ?$,1MB(B) - (?$(3!$(B . ?$,1MC(B) - (?$(3!%(B . ?$,1MD(B) - (?$(3!&(B . ?$,1ME(B) - (?$(3!'(B . ?$,1MF(B) - (?$(3!)(B . ?$,1MH(B) - (?$(3!*(B . ?$,1MI(B) - (?$(3!+(B . ?$,1MJ(B) - (?$(3!,(B . ?$,1MK(B) - (?$(3!-(B . ?$,1ML(B) - (?$(3!.(B . ?$,1MM(B) - (?$(3!/(B . ?$,1MN(B) - (?$(3!0(B . ?$,1MO(B) - (?$(3!1(B . ?$,1MP(B) - (?$(3!2(B . ?$,1MQ(B) - (?$(3!3(B . ?$,1MR(B) - (?$(3!4(B . ?$,1MS(B) - (?$(3!5(B . ?$,1MT(B) - (?$(3!6(B . ?$,1MU(B) - (?$(3!7(B . ?$,1MV(B) - (?$(3!8(B . ?$,1MW(B) - (?$(3!9(B . ?$,1MX(B) - (?$(3!:(B . ?$,1MY(B) - (?$(3!;(B . ?$,1MZ(B) - (?$(3!<(B . ?$,1M[(B) - (?$(3!=(B . ?$,1M\(B) - (?$(3!>(B . ?$,1M](B) - (?$(3!?(B . ?$,1M^(B) - (?$(3!@(B . ?$,1M_(B) - (?$(3!A(B . ?$,1M`(B) - (?$(3!B(B . ?$,1Ma(B) - (?$(3!C(B . ?$,1Mb(B) - (?$(3!D(B . ?$,1Mc(B) - (?$(3!E(B . ?$,1Md(B) - (?$(3!F(B . ?$,1Me(B) - (?$(3!G(B . ?$,1Mf(B) - (?$(3!H(B . ?$,1Mg(B) - (?$(3!I(B . ?$,1Mh(B) - (?$(3!J(B . ?$,1Mi(B) - (?$(3!K(B . ?$,1Mj(B) - (?$(3!L(B . ?$,1Mk(B) - (?$(3!M(B . ?$,1Ml(B) - (?$(3!N(B . ?$,1Mm(B) - (?$(3!O(B . ?$,1Mn(B) - (?$(3!P(B . ?$,1Mo(B) - (?$(3!Q(B . ?$,1Mp(B) - (?$(3!R(B . ?$,1Mq(B) - (?$(3!S(B . ?$,1Mr(B) - (?$(3!T(B . ?$,1Ms(B) - (?$(3!U(B . ?$,1Mt(B) - (?$(3!V(B . ?$,1Mu(B) - (?$(3!W(B . ?$,1Mv(B) - (?$(3!X(B . ?$,1Mw(B) - (?$(3!Y(B . ?$,1Mx(B) - (?$(3!Z(B . ?$,1My(B) - (?$(3![(B . ?$,1Mz(B) - (?$(3!\(B . ?$,1M{(B) - (?$(3!](B . ?$,1M|(B) - (?$(3!^(B . ?$,1M}(B) - (?$(3!_(B . ?$,1M~(B) - (?$(3!`(B . ?$,1M(B) - (?$(3!a(B . ?$,1N (B) - (?$(3!b(B . ?$,1N!(B) - (?$(3!c(B . ?$,1N"(B) - (?$(3!d(B . ?$,1N#(B) - (?$(3!e(B . ?$,1N$(B) - (?$(3!f(B . ?$,1N%(B) - (?$(3!g(B . ?$,1N&(B) - (?$(3!i(B . ?$,1N((B) - (?$(3!k(B . ?$,1N*(B) - (?$(3!l(B . ?$,1N+(B) - (?$(3!m(B . ?$,1N,(B) - (?$(3!n(B . ?$,1N-(B) - (?$(3!q(B . ?$,1N0(B) - (?$(3!r(B . ?$,1N1(B) - (?$(3!s(B . ?$,1N2(B) - (?$(3!t(B . ?$,1N3(B) - (?$(3!u(B . ?$,1N4(B) - (?$(3!v(B . ?$,1N5(B) - (?$(3!w(B . ?$,1N6(B) - (?$(3!y(B . ?$,1N8(B) - (?$(3!{(B . ?$,1N:(B) - (?$(3!|(B . ?$,1N;(B) - (?$(3!}(B . ?$,1N<(B) - (?$(3!~(B . ?$,1N=(B) - (?$(3"#(B . ?$,1N@(B) - (?$(3"$(B . ?$,1NA(B) - (?$(3"%(B . ?$,1NB(B) - (?$(3"&(B . ?$,1NC(B) - (?$(3"'(B . ?$,1ND(B) - (?$(3"((B . ?$,1NE(B) - (?$(3")(B . ?$,1NF(B) - (?$(3"*(B . ?$,1NG(B) - (?$(3"+(B . ?$,1NH(B) - (?$(3",(B . ?$,1NI(B) - (?$(3"-(B . ?$,1NJ(B) - (?$(3".(B . ?$,1NK(B) - (?$(3"/(B . ?$,1NL(B) - (?$(3"0(B . ?$,1NM(B) - (?$(3"1(B . ?$,1NN(B) - (?$(3"2(B . ?$,1NO(B) - (?$(3"3(B . ?$,1NP(B) - (?$(3"4(B . ?$,1NQ(B) - (?$(3"5(B . ?$,1NR(B) - (?$(3"6(B . ?$,1NS(B) - (?$(3"7(B . ?$,1NT(B) - (?$(3"8(B . ?$,1NU(B) - (?$(3"9(B . ?$,1NV(B) - (?$(3":(B . ?$,1NW(B) - (?$(3";(B . ?$,1NX(B) - (?$(3"<(B . ?$,1NY(B) - (?$(3"=(B . ?$,1NZ(B) - (?$(3">(B . ?$,1N[(B) - (?$(3"?(B . ?$,1N\(B) - (?$(3"@(B . ?$,1N](B) - (?$(3"A(B . ?$,1N^(B) - (?$(3"B(B . ?$,1N_(B) - (?$(3"C(B . ?$,1N`(B) - (?$(3"D(B . ?$,1Na(B) - (?$(3"E(B . ?$,1Nb(B) - (?$(3"F(B . ?$,1Nc(B) - (?$(3"G(B . ?$,1Nd(B) - (?$(3"H(B . ?$,1Ne(B) - (?$(3"I(B . ?$,1Nf(B) - (?$(3"K(B . ?$,1Nh(B) - (?$(3"M(B . ?$,1Nj(B) - (?$(3"N(B . ?$,1Nk(B) - (?$(3"O(B . ?$,1Nl(B) - (?$(3"P(B . ?$,1Nm(B) - (?$(3"S(B . ?$,1Np(B) - (?$(3"T(B . ?$,1Nq(B) - (?$(3"U(B . ?$,1Nr(B) - (?$(3"V(B . ?$,1Ns(B) - (?$(3"W(B . ?$,1Nt(B) - (?$(3"X(B . ?$,1Nu(B) - (?$(3"Y(B . ?$,1Nv(B) - (?$(3"Z(B . ?$,1Nw(B) - (?$(3"[(B . ?$,1Nx(B) - (?$(3"\(B . ?$,1Ny(B) - (?$(3"](B . ?$,1Nz(B) - (?$(3"^(B . ?$,1N{(B) - (?$(3"_(B . ?$,1N|(B) - (?$(3"`(B . ?$,1N}(B) - (?$(3"a(B . ?$,1N~(B) - (?$(3"b(B . ?$,1N(B) - (?$(3"c(B . ?$,1O (B) - (?$(3"d(B . ?$,1O!(B) - (?$(3"e(B . ?$,1O"(B) - (?$(3"f(B . ?$,1O#(B) - (?$(3"g(B . ?$,1O$(B) - (?$(3"h(B . ?$,1O%(B) - (?$(3"i(B . ?$,1O&(B) - (?$(3"j(B . ?$,1O'(B) - (?$(3"k(B . ?$,1O((B) - (?$(3"l(B . ?$,1O)(B) - (?$(3"m(B . ?$,1O*(B) - (?$(3"n(B . ?$,1O+(B) - (?$(3"o(B . ?$,1O,(B) - (?$(3"p(B . ?$,1O-(B) - (?$(3"q(B . ?$,1O.(B) - (?$(3"s(B . ?$,1O0(B) - (?$(3"u(B . ?$,1O2(B) - (?$(3"v(B . ?$,1O3(B) - (?$(3"w(B . ?$,1O4(B) - (?$(3"x(B . ?$,1O5(B) - (?$(3"{(B . ?$,1O8(B) - (?$(3"|(B . ?$,1O9(B) - (?$(3"}(B . ?$,1O:(B) - (?$(3"~(B . ?$,1O;(B) - (?$(3#!(B . ?$,1O<(B) - (?$(3#"(B . ?$,1O=(B) - (?$(3##(B . ?$,1O>(B) - (?$(3#%(B . ?$,1O@(B) - (?$(3#'(B . ?$,1OB(B) - (?$(3#((B . ?$,1OC(B) - (?$(3#)(B . ?$,1OD(B) - (?$(3#*(B . ?$,1OE(B) - (?$(3#-(B . ?$,1OH(B) - (?$(3#.(B . ?$,1OI(B) - (?$(3#/(B . ?$,1OJ(B) - (?$(3#0(B . ?$,1OK(B) - (?$(3#1(B . ?$,1OL(B) - (?$(3#2(B . ?$,1OM(B) - (?$(3#3(B . ?$,1ON(B) - (?$(3#5(B . ?$,1OP(B) - (?$(3#6(B . ?$,1OQ(B) - (?$(3#7(B . ?$,1OR(B) - (?$(3#8(B . ?$,1OS(B) - (?$(3#9(B . ?$,1OT(B) - (?$(3#:(B . ?$,1OU(B) - (?$(3#;(B . ?$,1OV(B) - (?$(3#=(B . ?$,1OX(B) - (?$(3#>(B . ?$,1OY(B) - (?$(3#?(B . ?$,1OZ(B) - (?$(3#@(B . ?$,1O[(B) - (?$(3#A(B . ?$,1O\(B) - (?$(3#B(B . ?$,1O](B) - (?$(3#C(B . ?$,1O^(B) - (?$(3#D(B . ?$,1O_(B) - (?$(3#E(B . ?$,1O`(B) - (?$(3#F(B . ?$,1Oa(B) - (?$(3#G(B . ?$,1Ob(B) - (?$(3#H(B . ?$,1Oc(B) - (?$(3#I(B . ?$,1Od(B) - (?$(3#J(B . ?$,1Oe(B) - (?$(3#K(B . ?$,1Of(B) - (?$(3#L(B . ?$,1Og(B) - (?$(3#M(B . ?$,1Oh(B) - (?$(3#N(B . ?$,1Oi(B) - (?$(3#O(B . ?$,1Oj(B) - (?$(3#P(B . ?$,1Ok(B) - (?$(3#Q(B . ?$,1Ol(B) - (?$(3#R(B . ?$,1Om(B) - (?$(3#S(B . ?$,1On(B) - (?$(3#U(B . ?$,1Op(B) - (?$(3#V(B . ?$,1Oq(B) - (?$(3#W(B . ?$,1Or(B) - (?$(3#X(B . ?$,1Os(B) - (?$(3#Y(B . ?$,1Ot(B) - (?$(3#Z(B . ?$,1Ou(B) - (?$(3#[(B . ?$,1Ov(B) - (?$(3#\(B . ?$,1Ow(B) - (?$(3#](B . ?$,1Ox(B) - (?$(3#^(B . ?$,1Oy(B) - (?$(3#_(B . ?$,1Oz(B) - (?$(3#`(B . ?$,1O{(B) - (?$(3#a(B . ?$,1O|(B) - (?$(3#b(B . ?$,1O}(B) - (?$(3#c(B . ?$,1O~(B) - (?$(3#d(B . ?$,1O(B) - (?$(3#e(B . ?$,1P (B) - (?$(3#f(B . ?$,1P!(B) - (?$(3#g(B . ?$,1P"(B) - (?$(3#h(B . ?$,1P#(B) - (?$(3#i(B . ?$,1P$(B) - (?$(3#j(B . ?$,1P%(B) - (?$(3#k(B . ?$,1P&(B) - (?$(3#l(B . ?$,1P'(B) - (?$(3#m(B . ?$,1P((B) - (?$(3#n(B . ?$,1P)(B) - (?$(3#o(B . ?$,1P*(B) - (?$(3#p(B . ?$,1P+(B) - (?$(3#q(B . ?$,1P,(B) - (?$(3#r(B . ?$,1P-(B) - (?$(3#s(B . ?$,1P.(B) - (?$(3#u(B . ?$,1P0(B) - (?$(3#w(B . ?$,1P2(B) - (?$(3#x(B . ?$,1P3(B) - (?$(3#y(B . ?$,1P4(B) - (?$(3#z(B . ?$,1P5(B) - (?$(3#}(B . ?$,1P8(B) - (?$(3#~(B . ?$,1P9(B) - (?$(3$!(B . ?$,1P:(B) - (?$(3$"(B . ?$,1P;(B) - (?$(3$#(B . ?$,1P<(B) - (?$(3$$(B . ?$,1P=(B) - (?$(3$%(B . ?$,1P>(B) - (?$(3$'(B . ?$,1P@(B) - (?$(3$((B . ?$,1PA(B) - (?$(3$)(B . ?$,1PB(B) - (?$(3$*(B . ?$,1PC(B) - (?$(3$+(B . ?$,1PD(B) - (?$(3$,(B . ?$,1PE(B) - (?$(3$-(B . ?$,1PF(B) - (?$(3$.(B . ?$,1PG(B) - (?$(3$/(B . ?$,1PH(B) - (?$(3$0(B . ?$,1PI(B) - (?$(3$1(B . ?$,1PJ(B) - (?$(3$2(B . ?$,1PK(B) - (?$(3$3(B . ?$,1PL(B) - (?$(3$4(B . ?$,1PM(B) - (?$(3$5(B . ?$,1PN(B) - (?$(3$6(B . ?$,1PO(B) - (?$(3$7(B . ?$,1PP(B) - (?$(3$8(B . ?$,1PQ(B) - (?$(3$9(B . ?$,1PR(B) - (?$(3$:(B . ?$,1PS(B) - (?$(3$;(B . ?$,1PT(B) - (?$(3$<(B . ?$,1PU(B) - (?$(3$=(B . ?$,1PV(B) - (?$(3$>(B . ?$,1PW(B) - (?$(3$?(B . ?$,1PX(B) - (?$(3$@(B . ?$,1PY(B) - (?$(3$A(B . ?$,1PZ(B) - (?$(3$B(B . ?$,1P[(B) - (?$(3$C(B . ?$,1P\(B) - (?$(3$D(B . ?$,1P](B) - (?$(3$E(B . ?$,1P^(B) - (?$(3$F(B . ?$,1P_(B) - (?$(3$G(B . ?$,1P`(B) - (?$(3$H(B . ?$,1Pa(B) - (?$(3$I(B . ?$,1Pb(B) - (?$(3$J(B . ?$,1Pc(B) - (?$(3$K(B . ?$,1Pd(B) - (?$(3$L(B . ?$,1Pe(B) - (?$(3$M(B . ?$,1Pf(B) - (?$(3$O(B . ?$,1Ph(B) - (?$(3$P(B . ?$,1Pi(B) - (?$(3$Q(B . ?$,1Pj(B) - (?$(3$R(B . ?$,1Pk(B) - (?$(3$S(B . ?$,1Pl(B) - (?$(3$T(B . ?$,1Pm(B) - (?$(3$U(B . ?$,1Pn(B) - (?$(3$V(B . ?$,1Po(B) - (?$(3$W(B . ?$,1Pp(B) - (?$(3$X(B . ?$,1Pq(B) - (?$(3$Y(B . ?$,1Pr(B) - (?$(3$Z(B . ?$,1Ps(B) - (?$(3$[(B . ?$,1Pt(B) - (?$(3$\(B . ?$,1Pu(B) - (?$(3$](B . ?$,1Pv(B) - (?$(3$^(B . ?$,1Pw(B) - (?$(3$_(B . ?$,1Px(B) - (?$(3$`(B . ?$,1Py(B) - (?$(3$a(B . ?$,1Pz(B) - (?$(3$h(B . ?$,1Q!(B) - (?$(3$i(B . ?$,1Q"(B) - (?$(3$j(B . ?$,1Q#(B) - (?$(3$k(B . ?$,1Q$(B) - (?$(3$l(B . ?$,1Q%(B) - (?$(3$m(B . ?$,1Q&(B) - (?$(3$n(B . ?$,1Q'(B) - (?$(3$o(B . ?$,1Q((B) - (?$(3$p(B . ?$,1Q)(B) - (?$(3$q(B . ?$,1Q*(B) - (?$(3$r(B . ?$,1Q+(B) - (?$(3$s(B . ?$,1Q,(B) - (?$(3$t(B . ?$,1Q-(B) - (?$(3$u(B . ?$,1Q.(B) - (?$(3$v(B . ?$,1Q/(B) - (?$(3$w(B . ?$,1Q0(B) - (?$(3$x(B . ?$,1Q1(B) - (?$(3$y(B . ?$,1Q2(B) - (?$(3$z(B . ?$,1Q3(B) - (?$(3${(B . ?$,1Q4(B) - (?$(3$|(B . ?$,1Q5(B) - (?$(3$}(B . ?$,1Q6(B) - (?$(3$~(B . ?$,1Q7(B) - (?$(3%!(B . ?$,1Q8(B) - (?$(3%"(B . ?$,1Q9(B) - (?$(3%#(B . ?$,1Q:(B) - (?$(3%$(B . ?$,1Q;(B) - (?$(3%%(B . ?$,1Q<(B))) - - (indian-is13194 - '((?(5!(B . ?$,15A(B) - (?(5"(B . ?$,15B(B) - (?(5#(B . ?$,15C(B) - (?(5$(B . ?$,15E(B) - (?(5%(B . ?$,15F(B) - (?(5&(B . ?$,15G(B) - (?(5'(B . ?$,15H(B) - (?(5((B . ?$,15I(B) - (?(5)(B . ?$,15J(B) - (?(5*(B . ?$,15K(B) - (?(5+(B . ?$,15N(B) - (?(5,(B . ?$,15O(B) - (?(5-(B . ?$,15P(B) - (?(5.(B . ?$,15M(B) - (?(5/(B . ?$,15R(B) - (?(50(B . ?$,15S(B) - (?(51(B . ?$,15T(B) - (?(52(B . ?$,15M(B) - (?(53(B . ?$,15U(B) - (?(54(B . ?$,15V(B) - (?(55(B . ?$,15W(B) - (?(56(B . ?$,15X(B) - (?(57(B . ?$,15Y(B) - (?(58(B . ?$,15Z(B) - (?(59(B . ?$,15[(B) - (?(5:(B . ?$,15\(B) - (?(5;(B . ?$,15](B) - (?(5<(B . ?$,15^(B) - (?(5=(B . ?$,15_(B) - (?(5>(B . ?$,15`(B) - (?(5?(B . ?$,15a(B) - (?(5@(B . ?$,15b(B) - (?(5A(B . ?$,15c(B) - (?(5B(B . ?$,15d(B) - (?(5C(B . ?$,15e(B) - (?(5D(B . ?$,15f(B) - (?(5E(B . ?$,15g(B) - (?(5F(B . ?$,15h(B) - (?(5G(B . ?$,15i(B) - (?(5H(B . ?$,15j(B) - (?(5I(B . ?$,15k(B) - (?(5J(B . ?$,15l(B) - (?(5K(B . ?$,15m(B) - (?(5L(B . ?$,15n(B) - (?(5M(B . ?$,15o(B) - (?(5N(B . ?$,16?(B) - (?(5O(B . ?$,15p(B) - (?(5P(B . ?$,15q(B) - (?(5Q(B . ?$,15r(B) - (?(5R(B . ?$,15s(B) - (?(5S(B . ?$,15t(B) - (?(5T(B . ?$,15u(B) - (?(5U(B . ?$,15v(B) - (?(5V(B . ?$,15w(B) - (?(5W(B . ?$,15x(B) - (?(5X(B . ?$,15y(B) - (?(5Z(B . ?$,15~(B) - (?(5[(B . ?$,15(B) - (?(5\(B . ?$,16 (B) - (?(5](B . ?$,16!(B) - (?(5^(B . ?$,16"(B) - (?(5_(B . ?$,16#(B) - (?(5`(B . ?$,16&(B) - (?(5a(B . ?$,16'(B) - (?(5b(B . ?$,16((B) - (?(5c(B . ?$,16%(B) - (?(5d(B . ?$,16*(B) - (?(5e(B . ?$,16+(B) - (?(5f(B . ?$,16,(B) - (?(5g(B . ?$,16)(B) - (?(5h(B . ?$,16-(B) - (?(5i(B . ?$,15|(B) - (?(5j(B . ?$,16D(B) - (?(5q(B . ?$,16F(B) - (?(5r(B . ?$,16G(B) - (?(5s(B . ?$,16H(B) - (?(5t(B . ?$,16I(B) - (?(5u(B . ?$,16J(B) - (?(5v(B . ?$,16K(B) - (?(5w(B . ?$,16L(B) - (?(5x(B . ?$,16M(B) - (?(5y(B . ?$,16N(B) - (?(5z(B . ?$,16O(B))) - - (katakana-jisx0201 - '((?(I!(B . ?$,3sa(B) - (?\(I"(B . ?\$,3sb(B) - (?\(I#(B . ?\$,3sc(B) - (?(I$(B . ?$,3sd(B) - (?(I%(B . ?$,3se(B) - (?(I&(B . ?$,3sf(B) - (?(I'(B . ?$,3sg(B) - (?(I((B . ?$,3sh(B) - (?(I)(B . ?$,3si(B) - (?(I*(B . ?$,3sj(B) - (?(I+(B . ?$,3sk(B) - (?(I,(B . ?$,3sl(B) - (?(I-(B . ?$,3sm(B) - (?(I.(B . ?$,3sn(B) - (?(I/(B . ?$,3so(B) - (?(I0(B . ?$,3sp(B) - (?(I1(B . ?$,3sq(B) - (?(I2(B . ?$,3sr(B) - (?(I3(B . ?$,3ss(B) - (?(I4(B . ?$,3st(B) - (?(I5(B . ?$,3su(B) - (?(I6(B . ?$,3sv(B) - (?(I7(B . ?$,3sw(B) - (?(I8(B . ?$,3sx(B) - (?(I9(B . ?$,3sy(B) - (?(I:(B . ?$,3sz(B) - (?(I;(B . ?$,3s{(B) - (?(I<(B . ?$,3s|(B) - (?(I=(B . ?$,3s}(B) - (?(I>(B . ?$,3s~(B) - (?(I?(B . ?$,3s(B) - (?(I@(B . ?$,3t (B) - (?(IA(B . ?$,3t!(B) - (?(IB(B . ?$,3t"(B) - (?(IC(B . ?$,3t#(B) - (?(ID(B . ?$,3t$(B) - (?(IE(B . ?$,3t%(B) - (?(IF(B . ?$,3t&(B) - (?(IG(B . ?$,3t'(B) - (?(IH(B . ?$,3t((B) - (?(II(B . ?$,3t)(B) - (?(IJ(B . ?$,3t*(B) - (?(IK(B . ?$,3t+(B) - (?(IL(B . ?$,3t,(B) - (?(IM(B . ?$,3t-(B) - (?(IN(B . ?$,3t.(B) - (?(IO(B . ?$,3t/(B) - (?(IP(B . ?$,3t0(B) - (?(IQ(B . ?$,3t1(B) - (?(IR(B . ?$,3t2(B) - (?(IS(B . ?$,3t3(B) - (?(IT(B . ?$,3t4(B) - (?(IU(B . ?$,3t5(B) - (?(IV(B . ?$,3t6(B) - (?(IW(B . ?$,3t7(B) - (?(IX(B . ?$,3t8(B) - (?(IY(B . ?$,3t9(B) - (?(IZ(B . ?$,3t:(B) - (?(I[(B . ?$,3t;(B) - (?(I\(B . ?$,3t<(B) - (?(I](B . ?$,3t=(B) - (?(I^(B . ?$,3t>(B) - (?(I_(B . ?$,3t?(B))) - - (chinese-sisheng - '((?(0!(B . ?$,1 !(B) - (?(0"(B . ?,Aa(B) - (?(0#(B . ?$,1".(B) - (?(0$(B . ?,A`(B) - (?(0%(B . ?$,1 3(B) - (?(0&(B . ?,Ai(B) - (?(0'(B . ?$,1 ;(B) - (?(0((B . ?,Ah(B) - (?(0)(B . ?$,1 K(B) - (?(0*(B . ?,Am(B) - (?(0+(B . ?$,1"0(B) - (?(0,(B . ?,Al(B) - (?(0-(B . ?$,1 m(B) - (?(0.(B . ?,As(B) - (?(0/(B . ?$,1"2(B) - (?(00(B . ?,Ar(B) - (?(01(B . ?$,1!+(B) - (?(02(B . ?,Az(B) - (?(03(B . ?$,1"4(B) - (?(04(B . ?,Ay(B) - (?(05(B . ?$,1"6(B) - (?(06(B . ?$,1"8(B) - (?(07(B . ?$,1":(B) - (?(08(B . ?$,1"<(B) - (?(09(B . ?,A|(B) - (?(0:(B . ?,Aj(B) - (?(0<(B . ?$,1m(B) - (?(0=(B . ?$,1 d(B) - (?(0>(B . ?$,1 h(B) - (?(0?(B . ?$,1"Y(B) - (?(0A(B . ?$,1$i(B) - (?(0B(B . ?$,1$j(B) - (?(0C(B . ?$,1$g(B) - (?(0D(B . ?$,1$k(B) - (?(0E(B . ?$,2@%(B) - (?(0F(B . ?$,2@&(B) - (?(0G(B . ?$,2@'(B) - (?(0H(B . ?$,2@((B) - (?(0I(B . ?$,2@)(B) - (?(0J(B . ?$,2@*(B) - (?(0K(B . ?$,2@+(B) - (?(0L(B . ?$,2@,(B) - (?(0M(B . ?$,2@-(B) - (?(0N(B . ?$,2@.(B) - (?(0O(B . ?$,2@/(B) - (?(0P(B . ?$,2@0(B) - (?(0Q(B . ?$,2@1(B) - (?(0R(B . ?$,2@2(B) - (?(0S(B . ?$,2@3(B) - (?(0T(B . ?$,2@4(B) - (?(0U(B . ?$,2@5(B) - (?(0V(B . ?$,2@6(B) - (?(0W(B . ?$,2@7(B) - (?(0X(B . ?$,2@8(B) - (?(0Y(B . ?$,2@9(B) - (?(0Z(B . ?$,2@:(B) - (?(0[(B . ?$,2@;(B) - (?(0\(B . ?$,2@<(B) - (?(0](B . ?$,2@=(B) - (?(0^(B . ?$,2@>(B) - (?(0_(B . ?$,2@?(B) - (?(0`(B . ?$,2@@(B) - (?(0a(B . ?$,2@A(B) - (?(0b(B . ?$,2@B(B) - (?(0c(B . ?$,2@C(B) - (?(0d(B . ?$,2@D(B) - (?(0e(B . ?$,2@E(B) - (?(0f(B . ?$,2@F(B) - (?(0g(B . ?$,2@G(B) - (?(0h(B . ?$,2@H(B) - (?(0i(B . ?$,2@I(B))) - - (lao - '((?(1!(B . ?$,1D!(B) - (?(1"(B . ?$,1D"(B) - (?(1$(B . ?$,1D$(B) - (?(1'(B . ?$,1D'(B) - (?(1((B . ?$,1D((B) - (?(1*(B . ?$,1D*(B) - (?(1-(B . ?$,1D-(B) - (?(14(B . ?$,1D4(B) - (?(15(B . ?$,1D5(B) - (?(16(B . ?$,1D6(B) - (?(17(B . ?$,1D7(B) - (?(19(B . ?$,1D9(B) - (?(1:(B . ?$,1D:(B) - (?(1;(B . ?$,1D;(B) - (?(1<(B . ?$,1D<(B) - (?(1=(B . ?$,1D=(B) - (?(1>(B . ?$,1D>(B) - (?(1?(B . ?$,1D?(B) - (?(1A(B . ?$,1DA(B) - (?(1B(B . ?$,1DB(B) - (?(1C(B . ?$,1DC(B) - (?(1E(B . ?$,1DE(B) - (?(1G(B . ?$,1DG(B) - (?(1J(B . ?$,1DJ(B) - (?(1K(B . ?$,1DK(B) - (?(1M(B . ?$,1DM(B) - (?(1N(B . ?$,1DN(B) - (?(1O(B . ?$,1DO(B) - (?(1P(B . ?$,1DP(B) - (?(1Q(B . ?$,1DQ(B) - (?(1R(B . ?$,1DR(B) - (?(1S(B . ?$,1DS(B) - (?(1T(B . ?$,1DT(B) - (?(1U(B . ?$,1DU(B) - (?(1V(B . ?$,1DV(B) - (?(1W(B . ?$,1DW(B) - (?(1X(B . ?$,1DX(B) - (?(1Y(B . ?$,1DY(B) - (?(1[(B . ?$,1D[(B) - (?(1\(B . ?$,1D\(B) - (?(1](B . ?$,1D](B) - (?(1`(B . ?$,1D`(B) - (?(1a(B . ?$,1Da(B) - (?(1b(B . ?$,1Db(B) - (?(1c(B . ?$,1Dc(B) - (?(1d(B . ?$,1Dd(B) - (?(1f(B . ?$,1Df(B) - (?(1h(B . ?$,1Dh(B) - (?(1i(B . ?$,1Di(B) - (?(1j(B . ?$,1Dj(B) - (?(1k(B . ?$,1Dk(B) - (?(1l(B . ?$,1Dl(B) - (?(1m(B . ?$,1Dm(B) - (?(1p(B . ?$,1Dp(B) - (?(1q(B . ?$,1Dq(B) - (?(1r(B . ?$,1Dr(B) - (?(1s(B . ?$,1Ds(B) - (?(1t(B . ?$,1Dt(B) - (?(1u(B . ?$,1Du(B) - (?(1v(B . ?$,1Dv(B) - (?(1w(B . ?$,1Dw(B) - (?(1x(B . ?$,1Dx(B) - (?(1y(B . ?$,1Dy(B) - (?(1|(B . ?$,1D|(B) - (?(1}(B . ?$,1D}(B))) - - (other - '( - ;; latin-jisx0201 is mostly decoded to ascii, with these - ;; exceptions, so we don't bother with tables for the whole - ;; thing. - (?(J\(B . ?,A%(B) - (?(J~(B . ?$,1s>(B)))) - (let ((table (make-char-table 'safe-chars)) - safe-charsets) - (dolist (cs '(vietnamese-viscii lao chinese-sisheng ipa - katakana-jisx0201 thai-tis620 tibetan-iso-8bit - indian-is13194 ethiopic other)) - ;; These tables could be used as translation-table-for-encode by - ;; the relevant coding systems. - (let ((encode-translator - (if (coding-system-p cs) - (set (intern (format "ucs-%s-encode-table" cs)) - (make-translation-table))))) - (dolist (pair (symbol-value cs)) - (aset ucs-mule-to-mule-unicode (car pair) (cdr pair)) - (if encode-translator - (aset encode-translator (cdr pair) (car pair)))) - (if encode-translator - (optimize-char-table encode-translator)) - (if (charsetp cs) - (push cs safe-charsets) - (if (coding-system-p cs) - (setq safe-charsets - (append (delq 'ascii (coding-system-get cs 'safe-charsets)) - safe-charsets)))) - (cond ((eq cs 'vietnamese-viscii) - (coding-system-put 'vietnamese-viscii - 'translation-table-for-input - encode-translator) - (coding-system-put 'vietnamese-viqr - 'translation-table-for-input - encode-translator)) - ((memq cs '(lao thai-tis620 tibetan-iso-8bit)) - (coding-system-put cs 'translation-table-for-input - encode-translator))))) - (dolist (c safe-charsets) - (aset table (make-char c) t)))) - -(define-minor-mode unify-8859-on-encoding-mode - "Set up translation-tables for unifying ISO 8859 characters on encoding. - -The ISO 8859 characters sets overlap, e.g. 8859-1 (Latin-1) and -8859-15 (Latin-9) differ only in a few characters. Emacs normally -distinguishes equivalent characters from those ISO-8859 character sets -which are built in to Emacs. This behavior is essentially inherited -from the European-originated international standards. Treating them -equivalently, by translating to and from a single representation is -called `unification'. (The `utf-8' coding system treats the -characters of European scripts in a unified manner.) - -In this mode, on encoding -- i.e. output operations -- non-ASCII -characters from the built-in ISO 8859 and `mule-unicode-0100-24ff' -charsets are handled automatically by the coding system used if it can -represent them. Thus, say, an e-acute from the Latin-1 charset (the -unified representation) in a buffer saved as Latin-9 will be encoded -directly to a byte value 233. By default, in contrast, you would be -prompted for a general coding system to use for saving the file, which -can cope with separate Latin-1 and Latin-9 representations of e-acute. - -Also sets hooks that arrange `translation-table-for-input' to be set -up locally. This will often allow input generated by Quail input -methods to conform with what the buffer's file coding system can -encode. Thus you could use a Latin-2 input method to search for -e-acute in a Latin-1 buffer. - -See also command `unify-8859-on-decoding-mode'." - :group 'mule - :global t - :init-value t - (if unify-8859-on-encoding-mode - (ucs-unify-8859 t nil) - (ucs-fragment-8859 t nil))) - -(custom-add-version 'unify-8859-on-encoding-mode "21.3") - -(define-minor-mode unify-8859-on-decoding-mode - "Set up translation-tables for unifying ISO 8859 characters on decoding. -On decoding, i.e. input operations, non-ASCII characters from the -built-in ISO 8859 charsets are unified by mapping them into the -`iso-latin-1' and `mule-unicode-0100-24ff' charsets. - -Also sets `translation-table-for-input' globally, so that keyboard input -produces unified characters. - -See also command `unify-8859-on-encoding-mode' and the user option -`utf-fragment-on-decoding'." - :group 'mule - :global t - :init-value nil - (if unify-8859-on-decoding-mode - (ucs-unify-8859 nil t) - (ucs-fragment-8859 nil t))) - -(custom-add-version 'unify-8859-on-decoding-mode "21.3") - -;; Synchronize the status with the initial value of -;; unify-8859-on-encoding-mode and unify-8859-on-decoding-mode. -(ucs-unify-8859 t nil) - -;; Arrange to set up the translation-table for keyboard input. This -;; is called from get-buffer-create, set-buffer-file-coding-system, -;; normal-mode and minibuffer-setup-hook. -(defun ucs-set-table-for-input (&optional buffer) - "Set up an appropriate `translation-table-for-input' for BUFFER. -BUFFER defaults to the current buffer. This function is -automatically called directly at the end of `get-buffer-create'." - (when (and unify-8859-on-encoding-mode - (not unify-8859-on-decoding-mode) - (char-table-p translation-table-for-input)) - (let ((cs (and buffer-file-coding-system - (coding-system-base buffer-file-coding-system))) - table) - (if (or (null cs) - (eq cs 'undecided)) - (setq cs - (and default-buffer-file-coding-system - (coding-system-base default-buffer-file-coding-system)))) - (when cs - (setq table (coding-system-get cs 'translation-table-for-encode)) - (if (and table (symbolp table)) - (setq table (get table 'translation-table))) - (unless (char-table-p table) - (setq table (coding-system-get cs 'translation-table-for-input)) - (if (and table (symbolp table)) - (setq table (get table 'translation-table)))) - (when (char-table-p table) - (if buffer - (with-current-buffer buffer - (set (make-local-variable 'translation-table-for-input) - table)) - (set (make-local-variable 'translation-table-for-input) - table))))))) - -;; The minibuffer needs to acquire a `buffer-file-coding-system' for -;; the above to work in it. -(defun ucs-minibuffer-setup () - "Set up an appropriate `buffer-file-coding-system' for current buffer. -Intended to be added to `minibuffer-setup-hook'." - (set (make-local-variable 'buffer-file-coding-system) - (with-current-buffer (let ((win (minibuffer-selected-window))) - (if (window-live-p win) (window-buffer win) - (cadr (buffer-list)))) - buffer-file-coding-system)) - (ucs-set-table-for-input)) - -(provide 'ucs-tables) - -;; arch-tag: b497e22b-7fe1-486a-9352-e2d7f7d76a76 -;;; ucs-tables.el ends here diff --git a/lisp/international/uni-bidi.el b/lisp/international/uni-bidi.el Binary files differnew file mode 100644 index 00000000000..9debda8d313 --- /dev/null +++ b/lisp/international/uni-bidi.el diff --git a/lisp/international/uni-category.el b/lisp/international/uni-category.el Binary files differnew file mode 100644 index 00000000000..d3755f67e5d --- /dev/null +++ b/lisp/international/uni-category.el diff --git a/lisp/international/uni-combining.el b/lisp/international/uni-combining.el Binary files differnew file mode 100644 index 00000000000..fb27ed300e2 --- /dev/null +++ b/lisp/international/uni-combining.el diff --git a/lisp/international/uni-comment.el b/lisp/international/uni-comment.el Binary files differnew file mode 100644 index 00000000000..13da17f00dd --- /dev/null +++ b/lisp/international/uni-comment.el diff --git a/lisp/international/uni-decimal.el b/lisp/international/uni-decimal.el Binary files differnew file mode 100644 index 00000000000..60b7c71d138 --- /dev/null +++ b/lisp/international/uni-decimal.el diff --git a/lisp/international/uni-decomposition.el b/lisp/international/uni-decomposition.el Binary files differnew file mode 100644 index 00000000000..124c3f771fe --- /dev/null +++ b/lisp/international/uni-decomposition.el diff --git a/lisp/international/uni-digit.el b/lisp/international/uni-digit.el Binary files differnew file mode 100644 index 00000000000..9968f3a88b4 --- /dev/null +++ b/lisp/international/uni-digit.el diff --git a/lisp/international/uni-lowercase.el b/lisp/international/uni-lowercase.el Binary files differnew file mode 100644 index 00000000000..c0faeb751a7 --- /dev/null +++ b/lisp/international/uni-lowercase.el diff --git a/lisp/international/uni-mirrored.el b/lisp/international/uni-mirrored.el Binary files differnew file mode 100644 index 00000000000..db7cd4fba06 --- /dev/null +++ b/lisp/international/uni-mirrored.el diff --git a/lisp/international/uni-name.el b/lisp/international/uni-name.el Binary files differnew file mode 100644 index 00000000000..eafb759d354 --- /dev/null +++ b/lisp/international/uni-name.el diff --git a/lisp/international/uni-numeric.el b/lisp/international/uni-numeric.el Binary files differnew file mode 100644 index 00000000000..18ec00fd23a --- /dev/null +++ b/lisp/international/uni-numeric.el diff --git a/lisp/international/uni-old-name.el b/lisp/international/uni-old-name.el Binary files differnew file mode 100644 index 00000000000..4a7887a6fd0 --- /dev/null +++ b/lisp/international/uni-old-name.el diff --git a/lisp/international/uni-titlecase.el b/lisp/international/uni-titlecase.el Binary files differnew file mode 100644 index 00000000000..e698c228b4e --- /dev/null +++ b/lisp/international/uni-titlecase.el diff --git a/lisp/international/uni-uppercase.el b/lisp/international/uni-uppercase.el Binary files differnew file mode 100644 index 00000000000..32ee4845923 --- /dev/null +++ b/lisp/international/uni-uppercase.el diff --git a/lisp/international/utf-16.el b/lisp/international/utf-16.el deleted file mode 100644 index 0bc8d7a7eeb..00000000000 --- a/lisp/international/utf-16.el +++ /dev/null @@ -1,580 +0,0 @@ -;;; utf-16.el --- UTF-16 encoding/decoding - -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; Free Software Foundation, Inc. -;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 - -;; Author: Dave Love <fx@gnu.org> -;; Keywords: Unicode, UTF-16, i18n - -;; 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 3, 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. - -;;; Commentary: - -;; Support for UTF-16, which is a two-byte encoding (modulo -;; surrogates) of Unicode, defined in RFC 2781. It is written either -;; in little or big endian order and either with or without the -;; leading BOM (a two-byte signature which identifies their byte sex). -;; -;; We provide these base coding systems. -;; name endian BOM -;; ---- ------ --- -;; mule-utf-16le little no -;; mule-utf-16be big no -;; mule-utf-16le-with-signature little yes -;; mule-utf-16be-with-signature big yes -;; mule-utf-16 both yes -;; -;; Note that un-decodable sequences aren't (yet?) preserved as raw -;; bytes, as they are with utf-8, so reading and writing as utf-16 can -;; corrupt data. - -;;; Code: - -;; We end up with trivially different -le and -be versions of most -;; things below, sometimes with commonality abstracted into a let -;; binding for maintenance convenience. - -;; Needed in macro expansion, so can't be let-bound. Zapped after use. -(eval-and-compile -(defconst utf-16-decode-ucs - ;; If r5 is negative, r1 is a Unicode chacter code. Otherise, r5 is - ;; the first of a surrogate pair and r1 is the second of the pair. - ;; Output is charset ID in r0, code point in r1. R0 may be set to - ;; -1 in which case a caller should not write out r1. - `((if (r5 >= 0) - ((r0 = (r1 < #xDC00)) - (if ((r1 >= #xE000) | r0) - ;; Invalid second code of surrogate pair. - ((r0 = r5) - (call ccl-mule-utf-untrans)) - ((r1 -= #xDC00) - (r1 += (((r5 - #xD800) << 10) + #x10000)))) - (r5 = -1))) - (if (r1 < 128) - (r0 = ,(charset-id 'ascii)) - ((lookup-integer utf-subst-table-for-decode r1 r3) - (if r7 ; got a translation - ((r0 = r1) (r1 = r3)) - (if (r1 < 160) - (r0 = ,(charset-id 'eight-bit-control)) - (if (r1 < 256) - ((r0 = ,(charset-id 'latin-iso8859-1)) - (r1 -= 128)) - (if (r1 < #x2500) - ((r0 = ,(charset-id 'mule-unicode-0100-24ff)) - (r1 -= #x100) - (r2 = (((r1 / 96) + 32) << 7)) - (r1 %= 96) - (r1 += (r2 + 32))) - (if (r1 < #x3400) - ((r0 = ,(charset-id 'mule-unicode-2500-33ff)) - (r1 -= #x2500) - (r2 = (((r1 / 96) + 32) << 7)) - (r1 %= 96) - (r1 += (r2 + 32))) - (if (r1 < #xD800) - ;; We can't have this character. - ((r0 = r1) - (call ccl-mule-utf-untrans) - (r5 = -1) - (r0 = -1)) - (if (r1 < #xDC00) - ;; The first code of a surrogate pair. - ((r5 = r1) - (r0 = -1)) - (if (r1 < #xE000) - ;; The second code of a surrogate pair, invalid. - ((r0 = r1) - (call ccl-mule-utf-untrans) - (r5 = -1) - (r0 = -1)) - (if (r1 < #x10000) - ((r0 = ,(charset-id 'mule-unicode-e000-ffff)) - (r1 -= #xE000) - (r2 = (((r1 / 96) + 32) << 7)) - (r1 %= 96) - (r1 += (r2 + 32))) - ;; We can't have this character. - ((r0 = r1) - (call ccl-mule-utf-untrans) - (r5 = -1) - (r0 = -1))))))))))))))) - -(defconst utf-16le-decode-loop - `((r5 = -1) - (loop - (r3 = -1) - (read r3 r4) - (r1 = (r4 <8 r3)) - ,@utf-16-decode-ucs - (if (r0 >= 0) - ((translate-character utf-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1))) - (repeat)))) - -(defconst utf-16be-decode-loop - `((r5 = -1) - (loop - (r3 = -1) - (read r3 r4) - (r1 = (r3 <8 r4)) - ,@utf-16-decode-ucs - (if (r0 >= 0) - ((translate-character utf-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1))) - (repeat)))) - -) - -(define-ccl-program ccl-decode-mule-utf-16le - `(2 ; 2 bytes -> 1 to 4 bytes - ,utf-16le-decode-loop - ((if (r5 >= 0) - ((r0 = r5) - (call ccl-mule-utf-untrans))) - (if (r3 < 0) - nil - ((if (r3 < #xA0) - (r0 = ,(charset-id 'eight-bit-control)) - (r0 = ,(charset-id 'eight-bit-graphic))) - (write-multibyte-character r0 r3))))) - "Decode UTF-16LE (little endian without signature bytes). -Basic decoding is done into the charsets ascii, latin-iso8859-1 and -mule-unicode-*. Un-representable Unicode characters are decoded as -U+fffd. The result is run through the translation-table named -`utf-translation-table-for-decode'.") - -(define-ccl-program ccl-decode-mule-utf-16be - `(2 ; 2 bytes -> 1 to 4 bytes - ,utf-16be-decode-loop - ((if (r5 >= 0) - ((r0 = r5) - (call ccl-mule-utf-untrans))) - (if (r3 >= 0) - ((r0 = r3) - (call ccl-mule-utf-untrans))))) - "Decode UTF-16BE (big endian without signature bytes). -Basic decoding is done into the charsets ascii, latin-iso8859-1 and -mule-unicode-*. Un-representable Unicode characters are -decoded as U+fffd. The result is run through the translation-table of -name `utf-translation-table-for-decode'.") - -(define-ccl-program ccl-decode-mule-utf-16le-with-signature - `(2 - ((r3 = -1) - (read r3 r4) - ,@utf-16le-decode-loop) - (if (r3 >= 0) - ((r0 = r3) - (call ccl-mule-utf-untrans)))) - "Like ccl-decode-utf-16le but skip the first 2-byte BOM.") - -(define-ccl-program ccl-decode-mule-utf-16be-with-signature - `(2 - ((r3 = -1) - (read r3 r4) - ,@utf-16be-decode-loop) - (if (r3 >= 0) - ((r0 = r3) - (call ccl-mule-utf-untrans)))) - "Like ccl-decode-utf-16be but skip the first 2-byte BOM.") - -(define-ccl-program ccl-decode-mule-utf-16 - `(2 - ((r3 = -1) - (read r3 r4) - (r1 = (r3 <8 r4)) - (r5 = -1) - (if (r1 == #xFFFE) - ;; R1 is a BOM for little endian. We keep this character as - ;; is temporarily. It is removed by post-read-conversion - ;; function. - (,@utf-16-decode-ucs - (write-multibyte-character r0 r1) - ,@utf-16le-decode-loop) - ((if (r1 == #xFEFF) - ;; R1 is a BOM for big endian, but we can't keep that - ;; character in the output because it can't be - ;; distinguished with the normal U+FEFF. So, we keep - ;; #xFFFF instead. - ((r1 = #xFFFF) - ,@utf-16-decode-ucs - (write-multibyte-character r0 r1)) - ;; R1 is a normal Unicode character. - (,@utf-16-decode-ucs - (if (r0 >= 0) - ((translate-character utf-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1))))) - ,@utf-16be-decode-loop))) - (if (r3 >= 0) - ((r0 = r3) - (call ccl-mule-utf-untrans)))) - "Like ccl-decode-utf-16be/le but check the first BOM.") - -(makunbound 'utf-16-decode-ucs) ; done with it -(makunbound 'utf-16le-decode-loop) -(makunbound 'utf-16be-decode-loop) - -;; UTF-16 decoder generates an UTF-8 sequence represented by a -;; sequence eight-bit-control/graphic chars for an invalid byte (the -;; last byte of an odd length source) and an untranslatable character -;; (including an invalid surrogate-pair code-point). -;; -;; This CCL parses that sequence (the first byte is already in r1), -;; and if the sequence represents an untranslatable character, it sets -;; r1 to the original invalid code or untranslated Unicode character -;; code, sets r2 to -1 (to prevent r2 and r3 are written), set2 r5 to -;; -1 (to tell the caller that there's no pre-read character). -;; -;; If the sequence represents an invalid byte, it sets r1 to -1, r2 to -;; the byte, sets r3 and r5 to -1. -;; -;; Otherwise, don't change r1, set r2 and r3 to already read -;; eight-bit-control/graphic characters (if any), set r5 and r6 to the -;; last character that invalidates the UTF-8 form. -;; -;; Note: For UTF-8 validation, we only check if a character is -;; eight-bit-control/graphic or not. It may result in incorrect -;; handling of random binary data, but such a data can't be encoded by -;; UTF-16 anyway. At least, UTF-16 decoder doesn't generate such a -;; sequence even if a source contains invalid byte-sequence. - -(define-ccl-program ccl-mule-utf-16-encode-untrans - `(0 - ((r2 = -1) - ;; Read the 2nd byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - ((r2 = r1) - (r3 = -1) - (r1 = -1) - (end))) ; invalid UTF-8 - - (r3 = -1) - (r2 = r6) - (if (r1 <= #xE0) - ;; 2-byte UTF-8, i.e. originally an invalid byte. - ((r2 &= #x3F) - (r2 |= ((r1 & #x1F) << 6)) - (r1 = -1) - (r5 = -1) - (end))) - - ;; Read the 3rd byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - ((end))) ; invalid UTF-8 - - (if (r1 < #xF0) ; valid 3-byte UTF-8 - ((r1 = ((r1 & #x0F) << 12)) - (r1 |= ((r2 & #x3F) << 6)) - (r1 |= (r6 & #x3F)) - (r2 = -1) - (r5 = -1) - (end))) - - (r3 = r6) - ;; Read the 4th byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - (end)) ; livalid UTF-8 - - ;; valid 4-byte UTF-8 - (r1 = ((r1 & #x07) << 18)) - (r1 |= ((r2 & #x3F) << 12)) - (r1 |= ((r3 & #x3F) << 6)) - (r1 |= (r6 & #x3F)) - (r2 = -1) - (r5 = -1) - (end)) - - (if (r1 >= 0) - ((write r1) - (if (r2 >= 0) - ((write r2) - (if (r3 >= 0) - (write r3)))))))) - -(eval-and-compile -(defconst utf-16-decode-to-ucs - ;; Read a character and set r1 to the corresponding Unicode code. - ;; If r5 is not negative, it means that we have already read a - ;; character into r5 and r6. - ;; If an invalid eight-bit-control/graphic sequence is found, r2 and - ;; r3 may contain a byte to written out, r5 and r6 may contain a - ;; pre-read character. Usually they are set to -1. - `((if (r5 < 0) - (read-multibyte-character r0 r1) - ((r0 = r5) - (r1 = r6) - (r5 = -1))) - (lookup-character utf-subst-table-for-encode r0 r1) - (r2 = -1) - (if (r7 > 0) - (r1 = r0) - ((translate-character utf-translation-table-for-encode r0 r1) - (if (r0 == ,(charset-id 'ascii)) - nil - (if (r0 == ,(charset-id 'latin-iso8859-1)) - (r1 += 128) - (if (r0 == ,(charset-id 'eight-bit-control)) - nil - (if (r0 == ,(charset-id 'eight-bit-graphic)) - (call ccl-mule-utf-16-encode-untrans) - ((r2 = ((r1 & #x7f) - 32)) - (r3 = ((((r1 >> 7) - 32) * 96) + r2)) - (r2 = -1) - (r5 = -1) - (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) - (r1 = (r3 + #x100)) - (if (r0 == ,(charset-id 'mule-unicode-2500-33ff)) - (r1 = (r3 + #x2500)) - (if (r0 == ,(charset-id 'mule-unicode-e000-ffff)) - (r1 = (r3 + #xe000)) - (r1 = #xfffd))))))))))))) - -(defconst utf-16le-encode-loop - `((r5 = -1) - (loop - ,@utf-16-decode-to-ucs - (if (r1 >= #x10000) - ((r1 -= #x10000) - (r0 = ((r1 >> 10) + #xD800)) - (write (r0 & 255)) - (write (r0 >> 8)) - (r1 = ((r1 & #x3FF) + #xDC00)))) - (if (r1 >= 0) - ((write (r1 & 255)) - (write (r1 >> 8)))) - (if (r2 >= 0) - ((write r2) - (if (r3 >= 0) - (write r3)))) - (repeat)))) - -(defconst utf-16be-encode-loop - `((r5 = -1) - (loop - ,@utf-16-decode-to-ucs - (if (r1 >= #x10000) - ((r1 -= #x10000) - (r0 = ((r1 >> 10) + #xD800)) - (write (r0 >> 8)) - (write (r0 & 255)) - (r1 = ((r1 & #x3FF) + #xDC00)))) - (if (r1 >= 0) - ((write (r1 >> 8)) - (write (r1 & 255)))) - (if (r2 >= 0) - ((write r2) - (if (r3 >= 0) - (write r3)))) - (repeat)))) -) - - -(define-ccl-program ccl-encode-mule-utf-16le - `(2 - ,utf-16le-encode-loop) - "Encode to UTF-16LE (little endian without signature). -Characters from the charsets ascii, eight-bit-control, -eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded -after translation through the translation-table of name -`utf-translation-table-for-encode'. -Others are encoded as U+FFFD.") - -(define-ccl-program ccl-encode-mule-utf-16be - `(2 - ,utf-16be-encode-loop) - "Encode to UTF-16BE (big endian without signature). -Characters from the charsets ascii, eight-bit-control, -eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded -after translation through the translation-table named -`utf-translation-table-for-encode'. -Others are encoded as U+FFFD.") - -(define-ccl-program ccl-encode-mule-utf-16le-with-signature - `(2 - ((write #xFF) - (write #xFE) - ,@utf-16le-encode-loop)) - "Encode to UTF-16 (little endian with signature). -Characters from the charsets ascii, eight-bit-control, -eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded -after translation through the translation-table of name -`utf-translation-table-for-encode'. -Others are encoded as U+FFFD.") - -(define-ccl-program ccl-encode-mule-utf-16be-with-signature - `(2 - ((write #xFE) - (write #xFF) - ,@utf-16be-encode-loop)) - "Encode to UTF-16 (big endian with signature). -Characters from the charsets ascii, eight-bit-control, -eight-bit-graphic, latin-iso8859-1 and mule-unicode-* are encoded -after translation through the translation-table named -`utf-translation-table-for-encode'. -Others are encoded as U+FFFD.") - -(makunbound 'utf-16-decode-to-ucs) -(makunbound 'utf-16le-encode-loop) -(makunbound 'utf-16be-encode-loop) - -(defun mule-utf-16-post-read-conversion (length) - (when (> length 0) - (setq length (utf-8-post-read-conversion length)) - (let ((char (following-char))) - (cond ((= char (decode-char 'ucs #xFFFE)) - (delete-char 1) - (setq last-coding-system-used - (coding-system-change-text-conversion - last-coding-system-used - 'mule-utf-16le-with-signature)) - (setq length (1- length))) - ((= char (decode-char 'ucs #xFFFF)) - (delete-char 1) - (setq last-coding-system-used - (coding-system-change-text-conversion - last-coding-system-used - 'mule-utf-16be-with-signature)) - (setq length (1- length))) - (t - (setq last-coding-system-used 'mule-utf-16be))))) - length) - -(let ((doc " - -It supports Unicode characters of these ranges: - U+0000..U+33FF, U+E000..U+FFFF. -They correspond to these Emacs character sets: - ascii, latin-iso8859-1, mule-unicode-0100-24ff, - mule-unicode-2500-33ff, mule-unicode-e000-ffff - -On decoding (e.g. reading a file), Unicode characters not in the above -ranges are decoded as U+FFFD, effectively corrupting the data -if they are re-encoded. - -On encoding (e.g. writing a file), Emacs characters not belonging to -any of the character sets listed above are encoded into the byte -sequence representing U+FFFD (REPLACEMENT CHARACTER).") - (props `((safe-charsets - ascii - eight-bit-control - eight-bit-graphic - latin-iso8859-1 - mule-unicode-0100-24ff - mule-unicode-2500-33ff - mule-unicode-e000-ffff - ,@(if utf-translate-cjk-mode - utf-translate-cjk-charsets)) - (valid-codes (0 . 255)) - (mime-text-unsuitable . t) - (pre-write-conversion . utf-8-pre-write-conversion) - (dependency unify-8859-on-encoding-mode - unify-8859-on-decoding-mode - utf-fragment-on-decoding - utf-translate-cjk-mode)))) - (make-coding-system - 'mule-utf-16le 4 - ?u ; Mule-UCS uses ?U, but code-pages uses that for koi8-u. - (concat - "UTF-16LE encoding for Emacs-supported Unicode characters." - doc) - '(ccl-decode-mule-utf-16le . ccl-encode-mule-utf-16le) - `(,@props - (post-read-conversion . utf-8-post-read-conversion) - (ascii-incompatible . t) - (mime-charset . utf-16le))) - - (make-coding-system - 'mule-utf-16be 4 ?u - (concat - "UTF-16BE encoding for Emacs-supported Unicode characters." - doc) - - '(ccl-decode-mule-utf-16be . ccl-encode-mule-utf-16be) - `(,@props - (post-read-conversion . utf-8-post-read-conversion) - (ascii-incompatible . t) - (mime-charset . utf-16be))) - - (make-coding-system - 'mule-utf-16le-with-signature 4 ?u - (concat - "Little endian UTF-16 (with BOM) for Emacs-supported Unicode characters." - doc) - - '(ccl-decode-mule-utf-16le-with-signature - . ccl-encode-mule-utf-16le-with-signature) - `(,@props - (post-read-conversion . utf-8-post-read-conversion) - (coding-category . coding-category-utf-16-le) - (ascii-incompatible . t) - (mime-charset . utf-16))) - - (make-coding-system - 'mule-utf-16be-with-signature 4 ?u - (concat - "Big endian UTF-16 (with BOM) for Emacs-supported Unicode characters." - doc) - - '(ccl-decode-mule-utf-16be-with-signature - . ccl-encode-mule-utf-16be-with-signature) - `(,@props - (post-read-conversion . utf-8-post-read-conversion) - (coding-category . coding-category-utf-16-be) - (ascii-incompatible . t) - (mime-charset . utf-16))) - - (make-coding-system - 'mule-utf-16 4 ?u - (concat - "UTF-16 (with or without BOM) for Emacs-supported Unicode characters." - doc) - - '(ccl-decode-mule-utf-16 . ccl-encode-mule-utf-16be-with-signature) - `(,@props - (post-read-conversion . mule-utf-16-post-read-conversion) - (coding-category . coding-category-utf-16-be) - (ascii-incompatible . t) - (mime-charset . utf-16))) -) - -(define-coding-system-alias 'utf-16le 'mule-utf-16le) -(define-coding-system-alias 'utf-16be 'mule-utf-16be) -(define-coding-system-alias 'utf-16le-with-signature - 'mule-utf-16le-with-signature) -(define-coding-system-alias 'utf-16be-with-signature - 'mule-utf-16be-with-signature) -(define-coding-system-alias 'utf-16 'mule-utf-16) - -;; For backward compatibility. -(define-coding-system-alias 'mule-utf-16-le 'mule-utf-16le-with-signature) -(define-coding-system-alias 'utf-16-le 'mule-utf-16le-with-signature) -(define-coding-system-alias 'mule-utf-16-be 'mule-utf-16be-with-signature) -(define-coding-system-alias 'utf-16-be 'mule-utf-16be-with-signature) - -;;; arch-tag: 85455d46-d9c9-466d-a6f3-c3582a7367c4 -;;; utf-16.el ends here diff --git a/lisp/international/utf-7.el b/lisp/international/utf-7.el index 0fff064ace8..dc66c79c686 100644 --- a/lisp/international/utf-7.el +++ b/lisp/international/utf-7.el @@ -36,23 +36,13 @@ ;;; Code: -;;;###autoload(autoload-coding-system 'utf-7 '(require 'utf-7)) -(make-coding-system - 'utf-7 0 ?U - "UTF-7 encoding of Unicode (RFC 2152)" - nil - `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars)) - (mime-charset . utf-7) - (pre-write-conversion . utf-7-pre-write-conversion) - (post-read-conversion . utf-7-post-read-conversion))) - -;; (make-coding-system -;; 'utf-7-imap 0 ?u -;; "UTF-7 encoding of Unicode, IMAP version (RFC 2060)" -;; nil -;; `((safe-chars . ,(coding-system-get 'utf-16be 'safe-chars)) -;; (pre-write-conversion . utf-7-imap-pre-write-conversion) -;; (post-read-conversion . utf-7-imap-post-read-conversion))) +;; (define-coding-system 'utf-7-imap +;; "UTF-7 encoding of Unicode, IMAP version (RFC 2060)" +;; :coding-type 'utf-8 +;; :mnemonic ?u +;; :charset-list '(unicode) +;; :pre-write-conversion 'utf-7-imap-pre-write-conversion +;; :post-read-conversion 'utf-7-imap-post-read-conversion) (defun utf-7-decode (len imap) "Decode LEN bytes of UTF-7 at point. @@ -82,6 +72,7 @@ IMAP non-nil means use the IMAP version." (delete-backward-char 1))))))) (- (point-max) (point-min))))) +;;;###autoload (defun utf-7-post-read-conversion (len) (utf-7-decode len nil)) @@ -130,6 +121,7 @@ ESC and SKIP-CHARS are adjusted for the normal and IMAP versions." (insert ?-))))) nil)) +;;;###autoload (defun utf-7-pre-write-conversion (from to) (utf-7-encode from to nil)) diff --git a/lisp/international/utf-8.el b/lisp/international/utf-8.el deleted file mode 100644 index 39dd3239bf7..00000000000 --- a/lisp/international/utf-8.el +++ /dev/null @@ -1,1088 +0,0 @@ -;;; utf-8.el --- UTF-8 decoding/encoding support -*- coding: iso-2022-7bit -*- - -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; Free Software Foundation, Inc. -;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 -;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 - -;; Author: TAKAHASHI Naoto <ntakahas@m17n.org> -;; Maintainer: FSF -;; Keywords: multilingual, Unicode, UTF-8, i18n - -;; 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 3, 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. - -;;; Commentary: - -;; The coding-system `mule-utf-8' basically supports encoding/decoding -;; of the following character sets to and from UTF-8: -;; -;; ascii -;; eight-bit-control -;; latin-iso8859-1 -;; mule-unicode-0100-24ff -;; mule-unicode-2500-33ff -;; mule-unicode-e000-ffff -;; -;; On decoding, Unicode characters that do not fit into the above -;; character sets are handled as `eight-bit-control' or -;; `eight-bit-graphic' characters to retain the information about the -;; original byte sequence and text properties record the corresponding -;; unicode. -;; -;; Fixme: note that reading and writing invalid utf-8 may not be -;; idempotent -- to represent the bytes to fix that needs a new charset. -;; -;; Characters from other character sets can be encoded with mule-utf-8 -;; by populating the translation table -;; `utf-translation-table-for-encode'. Hash tables -;; `utf-subst-table-for-decode' and `utf-subst-table-for-encode' are -;; used to support encoding and decoding of about a quarter of the CJK -;; space between U+3400 and U+DFFF. - -;; UTF-8 is defined in RFC 3629. A sketch of the encoding is: - -;; scalar | utf-8 -;; value | 1st byte | 2nd byte | 3rd byte -;; --------------------+-----------+-----------+---------- -;; 0000 0000 0xxx xxxx | 0xxx xxxx | | -;; 0000 0yyy yyxx xxxx | 110y yyyy | 10xx xxxx | -;; zzzz yyyy yyxx xxxx | 1110 zzzz | 10yy yyyy | 10xx xxxx - -;;; Code: - -(defvar ucs-mule-to-mule-unicode (make-char-table 'translation-table nil) - "Char table mapping characters to latin-iso8859-1 or mule-unicode-*. - -If `unify-8859-on-encoding-mode' is non-nil, this table populates the -translation-table named `utf-translation-table-for-encode'.") - -(define-translation-table 'utf-translation-table-for-encode) - - -;; Map Cyrillic and Greek to iso-8859 charsets, which take half the -;; space of mule-unicode. For Latin scripts this isn't very -;; important. Hebrew and Arabic might go here too when there's proper -;; support for them. - -(defvar utf-fragmentation-table (make-char-table 'translation-table nil) - "Char-table normally mapping non-Latin mule-unicode-* chars to iso-8859-*. - -If `utf-fragment-on-decoding' is non-nil, this table populates the -translation-table named `utf-translation-table-for-decode'") - -(defvar utf-defragmentation-table (make-char-table 'translation-table nil) - "Char-table for reverse mapping of `utf-fragmentation-table'. - -If `utf-fragment-on-decoding' is non-nil and -`unify-8859-on-encoding-mode' is nil, this table populates the -translation-table named `utf-translation-table-for-encode'") - -(define-translation-table 'utf-translation-table-for-decode) - - -(defvar ucs-mule-cjk-to-unicode (make-hash-table :test 'eq) - "Hash table mapping Emacs CJK character sets to Unicode code points. - -If `utf-translate-cjk-mode' is non-nil, this table populates the -translation-hash-table named `utf-subst-table-for-encode'.") - -(define-translation-hash-table 'utf-subst-table-for-encode - ucs-mule-cjk-to-unicode) - -(defvar ucs-unicode-to-mule-cjk (make-hash-table :test 'eq) - "Hash table mapping Unicode code points to Emacs CJK character sets. - -If `utf-translate-cjk-mode' is non-nil, this table populates the -translation-hash-table named `utf-subst-table-for-decode'.") - -(define-translation-hash-table 'utf-subst-table-for-decode - ucs-unicode-to-mule-cjk) - -(mapc - (lambda (pair) - (aset utf-fragmentation-table (car pair) (cdr pair)) - (aset utf-defragmentation-table (cdr pair) (car pair))) - '((?$,1&d(B . ?,F4(B) (?$,1&e(B . ?,F5(B) (?$,1&f(B . ?,F6(B) (?$,1&h(B . ?,F8(B) (?$,1&i(B . ?,F9(B) - (?$,1&j(B . ?,F:(B) (?$,1&l(B . ?,F<(B) (?$,1&n(B . ?,F>(B) (?$,1&o(B . ?,F?(B) (?$,1&p(B . ?,F@(B) - (?$,1&q(B . ?,FA(B) (?$,1&r(B . ?,FB(B) (?$,1&s(B . ?,FC(B) (?$,1&t(B . ?,FD(B) (?$,1&u(B . ?,FE(B) - (?$,1&v(B . ?,FF(B) (?$,1&w(B . ?,FG(B) (?$,1&x(B . ?,FH(B) (?$,1&y(B . ?,FI(B) (?$,1&z(B . ?,FJ(B) - (?$,1&{(B . ?,FK(B) (?$,1&|(B . ?,FL(B) (?$,1&}(B . ?,FM(B) (?$,1&~(B . ?,FN(B) (?$,1&(B . ?,FO(B) - (?$,1' (B . ?,FP(B) (?$,1'!(B . ?,FQ(B) (?$,1'#(B . ?,FS(B) (?$,1'$(B . ?,FT(B) (?$,1'%(B . ?,FU(B) - (?$,1'&(B . ?,FV(B) (?$,1''(B . ?,FW(B) (?$,1'((B . ?,FX(B) (?$,1')(B . ?,FY(B) (?$,1'*(B . ?,FZ(B) - (?$,1'+(B . ?,F[(B) (?$,1',(B . ?,F\(B) (?$,1'-(B . ?,F](B) (?$,1'.(B . ?,F^(B) (?$,1'/(B . ?,F_(B) - (?$,1'0(B . ?,F`(B) (?$,1'1(B . ?,Fa(B) (?$,1'2(B . ?,Fb(B) (?$,1'3(B . ?,Fc(B) (?$,1'4(B . ?,Fd(B) - (?$,1'5(B . ?,Fe(B) (?$,1'6(B . ?,Ff(B) (?$,1'7(B . ?,Fg(B) (?$,1'8(B . ?,Fh(B) (?$,1'9(B . ?,Fi(B) - (?$,1':(B . ?,Fj(B) (?$,1';(B . ?,Fk(B) (?$,1'<(B . ?,Fl(B) (?$,1'=(B . ?,Fm(B) (?$,1'>(B . ?,Fn(B) - (?$,1'?(B . ?,Fo(B) (?$,1'@(B . ?,Fp(B) (?$,1'A(B . ?,Fq(B) (?$,1'B(B . ?,Fr(B) (?$,1'C(B . ?,Fs(B) - (?$,1'D(B . ?,Ft(B) (?$,1'E(B . ?,Fu(B) (?$,1'F(B . ?,Fv(B) (?$,1'G(B . ?,Fw(B) (?$,1'H(B . ?,Fx(B) - (?$,1'I(B . ?,Fy(B) (?$,1'J(B . ?,Fz(B) (?$,1'K(B . ?,F{(B) (?$,1'L(B . ?,F|(B) (?$,1'M(B . ?,F}(B) - (?$,1'N(B . ?,F~(B) - - (?$,1(!(B . ?,L!(B) (?$,1("(B . ?,L"(B) (?$,1(#(B . ?,L#(B) (?$,1($(B . ?,L$(B) - (?$,1(%(B . ?,L%(B) (?$,1(&(B . ?,L&(B) (?$,1('(B . ?,L'(B) (?$,1(((B . ?,L((B) (?$,1()(B . ?,L)(B) - (?$,1(*(B . ?,L*(B) (?$,1(+(B . ?,L+(B) (?$,1(,(B . ?,L,(B) (?$,1(.(B . ?,L.(B) (?$,1(/(B . ?,L/(B) - (?$,1(0(B . ?,L0(B) (?$,1(1(B . ?,L1(B) (?$,1(2(B . ?,L2(B) (?$,1(3(B . ?,L3(B) (?$,1(4(B . ?,L4(B) - (?$,1(5(B . ?,L5(B) (?$,1(6(B . ?,L6(B) (?$,1(7(B . ?,L7(B) (?$,1(8(B . ?,L8(B) (?$,1(9(B . ?,L9(B) - (?$,1(:(B . ?,L:(B) (?$,1(;(B . ?,L;(B) (?$,1(<(B . ?,L<(B) (?$,1(=(B . ?,L=(B) (?$,1(>(B . ?,L>(B) - (?$,1(?(B . ?,L?(B) (?$,1(@(B . ?,L@(B) (?$,1(A(B . ?,LA(B) (?$,1(B(B . ?,LB(B) (?$,1(C(B . ?,LC(B) - (?$,1(D(B . ?,LD(B) (?$,1(E(B . ?,LE(B) (?$,1(F(B . ?,LF(B) (?$,1(G(B . ?,LG(B) (?$,1(H(B . ?,LH(B) - (?$,1(I(B . ?,LI(B) (?$,1(J(B . ?,LJ(B) (?$,1(K(B . ?,LK(B) (?$,1(L(B . ?,LL(B) (?$,1(M(B . ?,LM(B) - (?$,1(N(B . ?,LN(B) (?$,1(O(B . ?,LO(B) (?$,1(P(B . ?,LP(B) (?$,1(Q(B . ?,LQ(B) (?$,1(R(B . ?,LR(B) - (?$,1(S(B . ?,LS(B) (?$,1(T(B . ?,LT(B) (?$,1(U(B . ?,LU(B) (?$,1(V(B . ?,LV(B) (?$,1(W(B . ?,LW(B) - (?$,1(X(B . ?,LX(B) (?$,1(Y(B . ?,LY(B) (?$,1(Z(B . ?,LZ(B) (?$,1([(B . ?,L[(B) (?$,1(\(B . ?,L\(B) - (?$,1(](B . ?,L](B) (?$,1(^(B . ?,L^(B) (?$,1(_(B . ?,L_(B) (?$,1(`(B . ?,L`(B) (?$,1(a(B . ?,La(B) - (?$,1(b(B . ?,Lb(B) (?$,1(c(B . ?,Lc(B) (?$,1(d(B . ?,Ld(B) (?$,1(e(B . ?,Le(B) (?$,1(f(B . ?,Lf(B) - (?$,1(g(B . ?,Lg(B) (?$,1(h(B . ?,Lh(B) (?$,1(i(B . ?,Li(B) (?$,1(j(B . ?,Lj(B) (?$,1(k(B . ?,Lk(B) - (?$,1(l(B . ?,Ll(B) (?$,1(m(B . ?,Lm(B) (?$,1(n(B . ?,Ln(B) (?$,1(o(B . ?,Lo(B) (?$,1(q(B . ?,Lq(B) - (?$,1(r(B . ?,Lr(B) (?$,1(s(B . ?,Ls(B) (?$,1(t(B . ?,Lt(B) (?$,1(u(B . ?,Lu(B) (?$,1(v(B . ?,Lv(B) - (?$,1(w(B . ?,Lw(B) (?$,1(x(B . ?,Lx(B) (?$,1(y(B . ?,Ly(B) (?$,1(z(B . ?,Lz(B) (?$,1({(B . ?,L{(B) - (?$,1(|(B . ?,L|(B) (?$,1(~(B . ?,L~(B) (?$,1((B . ?,L(B))) - - -(defcustom utf-fragment-on-decoding nil - "Whether or not to decode some chars in UTF-8/16 text into iso8859 charsets. -Setting this means that the relevant Cyrillic and Greek characters are -decoded into the iso8859 charsets rather than into -mule-unicode-0100-24ff. The iso8859 charsets take half as much space -in the buffer, but using them may affect how the buffer can be re-encoded -and may require a different input method to search for them, for instance. -See `unify-8859-on-decoding-mode' and `unify-8859-on-encoding-mode' -for mechanisms to make this largely transparent. - -Setting this variable outside customize has no effect." - :set (lambda (s v) - (if v - (progn - (define-translation-table 'utf-translation-table-for-decode - utf-fragmentation-table) - ;; Even if unify-8859-on-encoding-mode is off, make - ;; mule-utf-* encode characters in - ;; utf-fragmentation-table. - (unless (eq (get 'utf-translation-table-for-encode - 'translation-table) - ucs-mule-to-mule-unicode) - (define-translation-table 'utf-translation-table-for-encode - utf-defragmentation-table))) - (define-translation-table 'utf-translation-table-for-decode) - ;; When unify-8859-on-encoding-mode is off, be sure to make - ;; mule-utf-* disabled for characters in - ;; utf-fragmentation-table. - (unless (eq (get 'utf-translation-table-for-encode - 'translation-table) - ucs-mule-to-mule-unicode) - (define-translation-table 'utf-translation-table-for-encode))) - (set-default s v)) - :version "22.1" - :type 'boolean - :group 'mule) - - -(defconst utf-translate-cjk-charsets '(chinese-gb2312 - chinese-big5-1 chinese-big5-2 - japanese-jisx0208 japanese-jisx0212 - katakana-jisx0201 - korean-ksc5601) - "List of charsets supported by `utf-translate-cjk-mode'.") - -(defvar utf-translate-cjk-lang-env nil - "Language environment in which tables for `utf-translate-cjk-mode' is loaded. -The value nil means that the tables are not yet loaded.") - -(defvar utf-translate-cjk-unicode-range) - -;; String generated from utf-translate-cjk-unicode-range. It is -;; suitable for an argument to skip-chars-forward. -(defvar utf-translate-cjk-unicode-range-string nil) - -(defun utf-translate-cjk-set-unicode-range (range) - (setq utf-translate-cjk-unicode-range range) - (setq utf-translate-cjk-unicode-range-string - (let ((decode-char-no-trans - #'(lambda (x) - (cond ((< x #x100) (make-char 'latin-iso8859-1 x)) - ((< x #x2500) - (setq x (- x #x100)) - (make-char 'mule-unicode-0100-24ff - (+ (/ x 96) 32) (+ (% x 96) 32))) - ((< x #x3400) - (setq x (- x #x2500)) - (make-char 'mule-unicode-2500-33ff - (+ (/ x 96) 32) (+ (% x 96) 32))) - (t - (setq x (- x #xe000)) - (make-char 'mule-unicode-e000-ffff - (+ (/ x 96) 32) (+ (% x 96) 32)))))) - ranges from to) - (dolist (elt range) - (setq from (max #xA0 (car elt)) to (min #xffff (cdr elt))) - (if (and (>= to #x3400) (< to #xE000)) - (setq to #x33FF)) - (cond ((< from #x100) - (if (>= to #xE000) - (setq ranges (cons (cons #xE000 to) ranges) - to #x33FF)) - (if (>= to #x2500) - (setq ranges (cons (cons #x2500 to) ranges) - to #x24FF)) - (if (>= to #x100) - (setq ranges (cons (cons #x100 to) ranges) - to #xFF))) - ((< from #x2500) - (if (>= to #xE000) - (setq ranges (cons (cons #xE000 to) ranges) - to #x33FF)) - (if (>= to #x2500) - (setq ranges (cons (cons #x2500 to) ranges) - to #x24FF))) - ((< from #x3400) - (if (>= to #xE000) - (setq ranges (cons (cons #xE000 to) ranges) - to #x33FF)))) - (if (<= from to) - (setq ranges (cons (cons from to) ranges)))) - (mapconcat #'(lambda (x) - (format "%c-%c" - (funcall decode-char-no-trans (car x)) - (funcall decode-char-no-trans (cdr x)))) - ranges ""))) - ;; These forces loading and settting tables for - ;; utf-translate-cjk-mode. - (setq utf-translate-cjk-lang-env nil - ucs-mule-cjk-to-unicode (make-hash-table :test 'eq) - ucs-unicode-to-mule-cjk (make-hash-table :test 'eq))) - -(defcustom utf-translate-cjk-unicode-range '((#x2e80 . #xd7a3) - (#xff00 . #xffef)) - "List of Unicode code ranges supported by `utf-translate-cjk-mode'. -Setting this variable directly does not take effect; -use either \\[customize] or the function -`utf-translate-cjk-set-unicode-range'." - :version "22.1" - :type '(repeat (cons integer integer)) - :set (lambda (symbol value) - (utf-translate-cjk-set-unicode-range value)) - :group 'mule) - -;; Return non-nil if CODE-POINT is in `utf-translate-cjk-unicode-range'. -(defsubst utf-translate-cjk-substitutable-p (code-point) - (let ((tail utf-translate-cjk-unicode-range) - elt) - (while tail - (setq elt (car tail) tail (cdr tail)) - (if (and (>= code-point (car elt)) (<= code-point (cdr elt))) - (setq tail nil) - (setq elt nil))) - elt)) - -(defun utf-translate-cjk-load-tables () - "Load tables for `utf-translate-cjk-mode'." - ;; Fixme: Allow the use of the CJK charsets to be - ;; customized by reordering and possible omission. - (let ((redefined (< (hash-table-size ucs-mule-cjk-to-unicode) 43000))) - (if redefined - ;; Redefine them with realistic initial sizes and a - ;; smallish rehash size to avoid wasting significant - ;; space after they're built. - (setq ucs-mule-cjk-to-unicode - (make-hash-table :test 'eq :size 43000 :rehash-size 1000) - ucs-unicode-to-mule-cjk - (make-hash-table :test 'eq :size 21500 :rehash-size 1000))) - - ;; Load the files explicitly, to avoid having to keep - ;; around the large tables they contain (as well as the - ;; ones which get built). - ;; Here we bind coding-system-for-read to nil so that coding tags - ;; in the files are respected even if the files are not yet - ;; byte-compiled - (let ((coding-system-for-read nil) - ;; We must avoid clobbering this variable, in case the load - ;; files below use different coding systems. - (last-coding-system-used last-coding-system-used)) - (cond ((string= "Korean" current-language-environment) - (load "subst-jis") - (load "subst-big5") - (load "subst-gb2312") - (load "subst-ksc")) - ((string= "Chinese-BIG5" current-language-environment) - (load "subst-jis") - (load "subst-ksc") - (load "subst-gb2312") - (load "subst-big5")) - ((string= "Chinese-GB" current-language-environment) - (load "subst-jis") - (load "subst-ksc") - (load "subst-big5") - (load "subst-gb2312")) - (t - (load "subst-ksc") - (load "subst-gb2312") - (load "subst-big5") - (load "subst-jis")))) ; jis covers as much as big5, gb2312 - - (when redefined - (define-translation-hash-table 'utf-subst-table-for-decode - ucs-unicode-to-mule-cjk) - (define-translation-hash-table 'utf-subst-table-for-encode - ucs-mule-cjk-to-unicode) - (set-char-table-extra-slot (get 'utf-translation-table-for-encode - 'translation-table) - 1 ucs-mule-cjk-to-unicode)) - - (setq utf-translate-cjk-lang-env current-language-environment))) - -(defun utf-lookup-subst-table-for-decode (code-point) - (if (and utf-translate-cjk-mode - (not utf-translate-cjk-lang-env) - (utf-translate-cjk-substitutable-p code-point)) - (utf-translate-cjk-load-tables)) - (gethash code-point - (get 'utf-subst-table-for-decode 'translation-hash-table))) - - -(defun utf-lookup-subst-table-for-encode (char) - (if (and utf-translate-cjk-mode - (not utf-translate-cjk-lang-env) - (memq (char-charset char) utf-translate-cjk-charsets)) - (utf-translate-cjk-load-tables)) - (gethash char - (get 'utf-subst-table-for-encode 'translation-hash-table))) - -(define-minor-mode utf-translate-cjk-mode - "Toggle whether UTF based coding systems de/encode CJK characters. -If ARG is an integer, enable if ARG is positive and disable if -zero or negative. This is a minor mode. -Enabling this allows the coding systems mule-utf-8, -mule-utf-16le and mule-utf-16be to encode characters in the charsets -`korean-ksc5601', `chinese-gb2312', `chinese-big5-1', -`chinese-big5-2', `japanese-jisx0208' and `japanese-jisx0212', and to -decode the corresponding unicodes into such characters. - -Where the charsets overlap, the one preferred for decoding is chosen -according to the language environment in effect when this option is -turned on: ksc5601 for Korean, gb2312 for Chinese-GB, big5 for -Chinese-Big5 and jisx for other environments. - -This mode is on by default. If you are not interested in CJK -characters and want to avoid some overhead on encoding/decoding -by the above coding systems, you can customize the user option -`utf-translate-cjk-mode' to nil." - :init-value t - :version "22.1" - :type 'boolean - :group 'mule - :global t - (if utf-translate-cjk-mode - (progn - (define-translation-hash-table 'utf-subst-table-for-decode - ucs-unicode-to-mule-cjk) - (define-translation-hash-table 'utf-subst-table-for-encode - ucs-mule-cjk-to-unicode) - (set-char-table-extra-slot (get 'utf-translation-table-for-encode - 'translation-table) - 1 ucs-mule-cjk-to-unicode)) - (define-translation-hash-table 'utf-subst-table-for-decode - (make-hash-table :test 'eq)) - (define-translation-hash-table 'utf-subst-table-for-encode - (make-hash-table :test 'eq)) - (set-char-table-extra-slot (get 'utf-translation-table-for-encode - 'translation-table) - 1 nil)) - - ;; Update safe-chars of mule-utf-* coding systems. - (dolist (elt (coding-system-list t)) - (if (string-match "^mule-utf" (symbol-name elt)) - (let ((safe-charsets (coding-system-get elt 'safe-charsets)) - (safe-chars (coding-system-get elt 'safe-chars)) - (need-update nil)) - (dolist (charset utf-translate-cjk-charsets) - (unless (eq utf-translate-cjk-mode (memq charset safe-charsets)) - (setq safe-charsets - (if utf-translate-cjk-mode - (cons charset safe-charsets) - (delq charset safe-charsets)) - need-update t) - (aset safe-chars (make-char charset) utf-translate-cjk-mode))) - (when need-update - (coding-system-put elt 'safe-charsets safe-charsets) - (define-coding-system-internal elt)))))) - -(define-ccl-program ccl-mule-utf-untrans - ;; R0 is an untranslatable Unicode code-point (U+3500..U+DFFF or - ;; U+10000..U+10FFFF) or an invaid byte (#x00..#xFF). Write - ;; eight-bit-control/graphic sequence (2 to 4 chars) representing - ;; UTF-8 sequence of r0. Registers r4, r5, r6 are modified. - ;; - ;; This is a subrountine because we assume that this is called very - ;; rarely (so we don't have to worry about the overhead of the - ;; call). - `(0 - ((r5 = ,(charset-id 'eight-bit-control)) - (r6 = ,(charset-id 'eight-bit-graphic)) - (if (r0 < #x100) - ((r4 = ((r0 >> 6) | #xC0)) - (write-multibyte-character r6 r4)) - ((if (r0 < #x10000) - ((r4 = ((r0 >> 12) | #xE0)) - (write-multibyte-character r6 r4)) - ((r4 = ((r0 >> 18) | #xF0)) - (write-multibyte-character r6 r4) - (r4 = (((r0 >> 12) & #x3F) | #x80)) - (if (r4 < #xA0) - (write-multibyte-character r5 r4) - (write-multibyte-character r6 r4)))) - (r4 = (((r0 >> 6) & #x3F) | #x80)) - (if (r4 < #xA0) - (write-multibyte-character r5 r4) - (write-multibyte-character r6 r4)))) - (r4 = ((r0 & #x3F) | #x80)) - (if (r4 < #xA0) - (write-multibyte-character r5 r4) - (write-multibyte-character r6 r4))))) - -(define-ccl-program ccl-decode-mule-utf-8 - ;; - ;; charset | bytes in utf-8 | bytes in emacs - ;; -----------------------+----------------+--------------- - ;; ascii | 1 | 1 - ;; -----------------------+----------------+--------------- - ;; eight-bit-control | 2 | 2 - ;; eight-bit-graphic | 2 | 1 - ;; latin-iso8859-1 | 2 | 2 - ;; -----------------------+----------------+--------------- - ;; mule-unicode-0100-24ff | 2 | 4 - ;; (< 0800) | | - ;; -----------------------+----------------+--------------- - ;; mule-unicode-0100-24ff | 3 | 4 - ;; (>= 8000) | | - ;; mule-unicode-2500-33ff | 3 | 4 - ;; mule-unicode-e000-ffff | 3 | 4 - ;; -----------------------+----------------+--------------- - ;; invalid byte | 1 | 2 - ;; - ;; Thus magnification factor is two. - ;; - `(2 - ((r6 = ,(charset-id 'latin-iso8859-1)) - (read r0) - (loop - (if (r0 < #x80) - ;; 1-byte encoding, i.e., ascii - (write-read-repeat r0)) - (if (r0 < #xc2) - ;; continuation byte (invalid here) or 1st byte of overlong - ;; 2-byte sequence. - ((call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - (read r0) - (repeat))) - - ;; Read the 2nd byte. - (read r1) - (if ((r1 & #b11000000) != #b10000000) ; Invalid 2nd byte - ((call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - ;; Handle it in the next loop. - (r0 = r1) - (repeat))) - - (if (r0 < #xe0) - ;; 2-byte encoding 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx - ((r1 &= #x3F) - (r1 |= ((r0 & #x1F) << 6)) - ;; Now r1 holds scalar value. We don't have to check - ;; `overlong sequence' because r0 >= 0xC2. - - (if (r1 >= 256) - ;; mule-unicode-0100-24ff (< 0800) - ((r0 = r1) - (lookup-integer utf-subst-table-for-decode r0 r1) - (if (r7 == 0) - ((r0 = ,(charset-id 'mule-unicode-0100-24ff)) - (r1 -= #x0100) - (r2 = (((r1 / 96) + 32) << 7)) - (r1 %= 96) - (r1 += (r2 + 32)) - (translate-character - utf-translation-table-for-decode r0 r1))) - (write-multibyte-character r0 r1) - (read r0) - (repeat)) - (if (r1 >= 160) - ;; latin-iso8859-1 - ((r0 = r1) - (lookup-integer utf-subst-table-for-decode r0 r1) - (if (r7 == 0) - ((r1 -= 128) - (write-multibyte-character r6 r1)) - ((write-multibyte-character r0 r1))) - (read r0) - (repeat)) - ;; eight-bit-control - ((r0 = ,(charset-id 'eight-bit-control)) - (write-multibyte-character r0 r1) - (read r0) - (repeat)))))) - - ;; Read the 3rd bytes. - (read r2) - (if ((r2 & #b11000000) != #b10000000) ; Invalid 3rd byte - ((call ccl-mule-utf-untrans) - (r0 = r1) - (call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - ;; Handle it in the next loop. - (r0 = r2) - (repeat))) - - (if (r0 < #xF0) - ;; 3byte encoding - ;; zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx - ((r3 = ((r0 & #xF) << 12)) - (r3 |= ((r1 & #x3F) << 6)) - (r3 |= (r2 & #x3F)) - - (if (r3 < #x800) ; `overlong sequence' - ((call ccl-mule-utf-untrans) - (r0 = r1) - (call ccl-mule-utf-untrans) - (r0 = r2) - (call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - (read r0) - (repeat))) - - (if (r3 < #x2500) - ;; mule-unicode-0100-24ff (>= 0800) - ((r0 = r3) - (lookup-integer utf-subst-table-for-decode r0 r1) - (if (r7 == 0) - ((r0 = ,(charset-id 'mule-unicode-0100-24ff)) - (r3 -= #x0100) - (r3 //= 96) - (r1 = (r7 + 32)) - (r1 += ((r3 + 32) << 7)) - (translate-character - utf-translation-table-for-decode r0 r1))) - (write-multibyte-character r0 r1) - (read r0) - (repeat))) - - (if (r3 < #x3400) - ;; mule-unicode-2500-33ff - ((r0 = r3) ; don't zap r3 - (lookup-integer utf-subst-table-for-decode r0 r1) - (if (r7 == 0) - ((r0 = ,(charset-id 'mule-unicode-2500-33ff)) - (r3 -= #x2500) - (r3 //= 96) - (r1 = (r7 + 32)) - (r1 += ((r3 + 32) << 7)))) - (write-multibyte-character r0 r1) - (read r0) - (repeat))) - - (if (r3 < #xE000) - ;; Try to convert to CJK chars, else - ;; keep them as eight-bit-{control|graphic}. - ((r0 = r3) - (lookup-integer utf-subst-table-for-decode r3 r1) - (if r7 - ;; got a translation - ((write-multibyte-character r3 r1) - (read r0) - (repeat)) - ((call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - (read r0) - (repeat))))) - - ;; mule-unicode-e000-ffff - ;; Fixme: fffe and ffff are invalid. - (r0 = r3) ; don't zap r3 - (lookup-integer utf-subst-table-for-decode r0 r1) - (if (r7 == 0) - ((r0 = ,(charset-id 'mule-unicode-e000-ffff)) - (r3 -= #xe000) - (r3 //= 96) - (r1 = (r7 + 32)) - (r1 += ((r3 + 32) << 7)))) - (write-multibyte-character r0 r1) - (read r0) - (repeat))) - - ;; Read the 4th bytes. - (read r3) - (if ((r3 & #b11000000) != #b10000000) ; Invalid 4th byte - ((call ccl-mule-utf-untrans) - (r0 = r1) - (call ccl-mule-utf-untrans) - (r0 = r2) - (call ccl-mule-utf-untrans) - (r6 = ,(charset-id 'latin-iso8859-1)) - ;; Handle it in the next loop. - (r0 = r3) - (repeat))) - - (if (r0 < #xF8) - ;; 4-byte encoding: - ;; wwwzzzzzzyyyyyyxxxxxx = 11110www 10zzzzzz 10yyyyyy 10xxxxxx - ;; keep those bytes as eight-bit-{control|graphic} - ;; Fixme: allow lookup in utf-subst-table-for-decode. - ((r4 = ((r0 & #x7) << 18)) - (r4 |= ((r1 & #x3F) << 12)) - (r4 |= ((r2 & #x3F) << 6)) - (r4 |= (r3 & #x3F)) - - (if (r4 < #x10000) ; `overlong sequence' - ((call ccl-mule-utf-untrans) - (r0 = r1) - (call ccl-mule-utf-untrans) - (r0 = r2) - (call ccl-mule-utf-untrans) - (r0 = r3) - (call ccl-mule-utf-untrans)) - ((r0 = r4) - (call ccl-mule-utf-untrans)))) - - ;; Unsupported sequence. - ((call ccl-mule-utf-untrans) - (r0 = r1) - (call ccl-mule-utf-untrans) - (r0 = r2) - (call ccl-mule-utf-untrans) - (r0 = r3) - (call ccl-mule-utf-untrans))) - (r6 = ,(charset-id 'latin-iso8859-1)) - (read r0) - (repeat))) - - - ;; At EOF... - (if (r0 >= 0) - ;; r0 >= #x80 - ((call ccl-mule-utf-untrans) - (if (r1 >= 0) - ((r0 = r1) - (call ccl-mule-utf-untrans) - (if (r2 >= 0) - ((r0 = r2) - (call ccl-mule-utf-untrans) - (if (r3 >= 0) - ((r0 = r3) - (call ccl-mule-utf-untrans)))))))))) - - "CCL program to decode UTF-8. -Basic decoding is done into the charsets ascii, latin-iso8859-1 and -mule-unicode-*, but see also `utf-fragmentation-table' and -`ucs-mule-cjk-to-unicode'. -Encodings of un-representable Unicode characters are decoded asis into -eight-bit-control and eight-bit-graphic characters.") - -(define-ccl-program ccl-mule-utf-8-encode-untrans - ;; UTF-8 decoder generates an UTF-8 sequence represented by a - ;; sequence eight-bit-control/graphic chars for an untranslatable - ;; character and an invalid byte. - ;; - ;; This CCL parses that sequence (the first byte is already in r1), - ;; writes out the original bytes of that sequence, and sets r5 to - ;; -1. - ;; - ;; If the eight-bit-control/graphic sequence is shorter than what r1 - ;; suggests, it sets r5 and r6 to the last character read that - ;; should be handled by the next loop of a caller. - ;; - ;; Note: For UTF-8 validation, we only check if a character is - ;; eight-bit-control/graphic or not. It may result in incorrect - ;; handling of random binary data, but such a data can't be encoded - ;; by UTF-8 anyway. At least, UTF-8 decoders doesn't generate such - ;; a sequence even if a source contains invalid byte-sequence. - `(0 - (;; Read the 2nd byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - ((write r1) ; invalid UTF-8 - (r1 = -1) - (end))) - - (if (r1 <= #xC3) - ;; 2-byte sequence for an originally invalid byte. - ((r6 &= #x3F) - (r6 |= ((r1 & #x1F) << 6)) - (write r6) - (r5 = -1) - (end))) - - (write r1 r6) - (r2 = r1) - (r1 = -1) - ;; Read the 3rd byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - (end)) ; invalid UTF-8 - (write r6) - (if (r2 < #xF0) - ;; 3-byte sequence for an untranslated character. - ((r5 = -1) - (end))) - ;; Read the 4th byte. - (read-multibyte-character r5 r6) - (r0 = (r5 != ,(charset-id 'eight-bit-control))) - (if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0) - (end)) ; invalid UTF-8 - ;; 4-byte sequence for an untranslated character. - (write r6) - (r5 = -1) - (end)) - - ;; At EOF... - ((r5 = -1) - (if (r1 >= 0) - (write r1))))) - -(define-ccl-program ccl-encode-mule-utf-8 - `(1 - ((r5 = -1) - (loop - (if (r5 < 0) - (read-multibyte-character r0 r1) - ;; Pre-read character is in r5 (charset-ID) and r6 (code-point). - ((r0 = r5) - (r1 = r6) - (r5 = -1))) - (translate-character utf-translation-table-for-encode r0 r1) - - (if (r0 == ,(charset-id 'ascii)) - (write-repeat r1)) - - (if (r0 == ,(charset-id 'latin-iso8859-1)) - ;; r1 scalar utf-8 - ;; 0000 0yyy yyxx xxxx 110y yyyy 10xx xxxx - ;; 20 0000 0000 1010 0000 1100 0010 1010 0000 - ;; 7f 0000 0000 1111 1111 1100 0011 1011 1111 - ((write ((r1 >> 6) | #xc2)) - (r1 &= #x3f) - (r1 |= #x80) - (write-repeat r1))) - - (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) - ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96)) - ;; #x3f80 == (0011 1111 1000 0000)b - (r1 &= #x7f) - (r1 += (r0 + 224)) ; 240 == -32 + #x0100 - ;; now r1 holds scalar value - (if (r1 < #x0800) - ;; 2byte encoding - ((write ((r1 >> 6) | #xC0)) - (r1 &= #x3F) - (r1 |= #x80) - (write-repeat r1)) - ;; 3byte encoding - ((write ((r1 >> 12) | #xE0)) - (write (((r1 & #x0FC0) >> 6) | #x80)) - (r1 &= #x3F) - (r1 |= #x80) - (write-repeat r1))))) - - (if (r0 == ,(charset-id 'mule-unicode-2500-33ff)) - ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96)) - (r1 &= #x7f) - (r1 += (r0 + 9440)) ; 9440 == -32 + #x2500 - ;; now r1 holds scalar value - (write ((r1 >> 12) | #xE0)) - (write (((r1 & #x0FC0) >> 6) | #x80)) - (r1 &= #x3F) - (r1 |= #x80) - (write-repeat r1))) - - (if (r0 == ,(charset-id 'mule-unicode-e000-ffff)) - ((r0 = ((((r1 & #x3f80) >> 7) - 32) * 96)) - (r1 &= #x7f) - (r1 += (r0 + 57312)) ; 57312 == -32 + #xe000 - ;; now r1 holds scalar value - (write ((r1 >> 12) | #xE0)) - (write (((r1 & #x0FC0) >> 6) | #x80)) - (r1 &= #x3F) - (r1 |= #x80) - (write-repeat r1))) - - (if (r0 == ,(charset-id 'eight-bit-control)) - ;; r1 scalar utf-8 - ;; 0000 0yyy yyxx xxxx 110y yyyy 10xx xxxx - ;; 80 0000 0000 1000 0000 1100 0010 1000 0000 - ;; 9f 0000 0000 1001 1111 1100 0010 1001 1111 - ((write #xC2) - (write-repeat r1))) - - (if (r0 == ,(charset-id 'eight-bit-graphic)) - ;; r1 scalar utf-8 - ;; 0000 0yyy yyxx xxxx 110y yyyy 10xx xxxx - ;; a0 0000 0000 1010 0000 1100 0010 1010 0000 - ;; ff 0000 0000 1111 1111 1101 1111 1011 1111 - ((r0 = (r1 >= #xC0)) - (r0 &= (r1 <= #xC3)) - (r4 = (r1 >= #xE1)) - (r4 &= (r1 <= #xF7)) - (r0 |= r4) - (if r0 - ((call ccl-mule-utf-8-encode-untrans) - (repeat)) - (write-repeat r1)))) - - (lookup-character utf-subst-table-for-encode r0 r1) - (if r7 ; lookup succeeded - (if (r0 < #x800) - ;; 2byte encoding - ((write ((r0 >> 6) | #xC0)) - (r0 = ((r0 & #x3F) | #x80)) - (write-repeat r0)) - ;; 3byte encoding - ((write ((r0 >> 12) | #xE0)) - (write (((r0 & #x0FC0) >> 6) | #x80)) - (r0 = ((r0 & #x3F) | #x80)) - (write-repeat r0)))) - - ;; Unsupported character. - ;; Output U+FFFD, which is `ef bf bd' in UTF-8. - (write #xef) - (write #xbf) - (write-repeat #xbd)))) - "CCL program to encode into UTF-8.") - - -(define-ccl-program ccl-untranslated-to-ucs - `(0 - (if (r1 == 0) - nil - (if (r0 <= #xC3) ; 2-byte encoding - ((r0 = ((r0 & #x3) << 6)) - (r0 |= (r1 & #x3F)) - (r1 = 2)) - (if (r2 == 0) - (r1 = 0) - (if (r0 < #xF0) ; 3-byte encoding, as above - ((r0 = ((r0 & #xF) << 12)) - (r0 |= ((r1 & #x3F) << 6)) - (r0 |= (r2 & #x3F)) - (r1 = 3)) - (if (r3 == 0) - (r1 = 0) - ((r0 = ((r0 & #x7) << 18)) - (r0 |= ((r1 & #x3F) << 12)) - (r0 |= ((r2 & #x3F) << 6)) - (r0 |= (r3 & #x3F)) - (r1 = 4)))))))) - "Decode 2-, 3-, or 4-byte sequences in r0, r1, r2 [,r3] to unicodes in r0. -Set r1 to the byte length. r0 == 0 for invalid sequence.") - -(defvar utf-8-ccl-regs (make-vector 8 0)) - -(defsubst utf-8-untranslated-to-ucs () - "Return the UCS code for an untranslated sequence of raw bytes t point. -Only for 3- or 4-byte sequences." - (aset utf-8-ccl-regs 0 (or (char-after) 0)) - (aset utf-8-ccl-regs 1 (or (char-after (1+ (point))) 0)) - (aset utf-8-ccl-regs 2 (or (char-after (+ 2 (point))) 0)) - (aset utf-8-ccl-regs 3 (or (char-after (+ 3 (point))) 0)) - (ccl-execute 'ccl-untranslated-to-ucs utf-8-ccl-regs)) - -(defun utf-8-help-echo (window object position) - (format "Untranslated Unicode U+%04X" - (get-char-property position 'untranslated-utf-8 object))) - -;; We compose the untranslatable sequences into a single character, -;; and move point to the next character. -;; This is infelicitous for editing, because there's currently no -;; mechanism for treating compositions as atomic, but is OK for -;; display. They are composed to U+FFFD with help-echo which -;; indicates the unicodes they represent. This function GCs too much. - -;; If utf-translate-cjk-mode is non-nil, this function is called with -;; HASH-TABLE which translates CJK characters into some of CJK -;; charsets. - -(defsubst utf-8-compose (hash-table) - "Put a suitable composition on an untranslatable sequence at point. -If HASH-TABLE is non-nil, try to translate CJK characters by it at first. -Move point to the end of the sequence." - (utf-8-untranslated-to-ucs) - (let ((l (aref utf-8-ccl-regs 1)) - ch) - (if (> l 0) - (if (and hash-table - (setq ch (gethash (aref utf-8-ccl-regs 0) hash-table))) - (progn - (insert ch) - (delete-region (point) (min (point-max) (+ l (point))))) - (setq ch (aref utf-8-ccl-regs 0)) - (put-text-property (point) (min (point-max) (+ l (point))) - 'untranslated-utf-8 ch) - (put-text-property (point) (min (point-max) (+ l (point))) - 'help-echo 'utf-8-help-echo) - (if (= l 2) - (put-text-property (point) (min (point-max) (+ l (point))) - 'display (propertize (format "\\%03o" ch) - 'face 'escape-glyph)) - (compose-region (point) (+ l (point)) ?$,3u=(B)) - (forward-char l)) - (forward-char 1)))) - -(defcustom utf-8-compose-scripts nil - "*Non-nil means compose various scripts on decoding utf-8 text." - :group 'mule - :version "22.1" - :type 'boolean) - -(defun utf-8-post-read-conversion (length) - "Compose untranslated utf-8 sequences into single characters. -If `utf-translate-cjk-mode' is non-nil, tries to translate CJK characters. -Also compose particular scripts if `utf-8-compose-scripts' is non-nil." - (save-excursion - (save-restriction - (narrow-to-region (point) (+ (point) length)) - ;; Can't do eval-when-compile to insert a multibyte constant - ;; version of the string in the loop, since it's always loaded as - ;; unibyte from a byte-compiled file. - (let ((range (string-as-multibyte "^\xc0-\xc3\xe1-\xf7")) - (buffer-multibyte enable-multibyte-characters) - hash-table ch) - (set-buffer-multibyte t) - (when utf-translate-cjk-mode - (unless utf-translate-cjk-lang-env - ;; Check these characters in utf-translate-cjk-range. - ;; We may have to translate them to CJK charsets. - (skip-chars-forward - (concat range utf-translate-cjk-unicode-range-string)) - (unless (eobp) - (utf-translate-cjk-load-tables) - (setq range - (concat range utf-translate-cjk-unicode-range-string))) - (setq hash-table (get 'utf-subst-table-for-decode - 'translation-hash-table)))) - (while (and (skip-chars-forward range) - (not (eobp))) - (setq ch (following-char)) - (if (< ch 256) - (utf-8-compose hash-table) - (if (and hash-table - (setq ch (gethash (encode-char ch 'ucs) hash-table))) - (progn - (insert ch) - (delete-char 1)) - (forward-char 1)))) - (or buffer-multibyte - (set-buffer-multibyte nil))) - - (when (and utf-8-compose-scripts (> length 1)) - ;; This let-binding avoids recursive auto-loading. And, we - ;; anyway don't have to run the following code while - ;; auto-loading. - (let ((utf-8-compose-scripts nil)) - ;; These currently have definitions which cover the relevant - ;; unicodes. We could avoid loading thai-util &c by checking - ;; whether the region contains any characters with the appropriate - ;; categories. There aren't yet Unicode-based rules for Tibetan. - (diacritic-compose-region (point-max) (point-min)) - (thai-compose-region (point-max) (point-min)) - (lao-compose-region (point-max) (point-min)) - (devanagari-compose-region (point-max) (point-min)) - (malayalam-compose-region (point-max) (point-min)) - (tamil-compose-region (point-max) (point-min)))) - (- (point-max) (point-min))))) - -(defun utf-8-pre-write-conversion (beg end) - "Prepare for `utf-translate-cjk-mode' to encode text between BEG and END. -This is used as a post-read-conversion of utf-8 coding system." - (if (and utf-translate-cjk-mode - (not utf-translate-cjk-lang-env) - (if (stringp beg) - (string-match "\\cc\\|\\cj\\|\\ch" beg) - (save-excursion - (goto-char beg) - (re-search-forward "\\cc\\|\\cj\\|\\ch" end t)))) - (utf-translate-cjk-load-tables)) - nil) - -(make-coding-system - 'mule-utf-8 4 ?u - "UTF-8 encoding for Emacs-supported Unicode characters. -It supports Unicode characters of these ranges: - U+0000..U+33FF, U+E000..U+FFFF. -They correspond to these Emacs character sets: - ascii, latin-iso8859-1, mule-unicode-0100-24ff, - mule-unicode-2500-33ff, mule-unicode-e000-ffff - -On decoding (e.g. reading a file), Unicode characters not in the above -ranges are decoded into sequences of eight-bit-control and -eight-bit-graphic characters to preserve their byte sequences. The -byte sequence is preserved on i/o for valid utf-8, but not necessarily -for invalid utf-8. - -On encoding (e.g. writing a file), Emacs characters not belonging to -any of the character sets listed above are encoded into the UTF-8 byte -sequence representing U+FFFD (REPLACEMENT CHARACTER)." - - '(ccl-decode-mule-utf-8 . ccl-encode-mule-utf-8) - `((safe-charsets - ascii - eight-bit-control - eight-bit-graphic - latin-iso8859-1 - mule-unicode-0100-24ff - mule-unicode-2500-33ff - mule-unicode-e000-ffff - ,@(if utf-translate-cjk-mode - utf-translate-cjk-charsets)) - (mime-charset . utf-8) - (coding-category . coding-category-utf-8) - (valid-codes (0 . 255)) - (pre-write-conversion . utf-8-pre-write-conversion) - (post-read-conversion . utf-8-post-read-conversion) - (translation-table-for-encode . utf-translation-table-for-encode) - (dependency unify-8859-on-encoding-mode - unify-8859-on-decoding-mode - utf-fragment-on-decoding - utf-translate-cjk-mode))) - -(define-coding-system-alias 'utf-8 'mule-utf-8) - -;; I think this needs special private charsets defined for the -;; untranslated sequences, if it's going to work well. - -;;; (defun utf-8-compose-function (pos to pattern &optional string) -;;; (let* ((prop (get-char-property pos 'composition string)) -;;; (l (and prop (- (cadr prop) (car prop))))) -;;; (cond ((and l (> l (- to pos))) -;;; (delete-region pos to)) -;;; ((and (> (char-after pos) 224) -;;; (< (char-after pos) 256) -;;; (save-restriction -;;; (narrow-to-region pos to) -;;; (utf-8-compose))) -;;; t)))) - -;;; (dotimes (i 96) -;;; (aset composition-function-table -;;; (+ 128 i) -;;; `((,(string-as-multibyte "[\200-\237\240-\377]") -;;; . utf-8-compose-function)))) - -;;; arch-tag: b08735b7-753b-4ae6-b754-0f3efe4515c5 -;;; utf-8.el ends here diff --git a/lisp/isearch.el b/lisp/isearch.el index 9b9db880890..fa094caf099 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -310,15 +310,11 @@ A value of nil means highlight all matches." (defvar isearch-mode-map (let* ((i 0) (map (make-keymap))) - (or (vectorp (nth 1 map)) - (char-table-p (nth 1 map)) + (or (char-table-p (nth 1 map)) (error "The initialization of isearch-mode-map must be updated")) ;; Make all multibyte characters search for themselves. - (let ((l (generic-character-list)) - (table (nth 1 map))) - (while l - (set-char-table-default table (car l) 'isearch-printing-char) - (setq l (cdr l)))) + (set-char-table-range (nth 1 map) (cons #x100 (max-char)) + 'isearch-printing-char) ;; Make function keys, etc, which aren't bound to a scrolling-function ;; exit the search. (define-key map [t] 'isearch-other-control-char) diff --git a/lisp/language/china-util.el b/lisp/language/china-util.el index d31331d1f2a..4b4a20b20b4 100644 --- a/lisp/language/china-util.el +++ b/lisp/language/china-util.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: mule, multilingual, Chinese @@ -74,7 +77,7 @@ (push i chars) (setq i (1+ i))) (while (< i 127) - (push (+ i 128) chars) + (push (decode-char 'eight-bit (+ i 128)) chars) (setq i (1+ i))) (apply 'string (nreverse chars))))) @@ -168,255 +171,25 @@ Return the length of resulting text." (interactive) (encode-hz-region (point-min) (point-max))) -;; The following sets up a translation table (big5-to-cns) from Big 5 -;; to CNS encoding, using some auxiliary functions to make the code -;; more readable. - -;; Many kudos to Himi! The used code has been adapted from his -;; mule-ucs package. - -(eval-when-compile -(defun big5-to-flat-code (num) - "Convert NUM in Big 5 encoding to a `flat code'. -0xA140 will be mapped to position 0, 0xA141 to position 1, etc. -There are no gaps in the flat code." - - (let ((hi (/ num 256)) - (lo (% num 256))) - (+ (* 157 (- hi #xa1)) - (- lo (if (>= lo #xa1) 98 64))))) - -(defun flat-code-to-big5 (num) - "Convert NUM from a `flat code' to Big 5 encoding. -This is the inverse function of `big5-to-flat-code'." - - (let ((hi (/ num 157)) - (lo (% num 157))) - (+ (* 256 (+ hi #xa1)) - (+ lo (if (< lo 63) 64 98))))) - -(defun euc-to-flat-code (num) - "Convert NUM in EUC encoding (in GL representation) to a `flat code'. -0x2121 will be mapped to position 0, 0x2122 to position 1, etc. -There are no gaps in the flat code." - - (let ((hi (/ num 256)) - (lo (% num 256))) - (+ (* 94 (- hi #x21)) - (- lo #x21)))) - -(defun flat-code-to-euc (num) - "Convert NUM from a `flat code' to EUC encoding (in GL representation). -The inverse function of `euc-to-flat-code'. The high and low bytes are -returned in a list." - - (let ((hi (/ num 94)) - (lo (% num 94))) - (list (+ hi #x21) (+ lo #x21)))) - -(defun expand-euc-big5-alist (alist) - "Create a translation table and fills it with data given in ALIST. -Elements of ALIST can be either given as - - ((euc-charset . startchar) . (big5-range-begin . big5-range-end)) - -or as - - (euc-character . big5-charcode) - -The former maps a range of glyphs in an EUC charset (where STARTCHAR -is in GL representation) to a certain range of Big 5 encoded -characters, the latter maps a single glyph. Glyphs which can't be -mapped will be represented with the byte 0xFF. - -The return value is the filled translation table." - - (let ((chartable (make-char-table 'translation-table #xFF)) - char - big5 - i - end - codepoint - charset) - (dolist (elem alist) - (setq char (car elem) - big5 (cdr elem)) - (cond ((and (consp char) - (consp big5)) - (setq i (big5-to-flat-code (car big5)) - end (big5-to-flat-code (cdr big5)) - codepoint (euc-to-flat-code (cdr char)) - charset (car char)) - (while (>= end i) - (aset chartable - (decode-big5-char (flat-code-to-big5 i)) - (apply (function make-char) - charset - (flat-code-to-euc codepoint))) - (setq i (1+ i) - codepoint (1+ codepoint)))) - ((and (char-valid-p char) - (numberp big5)) - (setq i (decode-big5-char big5)) - (aset chartable i char)) - (t - (error "Unknown slot type: %S" elem)))) - ;; the return value - chartable))) - -;; All non-CNS encodings are commented out. - -(define-translation-table 'big5-to-cns - (eval-when-compile - (expand-euc-big5-alist - '( - ;; Symbols - ((chinese-cns11643-1 . #x2121) . (#xA140 . #xA1F5)) - (?$(G"X(B . #xA1F6) - (?$(G"W(B . #xA1F7) - ((chinese-cns11643-1 . #x2259) . (#xA1F8 . #xA2AE)) - ((chinese-cns11643-1 . #x2421) . (#xA2AF . #xA3BF)) - ;; Control codes (vendor dependent) - ((chinese-cns11643-1 . #x4221) . (#xA3C0 . #xA3E0)) - ;; Level 1 Ideographs - ((chinese-cns11643-1 . #x4421) . (#xA440 . #xACFD)) - (?$(GWS(B . #xACFE) - ((chinese-cns11643-1 . #x5323) . (#xAD40 . #xAFCF)) - ((chinese-cns11643-1 . #x5754) . (#xAFD0 . #xBBC7)) - ((chinese-cns11643-1 . #x6B51) . (#xBBC8 . #xBE51)) - (?$(GkP(B . #xBE52) - ((chinese-cns11643-1 . #x6F5C) . (#xBE53 . #xC1AA)) - ((chinese-cns11643-1 . #x7536) . (#xC1AB . #xC2CA)) - (?$(Gu5(B . #xC2CB) - ((chinese-cns11643-1 . #x7737) . (#xC2CC . #xC360)) - ((chinese-cns11643-1 . #x782E) . (#xC361 . #xC3B8)) - (?$(Gxe(B . #xC3B9) - (?$(Gxd(B . #xC3BA) - ((chinese-cns11643-1 . #x7866) . (#xC3BB . #xC455)) - (?$(Gx-(B . #xC456) - ((chinese-cns11643-1 . #x7962) . (#xC457 . #xC67E)) - ;; Symbols - ((chinese-cns11643-1 . #x2621) . (#xC6A1 . #xC6BE)) - ;; Radicals - (?$(G'#(B . #xC6BF) - (?$(G'$(B . #xC6C0) - (?$(G'&(B . #xC6C1) - (?$(G'((B . #xC6C2) - (?$(G'-(B . #xC6C3) - (?$(G'.(B . #xC6C4) - (?$(G'/(B . #xC6C5) - (?$(G'4(B . #xC6C6) - (?$(G'7(B . #xC6C7) - (?$(G':(B . #xC6C8) - (?$(G'<(B . #xC6C9) - (?$(G'B(B . #xC6CA) - (?$(G'G(B . #xC6CB) - (?$(G'N(B . #xC6CC) - (?$(G'S(B . #xC6CD) - (?$(G'T(B . #xC6CE) - (?$(G'U(B . #xC6CF) - (?$(G'Y(B . #xC6D0) - (?$(G'Z(B . #xC6D1) - (?$(G'a(B . #xC6D2) - (?$(G'f(B . #xC6D3) - (?$(G()(B . #xC6D4) - (?$(G(*(B . #xC6D5) - (?$(G(c(B . #xC6D6) - (?$(G(l(B . #xC6D7) - ;; Diacritical Marks - ; ((japanese-jisx0208 . #x212F) . (#xC6D8 . #xC6D9)) - ;; Japanese Kana Supplement - ; ((japanese-jisx0208 . #x2133) . (#xC6DA . #xC6E3)) - ;; Japanese Hiragana - ; ((japanese-jisx0208 . #x2421) . (#xC6E7 . #xC77A)) - ;; Japanese Katakana - ; ((japanese-jisx0208 . #x2521) . (#xC77B . #xC7F2)) - ;; Cyrillic Characters - ; ((japanese-jisx0208 . #x2721) . (#xC7F3 . #xC854)) - ; ((japanese-jisx0208 . #x2751) . (#xC855 . #xC875)) - ;; Special Chinese Characters - (?$(J!#(B . #xC879) - (?$(J!$(B . #xC87B) - (?$(J!*(B . #xC87D) - (?$(J!R(B . #xC8A2) - - ;; JIS X 0208 NOT SIGN (cf. U+00AC) - ; (?$B"L(B . #xC8CD) - ;; JIS X 0212 BROKEN BAR (cf. U+00A6) - ; (?$(D"C(B . #xC8CE) - - ;; GB 2312 characters - ; (?$A!d(B . #xC8CF) - ; (?$A!e(B . #xC8D0) - ;;;;; C8D1 - Japanese `($B3t(B)' - ; (?$A!m(B . #xC8D2) - ;;;;; C8D2 - Tel. - - ;; Level 2 Ideographs - ((chinese-cns11643-2 . #x2121) . (#xC940 . #xC949)) - (?$(GDB(B . #xC94A);; a duplicate of #xA461 - ((chinese-cns11643-2 . #x212B) . (#xC94B . #xC96B)) - ((chinese-cns11643-2 . #x214D) . (#xC96C . #xC9BD)) - (?$(H!L(B . #xC9BE) - ((chinese-cns11643-2 . #x217D) . (#xC9BF . #xC9EC)) - ((chinese-cns11643-2 . #x224E) . (#xC9ED . #xCAF6)) - (?$(H"M(B . #xCAF7) - ((chinese-cns11643-2 . #x2439) . (#xCAF8 . #xD6CB)) - (?$(H>c(B . #xD6CC) - ((chinese-cns11643-2 . #x3770) . (#xD6CD . #xD779)) - (?$(H?j(B . #xD77A) - ((chinese-cns11643-2 . #x387E) . (#xD77B . #xDADE)) - (?$(H7o(B . #xDADF) - ((chinese-cns11643-2 . #x3E64) . (#xDAE0 . #xDBA6)) - ((chinese-cns11643-2 . #x3F6B) . (#xDBA7 . #xDDFB)) - (?$(HAv(B . #xDDFC);; a duplicate of #xDCD1 - ((chinese-cns11643-2 . #x4424) . (#xDDFD . #xE8A2)) - ((chinese-cns11643-2 . #x554C) . (#xE8A3 . #xE975)) - ((chinese-cns11643-2 . #x5723) . (#xE976 . #xEB5A)) - ((chinese-cns11643-2 . #x5A29) . (#xEB5B . #xEBF0)) - (?$(HUK(B . #xEBF1) - ((chinese-cns11643-2 . #x5B3F) . (#xEBF2 . #xECDD)) - (?$(HW"(B . #xECDE) - ((chinese-cns11643-2 . #x5C6A) . (#xECDF . #xEDA9)) - ((chinese-cns11643-2 . #x5D75) . (#xEDAA . #xEEEA)) - (?$(Hd/(B . #xEEEB) - ((chinese-cns11643-2 . #x6039) . (#xEEEC . #xF055)) - (?$(H]t(B . #xF056) - ((chinese-cns11643-2 . #x6243) . (#xF057 . #xF0CA)) - (?$(HZ((B . #xF0CB) - ((chinese-cns11643-2 . #x6337) . (#xF0CC . #xF162)) - ((chinese-cns11643-2 . #x6430) . (#xF163 . #xF16A)) - (?$(Hga(B . #xF16B) - ((chinese-cns11643-2 . #x6438) . (#xF16C . #xF267)) - (?$(Hi4(B . #xF268) - ((chinese-cns11643-2 . #x6573) . (#xF269 . #xF2C2)) - ((chinese-cns11643-2 . #x664E) . (#xF2C3 . #xF374)) - ((chinese-cns11643-2 . #x6762) . (#xF375 . #xF465)) - ((chinese-cns11643-2 . #x6935) . (#xF466 . #xF4B4)) - (?$(HfM(B . #xF4B5) - ((chinese-cns11643-2 . #x6962) . (#xF4B6 . #xF4FC)) - ((chinese-cns11643-2 . #x6A4C) . (#xF4FD . #xF662)) - (?$(HjK(B . #xF663) - ((chinese-cns11643-2 . #x6C52) . (#xF664 . #xF976)) - ((chinese-cns11643-2 . #x7167) . (#xF977 . #xF9C3)) - (?$(Hqf(B . #xF9C4) - (?$(Hr4(B . #xF9C5) - (?$(Hr@(B . #xF9C6) - ((chinese-cns11643-2 . #x7235) . (#xF9C7 . #xF9D1)) - ((chinese-cns11643-2 . #x7241) . (#xF9D2 . #xF9D5)) - - ;; Additional Ideographs - (?$(IC7(B . #xF9D6) - (?$(IOP(B . #xF9D7) - (?$(IDN(B . #xF9D8) - (?$(IPJ(B . #xF9D9) - (?$(I,](B . #xF9DA) - (?$(I=~(B . #xF9DB) - (?$(IK\(B . #xF9DC) - ) - )) -) +;;;###autoload +(defun post-read-decode-hz (len) + (let ((pos (point)) + (buffer-modified-p (buffer-modified-p)) + last-coding-system-used) + (prog1 + (decode-hz-region pos (+ pos len)) + (set-buffer-modified-p buffer-modified-p)))) +;;;###autoload +(defun pre-write-encode-hz (from to) + (let ((buf (current-buffer))) + (set-buffer (generate-new-buffer " *temp*")) + (if (stringp from) + (insert from) + (insert-buffer-substring buf from to)) + (let (last-coding-system-used) + (encode-hz-region 1 (point-max))) + nil)) ;; (provide 'china-util) diff --git a/lisp/language/chinese.el b/lisp/language/chinese.el index c57d0e3d931..e5fc264e8aa 100644 --- a/lisp/language/chinese.el +++ b/lisp/language/chinese.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, Chinese @@ -37,47 +40,53 @@ ;;; Chinese (general) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(make-coding-system - 'iso-2022-cn 2 ?C - "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)." - '(ascii - (nil chinese-gb2312 chinese-cns11643-1) - (nil chinese-cns11643-2) - nil - nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil - init-bol) - '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2) - (mime-charset . iso-2022-cn))) + +(define-coding-system 'iso-2022-cn + "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN)." + :coding-type 'iso-2022 + :mnemonic ?C + :charset-list '(ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2) + :designation [ascii + (nil chinese-gb2312 chinese-cns11643-1) + (nil chinese-cns11643-2) + nil] + :flags '(ascii-at-eol ascii-at-cntl 7-bit + designation locking-shift single-shift init-at-bol) + :mime-charset 'iso-2022-cn + :suitable-for-keyboard t) (define-coding-system-alias 'chinese-iso-7bit 'iso-2022-cn) -(make-coding-system - 'iso-2022-cn-ext 2 ?C - "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)." - '(ascii - (nil chinese-gb2312 chinese-cns11643-1) - (nil chinese-cns11643-2) - (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 - chinese-cns11643-6 chinese-cns11643-7) - nil ascii-eol ascii-cntl seven locking-shift single-shift nil nil nil - init-bol) - '((safe-charsets ascii chinese-gb2312 chinese-cns11643-1 chinese-cns11643-2 - chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 - chinese-cns11643-6 chinese-cns11643-7) - (mime-charset . iso-2022-cn-ext))) +(define-coding-system 'iso-2022-cn-ext + "ISO 2022 based 7bit encoding for Chinese GB and CNS (MIME:ISO-2022-CN-EXT)." + :coding-type 'iso-2022 + :mnemonic ?C + :charset-list '(ascii + chinese-gb2312 chinese-cns11643-1 + chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 + chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7) + :designation '[ascii + (nil chinese-gb2312 chinese-cns11643-1) + (nil chinese-cns11643-2) + (nil chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 + chinese-cns11643-6 chinese-cns11643-7)] + :flags '(ascii-at-eol ascii-at-cntl 7-bit + designation locking-shift single-shift init-at-bol) + :mime-charset 'iso-2022-cn-ext + :suitable-for-keyboard t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Chinese GB2312 (simplified) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(make-coding-system - 'chinese-iso-8bit 2 ?c - "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:GB2312)." - '(ascii chinese-gb2312 nil nil - nil ascii-eol ascii-cntl nil nil nil nil) - '((safe-charsets ascii chinese-gb2312) - (mime-charset . gb2312))) +(define-coding-system 'chinese-iso-8bit + "ISO 2022 based EUC encoding for Chinese GB2312 (MIME:GB2312)." + :coding-type 'iso-2022 + :mnemonic ?c + :charset-list '(ascii chinese-gb2312) + :designation [ascii chinese-gb2312 nil nil] + :mime-charset 'gb2312) (define-coding-system-alias 'cn-gb-2312 'chinese-iso-8bit) (define-coding-system-alias 'euc-china 'chinese-iso-8bit) @@ -86,36 +95,18 @@ (define-coding-system-alias 'gb2312 'chinese-iso-8bit) (define-coding-system-alias 'cp936 'chinese-iso-8bit) -(make-coding-system - 'chinese-hz 0 ?z - "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)." - nil - '((safe-charsets ascii chinese-gb2312) - (mime-charset . hz-gb-2312) - (post-read-conversion . post-read-decode-hz) - (pre-write-conversion . pre-write-encode-hz))) +(define-coding-system 'chinese-hz + "Hz/ZW 7-bit encoding for Chinese GB2312 (MIME:HZ-GB-2312)." + :coding-type 'utf-8 + :mnemonic ?z + :charset-list '(ascii chinese-gb2312) + :mime-charset 'hz-gb-2312 + :post-read-conversion 'post-read-decode-hz + :pre-write-conversion 'pre-write-encode-hz) (define-coding-system-alias 'hz-gb-2312 'chinese-hz) (define-coding-system-alias 'hz 'chinese-hz) -(defun post-read-decode-hz (len) - (let ((pos (point)) - (buffer-modified-p (buffer-modified-p)) - last-coding-system-used) - (prog1 - (decode-hz-region pos (+ pos len)) - (set-buffer-modified-p buffer-modified-p)))) - -(defun pre-write-encode-hz (from to) - (let ((buf (current-buffer))) - (set-buffer (generate-new-buffer " *temp*")) - (if (stringp from) - (insert from) - (insert-buffer-substring buf from to)) - (let (last-coding-system-used) - (encode-hz-region 1 (point-max))) - nil)) - (set-language-info-alist "Chinese-GB" '((charset chinese-gb2312 chinese-sisheng) (coding-system chinese-iso-8bit iso-2022-cn chinese-hz) @@ -131,190 +122,62 @@ ;; Chinese BIG5 (traditional) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(make-coding-system - 'chinese-big5 3 ?B - "BIG5 8-bit encoding for Chinese (MIME:Big5)." - nil - '((safe-charsets ascii chinese-big5-1 chinese-big5-2) - (mime-charset . big5) - (charset-origin-alist (chinese-big5-1 "BIG5" encode-big5-char) - (chinese-big5-2 "BIG5" encode-big5-char)))) +(define-coding-system 'chinese-big5 + "BIG5 8-bit encoding for Chinese (MIME:Big5)" + :coding-type 'charset + :mnemonic ?B + :charset-list '(ascii big5) + :mime-charset 'big5) (define-coding-system-alias 'big5 'chinese-big5) (define-coding-system-alias 'cn-big5 'chinese-big5) (define-coding-system-alias 'cp950 'chinese-big5) -;; Big5 font requires special encoding. -(define-ccl-program ccl-encode-big5-font - `(0 - ;; In: R0:chinese-big5-1 or chinese-big5-2 - ;; R1:position code 1 - ;; R2:position code 2 - ;; Out: R1:font code point 1 - ;; R2:font code point 2 - ((r2 = ((((r1 - ?\x21) * 94) + r2) - ?\x21)) - (if (r0 == ,(charset-id 'chinese-big5-2)) (r2 += 6280)) - (r1 = ((r2 / 157) + ?\xA1)) - (r2 %= 157) - (if (r2 < ?\x3F) (r2 += ?\x40) (r2 += ?\x62)))) - "CCL program to encode a Big5 code to code point of Big5 font.") - -(setq font-ccl-encoder-alist - (cons (cons "big5" ccl-encode-big5-font) font-ccl-encoder-alist)) - (set-language-info-alist "Chinese-BIG5" '((charset chinese-big5-1 chinese-big5-2) (coding-system chinese-big5 chinese-iso-7bit) (coding-priority chinese-big5 iso-2022-cn chinese-iso-8bit) (input-method . "chinese-py-punct-b5") + (ctext-non-standard-encodings "big5-0") (features china-util) - (sample-text . "Cantonese ($(0GnM$(B,$(0N]0*Hd(B) $(0*/=((B, $(0+$)p(B") + (sample-text . "Cantonese ($(Gemk#(B,$(Gl]N)fc(B) $ATg3?(B, $ADc:C(B") (documentation . "Support for Chinese Big5 character set.") (tutorial . "TUTORIAL.zh")) '("Chinese")) +(define-coding-system 'chinese-big5-hkscs + "BIG5-HKSCS 8-bit encoding for Chinese, Hong Kong supplement (MIME:Big5-HKSCS)" + :coding-type 'charset + :mnemonic ?B + :charset-list '(ascii big5-hkscs) + :mime-charset 'big5-hkscs) +(define-coding-system-alias 'big5-hkscs 'chinese-big5-hkscs) +(define-coding-system-alias 'cn-big5-hkscs 'chinese-big5-hkscs) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Chinese CNS11643 (traditional) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defvar big5-to-cns (make-translation-table) - "Translation table for encoding to `euc-tw'.") -;; Could have been done by china-util loaded before. -(unless (get 'big5-to-cns 'translation-table) - (define-translation-table 'big5-to-cns big5-to-cns)) - -(define-ccl-program ccl-decode-euc-tw - ;; CNS plane 1 needs either two or four bytes in EUC-TW encoding; - ;; CNS planes 2 to 7 always need four bytes. In internal encoding of - ;; Emacs, CNS planes 1 and 2 need three bytes, and planes 3 to 7 need - ;; four bytes. Thus a buffer magnification value of 2 (for both - ;; encoding and decoding) is sufficient. - `(2 - ;; we don't have enough registers to hold all charset-ids - ((r4 = ,(charset-id 'chinese-cns11643-1)) - (r5 = ,(charset-id 'chinese-cns11643-2)) - (r6 = ,(charset-id 'chinese-cns11643-3)) - (loop - (read-if (r0 < #x80) - ;; ASCII - (write-repeat r0) - ;; not ASCII - (if (r0 == #x8E) - ;; single shift - (read-if (r1 < #xA1) - ;; invalid byte - ((write r0) - (write-repeat r1)) - (if (r1 > #xA7) - ;; invalid plane - ((write r0) - (write-repeat r1)) - ;; OK, we have a plane - (read-if (r2 < #xA1) - ;; invalid first byte - ((write r0 r1) - (write-repeat r2)) - (read-if (r3 < #xA1) - ;; invalid second byte - ((write r0 r1 r2) - (write-repeat r3)) - ;; CNS 1-7, finally - ((branch (r1 - #xA1) - (r1 = r4) - (r1 = r5) - (r1 = r6) - (r1 = ,(charset-id 'chinese-cns11643-4)) - (r1 = ,(charset-id 'chinese-cns11643-5)) - (r1 = ,(charset-id 'chinese-cns11643-6)) - (r1 = ,(charset-id 'chinese-cns11643-7))) - (r2 = ((((r2 - #x80) << 7) + r3) - #x80)) - (write-multibyte-character r1 r2) - (repeat)))))) - ;; standard EUC - (if (r0 < #xA1) - ;; invalid first byte - (write-repeat r0) - (read-if (r1 < #xA1) - ;; invalid second byte - ((write r0) - (write-repeat r1)) - ;; CNS 1, finally - ((r1 = ((((r0 - #x80) << 7) + r1) - #x80)) - (write-multibyte-character r4 r1) - (repeat))))))))) - "CCL program to decode EUC-TW encoding." -) - -(define-ccl-program ccl-encode-euc-tw - `(2 - ;; we don't have enough registers to hold all charset-ids - ((r2 = ,(charset-id 'ascii)) - (r3 = ,(charset-id 'chinese-big5-1)) - (r4 = ,(charset-id 'chinese-big5-2)) - (r5 = ,(charset-id 'chinese-cns11643-1)) - (r6 = ,(charset-id 'chinese-cns11643-2)) - (loop - (read-multibyte-character r0 r1) - (if (r0 == r2) - (write-repeat r1) - (;; Big 5 encoded characters are first translated to CNS - (if (r0 == r3) - (translate-character big5-to-cns r0 r1) - (if (r0 == r4) - (translate-character big5-to-cns r0 r1))) - (if (r0 == r5) - (r0 = #xA1) - (if (r0 == r6) - (r0 = #xA2) - (if (r0 == ,(charset-id 'chinese-cns11643-3)) - (r0 = #xA3) - (if (r0 == ,(charset-id 'chinese-cns11643-4)) - (r0 = #xA4) - (if (r0 == ,(charset-id 'chinese-cns11643-5)) - (r0 = #xA5) - (if (r0 == ,(charset-id 'chinese-cns11643-6)) - (r0 = #xA6) - (if (r0 == ,(charset-id 'chinese-cns11643-7)) - (r0 = #xA7) - ;; not CNS. We use a dummy character which - ;; can't occur in EUC-TW encoding to indicate - ;; this. - (write-repeat #xFF)))))))))) - (if (r0 != #xA1) - ;; single shift and CNS plane - ((write #x8E) - (write r0))) - (write ((r1 >> 7) + #x80)) - (write ((r1 % #x80) + #x80)) - (repeat)))) - "CCL program to encode EUC-TW encoding." -) - -(defun euc-tw-pre-write-conversion (beg end) - "Semi-dummy pre-write function effectively to autoload china-util." - ;; Ensure translation table is loaded. - (require 'china-util) - ;; Don't do this again. - (coding-system-put 'euc-tw 'pre-write-conversion nil) - nil) - -(make-coding-system - 'euc-tw 4 ?Z - "ISO 2022 based EUC encoding for Chinese CNS11643. -Big5 encoding is accepted for input also (which is then converted to CNS)." - '(ccl-decode-euc-tw . ccl-encode-euc-tw) - '((safe-charsets ascii - chinese-big5-1 - chinese-big5-2 - chinese-cns11643-1 - chinese-cns11643-2 - chinese-cns11643-3 - chinese-cns11643-4 - chinese-cns11643-5 - chinese-cns11643-6 - chinese-cns11643-7) - (valid-codes (0 . 255)) - (pre-write-conversion . euc-tw-pre-write-conversion))) +(define-coding-system 'euc-tw + "ISO 2022 based EUC encoding for Chinese CNS11643." + :coding-type 'iso-2022 + :mnemonic ?Z + :charset-list '(ascii + chinese-cns11643-1 + chinese-cns11643-2 + chinese-cns11643-3 + chinese-cns11643-4 + chinese-cns11643-5 + chinese-cns11643-6 + chinese-cns11643-7) + :designation [ascii chinese-cns11643-1 (chinese-cns11643-1 + chinese-cns11643-2 + chinese-cns11643-3 + chinese-cns11643-4 + chinese-cns11643-5 + chinese-cns11643-6 + chinese-cns11643-7) nil] + :mime-charset 'euc-tw) (define-coding-system-alias 'euc-taiwan 'euc-tw) @@ -328,6 +191,7 @@ Big5 encoding is accepted for input also (which is then converted to CNS)." chinese-iso-8bit) (features china-util) (input-method . "chinese-cns-quick") + ;; Fixme: presumably it won't accept big5 now. (documentation . "\ Support for Chinese CNS character sets. Note that the EUC-TW coding system accepts Big5 for input also (which is then converted to CNS).")) @@ -349,6 +213,60 @@ the EUC-TW coding system accepts Big5 for input also (which is then converted to CNS).")) '("Chinese")) + +;;; Chinese GBK + +(define-coding-system 'chinese-gbk + "GBK encoding for Chinese (MIME:GBK)." + :coding-type 'charset + :mnemonic ?c + :charset-list '(ascii chinese-gbk) + :mime-charset 'gbk) +(define-coding-system-alias 'gbk 'chinese-gbk) +(define-coding-system-alias 'cp936 'chinese-gbk) +(define-coding-system-alias 'windows-936 'chinese-gbk) + +(set-language-info-alist + "Chinese-GBK" '((charset chinese-gbk) + (coding-system chinese-gbk) + (coding-priority gbk iso-2022-cn chinese-big5 + chinese-iso-8bit) ; fixme? + (ctext-non-standard-encodings "gbk-0") + (input-method . "chinese-py-punct") ; fixme? + (sample-text . "Chinese ($BCfJ8(B,$BIaDL$A;0(B,$A::So(B) $(D95$B9%(B") + (features china-util) + (documentation . "Support for Chinese GBK character set.") + (tutorial . "TUTORIAL.cn")) + '("Chinese")) + +;;; Chinese GB18030 + +(define-coding-system 'chinese-gb18030 + "GB18030 encoding for Chinese (MIME:GB18030)." + :coding-type 'charset + :mnemonic ?c + :charset-list '(ascii gb18030-2-byte + gb18030-4-byte-bmp gb18030-4-byte-smp + gb18030-4-byte-ext-1 gb18030-4-byte-ext-2) + :mime-charset 'gb18030) + +(define-coding-system-alias 'gb18030 'chinese-gb18030) + +(set-language-info-alist + "Chinese-GB18030" '((charset gb18030) + (coding-system chinese-gb18030) + (coding-priority gb18030 gbk iso-2022-cn chinese-big5 + chinese-iso-8bit) ; fixme? + (input-method . "chinese-py-punct") ; fixme? + (sample-text . "Chinese ($BCfJ8(B,$BIaDL$A;0(B,$A::So(B) $(D0_$B9%(B") + (features china-util) + (documentation + . "Support for Chinese GB18030 character set.") + (tutorial . "TUTORIAL.cn")) + '("Chinese")) + +;; Fixme: add HKSCS + (provide 'chinese) ;;; arch-tag: b82fcf7a-84f6-4e0b-b38c-1742dac0e09f diff --git a/lisp/language/cyril-util.el b/lisp/language/cyril-util.el index aa22584d6ce..71d7a6f905b 100644 --- a/lisp/language/cyril-util.el +++ b/lisp/language/cyril-util.el @@ -31,19 +31,12 @@ ;;;###autoload (defun cyrillic-encode-koi8-r-char (char) "Return KOI8-R external character code of CHAR if appropriate." - (aref (char-table-extra-slot - (get 'cyrillic-koi8-r-nonascii-translation-table 'translation-table) - 0) - char)) + (encode-char char 'koi8-r)) ;;;###autoload (defun cyrillic-encode-alternativnyj-char (char) "Return ALTERNATIVNYJ external character code of CHAR if appropriate." - (aref (char-table-extra-slot - (get 'cyrillic-alternativnyj-nonascii-translation-table - 'translation-table) - 0) - char)) + (encode-char char 'alternativnyj)) ;; Display @@ -177,117 +170,13 @@ If the argument is nil, we return the display table to its standard state." (aset standard-display-table ?,L*(B [?N ?j]) (aset standard-display-table ?,L/(B [?D ?j]) - ;; Unicode version: - (aset standard-display-table ?$,1(P(B [?a]) - (aset standard-display-table ?$,1(Q(B [?b]) - (aset standard-display-table ?$,1(R(B [?v]) - (aset standard-display-table ?$,1(S(B [?g]) - (aset standard-display-table ?$,1(T(B [?d]) - (aset standard-display-table ?$,1(U(B [?e]) - (aset standard-display-table ?$,1(q(B [?y ?o]) - (aset standard-display-table ?$,1(V(B [?z ?h]) - (aset standard-display-table ?$,1(W(B [?z]) - (aset standard-display-table ?$,1(X(B [?i]) - (aset standard-display-table ?$,1(Y(B [?j]) - (aset standard-display-table ?$,1(Z(B [?k]) - (aset standard-display-table ?$,1([(B [?l]) - (aset standard-display-table ?$,1(\(B [?m]) - (aset standard-display-table ?$,1(](B [?n]) - (aset standard-display-table ?$,1(^(B [?o]) - (aset standard-display-table ?$,1(_(B [?p]) - (aset standard-display-table ?$,1(`(B [?r]) - (aset standard-display-table ?$,1(a(B [?s]) - (aset standard-display-table ?$,1(b(B [?t]) - (aset standard-display-table ?$,1(c(B [?u]) - (aset standard-display-table ?$,1(d(B [?f]) - (aset standard-display-table ?$,1(e(B [?k ?h]) - (aset standard-display-table ?$,1(f(B [?t ?s]) - (aset standard-display-table ?$,1(g(B [?c ?h]) - (aset standard-display-table ?$,1(h(B [?s ?h]) - (aset standard-display-table ?$,1(i(B [?s ?c ?h]) - (aset standard-display-table ?$,1(j(B [?~]) - (aset standard-display-table ?$,1(k(B [?y]) - (aset standard-display-table ?$,1(l(B [?']) - (aset standard-display-table ?$,1(m(B [?e ?']) - (aset standard-display-table ?$,1(n(B [?y ?u]) - (aset standard-display-table ?$,1(o(B [?y ?a]) - - (aset standard-display-table ?$,1(0(B [?A]) - (aset standard-display-table ?$,1(1(B [?B]) - (aset standard-display-table ?$,1(2(B [?V]) - (aset standard-display-table ?$,1(3(B [?G]) - (aset standard-display-table ?$,1(4(B [?D]) - (aset standard-display-table ?$,1(5(B [?E]) - (aset standard-display-table ?$,1(!(B [?Y ?o]) - (aset standard-display-table ?$,1(6(B [?Z ?h]) - (aset standard-display-table ?$,1(7(B [?Z]) - (aset standard-display-table ?$,1(8(B [?I]) - (aset standard-display-table ?$,1(9(B [?J]) - (aset standard-display-table ?$,1(:(B [?K]) - (aset standard-display-table ?$,1(;(B [?L]) - (aset standard-display-table ?$,1(<(B [?M]) - (aset standard-display-table ?$,1(=(B [?N]) - (aset standard-display-table ?$,1(>(B [?O]) - (aset standard-display-table ?$,1(?(B [?P]) - (aset standard-display-table ?$,1(@(B [?R]) - (aset standard-display-table ?$,1(A(B [?S]) - (aset standard-display-table ?$,1(B(B [?T]) - (aset standard-display-table ?$,1(C(B [?U]) - (aset standard-display-table ?$,1(D(B [?F]) - (aset standard-display-table ?$,1(E(B [?K ?h]) - (aset standard-display-table ?$,1(F(B [?T ?s]) - (aset standard-display-table ?$,1(G(B [?C ?h]) - (aset standard-display-table ?$,1(H(B [?S ?h]) - (aset standard-display-table ?$,1(I(B [?S ?c ?h]) - (aset standard-display-table ?$,1(J(B [?~]) - (aset standard-display-table ?$,1(K(B [?Y]) - (aset standard-display-table ?$,1(L(B [?']) - (aset standard-display-table ?$,1(M(B [?E ?']) - (aset standard-display-table ?$,1(N(B [?Y ?u]) - (aset standard-display-table ?$,1(O(B [?Y ?a]) - - (aset standard-display-table ?$,1(t(B [?i ?e]) - (aset standard-display-table ?$,1(w(B [?i]) - (aset standard-display-table ?$,1(~(B [?u]) - (aset standard-display-table ?$,1(r(B [?d ?j]) - (aset standard-display-table ?$,1({(B [?c ?h ?j]) - (aset standard-display-table ?$,1(s(B [?g ?j]) - (aset standard-display-table ?$,1(u(B [?s]) - (aset standard-display-table ?$,1(|(B [?k]) - (aset standard-display-table ?$,1(v(B [?i]) - (aset standard-display-table ?$,1(x(B [?j]) - (aset standard-display-table ?$,1(y(B [?l ?j]) - (aset standard-display-table ?$,1(z(B [?n ?j]) - (aset standard-display-table ?$,1((B [?d ?z]) - - (aset standard-display-table ?$,1($(B [?Y ?e]) - (aset standard-display-table ?$,1('(B [?Y ?i]) - (aset standard-display-table ?$,1(.(B [?U]) - (aset standard-display-table ?$,1("(B [?D ?j]) - (aset standard-display-table ?$,1(+(B [?C ?h ?j]) - (aset standard-display-table ?$,1(#(B [?G ?j]) - (aset standard-display-table ?$,1(%(B [?S]) - (aset standard-display-table ?$,1(,(B [?K]) - (aset standard-display-table ?$,1(&(B [?I]) - (aset standard-display-table ?$,1(((B [?J]) - (aset standard-display-table ?$,1()(B [?L ?j]) - (aset standard-display-table ?$,1(*(B [?N ?j]) - (aset standard-display-table ?$,1(/(B [?D ?j]) - (when (equal cyrillic-language "Bulgarian") (aset standard-display-table ?,Li(B [?s ?h ?t]) (aset standard-display-table ?,LI(B [?S ?h ?t]) (aset standard-display-table ?,Ln(B [?i ?u]) (aset standard-display-table ?,LN(B [?I ?u]) (aset standard-display-table ?,Lo(B [?i ?a]) - (aset standard-display-table ?,LO(B [?I ?a]) - ;; Unicode version: - (aset standard-display-table ?$,1(i(B [?s ?h ?t]) - (aset standard-display-table ?$,1(I(B [?S ?h ?t]) - (aset standard-display-table ?$,1(n(B [?i ?u]) - (aset standard-display-table ?$,1(N(B [?I ?u]) - (aset standard-display-table ?$,1(o(B [?i ?a]) - (aset standard-display-table ?$,1(O(B [?I ?a])) + (aset standard-display-table ?,LO(B [?I ?a])) (when (equal cyrillic-language "Ukrainian") ; based on the official ; transliteration table @@ -296,14 +185,7 @@ If the argument is nil, we return the display table to its standard state." (aset standard-display-table ?,LY(B [?i]) (aset standard-display-table ?,L9(B [?Y]) (aset standard-display-table ?,Ln(B [?i ?u]) - (aset standard-display-table ?,Lo(B [?i ?a]) - ;; Unicode version: - (aset standard-display-table ?$,1(X(B [?y]) - (aset standard-display-table ?$,1(8(B [?Y]) - (aset standard-display-table ?$,1(Y(B [?i]) - (aset standard-display-table ?$,1(9(B [?Y]) - (aset standard-display-table ?$,1(n(B [?i ?u]) - (aset standard-display-table ?$,1(o(B [?i ?a])))) + (aset standard-display-table ?,Lo(B [?i ?a])))) ;; (provide 'cyril-util) diff --git a/lisp/language/cyrillic.el b/lisp/language/cyrillic.el index 3af35f602a5..d7e533c48b0 100644 --- a/lisp/language/cyrillic.el +++ b/lisp/language/cyrillic.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Author: Kenichi Handa <handa@etl.go.jp> ;; Keywords: multilingual, Cyrillic, i18n @@ -57,22 +60,21 @@ ;; ISO-8859-5 stuff -(make-coding-system - 'cyrillic-iso-8bit 2 ?5 - "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)." - '(ascii cyrillic-iso8859-5 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii cyrillic-iso8859-5) - (mime-charset . iso-8859-5))) +(define-coding-system 'cyrillic-iso-8bit + "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)." + :coding-type 'charset + :mnemonic ?5 + :charset-list '(iso-8859-5) + :mime-charset 'iso-8859-5) (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit) (set-language-info-alist - "Cyrillic-ISO" '((charset cyrillic-iso8859-5) + "Cyrillic-ISO" '((charset iso-8859-5) (coding-system cyrillic-iso-8bit) (coding-priority cyrillic-iso-8bit) (input-method . "cyrillic-yawerty") ; fixme - (nonascii-translation . cyrillic-iso8859-5) + (nonascii-translation . iso-8859-5) (unibyte-display . cyrillic-iso-8bit) (features cyril-util) (sample-text . "Russian (,L@caaZXY(B) ,L7T`PRabRcYbU(B!") @@ -81,155 +83,26 @@ ;; KOI-8R stuff -;; The mule-unicode portion of this is from -;; http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT, -;; which references RFC 1489. -(defvar cyrillic-koi8-r-decode-table - [ - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - ;; 8859-5 plus Unicode - ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B - ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1s"(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B - ?$,2 p(B ?$,2 q(B ?$,2 r(B ?,Lq(B ?$,2 s(B ?$,2 t(B ?$,2 u(B ?$,2 v(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,2 |(B ?$,2 }(B ?$,2 ~(B - ?$,2 (B ?$,2! (B ?$,2!!(B ?,L!(B ?$,2!"(B ?$,2!#(B ?$,2!$(B ?$,2!%(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,2!+(B ?$,2!,(B ?,A)(B - ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B - ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B - ?,LN(B ?,L0(B ?,L1(B ?,LF(B ?,L4(B ?,L5(B ?,LD(B ?,L3(B ?,LE(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B - ?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B - ;; All Unicode: -;; ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B -;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1s"(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,A (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B -;; ?$,2 p(B ?$,2 q(B ?$,2 r(B ?$,1(q(B ?$,2 s(B ?$,2 t(B ?$,2 u(B ?$,2 v(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,2 |(B ?$,2 }(B ?$,2 ~(B -;; ?$,2 (B ?$,2! (B ?$,2!!(B ?$,1(!(B ?$,2!"(B ?$,2!#(B ?$,2!$(B ?$,2!%(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,2!+(B ?$,2!,(B ?,A)(B -;; ?$,1(n(B ?$,1(P(B ?$,1(Q(B ?$,1(f(B ?$,1(T(B ?$,1(U(B ?$,1(d(B ?$,1(S(B ?$,1(e(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B -;; ?$,1(_(B ?$,1(o(B ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(V(B ?$,1(R(B ?$,1(l(B ?$,1(k(B ?$,1(W(B ?$,1(h(B ?$,1(m(B ?$,1(i(B ?$,1(g(B ?$,1(j(B -;; ?$,1(N(B ?$,1(0(B ?$,1(1(B ?$,1(F(B ?$,1(4(B ?$,1(5(B ?$,1(D(B ?$,1(3(B ?$,1(E(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B -;; ?$,1(?(B ?$,1(O(B ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(6(B ?$,1(2(B ?$,1(L(B ?$,1(K(B ?$,1(7(B ?$,1(H(B ?$,1(M(B ?$,1(I(B ?$,1(G(B ?$,1(J(B - ] - "Cyrillic KOI8-R decoding table.") - -(let ((table (make-translation-table-from-vector - cyrillic-koi8-r-decode-table))) - (define-translation-table 'cyrillic-koi8-r-nonascii-translation-table table) - (define-translation-table 'cyrillic-koi8-r-encode-table - (char-table-extra-slot table 0))) - -;; No point in keeping it around. (It can't be let-bound, since it's -;; needed for macro expansion.) -(makunbound 'cyrillic-koi8-r-decode-table) - -(define-ccl-program ccl-decode-koi8 - `(4 - ((loop - (r0 = 0) - (read r1) - (if (r1 < 128) - (write-repeat r1) - ((translate-character cyrillic-koi8-r-nonascii-translation-table r0 r1) - (translate-character ucs-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1) - (repeat)))))) - "CCL program to decode KOI8-R.") - -(define-ccl-program ccl-encode-koi8 - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character cyrillic-koi8-r-encode-table r0 r1) - (if (r0 != ,(charset-id 'ascii)) - (if (r0 != ,(charset-id 'eight-bit-graphic)) - (if (r0 != ,(charset-id 'eight-bit-control)) - (r1 = ??)))) - (write-repeat r1)))) - "CCL program to encode KOI8-R.") - -(defun cyrillic-unify-encoding (table) - "Set up equivalent characters in the encoding TABLE. -This works whether or not the table is Unicode-based or -8859-5-based. (Only appropriate for Cyrillic.)" - (let ((table (get table 'translation-table))) - (dotimes (i 96) - (let* ((c (make-char 'cyrillic-iso8859-5 (+ i 32))) - (u ; equivalent Unicode char - (cond ((eq c ?,L (B) ?,A (B) - ((eq c ?,L-(B) ?,A-(B) - ((eq c ?,L}(B) ?,A'(B) - (t (decode-char 'ucs (+ #x400 i))))) - (ec (aref table c)) ; encoding of 8859-5 - (uc (aref table u))) ; encoding of Unicode - (unless (memq c '(?,L (B ?,L-(B ?,L}(B)) ; 8859-5 exceptions - (unless uc - (aset table u ec)) - (unless ec - (aset table c uc))))))) - -(cyrillic-unify-encoding 'cyrillic-koi8-r-encode-table) - -(make-coding-system - 'cyrillic-koi8 4 - ;; We used to use ?K. It is true that ?K is more strictly correct, - ;; but it is also used for Korean. - ;; So people who use koi8 for languages other than Russian - ;; will have to forgive us. - ?R "KOI8-R 8-bit encoding for Cyrillic (MIME: KOI8-R)." - '(ccl-decode-koi8 . ccl-encode-koi8) - `((safe-chars . cyrillic-koi8-r-encode-table) - (mime-charset . koi8-r) - (valid-codes (0 . 255)) - (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode))) +(define-coding-system 'cyrillic-koi8 + "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)." + :coding-type 'charset + ;; We used to use ?K. It is true that ?K is more strictly correct, + ;; but it is also used for Korean. So people who use koi8 for + ;; languages other than Russian will have to forgive us. + :mnemonic ?R + :charset-list '(koi8) + :mime-charset 'koi8-r) (define-coding-system-alias 'koi8-r 'cyrillic-koi8) (define-coding-system-alias 'koi8 'cyrillic-koi8) (define-coding-system-alias 'cp878 'cyrillic-koi8) -(let ((elt `("koi8-r" koi8-r 1 - ,(get 'cyrillic-koi8-r-encode-table 'translation-table))) - (slot (assoc "koi8-r" ctext-non-standard-encodings-alist))) - (if slot - (setcdr slot (cdr elt)) - (push elt ctext-non-standard-encodings-alist))) - -;; Allow displaying some of KOI & al with an 8859-5-encoded font. We -;; won't bother about the exceptions when encoding the font, since -;; NBSP will fall through below and work anyhow, and we'll have -;; avoided setting the fontset for the other two to 8859-5 -- they're -;; not in KOI and Alternativnyj anyhow. -(define-ccl-program ccl-encode-8859-5-font - `(0 - ((if (r0 == ,(charset-id 'cyrillic-iso8859-5)) - (r1 += 128) - (if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) - (r1 = (r2 + 128)))))) - "Encode ISO 8859-5 and Cyrillic Unicode chars to 8859-5 font.") - -(add-to-list 'font-ccl-encoder-alist '("iso8859-5" . ccl-encode-8859-5-font)) - -;; The table is set up later to encode both Unicode and 8859-5. -(define-ccl-program ccl-encode-koi8-font - `(0 - (if (r2 >= 0) - ((r1 <<= 7) - (r1 += r2))) - (translate-character cyrillic-koi8-r-encode-table r0 r1)) - "CCL program to encode Cyrillic chars to KOI font.") - -(add-to-list 'font-ccl-encoder-alist '("koi8" . ccl-encode-koi8-font)) - (set-language-info-alist - "Cyrillic-KOI8" `((charset cyrillic-iso8859-5) - (nonascii-translation - . ,(get 'cyrillic-koi8-r-nonascii-translation-table - 'translation-table)) + "Cyrillic-KOI8" `((charset koi8) (coding-system cyrillic-koi8) (coding-priority cyrillic-koi8 cyrillic-iso-8bit) (ctext-non-standard-encodings "koi8-r") + (nonascii-translation . koi8) (input-method . "russian-typewriter") (features cyril-util) (unibyte-display . cyrillic-koi8) @@ -253,95 +126,18 @@ Support for Russian using koi8-r and the russian-computer input method.") (tutorial . "TUTORIAL.ru")) '("Cyrillic")) - -(defvar cyrillic-koi8-u-decode-table - [ - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - ;; All Unicode: -;; ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B -;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1x9(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B -;; ?$,2 p(B ?$,2 q(B ?$,2 r(B ?$,1(q(B ?$,1(t(B ?$,2 t(B ?$,1(v(B ?$,1(w(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,1)Q(B ?$,2 }(B ?$,2 ~(B -;; ?$,2 (B ?$,2! (B ?$,2!!(B ?$,1(!(B ?$,1($(B ?$,2!#(B ?$,1(&(B ?$,1('(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,1)P(B ?$,2!,(B ?,A)(B -;; ?$,1(n(B ?$,1(P(B ?$,1(Q(B ?$,1(f(B ?$,1(T(B ?$,1(U(B ?$,1(d(B ?$,1(S(B ?$,1(e(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B -;; ?$,1(_(B ?$,1(o(B ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(V(B ?$,1(R(B ?$,1(l(B ?$,1(k(B ?$,1(W(B ?$,1(h(B ?$,1(m(B ?$,1(i(B ?$,1(g(B ?$,1(j(B -;; ?$,1(N(B ?$,1(0(B ?$,1(1(B ?$,1(F(B ?$,1(4(B ?$,1(5(B ?$,1(D(B ?$,1(3(B ?$,1(E(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B -;; ?$,1(?(B ?$,1(O(B ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(6(B ?$,1(2(B ?$,1(L(B ?$,1(K(B ?$,1(7(B ?$,1(H(B ?$,1(M(B ?$,1(I(B ?$,1(G(B ?$,1(J(B -;; 8859-5 plus Unicode: - ?$,2 (B ?$,2 "(B ?$,2 ,(B ?$,2 0(B ?$,2 4(B ?$,2 8(B ?$,2 <(B ?$,2 D(B ?$,2 L(B ?$,2 T(B ?$,2 \(B ?$,2!@(B ?$,2!D(B ?$,2!H(B ?$,2!L(B ?$,2!P(B - ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,1{ (B ?$,2!`(B ?$,1x9(B ?$,1x:(B ?$,1xh(B ?$,1y$(B ?$,1y%(B ?,L (B ?$,1{!(B ?,A0(B ?,A2(B ?,A7(B ?,Aw(B - ?$,2 p(B ?$,2 q(B ?$,2 r(B ?,Lq(B ?,Lt(B ?$,2 t(B ?,Lv(B ?,Lw(B ?$,2 w(B ?$,2 x(B ?$,2 y(B ?$,2 z(B ?$,2 {(B ?$,1)Q(B ?$,2 }(B ?$,2 ~(B - ?$,2 (B ?$,2! (B ?$,2!!(B ?,L!(B ?,L$(B ?$,2!#(B ?,L&(B ?,L'(B ?$,2!&(B ?$,2!'(B ?$,2!((B ?$,2!)(B ?$,2!*(B ?$,1)P(B ?$,2!,(B ?,A)(B - ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B - ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B - ?,LN(B ?,L0(B ?,L1(B ?,LF(B ?,L4(B ?,L5(B ?,LD(B ?,L3(B ?,LE(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B - ?,L?(B ?,LO(B ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,L6(B ?,L2(B ?,LL(B ?,LK(B ?,L7(B ?,LH(B ?,LM(B ?,LI(B ?,LG(B ?,LJ(B - ] - "Cyrillic KOI8-U decoding table.") - -(let ((table (make-translation-table-from-vector - cyrillic-koi8-u-decode-table))) - (define-translation-table 'cyrillic-koi8-u-nonascii-translation-table table) - (define-translation-table 'cyrillic-koi8-u-encode-table - (char-table-extra-slot table 0))) - -(makunbound 'cyrillic-koi8-u-decode-table) - -(define-ccl-program ccl-decode-koi8-u - `(4 - ((loop - (r0 = 0) - (read r1) - (if (r1 < 128) - (write-repeat r1) - ((translate-character cyrillic-koi8-u-nonascii-translation-table r0 r1) - (translate-character ucs-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1) - (repeat)))))) - "CCL program to decode KOI8-U.") - -(define-ccl-program ccl-encode-koi8-u - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character cyrillic-koi8-u-encode-table r0 r1) - (if (r0 != ,(charset-id 'ascii)) - (if (r0 != ,(charset-id 'eight-bit-graphic)) - (if (r0 != ,(charset-id 'eight-bit-control)) - (r1 = ??)))) - (write-repeat r1)))) - "CCL program to encode KOI8-U.") - -(cyrillic-unify-encoding 'cyrillic-koi8-u-encode-table) - -(make-coding-system - 'koi8-u 4 - ?U "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" - '(ccl-decode-koi8-u . ccl-encode-koi8-u) - `((safe-chars . cyrillic-koi8-u-encode-table) - (mime-charset . koi8-u) - (valid-codes (0 . 255)) - (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode))) - -(define-ccl-program ccl-encode-koi8-u-font - `(0 - (translate-character cyrillic-koi8-u-encode-table r0 r1)) - "CCL program to encode Cyrillic chars to KOI-U font.") - -(add-to-list 'font-ccl-encoder-alist '("koi8-u" . ccl-encode-koi8-u-font)) +(define-coding-system 'koi8-u + "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" + :coding-type 'charset + :mnemonic ?U + :charset-list '(koi8-u) + :mime-charset 'koi8-u) (set-language-info-alist - "Ukrainian" `((coding-system koi8-u) + "Ukrainian" `((charset koi8-u) + (coding-system koi8-u) (coding-priority koi8-u) - (nonascii-translation - . ,(get 'cyrillic-koi8-u-nonascii-translation-table - 'translation-table)) + (nonascii-translation . koi8-u) (input-method . "ukrainian-computer") (documentation . "Support for Ukrainian with KOI8-U character set.")) @@ -349,103 +145,19 @@ Support for Russian using koi8-r and the russian-computer input method.") ;;; ALTERNATIVNYJ stuff -;; Fixme: It's unclear what's the correct table. I've found -;; statements both that it's the same as cp866 and somewhat different, -;; but nothing that looks really definitive. -(defvar cyrillic-alternativnyj-decode-table - [ - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 -;; ?$,1(0(B ?$,1(1(B ?$,1(2(B ?$,1(3(B ?$,1(4(B ?$,1(5(B ?$,1(6(B ?$,1(7(B ?$,1(8(B ?$,1(9(B ?$,1(:(B ?$,1(;(B ?$,1(<(B ?$,1(=(B ?$,1(>(B ?$,1(?(B -;; ?$,1(@(B ?$,1(A(B ?$,1(B(B ?$,1(C(B ?$,1(D(B ?$,1(E(B ?$,1(F(B ?$,1(G(B ?$,1(H(B ?$,1(I(B ?$,1(J(B ?$,1(K(B ?$,1(L(B ?$,1(M(B ?$,1(N(B ?$,1(O(B -;; ?$,1(P(B ?$,1(Q(B ?$,1(R(B ?$,1(S(B ?$,1(T(B ?$,1(U(B ?$,1(V(B ?$,1(W(B ?$,1(X(B ?$,1(Y(B ?$,1(Z(B ?$,1([(B ?$,1(\(B ?$,1(](B ?$,1(^(B ?$,1(_(B -;; ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,2 "(B ?$,2 D(B ?$,2!!(B ?$,2!"(B ?$,2 v(B ?$,2 u(B ?$,2!#(B ?$,2 q(B ?$,2 w(B ?$,2 }(B ?$,2 |(B ?$,2 {(B ?$,2 0(B -;; ?$,2 4(B ?$,2 T(B ?$,2 L(B ?$,2 <(B ?$,2 (B ?$,2 \(B ?$,2 ~(B ?$,2 (B ?$,2 z(B ?$,2 t(B ?$,2!)(B ?$,2!&(B ?$,2! (B ?$,2 p(B ?$,2!,(B ?$,2!'(B -;; ?$,2!((B ?$,2!$(B ?$,2!%(B ?$,2 y(B ?$,2 x(B ?$,2 r(B ?$,2 s(B ?$,2!+(B ?$,2!*(B ?$,2 8(B ?$,2 ,(B ?$,2!H(B ?$,2!D(B ?$,2!L(B ?$,2!P(B ?$,2!@(B -;; ?$,1(`(B ?$,1(a(B ?$,1(b(B ?$,1(c(B ?$,1(d(B ?$,1(e(B ?$,1(f(B ?$,1(g(B ?$,1(h(B ?$,1(i(B ?$,1(j(B ?$,1(k(B ?$,1(l(B ?$,1(m(B ?$,1(n(B ?$,1(o(B -;; ?$,1(!(B ?$,1(q(B ?$,1ry(B ?$,1rx(B ?$,1%A(B ?$,1%@(B ?$,1s:(B ?$,1s9(B ?$,1vq(B ?$,1vs(B ?,A1(B ?,Aw(B ?$,1uV(B ?,A$(B ?$,2!`(B ?,A (B ; -;; 8859+Unicode - ?,L0(B ?,L1(B ?,L2(B ?,L3(B ?,L4(B ?,L5(B ?,L6(B ?,L7(B ?,L8(B ?,L9(B ?,L:(B ?,L;(B ?,L<(B ?,L=(B ?,L>(B ?,L?(B - ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,LD(B ?,LE(B ?,LF(B ?,LG(B ?,LH(B ?,LI(B ?,LJ(B ?,LK(B ?,LL(B ?,LM(B ?,LN(B ?,LO(B - ?,LP(B ?,LQ(B ?,LR(B ?,LS(B ?,LT(B ?,LU(B ?,LV(B ?,LW(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B - ?$,2!Q(B ?$,2!R(B ?$,2!S(B ?$,2 "(B ?$,2 D(B ?$,2!!(B ?$,2!"(B ?$,2 v(B ?$,2 u(B ?$,2!#(B ?$,2 q(B ?$,2 w(B ?$,2 }(B ?$,2 |(B ?$,2 {(B ?$,2 0(B - ?$,2 4(B ?$,2 T(B ?$,2 L(B ?$,2 <(B ?$,2 (B ?$,2 \(B ?$,2 ~(B ?$,2 (B ?$,2 z(B ?$,2 t(B ?$,2!)(B ?$,2!&(B ?$,2! (B ?$,2 p(B ?$,2!,(B ?$,2!'(B - ?$,2!((B ?$,2!$(B ?$,2!%(B ?$,2 y(B ?$,2 x(B ?$,2 r(B ?$,2 s(B ?$,2!+(B ?$,2!*(B ?$,2 8(B ?$,2 ,(B ?$,2!H(B ?$,2!D(B ?$,2!L(B ?$,2!P(B ?$,2!@(B - ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,Ld(B ?,Le(B ?,Lf(B ?,Lg(B ?,Lh(B ?,Li(B ?,Lj(B ?,Lk(B ?,Ll(B ?,Lm(B ?,Ln(B ?,Lo(B - ;; Taken from http://www.cyrillic.com/ref/cyrillic/koi-8alt.html - ;; with guesses for the Unicodes of the glyphs in the absence of a - ;; table. - ?,L!(B ?,Lq(B ?$,1ry(B ?$,1rx(B ?$,1%A(B ?$,1%@(B ?$,1s:(B ?$,1s9(B ?$,1vq(B ?$,1vs(B ?,A1(B ?,Aw(B ?,Lp(B ?,A$(B ?$,2!`(B ?,L (B] - "Cyrillic ALTERNATIVNYJ decoding table.") - -(let ((table (make-translation-table-from-vector - cyrillic-alternativnyj-decode-table))) - (define-translation-table 'cyrillic-alternativnyj-nonascii-translation-table - table) - (define-translation-table 'cyrillic-alternativnyj-encode-table - (char-table-extra-slot table 0))) - -(makunbound 'cyrillic-alternativnyj-decode-table) - -(define-ccl-program ccl-decode-alternativnyj - `(4 - ((loop - (r0 = 0) - (read r1) - (if (r1 < 128) - (write-repeat r1) - ((translate-character cyrillic-alternativnyj-nonascii-translation-table - r0 r1) - (translate-character ucs-translation-table-for-decode r0 r1) - (write-multibyte-character r0 r1) - (repeat)))))) - "CCL program to decode Alternativnyj.") - -(define-ccl-program ccl-encode-alternativnyj - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character cyrillic-alternativnyj-encode-table r0 r1) - (if (r0 != ,(charset-id 'ascii)) - (if (r0 != ,(charset-id 'eight-bit-graphic)) - (if (r0 != ,(charset-id 'eight-bit-control)) - (r1 = ??)))) - (write-repeat r1)))) - "CCL program to encode Alternativnyj.") - -(cyrillic-unify-encoding 'cyrillic-alternativnyj-encode-table) - -(make-coding-system - 'cyrillic-alternativnyj 4 ?A - "ALTERNATIVNYJ 8-bit encoding for Cyrillic." - '(ccl-decode-alternativnyj . ccl-encode-alternativnyj) - `((safe-chars . cyrillic-alternativnyj-encode-table) - (valid-codes (0 . 255)) - (dependency unify-8859-on-encoding-mode unify-8859-on-decoding-mode))) +(define-coding-system 'cyrillic-alternativnyj + "ALTERNATIVNYJ 8-bit encoding for Cyrillic." + :coding-type 'charset + :mnemonic ?A + :charset-list '(alternativnyj)) (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj) -(define-ccl-program ccl-encode-alternativnyj-font - `(0 - (translate-character cyrillic-alternativnyj-encode-table r0 r1)) - "CCL program to encode Cyrillic chars to Alternativnyj font.") - -(add-to-list 'font-ccl-encoder-alist - '("alternativnyj" . ccl-encode-alternativnyj-font)) - (set-language-info-alist - "Cyrillic-ALT" `((charset cyrillic-iso8859-5) - (nonascii-translation - . ,(get 'cyrillic-alternativnyj-nonascii-translation-table - 'translation-table)) + "Cyrillic-ALT" `((charset alternativnyj) (coding-system cyrillic-alternativnyj) (coding-priority cyrillic-alternativnyj) + (nonascii-translation . alternativnyj) (input-method . "russian-typewriter") (features cyril-util) (unibyte-display . cyrillic-alternativnyj) @@ -453,49 +165,82 @@ Support for Russian using koi8-r and the russian-computer input method.") (documentation . "Support for Cyrillic ALTERNATIVNYJ.")) '("Cyrillic")) +(define-coding-system 'cp866 + "CP866 encoding for Cyrillic." + :coding-type 'charset + :mnemonic ?* + :charset-list '(ibm866) + :mime-charset 'cp866) + +(define-coding-system 'koi8-u + "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)" + :coding-type 'charset + :mnemonic ?U + :charset-list '(koi8-u) + :mime-charset 'koi8-u) + +(define-coding-system 'koi8-t + "KOI8-T 8-bit encoding for Cyrillic" + :coding-type 'charset + :mnemonic ?* + :charset-list '(koi8-t) + :mime-charset 'koi8-t) + +(define-coding-system 'windows-1251 + "windows-1251 8-bit encoding for Cyrillic (MIME: WINDOWS-1251)" + :coding-type 'charset + :mnemonic ?b + :charset-list '(windows-1251) + :mime-charset 'windows-1251) +(define-coding-system-alias 'cp1251 'windows-1251) + +(define-coding-system 'cp1125 + "cp1125 8-bit encoding for Cyrillic" + :coding-type 'charset + :mnemonic ?* + :charset-list '(cp1125)) +(define-coding-system-alias 'ruscii 'cp1125) +;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua> +(define-coding-system-alias 'cp866u 'cp1125) + +(define-coding-system 'cp855 + "DOS codepage 855 (Russian)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp855) + :mime-charset 'cp855) +(define-coding-system-alias 'ibm855 'cp855) + +(define-coding-system 'mik + "Bulgarian DOS codepage" + :coding-type 'charset + :mnemonic ?D + :charset-list '(mik)) + +(define-coding-system 'pt154 + "Parattype Asian Cyrillic codepage" + :coding-type 'charset + :mnemonic ?D + :charset-list '(pt154)) + +;; (set-language-info-alist +;; "Windows-1251" `((coding-system windows-1251) +;; (coding-priority windows-1251) +;; (input-method . "russian-typewriter") ; fixme? +;; (features code-pages) +;; (documentation . "Support for windows-1251 character set.")) +;; '("Cyrillic")) + (set-language-info-alist - "Tajik" `((coding-system cyrillic-koi8-t) - (coding-priority cyrillic-koi8-t) - (nonascii-translation - . ,(get 'decode-koi8-t 'translation-table)) + "Tajik" `((coding-system koi8-t) + (coding-priority koi8-t) + (nonascii-translation . cyrillic-koi8-t) + (charset koi8-t) (input-method . "russian-typewriter") ; fixme? (features code-pages) (documentation . "Support for Tajik using KOI8-T.")) '("Cyrillic")) -(eval-and-compile - (setq - non-iso-charset-alist - (cp-make-coding-system - windows-1251 - [?\$,1("(B ?\$,1(#(B ?\$,1rz(B ?\$,1(s(B ?\$,1r~(B ?\$,1s&(B ?\$,1s (B ?\$,1s!(B ?\$,1tL(B ?\$,1s0(B ?\$,1()(B ?\$,1s9(B ?\$,1(*(B ?\$,1(,(B ?\$,1(+(B ?\$,1(/(B ?\$,1(r(B - ?\$,1rx(B ?\$,1ry(B ?\$,1r|(B ?\$,1r}(B ?\$,1s"(B ?\$,1rs(B ?\$,1rt(B nil ?\$,1ub(B ?\$,1(y(B ?\$,1s:(B ?\$,1(z(B ?\$,1(|(B ?\$,1({(B ?\$,1((B ?\,A (B ?\$,1(.(B - ?\$,1(~(B ?\$,1(((B ?\,A$(B ?\$,1)P(B ?\,A&(B ?\,A'(B ?\$,1(!(B ?\,A)(B ?\$,1($(B ?\,A+(B ?\,A,(B ?\,A-(B ?\,A.(B ?\$,1('(B ?\,A0(B ?\,A1(B ?\$,1(&(B - ?\$,1(v(B ?\$,1)Q(B ?\,A5(B ?\,A6(B ?\,A7(B ?\$,1(q(B ?\$,1uV(B ?\$,1(t(B ?\,A;(B ?\$,1(x(B ?\$,1(%(B ?\$,1(u(B ?\$,1(w(B ?\$,1(0(B ?\$,1(1(B ?\$,1(2(B ?\$,1(3(B - ?\$,1(4(B ?\$,1(5(B ?\$,1(6(B ?\$,1(7(B ?\$,1(8(B ?\$,1(9(B ?\$,1(:(B ?\$,1(;(B ?\$,1(<(B ?\$,1(=(B ?\$,1(>(B ?\$,1(?(B ?\$,1(@(B ?\$,1(A(B ?\$,1(B(B ?\$,1(C(B ?\$,1(D(B - ?\$,1(E(B ?\$,1(F(B ?\$,1(G(B ?\$,1(H(B ?\$,1(I(B ?\$,1(J(B ?\$,1(K(B ?\$,1(L(B ?\$,1(M(B ?\$,1(N(B ?\$,1(O(B ?\$,1(P(B ?\$,1(Q(B ?\$,1(R(B ?\$,1(S(B ?\$,1(T(B ?\$,1(U(B - ?\$,1(V(B ?\$,1(W(B ?\$,1(X(B ?\$,1(Y(B ?\$,1(Z(B ?\$,1([(B ?\$,1(\(B ?\$,1(](B ?\$,1(^(B ?\$,1(_(B ?\$,1(`(B ?\$,1(a(B ?\$,1(b(B ?\$,1(c(B ?\$,1(d(B ?\$,1(e(B ?\$,1(f(B - ?\$,1(g(B ?\$,1(h(B ?\$,1(i(B ?\$,1(j(B ?\$,1(k(B ?\$,1(l(B ?\$,1(m(B ?\$,1(n(B ?\$,1(o(B] nil ?b))) - -;; Register cyrillic-iso8859-5 characters in the encode table of -;; windows-1251. -(let ((table (get 'encode-windows-1251 'translation-table)) - ;; Nth element is a cyrillic-iso8859-5 character encoded to a - ;; code (128 + N), or nil. - (vec [?\,L"(B ?\,L#(B nil ?\,Ls(B nil nil nil nil nil nil ?\,L)(B nil ?\,L*(B ?\,L,(B ?\,L+(B ?\,L/(B - ?\,Lr(B nil nil nil nil nil nil nil nil nil ?\,Ly(B nil ?\,Lz(B ?\,L|(B ?\,L{(B ?\,L(B - nil ?\,L.(B ?\,L~(B ?\,L((B nil nil nil nil ?\,L!(B nil ?\,L$(B nil nil nil nil ?\,L'(B - nil nil ?\,L&(B ?\,Lv(B nil nil nil nil ?\,Lq(B ?\,Lp(B ?\,Lt(B nil ?\,Lx(B ?\,L%(B ?\,Lu(B ?\,Lw(B - ?\,L0(B ?\,L1(B ?\,L2(B ?\,L3(B ?\,L4(B ?\,L5(B ?\,L6(B ?\,L7(B ?\,L8(B ?\,L9(B ?\,L:(B ?\,L;(B ?\,L<(B ?\,L=(B ?\,L>(B ?\,L?(B - ?\,L@(B ?\,LA(B ?\,LB(B ?\,LC(B ?\,LD(B ?\,LE(B ?\,LF(B ?\,LG(B ?\,LH(B ?\,LI(B ?\,LJ(B ?\,LK(B ?\,LL(B ?\,LM(B ?\,LN(B ?\,LO(B - ?\,LP(B ?\,LQ(B ?\,LR(B ?\,LS(B ?\,LT(B ?\,LU(B ?\,LV(B ?\,LW(B ?\,LX(B ?\,LY(B ?\,LZ(B ?\,L[(B ?\,L\(B ?\,L](B ?\,L^(B ?\,L_(B - ?\,L`(B ?\,La(B ?\,Lb(B ?\,Lc(B ?\,Ld(B ?\,Le(B ?\,Lf(B ?\,Lg(B ?\,Lh(B ?\,Li(B ?\,Lj(B ?\,Lk(B ?\,Ll(B ?\,Lm(B ?\,Ln(B ?\,Lo(B])) - (dotimes (i (length vec)) - (if (aref vec i) - (aset table (aref vec i) (+ 128 i))))) - -(define-coding-system-alias 'cp1251 'windows-1251) - (let ((elt `("microsoft-cp1251" windows-1251 1 ,(get 'encode-windows-1251 'translation-table))) (slot (assoc "microsoft-cp1251" ctext-non-standard-encodings-alist))) @@ -503,50 +248,37 @@ Support for Russian using koi8-r and the russian-computer input method.") (setcdr slot (cdr elt)) (push elt ctext-non-standard-encodings-alist))) -(define-ccl-program ccl-encode-windows-1251-font - `(0 - ((if (r0 == ,(charset-id 'mule-unicode-0100-24ff)) - ((r1 <<= 7) - (r1 += r2))) - (translate-character encode-windows-1251 r0 r1)))) - -(add-to-list 'font-ccl-encoder-alist - '("microsoft-cp1251" . ccl-encode-windows-1251-font)) - (set-language-info-alist "Bulgarian" `((coding-system windows-1251) (coding-priority windows-1251) + (nonascii-translation . windows-1251) + (charset windows-1251) (ctext-non-standard-encodings "microsoft-cp1251") - (overriding-fontspec - (,(get 'encode-windows-1251 'translation-table) - . (nil . "microsoft-cp1251")) - (,(get 'cyrillic-koi8-r-encode-table 'translation-table) - . (nil . "koi8-r"))) - (nonascii-translation - . ,(get 'decode-windows-1251 'translation-table)) (input-method . "bulgarian-bds") (documentation - . "Support for Bulgarian with windows-1251 character set.") - (tutorial . "TUTORIAL.bg")) + . "Support for Bulgrian with windows-1251 character set.")) '("Cyrillic")) (set-language-info-alist "Belarusian" `((coding-system windows-1251) (coding-priority windows-1251) + (nonascii-translation . windows-1251) + (charset windows-1251) (ctext-non-standard-encodings "microsoft-cp1251") - (overriding-fontspec - (,(get 'encode-windows-1251 'translation-table) - . (nil . "microsoft-cp1251")) - (,(get 'cyrillic-koi8-r-encode-table 'translation-table) - . (nil . "koi8-r"))) - (nonascii-translation - . ,(get 'decode-windows-1251 'translation-table)) (input-method . "belarusian") (documentation . "Support for Belarusian with windows-1251 character set. \(The name Belarusian replaced Byelorussian in the early 1990s.)")) '("Cyrillic")) +(set-language-info-alist + "Ukrainian" `((coding-system koi8-u) + (coding-priority koi8-u) + (input-method . "ukrainian-computer") + (documentation + . "Support for Ukrainian with koi8-u character set.")) + '("Cyrillic")) + (provide 'cyrillic) ;;; arch-tag: bda71ae0-ba41-4cb6-a6e0-1dff542313d3 diff --git a/lisp/language/czech.el b/lisp/language/czech.el index 982fa964583..54314a7d091 100644 --- a/lisp/language/czech.el +++ b/lisp/language/czech.el @@ -35,8 +35,7 @@ (coding-system . (iso-8859-2)) (coding-priority . (iso-8859-2)) (input-method . "czech") - (nonascii-translation . latin-iso8859-2) - (unibyte-syntax . "latin-2") + (nonascii-translation . iso-8859-2) (unibyte-display . iso-8859-2) (tutorial . "TUTORIAL.cs") (sample-text . "P,Bx(Bejeme v,Ba(Bm hezk,B}(B den!") diff --git a/lisp/language/devan-util.el b/lisp/language/devan-util.el index 021ffce354a..41d7937493c 100644 --- a/lisp/language/devan-util.el +++ b/lisp/language/devan-util.el @@ -1,4 +1,4 @@ -;;; devan-util.el --- Support for composing Devanagari characters +;;; devan-util.el --- Support for composing Devanagari characters -*-coding: iso-2022-7bit;-*- ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. @@ -35,8 +35,6 @@ ;;; Code: -;;;###autoload - ;; Devanagari Composable Pattern ;; C .. Consonants ;; V .. Vowel @@ -55,6 +53,11 @@ (defconst devanagari-consonant "[$,15U(B-$,15y68(B-$,16?(B]") + ;;("$,16B(B" . nil) + ;;("$,16A(B" . nil) + ;;("$,16C(B" . nil) + + (defconst devanagari-composable-pattern (concat "\\([$,15E(B-$,15T6@6A(B][$,15A5B(B]?\\)\\|[$,15C6D(B]" @@ -64,6 +67,12 @@ "\\)") "Regexp matching a composable sequence of Devanagari characters.") +(dolist (range '((#x0903 . #x0903) + (#x0905 . #x0939) + (#x0958 . #x0961))) + (set-char-table-range indian-composable-pattern range + devanagari-composable-pattern)) + ;;;###autoload (defun devanagari-compose-region (from to) (interactive "r") @@ -72,8 +81,8 @@ (narrow-to-region from to) (goto-char (point-min)) (while (re-search-forward devanagari-composable-pattern nil t) - (devanagari-compose-syllable-region (match-beginning 0) - (match-end 0)))))) + (devanagari-compose-syllable-region (match-beginning 0) + (match-end 0)))))) (defun devanagari-compose-string (string) (with-temp-buffer (insert (decompose-string string)) @@ -90,11 +99,6 @@ (set-buffer-modified-p buffer-modified-p) (- (point-max) (point-min)))))) -(defun devanagari-range (from to) - "Make the list of the integers of range FROM to TO." - (let (result) - (while (<= from to) (setq result (cons to result) to (1- to))) result)) - (defun devanagari-regexp-of-hashtbl-keys (hashtbl) "Return a regular expression that matches all keys in hashtable HASHTBL." (let ((max-specpdl-size 1000)) @@ -105,21 +109,18 @@ dummy) (function (lambda (x y) (> (length x) (length y)))))))) -(defun devanagari-composition-function (from to pattern &optional string) - "Compose Devanagari characters in REGION, or STRING if specified. -Assume that the REGION or STRING must fully match the composable -PATTERN regexp." - (if string (devanagari-compose-syllable-string string) - (devanagari-compose-syllable-region from to)) - (- to from)) - -;; Register a function to compose Devanagari characters. -(mapc - (function (lambda (ucs) - (aset composition-function-table (decode-char 'ucs ucs) - (list (cons devanagari-composable-pattern - 'devanagari-composition-function))))) - (nconc '(#x0903) (devanagari-range #x0905 #x0939) (devanagari-range #x0958 #x0961))) +;;;###autoload +(defun devanagari-composition-function (pos &optional string) + "Compose Devanagari characters after the position POS. +If STRING is not nil, it is a string, and POS is an index to the string. +In this case, compose characters after POS of the string." + (if string + ;; Not yet implemented. + nil + (goto-char pos) + (if (looking-at devanagari-composable-pattern) + (prog1 (match-end 0) + (devanagari-compose-syllable-region pos (match-end 0)))))) ;; Notes on conversion steps. @@ -496,11 +497,10 @@ preferred rule from the sanskrit fonts." ) (defvar dev-glyph-glyph-2-regexp (devanagari-regexp-of-hashtbl-keys dev-glyph-glyph-2-hash)) - (defun dev-charseq (from &optional to) (if (null to) (setq to from)) - (mapcar (function (lambda (x) (indian-glyph-char x 'devanagari))) - (devanagari-range from to))) + (number-sequence (decode-char 'devanagari-cdac from) + (decode-char 'devanagari-cdac to))) (defvar dev-glyph-cvn (append diff --git a/lisp/language/devanagari.el b/lisp/language/devanagari.el index c348a936f50..fea66a26a06 100644 --- a/lisp/language/devanagari.el +++ b/lisp/language/devanagari.el @@ -34,8 +34,8 @@ "Devanagari" '((charset indian-is13194 mule-unicode-0100-24ff indian-2-column indian-glyph ;; comment out later ) - (coding-system in-is13194) - (coding-priority in-is13194) + (coding-system in-is13194-devanagari) + (coding-priority in-is13194-devanagari) (input-method . "dev-aiba") (features devan-util) (documentation . "\ @@ -43,6 +43,13 @@ Such languages using Devanagari script as Hindi and Marathi are supported in this language environment.")) '("Indian")) +;; For automatic composition. +(dolist (range '((#x0903 . #x0903) + (#x0905 . #x0939) + (#x0958 . #x0961))) + (set-char-table-range composition-function-table range + 'devanagari-composition-function)) + (provide 'devanagari) ;;; arch-tag: fd13667d-868b-41e8-81ef-79dd28bbfed2 diff --git a/lisp/language/english.el b/lisp/language/english.el index d89d7c7d36f..a77bdee4369 100644 --- a/lisp/language/english.el +++ b/lisp/language/english.el @@ -5,6 +5,9 @@ ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multibyte character, character set, syntax, category @@ -41,6 +44,26 @@ Nothing special is needed to handle English.") )) +;; Mostly because we can now... +(define-coding-system 'ebcdic-us + "US version of EBCDIC" + :coding-type 'charset + :charset-list '(ebcdic-us) + :mnemonic ?*) + +(define-coding-system 'ebcdic-uk + "UK version of EBCDIC" + :coding-type 'charset + :charset-list '(ebcdic-uk) + :mnemonic ?*) + +(define-coding-system 'ibm1047 + "A version of EBCDIC used in OS/390 Unix" ; says Groff + :coding-type 'charset + :charset-list '(ibm1047) + :mnemonic ?*) +(define-coding-system-alias 'cp1047 'ibm1047) + ;; Make "ASCII" an alias of "English" language environment. (set-language-info-alist "ASCII" (cdr (assoc "English" language-info-alist))) diff --git a/lisp/language/ethio-util.el b/lisp/language/ethio-util.el index 16b0b2152e1..b66e1a471bc 100644 --- a/lisp/language/ethio-util.el +++ b/lisp/language/ethio-util.el @@ -1,10 +1,13 @@ -;;; ethio-util.el --- utilities for Ethiopic -*- coding: iso-2022-7bit; -*- +;;; ethio-util.el --- utilities for Ethiopic -*- coding: utf-8-emacs; -*- ;; Copyright (C) 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2005, 2006 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number: H15PRO110 ;; Keywords: mule, multilingual, Ethiopic @@ -31,6 +34,8 @@ ;;; Code: +(require 'robin) + (defvar rmail-current-message) (defvar rmail-message-vector) @@ -41,36 +46,17 @@ (defun setup-ethiopic-environment-internal () (let ((key-bindings '((" " . ethio-insert-space) ([?\S- ] . ethio-insert-ethio-space) - ([?\C-'] . ethio-gemination) - - ;; these old bindings conflict - ;; with Emacs' binding policy - - ;; ([f2] . ethio-toggle-space) - ;; ([S-f2] . ethio-replace-space) ; as requested - ;; ([f3] . ethio-toggle-punctuation) - ;; ([f4] . ethio-sera-to-fidel-buffer) - ;; ([S-f4] . ethio-sera-to-fidel-region) - ;; ([C-f4] . ethio-sera-to-fidel-mail-or-marker) - ;; ([f5] . ethio-fidel-to-sera-buffer) - ;; ([S-f5] . ethio-fidel-to-sera-region) - ;; ([C-f5] . ethio-fidel-to-sera-mail-or-marker) - ;; ([f6] . ethio-modify-vowel) - ;; ([f7] . ethio-replace-space) - ;; ([f8] . ethio-input-special-character) - - ;; this is the rewritten bindings - + ;; ([?\C-'] . ethio-gemination) ([f3] . ethio-fidel-to-sera-buffer) ([S-f3] . ethio-fidel-to-sera-region) - ([C-f3] . ethio-fidel-to-sera-mail-or-marker) + ([C-f3] . ethio-fidel-to-sera-marker) ([f4] . ethio-sera-to-fidel-buffer) ([S-f4] . ethio-sera-to-fidel-region) - ([C-f4] . ethio-sera-to-fidel-mail-or-marker) + ([C-f4] . ethio-sera-to-fidel-marker) ([S-f5] . ethio-toggle-punctuation) ([S-f6] . ethio-modify-vowel) ([S-f7] . ethio-replace-space) - ([S-f8] . ethio-input-special-character) + ;; ([S-f8] . ethio-input-special-character) ; deprecated ([C-f9] . ethio-toggle-space) ([S-f9] . ethio-replace-space) ; as requested )) @@ -83,7 +69,6 @@ (global-set-key kb (cdr (car key-bindings))) (setq key-bindings (cdr key-bindings)))) - (add-hook 'quail-activate-hook 'ethio-select-a-translation) (add-hook 'find-file-hook 'ethio-find-file) (add-hook 'write-file-functions 'ethio-write-file) (add-hook 'after-save-hook 'ethio-find-file)) @@ -96,7 +81,6 @@ (setq exit-ethiopic-environment-data (cdr exit-ethiopic-environment-data))) - (remove-hook 'quail-activate-hook 'ethio-select-a-translation) (remove-hook 'find-file-hook 'ethio-find-file) (remove-hook 'write-file-functions 'ethio-write-file) (remove-hook 'after-save-hook 'ethio-find-file)) @@ -114,15 +98,6 @@ ;; ;; If the filename ends in ".tex", editing is done in fidel ;; but file I/O is done in EthioTeX format. -;; -;; To automatically convert Ethiopic text to SERA format when sending mail, -;; (add-hook 'mail-send-hook 'ethio-fidel-to-sera-mail) -;; -;; To automatically convert SERA format to Ethiopic when receiving mail, -;; (add-hook 'rmail-show-message-hook 'ethio-sera-to-fidel-mail) -;; -;; To automatically convert Ethiopic text to SERA format when posting news, -;; (add-hook 'news-inews-hook 'ethio-fidel-to-sera-mail) ;; ;; users' preference @@ -149,7 +124,7 @@ mark. All SERA <--> FIDEL converters refer this variable.") (defvar ethio-quote-vowel-always nil "*Non-nil means always put an apostrophe before an isolated vowel (except at word initial) in FIDEL --> SERA conversion. -If nil, put an apostrophe only between a sixth-form consonant and an +If nil, put an apostrophe only between a 6th-form consonant and an isolated vowel.") (defvar ethio-W-sixth-always nil @@ -163,313 +138,98 @@ For example, ({10}{9}{100}{80}{7}) is converted into: `109100807 if `ethio-numeric-reduction' is 1, `10900807 if `ethio-numeric-reduction' is 2.") -(defvar ethio-implicit-period-conversion t - "*Non-nil means replacing the Ethiopic dot at the end of an Ethiopic sentence -with an Ethiopic full stop.") - (defvar ethio-java-save-lowercase nil "*Non-nil means save Ethiopic characters in lowercase hex numbers to Java files. If nil, use uppercases.") +(defun ethio-prefer-amharic-p () + (or (eq ethio-primary-language 'amharic) + (and (not (eq ethio-primary-language 'tigrigna)) + (eq ethio-secondary-language 'amharic)))) + +(defun ethio-prefer-amharic (arg) + (if arg + (progn + (robin-modify-package "ethiopic-sera" "'a" ?አ) + (robin-modify-package "ethiopic-sera" "a" "አ") + (robin-modify-package "ethiopic-sera" "'A" ?ኣ) + (robin-modify-package "ethiopic-sera" "A" "ኣ")) + (robin-modify-package "ethiopic-sera" "'A" ?አ) + (robin-modify-package "ethiopic-sera" "A" "አ") + (robin-modify-package "ethiopic-sera" "'a" ?ኣ) + (robin-modify-package "ethiopic-sera" "a" "ኣ"))) + +(defun ethio-use-colon-for-colon (arg) + (if arg + (progn + (robin-modify-package "ethiopic-sera" ":" ?፥) + (robin-modify-package "ethiopic-sera" "`:" ?፡)) + (robin-modify-package "ethiopic-sera" " : " ?፡) + (robin-modify-package "ethiopic-sera" ":" "፡") + (robin-modify-package "ethiopic-sera" "-:" ?፥))) + +(defun ethio-use-three-dot-question (arg) + (if arg + (progn + (robin-modify-package "ethiopic-sera" "?" ?፧) + (robin-modify-package "ethiopic-sera" "`?" ??)) + (robin-modify-package "ethiopic-sera" "?" ??) + (robin-modify-package "ethiopic-sera" "`?" ?፧))) + +(defun ethio-adjust-robin () + (ethio-prefer-amharic (ethio-prefer-amharic-p)) + (ethio-use-colon-for-colon ethio-use-colon-for-colon) + (ethio-use-three-dot-question ethio-use-three-dot-question)) + +(add-hook 'robin-activate-hook 'ethio-adjust-robin) + ;; ;; SERA to FIDEL ;; -(defconst ethio-sera-to-fidel-table - [ - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil - nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil -;;; SP - (" " - (?: (if ethio-use-colon-for-colon " $(3$l(B" "$(3$h(B") - (32 (if ethio-use-colon-for-colon " $(3$l(B " "$(3$h(B")) - (?- " $(3$m(B") - (?: " $(3$i(B") - (?| (if ethio-use-colon-for-colon " $(3$l(B|" " $(3$h(B|") - (?: " $(3$o(B")))) - -;;; ! " # $ % & ' - nil nil nil nil nil nil ("" (?' "$(3%s(B")) -;;; ( ) * + , - . - nil nil nil nil ("$(3$j(B") ("-" (?: "$(3$l(B")) ("$(3%u(B") -;;; / 0 1 2 3 4 5 6 7 8 9 - nil nil nil nil nil nil nil nil nil nil nil -;;; : - ((if ethio-use-colon-for-colon "$(3$l(B" "$(3$h(B") - (32 (if ethio-use-colon-for-colon "$(3$l(B " "$(3$h(B")) - (?- "$(3$m(B") - (?: "$(3$i(B") - (?| (if ethio-use-colon-for-colon "$(3$l(B|" "$(3$h(B|") - (?: "$(3$o(B"))) -;;; ; < = > - ("$(3$k(B") ("<" (?< "$(3%v(B")) nil (">" (?> "$(3%w(B")) -;;; ? - ((if ethio-use-three-dot-question "$(3$n(B" "$(3%x(B")) -;;; @ - nil -;;; A - ("$(3"f(B" (?2 "$(3#8(B")) -;;; B - ("$(3"((B" (?e "$(3"#(B") (?u "$(3"$(B") (?i "$(3"%(B") (?a "$(3"&(B") (?E "$(3"'(B") (?o "$(3")(B") - (?W "$(3%b(B" (?e "$(3%2(B") (?u "$(3%b(B") (?i "$(3%B(B") (?a "$(3"*(B") (?E "$(3%R(B"))) -;;; C - ("$(3$4(B" (?e "$(3$/(B") (?u "$(3$0(B") (?i "$(3$1(B") (?a "$(3$2(B") (?E "$(3$3(B") (?o "$(3$5(B") - (?W "$(3$6(B" (?a "$(3$6(B") - (?e "$(3$4%n(B") (?u "$(3$4%r(B") (?i "$(3$4%o(B") (?E "$(3$4%q(B"))) -;;; D - ("$(3#b(B" (?e "$(3#](B") (?u "$(3#^(B") (?i "$(3#_(B") (?a "$(3#`(B") (?E "$(3#a(B") (?o "$(3#c(B") - (?W "$(3#d(B" (?a "$(3#d(B") - (?e "$(3#b%n(B") (?u "$(3#b%r(B") (?i "$(3#b%o(B") (?E "$(3#b%q(B"))) -;;; E - ("$(3"g(B" (?2 "$(3#9(B")) -;;; F - ("$(3$T(B" (?e "$(3$O(B") (?u "$(3$P(B") (?i "$(3$Q(B") (?a "$(3$R(B") (?E "$(3$S(B") (?o "$(3$U(B") - (?W "$(3%d(B" (?e "$(3%4(B") (?u "$(3%d(B") (?i "$(3%D(B") (?a "$(3$V(B") (?E "$(3%T(B")) - (?Y "$(3$a(B" (?a "$(3$a(B"))) -;;; G - ("$(3$$(B" (?e "$(3#}(B") (?u "$(3#~(B") (?i "$(3$!(B") (?a "$(3$"(B") (?E "$(3$#(B") (?o "$(3$%(B") - (?W "$(3%c(B" (?e "$(3%3(B") (?u "$(3%c(B") (?i "$(3%C(B") (?a "$(3$&(B") (?E "$(3%S(B"))) -;;; H - ("$(3!6(B" (?e "$(3!1(B") (?u "$(3!2(B") (?i "$(3!3(B") (?a "$(3!4(B") (?E "$(3!5(B") (?o "$(3!7(B") - (?W "$(3!8(B" (?a "$(3!8(B") - (?e "$(3!6%n(B") (?u "$(3!6%r(B") (?i "$(3!6%o(B") (?E "$(3!6%q(B"))) -;;; I - ("$(3"h(B" (?2 "$(3#:(B")) -;;; J - ("$(3#j(B" (?e "$(3#e(B") (?u "$(3#f(B") (?i "$(3#g(B") (?a "$(3#h(B") (?E "$(3#i(B") (?o "$(3#k(B") - (?W "$(3#l(B" (?a "$(3#l(B") - (?e "$(3#j%n(B") (?u "$(3#j%r(B") (?i "$(3#j%o(B") (?E "$(3#j%q(B"))) -;;; K - ("$(3#"(B" (?e "$(3"{(B") (?u "$(3"|(B") (?i "$(3"}(B") (?a "$(3"~(B") (?E "$(3#!(B") (?o "$(3##(B") - (?W "$(3#*(B" (?e "$(3#%(B") (?u "$(3#*(B") (?i "$(3#'(B") (?a "$(3#((B") (?E "$(3#)(B"))) -;;; L - ("$(3!.(B" (?e "$(3!)(B") (?u "$(3!*(B") (?i "$(3!+(B") (?a "$(3!,(B") (?E "$(3!-(B") (?o "$(3!/(B") - (?W "$(3!0(B" (?a "$(3!0(B") - (?e "$(3!.%n(B") (?u "$(3!.%r(B") (?i "$(3!.%o(B") (?E "$(3!.%q(B"))) -;;; M - ("$(3!>(B" (?e "$(3!9(B") (?u "$(3!:(B") (?i "$(3!;(B") (?a "$(3!<(B") (?E "$(3!=(B") (?o "$(3!?(B") - (?W "$(3%a(B" (?e "$(3%1(B") (?u "$(3%a(B") (?i "$(3%A(B") (?a "$(3!@(B") (?E "$(3%Q(B")) - (?Y "$(3$_(B" (?a "$(3$_(B"))) -;;; N - ("$(3"`(B" (?e "$(3"[(B") (?u "$(3"\(B") (?i "$(3"](B") (?a "$(3"^(B") (?E "$(3"_(B") (?o "$(3"a(B") - (?W "$(3"b(B" (?a "$(3"b(B") - (?e "$(3"`%n(B") (?u "$(3"`%r(B") (?i "$(3"`%o(B") (?E "$(3"`%q(B"))) -;;; O - ("$(3"i(B" (?2 "$(3#;(B")) -;;; P - ("$(3$<(B" (?e "$(3$7(B") (?u "$(3$8(B") (?i "$(3$9(B") (?a "$(3$:(B") (?E "$(3$;(B") (?o "$(3$=(B") - (?W "$(3$>(B" (?a "$(3$>(B") - (?e "$(3$<%n(B") (?u "$(3$<%r(B") (?i "$(3$<%o(B") (?E "$(3$<%q(B"))) -;;; Q - ("$(3!v(B" (?e "$(3!q(B") (?u "$(3!r(B") (?i "$(3!s(B") (?a "$(3!t(B") (?E "$(3!u(B") (?o "$(3!w(B") - (?W "$(3!~(B" (?e "$(3!y(B") (?u "$(3!~(B") (?i "$(3!{(B") (?a "$(3!|(B") (?E "$(3!}(B"))) -;;; R - ("$(3!N(B" (?e "$(3!I(B") (?u "$(3!J(B") (?i "$(3!K(B") (?a "$(3!L(B") (?E "$(3!M(B") (?o "$(3!O(B") - (?W "$(3!P(B" (?a "$(3!P(B") - (?e "$(3!N%n(B") (?u "$(3!N%r(B") (?i "$(3!N%o(B") (?E "$(3!N%q(B")) - (?Y "$(3$`(B" (?a "$(3$`(B"))) -;;; S - ("$(3$D(B" (?e "$(3$?(B") (?u "$(3$@(B") (?i "$(3$A(B") (?a "$(3$B(B") (?E "$(3$C(B") (?o "$(3$E(B") - (?W "$(3$F(B" (?a "$(3$F(B") - (?e "$(3$D%n(B") (?u "$(3$D%r(B") (?i "$(3$D%o(B") (?E "$(3$D%q(B")) - (?2 "$(3$L(B" - (?e "$(3$G(B") (?u "$(3$H(B") (?i "$(3$I(B") (?a "$(3$J(B") (?E "$(3$K(B") (?o "$(3$M(B") - (?W "$(3$F(B" (?a "$(3$F(B") - (?e "$(3$L%n(B") (?u "$(3$L%r(B") (?i "$(3$L%o(B") (?E "$(3$L%q(B")))) -;;; T - ("$(3$,(B" (?e "$(3$'(B") (?u "$(3$((B") (?i "$(3$)(B") (?a "$(3$*(B") (?E "$(3$+(B") (?o "$(3$-(B") - (?W "$(3$.(B" (?a "$(3$.(B") - (?e "$(3$,%n(B") (?u "$(3$,%r(B") (?i "$(3$,%o(B") (?E "$(3$,%q(B"))) -;;; U - ("$(3"d(B" (?2 "$(3#6(B")) -;;; V - ("$(3"0(B" (?e "$(3"+(B") (?u "$(3",(B") (?i "$(3"-(B") (?a "$(3".(B") (?E "$(3"/(B") (?o "$(3"1(B") - (?W "$(3"2(B" (?a "$(3"2(B") - (?e "$(3"0%n(B") (?u "$(3"0%r(B") (?i "$(3"0%o(B") (?E "$(3"0%q(B"))) -;;; W - ("$(3%r(B" (?e "$(3%n(B") (?u "$(3%r(B") (?i "$(3%o(B") (?a "$(3%p(B") (?E "$(3%q(B")) -;;; X - ("$(3%N(B" (?e "$(3%I(B") (?u "$(3%J(B") (?i "$(3%K(B") (?a "$(3%L(B") (?E "$(3%M(B") (?o "$(3%O(B")) -;;; Y - ("$(3#R(B" (?e "$(3#M(B") (?u "$(3#N(B") (?i "$(3#O(B") (?a "$(3#P(B") (?E "$(3#Q(B") (?o "$(3#S(B") - (?W "$(3#T(B" (?a "$(3#T(B") - (?e "$(3#R%n(B") (?u "$(3#R%r(B") (?i "$(3#R%o(B") (?E "$(3#R%q(B"))) -;;; Z - ("$(3#J(B" (?e "$(3#E(B") (?u "$(3#F(B") (?i "$(3#G(B") (?a "$(3#H(B") (?E "$(3#I(B") (?o "$(3#K(B") - (?W "$(3#L(B" (?a "$(3#L(B") - (?e "$(3#J%n(B") (?u "$(3#J%r(B") (?i "$(3#J%o(B") (?E "$(3#J%q(B"))) -;;; [ \ ] ^ _ - nil nil nil nil nil -;;; ` - ("" - (?: "$(3$h(B") - (?? (if ethio-use-three-dot-question "$(3%x(B" "$(3$n(B")) - (?! "$(3%t(B") - (?e "$(3#5(B") (?u "$(3#6(B") (?U "$(3#6(B") (?i "$(3#7(B") (?a "$(3#8(B") (?A "$(3#8(B") - (?E "$(3#9(B") (?I "$(3#:(B") (?o "$(3#;(B") (?O "$(3#;(B") - (?g "$(3%^(B" - (?e "$(3%Y(B") (?u "$(3%Z(B") (?i "$(3%[(B") (?a "$(3%\(B") (?E "$(3%](B") (?o "$(3%_(B")) - (?h "$(3"H(B" - (?e "$(3"C(B") (?u "$(3"D(B") (?i "$(3"E(B") (?a "$(3"F(B") (?E "$(3"G(B") (?o "$(3"I(B") - (?W "$(3"P(B" (?e "$(3"K(B") (?u "$(3"P(B") (?i "$(3"M(B") (?a "$(3"N(B") (?E "$(3"O(B"))) - (?k "$(3%>(B" - (?e "$(3%9(B") (?u "$(3%:(B") (?i "$(3%;(B") (?a "$(3%<(B") (?E "$(3%=(B") (?o "$(3%?(B")) - (?s "$(3!F(B" - (?e "$(3!A(B") (?u "$(3!B(B") (?i "$(3!C(B") (?a "$(3!D(B") (?E "$(3!E(B") (?o "$(3!G(B") - (?W "$(3!H(B" (?a "$(3!H(B") - (?e "$(3!F%n(B") (?u "$(3!F%r(B") (?i "$(3!F%o(B") (?E "$(3!F%q(B"))) - (?S "$(3$L(B" - (?e "$(3$G(B") (?u "$(3$H(B") (?i "$(3$I(B") (?a "$(3$J(B") (?E "$(3$K(B") (?o "$(3$M(B") - (?W "$(3$F(B" (?a "$(3$F(B") - (?e "$(3$L%n(B") (?u "$(3$L%r(B") (?i "$(3$L%o(B") (?E "$(3$L%q(B"))) - (?q "$(3%.(B" (?e "$(3%)(B") (?u "$(3%*(B") (?i "$(3%+(B") (?a "$(3%,(B") (?E "$(3%-(B") (?o "$(3%/(B"))) -;;; a - ("$(3"f(B" (?2 "$(3#8(B")) -;;; b - ("$(3"((B" (?e "$(3"#(B") (?u "$(3"$(B") (?i "$(3"%(B") (?a "$(3"&(B") (?E "$(3"'(B") (?o "$(3")(B") - (?W "$(3%b(B" (?e "$(3%2(B") (?u "$(3%b(B") (?i "$(3%B(B") (?a "$(3"*(B") (?E "$(3%R(B"))) -;;; c - ("$(3"@(B" (?e "$(3";(B") (?u "$(3"<(B") (?i "$(3"=(B") (?a "$(3">(B") (?E "$(3"?(B") (?o "$(3"A(B") - (?W "$(3"B(B" (?a "$(3"B(B") - (?e "$(3"@%n(B") (?u "$(3"@%r(B") (?i "$(3"@%o(B") (?E "$(3"@%q(B"))) -;;; d - ("$(3#Z(B" (?e "$(3#U(B") (?u "$(3#V(B") (?i "$(3#W(B") (?a "$(3#X(B") (?E "$(3#Y(B") (?o "$(3#[(B") - (?W "$(3#\(B" (?a "$(3#\(B") - (?e "$(3#Z%o(B") (?u "$(3#Z%r(B") (?i "$(3#Z%p(B") (?E "$(3#Z%q(B"))) -;;; e - ("$(3"c(B" (?2 "$(3#5(B") (?a "$(3"j(B")) -;;; f - ("$(3$T(B" (?e "$(3$O(B") (?u "$(3$P(B") (?i "$(3$Q(B") (?a "$(3$R(B") (?E "$(3$S(B") (?o "$(3$U(B") - (?W "$(3%d(B" (?e "$(3%4(B") (?u "$(3%d(B") (?i "$(3%D(B") (?a "$(3$V(B") (?E "$(3%T(B")) - (?Y "$(3$a(B" (?a "$(3$a(B"))) -;;; g - ("$(3#r(B" (?e "$(3#m(B") (?u "$(3#n(B") (?i "$(3#o(B") (?a "$(3#p(B") (?E "$(3#q(B") (?o "$(3#s(B") - (?W "$(3#z(B" (?e "$(3#u(B") (?u "$(3#z(B") (?i "$(3#w(B") (?a "$(3#x(B") (?E "$(3#y(B")) - (?2 "$(3%^(B" (?e "$(3%Y(B") (?u "$(3%Z(B") (?i "$(3%[(B") (?a "$(3%\(B") (?E "$(3%](B") (?o "$(3%_(B"))) -;;; h - ("$(3!&(B" (?e "$(3!!(B") (?u "$(3!"(B") (?i "$(3!#(B") (?a "$(3!$(B") (?E "$(3!%(B") (?o "$(3!'(B") - (?W "$(3"P(B" (?e "$(3"K(B") (?u "$(3"P(B") (?i "$(3"M(B") (?a "$(3"N(B") (?E "$(3"O(B")) - (?2 "$(3"H(B" (?e "$(3"C(B") (?u "$(3"D(B") (?i "$(3"E(B") (?a "$(3"F(B") (?E "$(3"G(B") (?o "$(3"I(B") - (?W "$(3"P(B" (?e "$(3"K(B") (?u "$(3"P(B") (?i "$(3"M(B") (?a "$(3"N(B") (?E "$(3"O(B")))) -;;; i - ("$(3"e(B" (?2 "$(3#7(B")) -;;; j - ("$(3#j(B" (?e "$(3#e(B") (?u "$(3#f(B") (?i "$(3#g(B") (?a "$(3#h(B") (?E "$(3#i(B") (?o "$(3#k(B") - (?W "$(3#l(B" (?a "$(3#l(B") - (?e "$(3#j%n(B") (?u "$(3#j%r(B") (?i "$(3#j%o(B") (?E "$(3#j%q(B"))) -;;; k - ("$(3"p(B" (?e "$(3"k(B") (?u "$(3"l(B") (?i "$(3"m(B") (?a "$(3"n(B") (?E "$(3"o(B") (?o "$(3"q(B") - (?W "$(3"x(B" (?e "$(3"s(B") (?u "$(3"x(B") (?i "$(3"u(B") (?a "$(3"v(B") (?E "$(3"w(B")) - (?2 "$(3%>(B" (?e "$(3%9(B") (?u "$(3%:(B") (?i "$(3%;(B") (?a "$(3%<(B") (?E "$(3%=(B") (?o "$(3%?(B"))) -;;; l - ("$(3!.(B" (?e "$(3!)(B") (?u "$(3!*(B") (?i "$(3!+(B") (?a "$(3!,(B") (?E "$(3!-(B") (?o "$(3!/(B") - (?W "$(3!0(B" (?a "$(3!0(B") - (?e "$(3!.%n(B") (?u "$(3!.%r(B") (?i "$(3!.%o(B") (?E "$(3!.%q(B"))) -;;; m - ("$(3!>(B" (?e "$(3!9(B") (?u "$(3!:(B") (?i "$(3!;(B") (?a "$(3!<(B") (?E "$(3!=(B") (?o "$(3!?(B") - (?W "$(3%a(B" (?e "$(3%1(B") (?u "$(3%a(B") (?i "$(3%A(B") (?a "$(3!@(B") (?E "$(3%Q(B")) - (?Y "$(3$_(B" (?a "$(3$_(B"))) -;;; n - ("$(3"X(B" (?e "$(3"S(B") (?u "$(3"T(B") (?i "$(3"U(B") (?a "$(3"V(B") (?E "$(3"W(B") (?o "$(3"Y(B") - (?W "$(3"Z(B" (?a "$(3"Z(B") - (?e "$(3"X%n(B") (?u "$(3"X%r(B") (?i "$(3"X%o(B") (?E "$(3"X%q(B"))) -;;; o - ("$(3"i(B" (?2 "$(3#;(B")) -;;; p - ("$(3$\(B" (?e "$(3$W(B") (?u "$(3$X(B") (?i "$(3$Y(B") (?a "$(3$Z(B") (?E "$(3$[(B") (?o "$(3$](B") - (?W "$(3%e(B" (?e "$(3%5(B") (?u "$(3%e(B") (?i "$(3%E(B") (?a "$(3$^(B") (?E "$(3%U(B"))) -;;; q - ("$(3!f(B" (?e "$(3!a(B") (?u "$(3!b(B") (?i "$(3!c(B") (?a "$(3!d(B") (?E "$(3!e(B") (?o "$(3!g(B") - (?W "$(3!n(B" (?e "$(3!i(B") (?u "$(3!n(B") (?i "$(3!k(B") (?a "$(3!l(B") (?E "$(3!m(B")) - (?2 "$(3%.(B" (?e "$(3%)(B") (?u "$(3%*(B") (?i "$(3%+(B") (?a "$(3%,(B") (?E "$(3%-(B") (?o "$(3%/(B"))) -;;; r - ("$(3!N(B" (?e "$(3!I(B") (?u "$(3!J(B") (?i "$(3!K(B") (?a "$(3!L(B") (?E "$(3!M(B") (?o "$(3!O(B") - (?W "$(3!P(B" (?a "$(3!P(B") - (?e "$(3!N%n(B") (?u "$(3!N%r(B") (?i "$(3!N%o(B") (?E "$(3!N%q(B")) - (?Y "$(3$`(B" (?a "$(3$`(B"))) -;;; s - ("$(3!V(B" (?e "$(3!Q(B") (?u "$(3!R(B") (?i "$(3!S(B") (?a "$(3!T(B") (?E "$(3!U(B") (?o "$(3!W(B") - (?W "$(3!X(B" (?a "$(3!X(B") - (?e "$(3!V%n(B") (?u "$(3!V%r(B") (?i "$(3!V%o(B") (?E "$(3!V%q(B")) - (?2 "$(3!F(B" (?e "$(3!A(B") (?u "$(3!B(B") (?i "$(3!C(B") (?a "$(3!D(B") (?E "$(3!E(B") (?o "$(3!G(B") - (?W "$(3!H(B" (?a "$(3!H(B") - (?e "$(3!F%n(B") (?u "$(3!F%r(B") (?i "$(3!F%o(B") (?E "$(3!F%q(B")))) -;;; t - ("$(3"8(B" (?e "$(3"3(B") (?u "$(3"4(B") (?i "$(3"5(B") (?a "$(3"6(B") (?E "$(3"7(B") (?o "$(3"9(B") - (?W "$(3":(B" (?a "$(3":(B") - (?e "$(3"8%n(B") (?u "$(3"8%r(B") (?i "$(3"8%o(B") (?E "$(3"8%q(B"))) -;;; u - ("$(3"d(B" (?2 "$(3#6(B")) -;;; v - ("$(3"0(B" (?e "$(3"+(B") (?u "$(3",(B") (?i "$(3"-(B") (?a "$(3".(B") (?E "$(3"/(B") (?o "$(3"1(B") - (?W "$(3"2(B" (?a "$(3"2(B") - (?e "$(3"0%n(B") (?u "$(3"0%r(B") (?i "$(3"0%o(B") (?E "$(3"0%q(B"))) -;;; w - ("$(3#2(B" (?e "$(3#-(B") (?u "$(3#.(B") (?i "$(3#/(B") (?a "$(3#0(B") (?E "$(3#1(B") (?o "$(3#3(B") - (?W "$(3%p(B" (?e "$(3%n(B") (?u "$(3%r(B") (?i "$(3%o(B") (?a "$(3%p(B") (?E "$(3%q(B"))) -;;; x - ("$(3!^(B" (?e "$(3!Y(B") (?u "$(3!Z(B") (?i "$(3![(B") (?a "$(3!\(B") (?E "$(3!](B") (?o "$(3!_(B") - (?W "$(3!`(B" (?a "$(3!`(B") - (?e "$(3!^%n(B") (?u "$(3!^%r(B") (?i "$(3!^%o(B") (?E "$(3!^%q(B"))) -;;; y - ("$(3#R(B" (?e "$(3#M(B") (?u "$(3#N(B") (?i "$(3#O(B") (?a "$(3#P(B") (?E "$(3#Q(B") (?o "$(3#S(B") - (?W "$(3#T(B" (?a "$(3#T(B") - (?e "$(3#R%n(B") (?u "$(3#R%r(B") (?i "$(3#R%o(B") (?E "$(3#R%q(B"))) -;;; z - ("$(3#B(B" (?e "$(3#=(B") (?u "$(3#>(B") (?i "$(3#?(B") (?a "$(3#@(B") (?E "$(3#A(B") (?o "$(3#C(B") - (?W "$(3#D(B" (?a "$(3#D(B") - (?e "$(3#B%n(B") (?u "$(3#B%r(B") (?i "$(3#B%o(B") (?E "$(3#B%q(B"))) -;;; { | } ~ DEL - nil nil nil nil nil - ]) - -;; To avoid byte-compiler warnings. It should never be set globally. -(defvar ethio-sera-being-called-by-w3) -;; This variable will be bound by some third-party package. -(defvar sera-being-called-by-w3) - ;;;###autoload -(defun ethio-sera-to-fidel-region (beg end &optional secondary force) - "Convert the characters in region from SERA to FIDEL. -The variable `ethio-primary-language' specifies the primary language -and `ethio-secondary-language' specifies the secondary. +(defun ethio-sera-to-fidel-buffer (&optional secondary force) + "Convert the current buffer from SERA to FIDEL. + +The variable `ethio-primary-language' specifies the primary +language and `ethio-secondary-language' specifies the secondary. -If the 3rd parameter SECONDARY is given and non-nil, assume the region -begins with the secondary language; otherwise with the primary -language. +If the 1st optional argument SECONDARY is non-nil, assume the +buffer begins with the secondary language; otherwise with the +primary language. -If the 4th parameter FORCE is given and non-nil, perform conversion +If the 2nd optional argument FORCE is non-nil, perform conversion even if the buffer is read-only. See also the descriptions of the variables -`ethio-use-colon-for-colon' and -`ethio-use-three-dot-question'." +`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'." - (interactive "r\nP") - (save-restriction - (narrow-to-region beg end) - (ethio-sera-to-fidel-buffer secondary force))) + (interactive "P") + (ethio-sera-to-fidel-region (point-min) (point-max) secondary force)) + +;; To avoid byte-compiler warnings. It should never be set globally. +(defvar ethio-sera-being-called-by-w3) +;; This variable will be bound by some third-party package. +(defvar sera-being-called-by-w3) ;;;###autoload -(defun ethio-sera-to-fidel-buffer (&optional secondary force) - "Convert the current buffer from SERA to FIDEL. +(defun ethio-sera-to-fidel-region (begin end &optional secondary force) + "Convert the characters in region from SERA to FIDEL. The variable `ethio-primary-language' specifies the primary language and `ethio-secondary-language' specifies the secondary. -If the 1st optional parameter SECONDARY is non-nil, assume the buffer -begins with the secondary language; otherwise with the primary -language. +If the 3rd argument SECONDARY is given and non-nil, assume the +region begins with the secondary language; otherwise with the +primary language. -If the 2nd optional parametr FORCE is non-nil, perform conversion even if the -buffer is read-only. +If the 4th argument FORCE is given and non-nil, perform +conversion even if the buffer is read-only. See also the descriptions of the variables -`ethio-use-colon-for-colon' and -`ethio-use-three-dot-question'." - - (interactive "P") +`ethio-use-colon-for-colon' and `ethio-use-three-dot-question'." + (interactive "r\nP") (if (and buffer-read-only (not force) (not (y-or-n-p "Buffer is read-only. Force to convert? "))) @@ -477,219 +237,165 @@ See also the descriptions of the variables (let ((ethio-primary-language ethio-primary-language) (ethio-secondary-language ethio-secondary-language) - (ethio-use-colon-for-colon ethio-use-colon-for-colon) - (ethio-use-three-dot-question ethio-use-three-dot-question) - ;; The above four variables may be changed temporary - ;; by tilde escapes during conversion. So we bind them to other - ;; variables but of the same names. + ;; The above two variables may be changed temporarily by tilde + ;; escapes during conversion. We bind them to the variables + ;; of the same names so that the original values are restored + ;; when this function exits. (buffer-read-only nil) - (case-fold-search nil) - current-language - next-language) + (lang (if secondary ethio-secondary-language ethio-primary-language)) + ret) - (setq current-language - (if secondary - ethio-secondary-language - ethio-primary-language)) + (ethio-use-colon-for-colon ethio-use-colon-for-colon) + (ethio-use-three-dot-question ethio-use-three-dot-question) - (goto-char (point-min)) - - (while (not (eobp)) - (setq next-language - (cond - ((eq current-language 'english) - (ethio-sera-to-fidel-english)) - ((eq current-language 'amharic) - (ethio-sera-to-fidel-ethio 'amharic)) - ((eq current-language 'tigrigna) - (ethio-sera-to-fidel-ethio 'tigrigna)) - (t ; we don't know what to do - (ethio-sera-to-fidel-english)))) - - (setq current-language - (cond - - ;; when language tag is explicitly specified - ((not (eq next-language 'toggle)) - next-language) - - ;; found a toggle in a primary language section - ((eq current-language ethio-primary-language) - ethio-secondary-language) - - ;; found a toggle in a secondary, third, fourth, ... - ;; language section - (t - ethio-primary-language)))) - - ;; If ethio-implicit-period-conversion is non-nil, the - ;; Ethiopic dot "$(3%u(B" at the end of an Ethiopic sentence is - ;; replaced with the Ethiopic full stop "$(3$i(B". - (if ethio-implicit-period-conversion - (progn - (goto-char (point-min)) - (while (re-search-forward "\\([$(3!!(B-$(3$a%)(B-$(3%e%n(B-$(3%r%s(B]\\)$(3%u(B\\([ \t]\\)" - nil t) - (replace-match "\\1$(3$i(B\\2")) - (goto-char (point-min)) - (while (re-search-forward "\\([$(3!!(B-$(3$a%)(B-$(3%e%n(B-$(3%r%s(B]\\)$(3%u(B$" nil t) - (replace-match "\\1$(3$i(B")))) - - ;; gemination - (goto-char (point-min)) - (while (re-search-forward "\\ce$(3%s(B" nil 0) - (compose-region - (save-excursion (backward-char 2) (point)) - (point))) - )) - -(defun ethio-sera-to-fidel-english nil - "Handle English section in SERA to FIDEL conversion. -Conversion stops when a language switch is found. Then delete that -switch and return the name of the new language as a symbol." - (let ((new-language nil)) - - (while (and (not (eobp)) (null new-language)) - (cond - - ;; if no more "\", nothing to do. - ((not (search-forward "\\" nil 0))) - - ;; hereafter point is put after a "\". - ;; first delete that "\", then check the following chars - - ;; "\\" : leave the second "\" - ((progn - (delete-backward-char 1) - (= (following-char) ?\\ )) - (forward-char 1)) - - ;; "\ " : delete the following " " - ((= (following-char) 32) - (delete-char 1) - (setq new-language 'toggle)) - - ;; a language flag - ((setq new-language (ethio-process-language-flag))) - - ;; just a "\" : not special sequence. - (t - (setq new-language 'toggle)))) + (save-restriction + (narrow-to-region begin end) + (goto-char (point-min)) + (while (not (eobp)) + (setq ret + (cond + ((eq lang 'amharic) + (ethio-prefer-amharic t) + (ethio-sera-to-fidel-region-ethio 'amharic)) + ((eq lang 'tigrigna) + (ethio-prefer-amharic nil) + (ethio-sera-to-fidel-region-ethio 'tigrigna)) + (t + (ethio-sera-to-fidel-region-noethio)))) + (setq lang + (if (eq ret 'toggle) + (if (eq lang ethio-primary-language) + ethio-secondary-language + ethio-primary-language) + ret))))) + + ;; Restore user's preference. + (ethio-adjust-robin)) + +(defun ethio-sera-to-fidel-region-noethio () + "Return next language as symbol: amharic, tigrigna, toggle or nil." + (let (lflag) + (cond - new-language)) + ;; No more "\", i.e. nothing to do. + ((not (search-forward "\\" nil 0)) + nil) -(defun ethio-sera-to-fidel-ethio (lang) - "Handle Ethiopic section in SERA to FIDEL conversion. -Conversion stops when a language switch is found. Then delete that -switch and return the name of the new language as a symbol. + ;; Hereafter point is put after a "\". + ;; First delete that "\", then check the following chars. -The parameter LANG (symbol, either `amharic' or `tigrigna') affects -the conversion of \"a\"." + ;; A language flag. + ((progn (delete-char -1) (setq lflag (ethio-process-language-flag))) + lflag) - (let ((new-language nil) - (verbatim nil) - start table table2 ch) + ;; "\\" : leave the second "\" and continue in the same language. + ((= (following-char) ?\\) + (forward-char 1) + nil) - (setcar (aref ethio-sera-to-fidel-table ?a) - (if (eq lang 'tigrigna) "$(3"f(B" "$(3"c(B")) + ;; "\ " : delete the following " " and toggle the language. + ((= (following-char) 32) + (delete-char 1) + 'toggle) - (while (and (not (eobp)) (null new-language)) - (setq ch (following-char)) - (cond + ;; A "\" but not a special sequence: simply toggle the language. + (t + 'toggle)))) - ;; skip from "<" to ">" (or from "&" to ";") if in w3-mode - ((and (or (= ch ?<) (= ch ?&)) - (or (and (boundp 'ethio-sera-being-called-by-w3) - ethio-sera-being-called-by-w3) - (and (boundp 'sera-being-called-by-w3) - sera-being-called-by-w3))) - (search-forward (if (= ch ?<) ">" ";") - nil 0)) - - ;; leave non-ASCII characters as they are - ((>= ch 128) +(defun ethio-sera-to-fidel-region-ethio (lang) + "Return next language as symbol: amharic, tigrigna, toggle or nil." + (save-restriction + (narrow-to-region + (point) + (if (re-search-forward "\\(`[1-9][0-9]*\\)\\|[\\<&]" nil t) + (match-beginning 0) + (point-max))) + (robin-convert-region (point-min) (point-max) "ethiopic-sera") + (goto-char (point-max))) + + (let (lflag) + (cond + ((= (following-char) ?`) + (delete-char 1) + (ethio-process-digits) + lang) + + ((looking-at "[<&]") + (if (or (and (boundp 'ethio-sera-being-called-by-w3) + ethio-sera-being-called-by-w3) + (and (boundp 'sera-being-called-by-w3) + sera-being-called-by-w3)) + (search-forward (if (= (following-char) ?<) ">" ";") nil 0) (forward-char 1)) + lang) - ;; ethiopic digits - ((looking-at "`[1-9][0-9]*") - (delete-char 1) - (ethio-convert-digit)) + ((eobp) + nil) - ;; if not seeing a "\", do sera to fidel conversion - ((/= ch ?\\ ) - (setq start (point)) - (forward-char 1) - (setq table (aref ethio-sera-to-fidel-table ch)) - (while (setq table2 (cdr (assoc (following-char) table))) - (setq table table2) - (forward-char 1)) - (if (setq ch (car table)) - (progn - (delete-region start (point)) - (if (stringp ch) - (insert ch) - (insert (eval ch)))))) + ;; Now we must be looking at a "\". + ;; First delete that "\", then check the following chars. - ;; if control reaches here, we must be looking at a "\" + ((progn (delete-char 1) (= (following-char) 32)) + (delete-char 1) + 'toggle) - ;; verbatim mode - (verbatim - (if (looking-at "\\\\~! ?") + ((looking-at "[,.;:'`?\\]+") + (goto-char (match-end 0)) + lang) - ;; "\~!" or "\~! ". switch to non-verbatim mode - (progn - (replace-match "") - (setq verbatim nil)) + ((/= (following-char) ?~) + 'toggle) - ;; "\" but not "\~!" nor "\~! ". skip the current "\". - (forward-char 1))) + ;; Now we must be looking at a "~". - ;; hereafter, non-verbatim mode and looking at a "\" - ;; first delete that "\", then check the following chars. + ((setq lflag (ethio-process-language-flag)) + lflag) - ;; "\ " : delete the following " " - ((progn - (delete-char 1) - (setq ch (following-char)) - (= ch 32)) - (delete-char 1) - (setq new-language 'toggle)) + ;; Delete the following "~" and check the following chars. - ;; "\~!" or "\~! " : switch to verbatim mode - ((looking-at "~! ?") - (replace-match "") - (setq verbatim t)) + ((progn (delete-char 1) (looking-at "! ?")) + (replace-match "") + (if (re-search-forward "\\\\~! ?" nil 0) + (replace-match "")) + lang) - ;; a language flag - ((setq new-language (ethio-process-language-flag))) + ((looking-at "-: ?") + (replace-match "") + (ethio-use-colon-for-colon t) + lang) - ;; "\~" but not "\~!" nor a language flag - ((= ch ?~) - (delete-char 1) - (ethio-tilde-escape)) + ((looking-at "`: ?") + (replace-match "") + (ethio-use-colon-for-colon nil) + lang) - ;; ASCII punctuation escape. skip - ((looking-at "\\(,\\|\\.\\|;\\|:\\|'\\|`\\|\?\\|\\\\\\)+") - (goto-char (match-end 0))) + ((looking-at "`| ?") + (replace-match "") + (ethio-use-three-dot-question t) + lang) - ;; "\", but not special sequence - (t - (setq new-language 'toggle)))) + ((looking-at "\\? ?") + (replace-match "") + (ethio-use-three-dot-question nil) + lang) - new-language)) + ;; Unknown tilde escape. Recover the deleted chars. + (t + (insert "\\~") + lang)))) (defun ethio-process-language-flag nil "Process a language flag of the form \"~lang\" or \"~lang1~lang2\". If looking at \"~lang1~lang2\", set `ethio-primary-language' and -`ethio-une-secondary-language' based on \"lang1\" and \"lang2\". +`ethio-secondary-language' based on \"lang1\" and \"lang2\". Then delete the language flag \"~lang1~lang2\" from the buffer. Return value is the new primary language. -If looking at \"~lang\", delete that language flag \"~lang\" from the -buffer and return that language. In this case -`ethio-primary-language' and `ethio-uni-secondary-language' -are left unchanged. +If looking at \"~lang\", delete that language flag \"~lang\" from +the buffer and return that language. In this case +`ethio-primary-language' and `ethio-secondary-language' are left +unchanged. If an unsupported language flag is found, just return nil without changing anything." @@ -700,12 +406,8 @@ changing anything." ;; ~lang1~lang2 ((and (looking-at "~\\([a-z][a-z][a-z]?\\)~\\([a-z][a-z][a-z]?\\)[ \t\n\\]") - (setq lang1 - (ethio-flag-to-language - (buffer-substring (match-beginning 1) (match-end 1)))) - (setq lang2 - (ethio-flag-to-language - (buffer-substring (match-beginning 2) (match-end 2))))) + (setq lang1 (ethio-flag-to-language (match-string 1))) + (setq lang2 (ethio-flag-to-language (match-string 2)))) (setq ethio-primary-language lang1 ethio-secondary-language lang2) (delete-region (point) (match-end 2)) @@ -715,9 +417,7 @@ changing anything." ;; ~lang ((and (looking-at "~\\([a-z][a-z][a-z]?\\)[ \t\n\\]") - (setq lang1 - (ethio-flag-to-language - (buffer-substring (match-beginning 1) (match-end 1))))) + (setq lang1 (ethio-flag-to-language (match-string 1)))) (delete-region (point) (match-end 1)) (if (= (following-char) 32) (delete-char 1)) @@ -727,59 +427,6 @@ changing anything." (t nil)))) -(defun ethio-tilde-escape nil - "Handle a SERA tilde escape in Ethiopic section and delete it. -Delete the escape even it is not recognized." - - (let ((p (point)) command) - (skip-chars-forward "^ \t\n\\\\") - (setq command (buffer-substring p (point))) - (delete-region p (point)) - (if (= (following-char) 32) - (delete-char 1)) - - (cond - - ;; \~-: - ((string= command "-:") - (setq ethio-use-colon-for-colon t)) - - ;; \~`: - ((string= command "`:") - (setq ethio-use-colon-for-colon nil)) - - ;; \~? - ((string= command "?") - (setq ethio-use-three-dot-question nil)) - - ;; \~`| - ((string= command "`|") - (setq ethio-use-three-dot-question t)) - - ;; \~e - ((string= command "e") - (insert "$(3%j(B")) - - ;; \~E - ((string= command "E") - (insert "$(3%k(B")) - - ;; \~a - ((string= command "a") - (insert "$(3%l(B")) - - ;; \~A - ((string= command "A") - (insert "$(3%m(B")) - - ;; \~X - ((string= command "X") - (insert "$(3%i(B")) - - ;; unsupported tilde escape - (t - nil)))) - (defun ethio-flag-to-language (flag) (cond ((or (string= flag "en") (string= flag "eng")) 'english) @@ -787,7 +434,7 @@ Delete the escape even it is not recognized." ((or (string= flag "am") (string= flag "amh")) 'amharic) (t nil))) -(defun ethio-convert-digit nil +(defun ethio-process-digits nil "Convert Arabic digits to Ethiopic digits." (let (ch z) (while (and (>= (setq ch (following-char)) ?1) @@ -804,97 +451,23 @@ Delete the escape even it is not recognized." ;; first digit is 10, 20, ..., or 90 ((= (mod z 2) 1) - (insert (aref [?$(3$y(B ?$(3$z(B ?$(3${(B ?$(3$|(B ?$(3$}(B ?$(3$~(B ?$(3%!(B ?$(3%"(B ?$(3%#(B] (- ch ?1))) + (insert (aref [?፲ ?፳ ?፴ ?፵ ?፶ ?፷ ?፸ ?፹ ?፺] (- ch ?1))) (setq z (1- z))) ;; first digit is 2, 3, ..., or 9 ((/= ch ?1) - (insert (aref [?$(3$q(B ?$(3$r(B ?$(3$s(B ?$(3$t(B ?$(3$u(B ?$(3$v(B ?$(3$w(B ?$(3$x(B] (- ch ?2)))) + (insert (aref [?፪ ?፫ ?፬ ?፭ ?፮ ?፯ ?፰ ?፱] (- ch ?2)))) ;; single 1 ((= z 0) - (insert "$(3$p(B"))) + (insert "፩"))) ;; 100 (if (= (mod z 4) 2) - (insert "$(3%$(B")) + (insert "፻")) ;; 10000 - (insert-char ?$(3%%(B (/ z 4))))) - -;;;###autoload -(defun ethio-sera-to-fidel-mail-or-marker (&optional arg) - "Execute `ethio-sera-to-fidel-mail' or `ethio-sera-to-fidel-marker' depending on the current major mode. -If in rmail-mode or in mail-mode, execute the former; otherwise latter." - - (interactive "P") - (if (or (eq major-mode 'rmail-mode) - (eq major-mode 'mail-mode)) - (ethio-sera-to-fidel-mail (prefix-numeric-value arg)) - (ethio-sera-to-fidel-marker arg))) - -;;;###autoload -(defun ethio-sera-to-fidel-mail (&optional arg) - "Convert SERA to FIDEL to read/write mail and news. - -If the buffer contains the markers \"<sera>\" and \"</sera>\", -convert the segments between them into FIDEL. - -If invoked interactively and there is no marker, convert the subject field -and the body into FIDEL using `ethio-sera-to-fidel-region'." - - (interactive "p") - (let ((buffer-read-only nil) - border) - (save-excursion - - ;; follow RFC822 rules instead of looking for a fixed separator - (rfc822-goto-eoh) - (forward-line 1) - (setq border (point)) - - ;; note that the point is placed at the border - (if (or (re-search-forward "^<sera>$" nil t) - (progn - (goto-char (point-min)) - (re-search-forward "^Subject: <sera>" border t))) - - ;; there are markers - (progn - ;; we start with the body so that the border will not change - ;; use "^<sera>\n" instead of "^<sera>$" not to leave a blank line - (goto-char border) - (while (re-search-forward "^<sera>\n" nil t) - (replace-match "") - (ethio-sera-to-fidel-region - (point) - (progn - (if (re-search-forward "^</sera>\n" nil 0) - (replace-match "")) - (point)))) - ;; now process the subject - (goto-char (point-min)) - (if (re-search-forward "^Subject: <sera>" border t) - (ethio-sera-to-fidel-region - (progn (delete-backward-char 6) (point)) - (progn - (if (re-search-forward "</sera>$" (line-end-position) 0) - (replace-match "")) - (point))))) - - ;; in case there are no marks but invoked interactively - (if arg - (progn - (ethio-sera-to-fidel-region border (point-max)) - (goto-char (point-min)) - (if (re-search-forward "^Subject: " border t) - (ethio-sera-to-fidel-region (point) (line-end-position)))))) - - ;; adjust the rmail marker - (if (eq major-mode 'rmail-mode) - (set-marker - (aref rmail-message-vector (1+ rmail-current-message)) - (point-max)))))) + (insert-char ?፼ (/ z 4))))) ;;;###autoload (defun ethio-sera-to-fidel-marker (&optional force) @@ -908,10 +481,10 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." (error "")) (save-excursion (goto-char (point-min)) - (while (re-search-forward "<sera>" nil t) + (while (search-forward "<sera>" nil t) (ethio-sera-to-fidel-region (point) - (if (re-search-forward "</sera>" nil t) + (if (search-forward "</sera>" nil t) (match-beginning 0) (point-max)) nil @@ -921,71 +494,6 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." ;; FIDEL to SERA ;; -(defconst ethio-fidel-to-sera-map - [ "he" "hu" "hi" "ha" "hE" "h" "ho" "" ;; 0 - 7 - "le" "lu" "li" "la" "lE" "l" "lo" "lWa" ;; 8 - "He" "Hu" "Hi" "Ha" "HE" "H" "Ho" "HWa" ;; 16 - "me" "mu" "mi" "ma" "mE" "m" "mo" "mWa" ;; 24 - "`se" "`su" "`si" "`sa" "`sE" "`s" "`so" "`sWa" ;; 32 - "re" "ru" "ri" "ra" "rE" "r" "ro" "rWa" ;; 40 - "se" "su" "si" "sa" "sE" "s" "so" "sWa" ;; 48 - "xe" "xu" "xi" "xa" "xE" "x" "xo" "xWa" ;; 56 - "qe" "qu" "qi" "qa" "qE" "q" "qo" "" ;; 64 - "qWe" "" "qWi" "qWa" "qWE" "qW'" "" "" ;; 72 - "Qe" "Qu" "Qi" "Qa" "QE" "Q" "Qo" "" ;; 80 - "QWe" "" "QWi" "QWa" "QWE" "QW'" "" "" ;; 88 - "be" "bu" "bi" "ba" "bE" "b" "bo" "bWa" ;; 96 - "ve" "vu" "vi" "va" "vE" "v" "vo" "vWa" ;; 104 - "te" "tu" "ti" "ta" "tE" "t" "to" "tWa" ;; 112 - "ce" "cu" "ci" "ca" "cE" "c" "co" "cWa" ;; 120 - "`he" "`hu" "`hi" "`ha" "`hE" "`h" "`ho" "" ;; 128 - "hWe" "" "hWi" "hWa" "hWE" "hW'" "" "" ;; 136 - "ne" "nu" "ni" "na" "nE" "n" "no" "nWa" ;; 144 - "Ne" "Nu" "Ni" "Na" "NE" "N" "No" "NWa" ;; 152 - "e" "u" "i" "A" "E" "I" "o" "ea" ;; 160 - "ke" "ku" "ki" "ka" "kE" "k" "ko" "" ;; 168 - "kWe" "" "kWi" "kWa" "kWE" "kW'" "" "" ;; 176 - "Ke" "Ku" "Ki" "Ka" "KE" "K" "Ko" "" ;; 184 - "KWe" "" "KWi" "KWa" "KWE" "KW'" "" "" ;; 192 - "we" "wu" "wi" "wa" "wE" "w" "wo" "" ;; 200 - "`e" "`u" "`i" "`a" "`E" "`I" "`o" "" ;; 208 - "ze" "zu" "zi" "za" "zE" "z" "zo" "zWa" ;; 216 - "Ze" "Zu" "Zi" "Za" "ZE" "Z" "Zo" "ZWa" ;; 224 - "ye" "yu" "yi" "ya" "yE" "y" "yo" "yWa" ;; 232 - "de" "du" "di" "da" "dE" "d" "do" "dWa" ;; 240 - "De" "Du" "Di" "Da" "DE" "D" "Do" "DWa" ;; 248 - "je" "ju" "ji" "ja" "jE" "j" "jo" "jWa" ;; 256 - "ge" "gu" "gi" "ga" "gE" "g" "go" "" ;; 264 - "gWe" "" "gWi" "gWa" "gWE" "gW'" "" "" ;; 272 - "Ge" "Gu" "Gi" "Ga" "GE" "G" "Go" "GWa" ;; 280 - "Te" "Tu" "Ti" "Ta" "TE" "T" "To" "TWa" ;; 288 - "Ce" "Cu" "Ci" "Ca" "CE" "C" "Co" "CWa" ;; 296 - "Pe" "Pu" "Pi" "Pa" "PE" "P" "Po" "PWa" ;; 304 - "Se" "Su" "Si" "Sa" "SE" "S" "So" "SWa" ;; 312 - "`Se" "`Su" "`Si" "`Sa" "`SE" "`S" "`So" "" ;; 320 - "fe" "fu" "fi" "fa" "fE" "f" "fo" "fWa" ;; 328 - "pe" "pu" "pi" "pa" "pE" "p" "po" "pWa" ;; 336 - "mYa" "rYa" "fYa" "" "" "" "" "" ;; 344 - " " " : " "::" "," ";" "-:" ":-" "`?" ;; 352 - ":|:" "1" "2" "3" "4" "5" "6" "7" ;; 360 - "8" "9" "10" "20" "30" "40" "50" "60" ;; 368 - "70" "80" "90" "100" "10000" "" "" "" ;; 376 - "`qe" "`qu" "`qi" "`qa" "`qE" "`q" "`qo" "" ;; 384 - "mWe" "bWe" "GWe" "fWe" "pWe" "" "" "" ;; 392 - "`ke" "`ku" "`ki" "`ka" "`kE" "`k" "`ko" "" ;; 400 - "mWi" "bWi" "GWi" "fWi" "pWi" "" "" "" ;; 408 - "Xe" "Xu" "Xi" "Xa" "XE" "X" "Xo" "" ;; 416 - "mWE" "bWE" "GWE" "fWE" "pWE" "" "" "" ;; 424 - "`ge" "`gu" "`gi" "`ga" "`gE" "`g" "`go" "" ;; 432 - "mW'" "bW'" "GW'" "fW'" "pW'" "" "" "" ;; 440 - "\\~X " "\\~e " "\\~E " "\\~a " "\\~A " "wWe" "wWi" "wWa" ;; 448 - "wWE" "wW'" "''" "`!" "." "<<" ">>" "?" ]) ;; 456 - -(defun ethio-prefer-amharic-p nil - (or (eq ethio-primary-language 'amharic) - (and (not (eq ethio-primary-language 'tigrigna)) - (eq ethio-secondary-language 'amharic)))) - (defun ethio-language-to-flag (lang) (cond ((eq lang 'english) "eng") @@ -994,284 +502,142 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." (t ""))) ;;;###autoload -(defun ethio-fidel-to-sera-region (begin end &optional secondary force) - "Replace all the FIDEL characters in the region to the SERA format. +(defun ethio-fidel-to-sera-buffer (&optional secondary force) + "Replace all the FIDEL characters in the current buffer to the SERA format. The variable `ethio-primary-language' specifies the primary language and `ethio-secondary-language' specifies the secondary. -If the 3dr parameter SECONDARY is given and non-nil, try to convert -the region so that it begins in the secondary language; otherwise with -the primary language. +If the 1st optional argument SECONDARY is non-nil, try to convert the +region so that it begins with the secondary language; otherwise with the +primary language. -If the 4th parameter FORCE is given and non-nil, convert even if the +If the 2nd optional argument FORCE is non-nil, convert even if the buffer is read-only. See also the descriptions of the variables `ethio-use-colon-for-colon', `ethio-use-three-dot-question', `ethio-quote-vowel-always' and `ethio-numeric-reduction'." - (interactive "r\nP") - (save-restriction - (narrow-to-region begin end) - (ethio-fidel-to-sera-buffer secondary force))) + (interactive "P") + (ethio-fidel-to-sera-region (point-min) (point-max) secondary force)) ;;;###autoload -(defun ethio-fidel-to-sera-buffer (&optional secondary force) - "Replace all the FIDEL characters in the current buffer to the SERA format. +(defun ethio-fidel-to-sera-region (begin end &optional secondary force) + "Replace all the FIDEL characters in the region to the SERA format. + The variable `ethio-primary-language' specifies the primary language and `ethio-secondary-language' specifies the secondary. -If the 1st optional parameter SECONDARY is non-nil, try to convert the -region so that it begins in the secondary language; otherwise with the -primary language. +If the 3rd argument SECONDARY is given and non-nil, convert +the region so that it begins with the secondary language; otherwise with +the primary language. -If the 2nd optional parameter FORCE is non-nil, convert even if the +If the 4th argument FORCE is given and non-nil, convert even if the buffer is read-only. See also the descriptions of the variables `ethio-use-colon-for-colon', `ethio-use-three-dot-question', `ethio-quote-vowel-always' and `ethio-numeric-reduction'." - (interactive "P") + (interactive "r\nP") (if (and buffer-read-only (not force) (not (y-or-n-p "Buffer is read-only. Force to convert? "))) (error "")) - (let ((buffer-read-only nil) - (case-fold-search nil) - (lonec nil) ;; t means previous char was a lone consonant - (fidel nil) ;; t means previous char was a FIDEL - (digit nil) ;; t means previous char was an Ethiopic digit - (flag (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir ")) - mode ch) - - ;; user's preference in transcription - (if ethio-use-colon-for-colon - (progn - (aset ethio-fidel-to-sera-map 353 "`:") - (aset ethio-fidel-to-sera-map 357 ":")) - (aset ethio-fidel-to-sera-map 353 " : ") - (aset ethio-fidel-to-sera-map 357 "-:")) - - (if ethio-use-three-dot-question - (progn - (aset ethio-fidel-to-sera-map 359 "?") - (aset ethio-fidel-to-sera-map 463 "`?")) - (aset ethio-fidel-to-sera-map 359 "`?") - (aset ethio-fidel-to-sera-map 463 "?")) - - (mapcar - '(lambda (x) - (aset (aref ethio-fidel-to-sera-map x) - 2 - (if ethio-W-sixth-always ?' ?u))) - '(77 93 141 181 197 277 440 441 442 443 444 457)) - - (if (ethio-prefer-amharic-p) - (aset ethio-fidel-to-sera-map 160 "a") - (aset ethio-fidel-to-sera-map 160 "e")) - ;; end of user's preference - - ;; first, decompose geminated characters - (decompose-region (point-min) (point-max)) - - ;; main conversion routine - (goto-char (point-min)) - (while (not (eobp)) - (setq ch (following-char)) - - (cond ; ethiopic, english, neutral - - ;; ethiopic character. must go to ethiopic mode, if not in it. - ((eq (char-charset ch) 'ethiopic) - (setq ch (ethio-char-to-ethiocode ch)) - (delete-char 1) - (if (not (eq mode 'ethiopic)) - (progn - (insert flag) - (setq mode 'ethiopic))) - - (cond ; fidel, punc, digit - - ;; fidels - ((or (<= ch 346) ; he - fYa - (and (>= ch 384) (<= ch 444)) ; `qe - pw - (and (>= ch 453) (<= ch 457))) ; wWe - wW - (if (and (memq ch '(160 161 162 163 164 166 167)) ; (e - ea) - (or lonec - (and ethio-quote-vowel-always - fidel))) - (insert "'")) - (insert (aref ethio-fidel-to-sera-map ch)) - (setq lonec (ethio-lone-consonant-p ch) - fidel t - digit nil)) - - ;; punctuations or icons - ((or (and (>= ch 353) (<= ch 360)) ; : - :|: - (>= ch 458) ; '' - ? - (and (>= ch 448) (<= ch 452))) ; \~X \~e \~E \~a \~A - (insert (aref ethio-fidel-to-sera-map ch)) - (setq lonec nil - fidel nil - digit nil)) - - ;; now CH must be an ethiopic digit - - ;; reduction = 0 or not preceded by Ethiopic number(s) - ((or (= ethio-numeric-reduction 0) - (not digit)) - (insert "`" (aref ethio-fidel-to-sera-map ch)) - (setq lonec nil - fidel nil - digit t)) - - ;; reduction = 2 and following 10s, 100s, 10000s - ((and (= ethio-numeric-reduction 2) - (memq ch '(370 379 380))) - (insert (substring (aref ethio-fidel-to-sera-map ch) 1)) - (setq lonec nil - fidel nil - digit t)) - - ;; ordinary following digits - (t - (insert (aref ethio-fidel-to-sera-map ch)) - (setq lonec nil - fidel nil - digit t)))) - - ;; english character. must go to english mode, if not in it. - ((or (and (>= ch ?a) (<= ch ?z)) - (and (>= ch ?A) (<= ch ?Z))) - (if (not (eq mode 'english)) - (insert "\\~eng ")) - (forward-char 1) - (setq mode 'english - lonec nil - fidel nil - digit nil)) + (save-restriction + (narrow-to-region begin end) - ;; ch can appear both in ethiopic section and in english section. - (t + (let ((buffer-read-only nil) + (mode (if secondary + ethio-secondary-language + ethio-primary-language)) + (flag (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir ")) + p ch) - ;; we must decide the mode, if not decided yet - (if (null mode) + (goto-char (point-min)) + (ethio-adjust-robin) + (unless (eq mode 'english) + (setq mode 'ethiopic)) + (if (and (eq mode 'english) (looking-at "\\ce")) + (setq mode 'ethiopic)) + (if (and (eq mode 'ethiopic) (looking-at "\\Ce")) + (setq mode 'english)) + (insert (if (eq mode 'english) "\\~eng " flag)) + + (while (not (eobp)) + + (if (eq mode 'english) (progn - (setq mode - (if secondary - ethio-secondary-language - ethio-primary-language)) - (if (eq mode 'english) - (insert "\\~eng ") + (if (re-search-forward "\\(\\ce\\|\\\\\\)" nil 0) + (forward-char -1)) + (cond + ((eq (following-char) ?\\) + (insert "\\") + (forward-char 1)) + ((looking-at "\\ce") (insert flag) - (setq mode 'ethiopic)))) ; tigrigna & amharic --> ethiopic - - (cond ; \ , eng-mode , punc , w3 , other + (setq mode 'ethiopic)))) - ;; backslash is always quoted - ((= ch ?\\ ) - (insert "\\") - (forward-char 1)) + ;; If we reach here, mode is ethiopic. + (setq p (point)) + (if (re-search-forward "[a-z,.;:'`?\\<&]" nil 0) + (forward-char -1)) + (save-restriction + (narrow-to-region p (point)) + (robin-invert-region (point-min) (point-max) "ethiopic-sera") - ;; nothing to do if in english mode - ((eq mode 'english) - (forward-char 1)) - - ;; now we must be in ethiopic mode and seeing a non-"\" - - ;; ascii punctuations in ethiopic mode - ((looking-at "[,.;:'`?]+") - (insert "\\") - (goto-char (1+ (match-end 0)))) ; because we inserted one byte (\) - - ;; skip from "<" to ">" (or from "&" to ";") if called from w3 - ((and (or (= ch ?<) (= ch ?&)) - (or (and (boundp 'ethio-sera-being-called-by-w3) - ethio-sera-being-called-by-w3) - (and (boundp 'sera-being-called-by-w3) - sera-being-called-by-w3))) - (search-forward (if (= ch ?<) ">" ";") - nil 0)) - - ;; neutral character. no need to quote. just skip it. - (t - (forward-char 1))) - - (setq lonec nil - fidel nil - digit nil))) - ;; end of main conversion routine - ))) - -(defun ethio-lone-consonant-p (ethiocode) - "If ETHIOCODE is an Ethiopic lone consonant, return t." - (or (and (< ethiocode 344) (= (% ethiocode 8) 5)) - - ;; `q `k X `g mW bW GW fW pW wW - (memq ethiocode '(389 405 421 437 440 441 442 443 444 457)))) - -;;;###autoload -(defun ethio-fidel-to-sera-mail-or-marker (&optional arg) - "Execute `ethio-fidel-to-sera-mail' or `ethio-fidel-to-sera-marker' depending on the current major mode. -If in rmail-mode or in mail-mode, execute the former; otherwise latter." - - (interactive "P") - (if (or (eq major-mode 'rmail-mode) - (eq major-mode 'mail-mode)) - (ethio-fidel-to-sera-mail) - (ethio-fidel-to-sera-marker arg))) - -;;;###autoload -(defun ethio-fidel-to-sera-mail nil - "Convert FIDEL to SERA to read/write mail and news. - -If the body contains at least one Ethiopic character, - 1) insert the string \"<sera>\" at the beginning of the body, - 2) insert \"</sera>\" at the end of the body, and - 3) convert the body into SERA. - -The very same procedure applies to the subject field, too." - - (interactive) - (let ((buffer-read-only nil) - border) - (save-excursion - - ;; follow RFC822 rules instead of looking for a fixed separator - (rfc822-goto-eoh) - (forward-line 1) - (setq border (point)) - - ;; process body first not to change the border - ;; note that the point is already at the border - (if (re-search-forward "\\ce" nil t) - (progn - (ethio-fidel-to-sera-region border (point-max)) - (goto-char border) - (insert "<sera>") - (goto-char (point-max)) - (insert "</sera>"))) + ;; ethio-quote-vowel-alwyas + (goto-char (point-min)) + (while (re-search-forward "'[eauio]" nil t) + (save-excursion + (forward-char -2) + (setq ch (preceding-char)) + (if (or (and (>= ch ?a) (<= ch ?z)) + (and (>= ch ?A) (<= ch ?Z))) + (if (and (not ethio-quote-vowel-always) + (memq ch '(?e ?a ?u ?i ?o ?E ?A ?I))) + (delete-char 1)) + (delete-char 1)))) + + ;; ethio-W-sixth-always + (unless ethio-W-sixth-always + (goto-char (point-min)) + (while (search-forward "W'" nil t) + (delete-char -1) + (insert "u"))) - ;; process subject - (goto-char (point-min)) - (if (re-search-forward "^Subject: " border t) - (let ((beg (point)) - (end (line-end-position))) - (if (re-search-forward "\\ce" end t) - (progn - (ethio-fidel-to-sera-region beg end) - (goto-char beg) - (insert "<sera>") - (end-of-line) - (insert "</sera>"))))) - - ;; adjust the rmail marker - (if (eq major-mode 'rmail-mode) - (set-marker - (aref rmail-message-vector (1+ rmail-current-message)) - (point-max)))))) + ;; ethio-numeric-reduction + (when (> ethio-numeric-reduction 0) + (goto-char (point-min)) + (while (re-search-forward "\\([0-9]\\)`\\([0-9]\\)" nil t) + (replace-match "\\1\\2") + (forward-char -1))) + (when (= ethio-numeric-reduction 2) + (goto-char (point-min)) + (while (re-search-forward "\\([0-9]\\)1\\(0+\\)" nil t) + (replace-match "\\1\\2"))) + + (goto-char (point-max))) + + (cond + ((looking-at "[a-z]") + (insert"\\~eng ") + (setq mode 'english)) + ((looking-at "[,.;:'`\\]+") + (insert "\\") + (goto-char (1+ (match-end 0)))) + ((= (following-char) ??) + (if ethio-use-three-dot-question + (insert "\\")) + (forward-char 1)) + ((looking-at "[<&]") + (if (or (and (boundp 'ethio-sera-being-called-by-w3) + ethio-sera-being-called-by-w3) + (and (boundp 'sera-being-called-by-w3) + sera-being-called-by-w3)) + (search-forward (if (= (following-char) ?<) ">" "&") nil 0) + (forward-char 1))))))))) ;;;###autoload (defun ethio-fidel-to-sera-marker (&optional force) @@ -1285,10 +651,10 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." (error "")) (save-excursion (goto-char (point-min)) - (while (re-search-forward "<sera>" nil t) + (while (search-forward "<sera>" nil t) (ethio-fidel-to-sera-region (point) - (if (re-search-forward "</sera>" nil t) + (if (search-forward "</sera>" nil t) (match-beginning 0) (point-max)) nil @@ -1302,225 +668,31 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." (defun ethio-modify-vowel nil "Modify the vowel of the FIDEL that is under the cursor." (interactive) - (let ((ch (following-char)) - (composite nil) ; geminated or not - newch base vowel modulo) - - (cond - ;; in case of gemination - ((eq (char-charset ch) 'composition) - (setq ch (string-to-char (char-to-string ch)) - composite t)) - ;; neither gemination nor fidel - ((not (eq (char-charset ch) 'ethiopic)) - (error "Not a valid character"))) - - ;; set frequently referred character features - (setq ch (ethio-char-to-ethiocode ch) - base (* (/ ch 8) 8) - modulo (% ch 8)) - - (if (or (and (>= ch 344) (<= ch 380)) ;; mYa - `10000 - (and (>= ch 448) (<= ch 452)) ;; \~X - \~A - (>= ch 458)) ;; private punctuations - (error "Not a valid character")) - - (setq - newch - (cond - - ;; first standalone vowels - ((= base 160) - (if (ethio-prefer-amharic-p) - (message "Modify vowel to: [auiAEIoW\"] ") - (message "Modify vowel to: [euiAEIoW\"] ")) - (setq vowel (read-char)) - (cond - ((= vowel ?e) 160) - ((= vowel ?u) 161) - ((= vowel ?i) 162) - ((= vowel ?A) 163) - ((= vowel ?E) 164) - ((= vowel ?I) 165) - ((= vowel ?o) 166) - ((= vowel ?W) 167) - ((= vowel ?a) (if (ethio-prefer-amharic-p) 160 163)) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; second standalone vowels - ((= base 208) - (message "Modify vowel to: [euiaEIo\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 208) - ((= vowel ?u) 209) - ((= vowel ?i) 210) - ((= vowel ?a) 211) - ((= vowel ?E) 212) - ((= vowel ?I) 213) - ((= vowel ?o) 214) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; 12-form consonants, *W* form - ((memq base '(72 88 136 176 192 272)) ; qW QW hW kW KW gW - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) base) - ((= vowel ?u) (+ base 5)) - ((= vowel ?i) (+ base 2)) - ((= vowel ?a) (+ base 3)) - ((= vowel ?E) (+ base 4)) - ((= vowel ?') (+ base 5)) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; extended 12-form consonants, mWa bWa GWa fWa pWa - ((= ch 31) ; mWa - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 392) - ((= vowel ?u) 440) - ((= vowel ?i) 408) - ((= vowel ?a) ch) - ((= vowel ?E) 424) - ((= vowel ?') 440) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - ((= ch 103) ; bWa - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 393) - ((= vowel ?u) 441) - ((= vowel ?i) 409) - ((= vowel ?a) ch) - ((= vowel ?E) 425) - ((= vowel ?') 441) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - ((= ch 287) ; GWa - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 394) - ((= vowel ?u) 442) - ((= vowel ?i) 410) - ((= vowel ?a) ch) - ((= vowel ?E) 426) - ((= vowel ?') 442) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - ((= ch 335) ; fWa - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 395) - ((= vowel ?u) 443) - ((= vowel ?i) 411) - ((= vowel ?a) ch) - ((= vowel ?E) 427) - ((= vowel ?') 443) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - ((= ch 343) ; pWa - (message "Modify vowel to: [euiaE'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 396) - ((= vowel ?u) 444) - ((= vowel ?i) 412) - ((= vowel ?a) ch) - ((= vowel ?E) 428) - ((= vowel ?') 444) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; extended 12-form consonatns, mW* bW* GW* fW* pW* - ((memq base '(392 408 424 440)) ; *We *Wi *WE *W - (message "Modify vowel to: [eiEau'\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) (+ 392 modulo)) - ((= vowel ?i) (+ 408 modulo)) - ((= vowel ?E) (+ 424 modulo)) - ((= vowel ?a) (cond - ((= modulo 0) 31) ; mWa - ((= modulo 1) 103) ; bWa - ((= modulo 2) 287) ; GWa - ((= modulo 3) 335) ; fWa - ((= modulo 4) 343) ; pWa - (t nil))) ; never reach here - ((= vowel ?') (+ 440 modulo)) - ((= vowel ?u) (+ 440 modulo)) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ((and (>= ch 453) (<= ch 457)) ; wWe wWi wWa wWE wW - (message "Modify vowel to: [eiaE'u\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) 453) - ((= vowel ?i) 454) - ((= vowel ?a) 455) - ((= vowel ?E) 456) - ((= vowel ?') 457) - ((= vowel ?u) 457) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; 7-form consonants, or - ;; first 7 of 8-form consonants - ((<= modulo 6) - (message "Modify vowel to: [euiaE'o\"] ") - (setq vowel (read-char)) - (cond - ((= vowel ?e) base) - ((= vowel ?u) (+ base 1)) - ((= vowel ?i) (+ base 2)) - ((= vowel ?a) (+ base 3)) - ((= vowel ?E) (+ base 4)) - ((= vowel ?') (+ base 5)) - ((= vowel ?o) (+ base 6)) - ((= vowel ?\") (setq composite t) ch) - (t nil))) - - ;; otherwise - (t - nil))) - - (cond - - ;; could not get new character - ((null newch) - (error "Invalid vowel")) - - ;; vowel changed on a composite Fidel - (composite + (ethio-adjust-robin) + (let ((consonant (ethio-get-consonant (following-char))) + vowel) + (if (null consonant) + (error "") ; not an Ethiopic char + (setq vowel (read-char "Modify vowel to: ")) (delete-char 1) - (insert - (compose-string - (concat (char-to-string (ethio-ethiocode-to-char newch)) "$(3%s(B")))) - - ;; simple vowel modification - (t - (delete-char 1) - (insert (ethio-ethiocode-to-char newch)))))) - -(defun ethio-ethiocode-to-char (ethiocode) - (make-char - 'ethiopic - (+ (/ ethiocode 94) 33) - (+ (mod ethiocode 94) 33))) - -(defun ethio-char-to-ethiocode (ch) - (and (eq (char-charset ch) 'ethiopic) - (let ((char-components (split-char ch))) - (+ (* (- (nth 1 char-components) 33) 94) - (- (nth 2 char-components) 33))))) + (if (and (string= consonant "'") (= vowel ?W)) + (insert ?ኧ) + (save-restriction + (narrow-to-region (point) (point)) + (insert consonant vowel) + (robin-convert-region (point-min) (point-max) "ethiopic-sera")))))) + +(defun ethio-get-consonant (ch) + "Return the consonant part of CH's SERA spelling in ethiopic-sera." + (let ((sera (get-char-code-property ch 'ethiopic-sera))) + (cond + ((null sera) nil) + ((= ch ?ኧ) "'") ; Only this has two vowel letters. + (t (with-temp-buffer + (insert sera) + (if (memq (preceding-char) '(?e ?u ?i ?a ?o ?E ?I ?A ?')) + (delete-char -1)) + (buffer-substring (point-min) (point-max))))))) ;; ;; space replacement @@ -1531,14 +703,14 @@ The markers \"<sera>\" and \"</sera>\" themselves are not deleted." "Replace ASCII spaces with Ethiopic word separators in the region. In the specified region, replace word separators surrounded by two -Ethiopic characters, depending on the first parameter CH, which should +Ethiopic characters, depending on the first argument CH, which should be 1, 2, or 3. If CH = 1, word separator will be replaced with an ASCII space. If CH = 2, with two ASCII spaces. If CH = 3, with the Ethiopic colon-like word separator. -The second and third parameters BEGIN and END specify the region." +The 2nd and 3rd arguments BEGIN and END specify the region." (interactive "*cReplace spaces to: 1 (sg col), 2 (dbl col), 3 (Ethiopic)\nr") (if (not (memq ch '(?1 ?2 ?3))) @@ -1551,61 +723,62 @@ The second and third parameters BEGIN and END specify the region." ((= ch ?1) ;; an Ethiopic word separator --> an ASCII space (goto-char (point-min)) - (while (search-forward "$(3$h(B" nil t) - (replace-match " " nil t)) + (while (search-forward "፡" nil t) + (replace-match " ")) ;; two ASCII spaces between Ethiopic characters --> an ASCII space (goto-char (point-min)) (while (re-search-forward "\\(\\ce\\) \\(\\ce\\)" nil t) (replace-match "\\1 \\2") - (goto-char (match-beginning 2)))) + (forward-char -1))) ((= ch ?2) ;; An Ethiopic word separator --> two ASCII spaces (goto-char (point-min)) - (while (search-forward "$(3$h(B" nil t) + (while (search-forward "፡" nil t) (replace-match " ")) ;; An ASCII space between Ethiopic characters --> two ASCII spaces (goto-char (point-min)) (while (re-search-forward "\\(\\ce\\) \\(\\ce\\)" nil t) (replace-match "\\1 \\2") - (goto-char (match-beginning 2)))) + (forward-char -1))) (t ;; One or two ASCII spaces between Ethiopic characters ;; --> An Ethiopic word separator (goto-char (point-min)) (while (re-search-forward "\\(\\ce\\) ?\\(\\ce\\)" nil t) - (replace-match "\\1$(3$h(B\\2") - (goto-char (match-beginning 2))) + (replace-match "\\1፡\\2") + (forward-char -1)) ;; Three or more ASCII spaces between Ethiopic characters ;; --> An Ethiopic word separator + (N - 2) ASCII spaces (goto-char (point-min)) - (while (re-search-forward "\\(\\ce\\) \\( *\\ce\\)" nil t) - (replace-match "\\1$(3$h(B\\2") - (goto-char (match-beginning 2)))))))) + (while (re-search-forward "\\(\\ce\\) \\( +\\ce\\)" nil t) + (replace-match "\\1፡\\2") + (forward-char -1))))))) ;; ;; special icons ;; +;; This function is deprecated. ;;;###autoload (defun ethio-input-special-character (arg) - "Allow the user to input special characters." - (interactive "*cInput number: 1.$(3%j(B 2.$(3%k(B 3.$(3%l(B 4.$(3%m(B 5.$(3%i(B") + "This function is deprecated." + (interactive "*cInput number: 1. 2. 3. 4. 5.") (cond ((= arg ?1) - (insert "$(3%j(B")) + (insert "")) ((= arg ?2) - (insert "$(3%k(B")) + (insert "")) ((= arg ?3) - (insert "$(3%l(B")) + (insert "")) ((= arg ?4) - (insert "$(3%m(B")) + (insert "")) ((= arg ?5) - (insert "$(3%i(B")) + (insert "")) (t (error "")))) @@ -1613,120 +786,49 @@ The second and third parameters BEGIN and END specify the region." ;; TeX support ;; -(defconst ethio-fidel-to-tex-map - [ "heG" "huG" "hiG" "haG" "hEG" "hG" "hoG" "" ;; 0 - 7 - "leG" "luG" "liG" "laG" "lEG" "lG" "loG" "lWaG" ;; 8 - "HeG" "HuG" "HiG" "HaG" "HEG" "HG" "HoG" "HWaG" ;; 16 - "meG" "muG" "miG" "maG" "mEG" "mG" "moG" "mWaG" ;; 24 - "sseG" "ssuG" "ssiG" "ssaG" "ssEG" "ssG" "ssoG" "ssWaG" ;; 32 - "reG" "ruG" "riG" "raG" "rEG" "rG" "roG" "rWaG" ;; 40 - "seG" "suG" "siG" "saG" "sEG" "sG" "soG" "sWaG" ;; 48 - "xeG" "xuG" "xiG" "xaG" "xEG" "xG" "xoG" "xWaG" ;; 56 - "qeG" "quG" "qiG" "qaG" "qEG" "qG" "qoG" "" ;; 64 - "qWeG" "" "qWiG" "qWaG" "qWEG" "qWG" "" "" ;; 72 - "QeG" "QuG" "QiG" "QaG" "QEG" "QG" "QoG" "" ;; 80 - "QWeG" "" "QWiG" "QWaG" "QWEG" "QWG" "" "" ;; 88 - "beG" "buG" "biG" "baG" "bEG" "bG" "boG" "bWaG" ;; 96 - "veG" "vuG" "viG" "vaG" "vEG" "vG" "voG" "vWaG" ;; 104 - "teG" "tuG" "tiG" "taG" "tEG" "tG" "toG" "tWaG" ;; 112 - "ceG" "cuG" "ciG" "caG" "cEG" "cG" "coG" "cWaG" ;; 120 - "hheG" "hhuG" "hhiG" "hhaG" "hhEG" "hhG" "hhoG" "" ;; 128 - "hWeG" "" "hWiG" "hWaG" "hWEG" "hWG" "" "" ;; 136 - "neG" "nuG" "niG" "naG" "nEG" "nG" "noG" "nWaG" ;; 144 - "NeG" "NuG" "NiG" "NaG" "NEG" "NG" "NoG" "NWaG" ;; 152 - "eG" "uG" "iG" "AG" "EG" "IG" "oG" "eaG" ;; 160 - "keG" "kuG" "kiG" "kaG" "kEG" "kG" "koG" "" ;; 168 - "kWeG" "" "kWiG" "kWaG" "kWEG" "kWG" "" "" ;; 176 - "KeG" "KuG" "KiG" "KaG" "KEG" "KG" "KoG" "" ;; 184 - "KWeG" "" "KWiG" "KWaG" "KWEG" "KWG" "" "" ;; 192 - "weG" "wuG" "wiG" "waG" "wEG" "wG" "woG" "" ;; 200 - "eeG" "uuG" "iiG" "aaG" "EEG" "IIG" "ooG" "" ;; 208 - "zeG" "zuG" "ziG" "zaG" "zEG" "zG" "zoG" "zWaG" ;; 216 - "ZeG" "ZuG" "ZiG" "ZaG" "ZEG" "ZG" "ZoG" "ZWaG" ;; 224 - "yeG" "yuG" "yiG" "yaG" "yEG" "yG" "yoG" "yWaG" ;; 232 - "deG" "duG" "diG" "daG" "dEG" "dG" "doG" "dWaG" ;; 240 - "DeG" "DuG" "DiG" "DaG" "DEG" "DG" "DoG" "DWaG" ;; 248 - "jeG" "juG" "jiG" "jaG" "jEG" "jG" "joG" "jWaG" ;; 256 - "geG" "guG" "giG" "gaG" "gEG" "gG" "goG" "" ;; 264 - "gWeG" "" "gWiG" "gWaG" "gWEG" "gWG" "" "" ;; 272 - "GeG" "GuG" "GiG" "GaG" "GEG" "GG" "GoG" "GWaG" ;; 280 - "TeG" "TuG" "TiG" "TaG" "TEG" "TG" "ToG" "TWaG" ;; 288 - "CeG" "CuG" "CiG" "CaG" "CEG" "CG" "CoG" "CWaG" ;; 296 - "PeG" "PuG" "PiG" "PaG" "PEG" "PG" "PoG" "PWaG" ;; 304 - "SeG" "SuG" "SiG" "SaG" "SEG" "SG" "SoG" "SWaG" ;; 312 - "SSeG" "SSuG" "SSiG" "SSaG" "SSEG" "SSG" "SSoG" "" ;; 320 - "feG" "fuG" "fiG" "faG" "fEG" "fG" "foG" "fWaG" ;; 328 - "peG" "puG" "piG" "paG" "pEG" "pG" "poG" "pWaG" ;; 336 - "mYaG" "rYaG" "fYaG" "" "" "" "" "" ;; 344 - "" "spaceG" "periodG" "commaG" ;; 352 - "semicolonG" "colonG" "precolonG" "oldqmarkG" ;; 356 - "pbreakG" "andG" "huletG" "sostG" "aratG" "amstG" "sadstG" "sabatG" ;; 360 - "smntG" "zeteNG" "asrG" "heyaG" "selasaG" "arbaG" "hemsaG" "slsaG" ;; 368 - "sebaG" "semanyaG" "zeTanaG" "metoG" "asrxiG" "" "" "" ;; 376 - "qqeG" "qquG" "qqiG" "qqaG" "qqEG" "qqG" "qqoG" "" ;; 384 - "mWeG" "bWeG" "GWeG" "fWeG" "pWeG" "" "" "" ;; 392 - "kkeG" "kkuG" "kkiG" "kkaG" "kkEG" "kkG" "kkoG" "" ;; 400 - "mWiG" "bWiG" "GWiG" "fWiG" "pWiG" "" "" "" ;; 408 - "XeG" "XuG" "GXiG" "XaG" "XEG" "XG" "XoG" "" ;; 416 - "mWEG" "bWEG" "GWEG" "fWEG" "pWEG" "" "" "" ;; 424 - "ggeG" "gguG" "ggiG" "ggaG" "ggEG" "ggG" "ggoG" "" ;; 432 - "mWG" "bWG" "GWG" "fWG" "pWG" "" "" "" ;; 440 - "ornamentG" "flandG" "iflandG" "africaG" ;; 448 - "iafricaG" "wWeG" "wWiG" "wWaG" ;; 452 - "wWEG" "wWG" "" "slaqG" "dotG" "lquoteG" "rquoteG" "qmarkG" ]) ;; 456 - -;; -;; To make tex-to-fidel mapping. -;; The following code makes -;; (get 'ethio-tex-command-he 'ethio-fidel-char) ==> ?$(3!!(B -;; etc. -;; - -(let ((i 0) str) - (while (< i (length ethio-fidel-to-tex-map)) - (setq str (aref ethio-fidel-to-tex-map i)) - (if (not (string= str "")) - (put - (intern (concat "ethio-tex-command-" (aref ethio-fidel-to-tex-map i))) - 'ethio-fidel-char - (ethio-ethiocode-to-char i))) - (setq i (1+ i)))) - ;;;###autoload (defun ethio-fidel-to-tex-buffer nil - "Convert each fidel characters in the current buffer into a fidel-tex command. -Each command is always surrounded by braces." + "Convert each fidel characters in the current buffer into a fidel-tex command." (interactive) - (let ((buffer-read-only nil)) + (let ((buffer-read-only nil) + comp ch) - ;; Isolated gemination marks need special treatement + ;; Special treatment for geminated characters. + ;; Geminated characters la", etc. change into \geminateG{\laG}, etc. (goto-char (point-min)) - (while (search-forward "$(3%s(B" nil t) - (replace-match "\\geminateG{}" t t)) - - ;; First, decompose geminations - ;; Here we assume that each composed character consists of - ;; one Ethiopic character and the Ethiopic gemination mark. - (decompose-region (point-min) (point-max)) + (while (re-search-forward "፟\\|" nil t) + (setq comp (find-composition (match-beginning 0))) + (if (null comp) + (replace-match "\\\\geminateG{}" t) + (decompose-region (car comp) (cadr comp)) + (delete-char -1) + (forward-char -1) + (insert "\\geminateG{") + (forward-char 1) + (insert "}"))) - ;; Special treatment for geminated characters - ;; The geminated character (la'') will be "\geminateG{\la}". + ;; Special Ethiopic punctuations. (goto-char (point-min)) - (while (search-forward "$(3%s(B" nil t) - (delete-backward-char 1) - (backward-char 1) - (insert "\\geminateG") - (forward-char 1)) + (while (re-search-forward "\\ce[»\\.\\?]\\|«\\ce" nil t) + (cond + ((= (setq ch (preceding-char)) ?\») + (delete-char -1) + (insert "\\rquoteG")) + ((= ch ?.) + (delete-char -1) + (insert "\\dotG")) + ((= ch ??) + (delete-char -1) + (insert "\\qmarkG")) + (t + (forward-char -1) + (delete-char -1) + (insert "\\lquoteG") + (forward-char 1)))) ;; Ethiopic characters to TeX macros - (goto-char (point-min)) - (while (re-search-forward "\\ce" nil t) - (insert - "{\\" - (aref ethio-fidel-to-tex-map - (prog1 (ethio-char-to-ethiocode (preceding-char)) - (backward-delete-char 1))) - "}")) + (robin-invert-region (point-min) (point-max) "ethiopic-tex") + (goto-char (point-min)) (set-buffer-modified-p nil))) @@ -1737,43 +839,18 @@ Each command is always surrounded by braces." (let ((buffer-read-only nil) (p) (ch)) - ;; Special treatment for gemination - ;; "\geminateG{\la}" or "\geminateG{{\la}}" will be "\la$(3%s(B" - ;; "\geminateG{}" remains unchanged. - (goto-char (point-min)) - (while (re-search-forward "\\\\geminateG{\\(\\\\[a-zA-Z]+\\)}" nil t) - (replace-match "\\1$(3%s(B")) - ;; TeX macros to Ethiopic characters - (goto-char (point-min)) - (while (search-forward "\\" nil t) - (setq p (point)) - (skip-chars-forward "a-zA-Z") - (setq ch - (get (intern (concat "ethio-tex-command-" - (buffer-substring p (point)))) - 'ethio-fidel-char)) - (if ch - (progn - (delete-region (1- p) (point)) ; don't forget the preceding "\" - (if (and (= (preceding-char) ?{) - (= (following-char) ?})) - (progn - (backward-delete-char 1) - (delete-char 1))) - (insert ch)))) + (robin-convert-region (point-min) (point-max) "ethiopic-tex") ;; compose geminated characters (goto-char (point-min)) - (while (re-search-forward "\\ce$(3%s(B" nil 0) - (compose-region - (save-excursion (backward-char 2) (point)) - (point))) + (while (re-search-forward "\\\\geminateG{\\(\\ce?\\)}" nil t) + (replace-match "\\1፟")) - ;; Now it's time to convert isolated gemination marks. + ;; remove redundant braces, if any (goto-char (point-min)) - (while (search-forward "\\geminateG{}" nil t) - (replace-match "$(3%s(B")) + (while (re-search-forward "{\\(\\ce\\)}" nil t) + (replace-match "\\1")) (goto-char (point-min)) (set-buffer-modified-p nil))) @@ -1793,47 +870,24 @@ If `ethio-java-save-lowercase' is non-nil, use [0-9a-f]. Otherwise, [0-9A-F]." (let ((ucode)) - ;; first, decompose geminations - (decompose-region (point-min) (point-max)) - (goto-char (point-min)) - (while (re-search-forward "\\ce" nil t) - (setq ucode (+ ?\x1200 (ethio-char-to-ethiocode (preceding-char)))) - (if (> ucode ?\x13bc) - (setq ucode (+ ucode 59952))) + (while (re-search-forward "[ሀ-፼]" nil t) + (setq ucode (preceding-char)) (delete-backward-char 1) - (if ethio-java-save-lowercase - (insert (format "\\u%4x" ucode)) - (insert (upcase (format "\\u%4x" ucode))))))) + (insert + (format (if ethio-java-save-lowercase "\\u%4x" "\\u%4X") + ucode))))) ;;;###autoload (defun ethio-java-to-fidel-buffer nil "Convert the Java escape sequences into corresponding Ethiopic characters." - (let ((ucode)) - (goto-char (point-min)) - (while (re-search-forward "\\\\u\\([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]\\)" nil t) - (setq ucode - (read - (concat - "?\\x" - (buffer-substring (match-beginning 1) (match-end 1))))) - (cond - ((and (>= ucode ?\x1200) (<= ucode ?\x13bc)) - (replace-match "") - (insert (ethio-ethiocode-to-char (- ucode ?\x1200)))) - ((and (>= ucode ?\xfdf1) (<= ucode ?\xfdff)) - (replace-match "") - (insert (ethio-ethiocode-to-char (- ucode 64560)))) - (t - nil))) - - ;; gemination + (let ((case-fold-search t) + (ucode)) (goto-char (point-min)) - (while (re-search-forward "\\ce$(3%s(B" nil 0) - (compose-region - (save-excursion (backward-char 2) (point)) - (point))) - )) + (while (re-search-forward "\\\\u\\([0-9a-f][0-9a-f][0-9a-f][0-9a-f]\\)" nil t) + (setq ucode (read (concat "#x" (match-string 1)))) + (when (and (>= ucode #x1200) (<= ucode #x137f)) + (replace-match (char-to-string ucode)))))) ;; ;; file I/O hooks @@ -1841,7 +895,7 @@ Otherwise, [0-9A-F]." ;;;###autoload (defun ethio-find-file nil - "Transcribe file content into Ethiopic depending on filename suffix." + "Transliterate file content into Ethiopic dependig on filename suffix." (cond ((string-match "\\.sera$" (buffer-file-name)) @@ -1854,10 +908,10 @@ Otherwise, [0-9A-F]." (save-excursion (ethio-sera-to-fidel-marker 'force) (goto-char (point-min)) - (while (re-search-forward "&[lr]aquote;" nil t) + (while (re-search-forward "&[lr]aquo;" nil t) (if (= (char-after (1+ (match-beginning 0))) ?l) - (replace-match "$(3%v(B") - (replace-match "$(3%w(B"))) + (replace-match "«") + (replace-match "»"))) (set-buffer-modified-p nil)))) ((string-match "\\.tex$" (buffer-file-name)) @@ -1875,7 +929,7 @@ Otherwise, [0-9A-F]." ;;;###autoload (defun ethio-write-file nil - "Transcribe Ethiopic characters in ASCII depending on the file extension." + "Transliterate Ethiopic characters in ASCII depending on the file extension." (cond ((string-match "\\.sera$" (buffer-file-name)) @@ -1887,17 +941,14 @@ Otherwise, [0-9A-F]." ((string-match "\\.html$" (buffer-file-name)) (save-excursion - (let ((ethio-sera-being-called-by-w3 t) - (lq (aref ethio-fidel-to-sera-map 461)) - (rq (aref ethio-fidel-to-sera-map 462))) - (aset ethio-fidel-to-sera-map 461 "«te;") - (aset ethio-fidel-to-sera-map 462 "»te;") + (let ((ethio-sera-being-called-by-w3 t)) (ethio-fidel-to-sera-marker 'force) (goto-char (point-min)) + (while (re-search-forward "[«»]" nil t) + (replace-match (if (= (preceding-char) ?«) "«" "»"))) + (goto-char (point-min)) (if (search-forward "<sera>" nil t) (ethio-record-user-preference)) - (aset ethio-fidel-to-sera-map 461 lq) - (aset ethio-fidel-to-sera-map 462 rq) (set-buffer-modified-p nil)))) ((string-match "\\.tex$" (buffer-file-name)) @@ -1914,11 +965,8 @@ Otherwise, [0-9A-F]." nil))) (defun ethio-record-user-preference nil - (if (looking-at "\\\\~\\(tir?\\|amh?\\) ") - (goto-char (match-end 0)) - (insert (if (ethio-prefer-amharic-p) "\\~amh " "\\~tir "))) (insert (if ethio-use-colon-for-colon "\\~-: " "\\~`: ") - (if ethio-use-three-dot-question "\\~`| " "\\~`? "))) + (if ethio-use-three-dot-question "\\~`| " "\\~? "))) ;; ;; Ethiopic word separator vs. ASCII space @@ -1931,10 +979,7 @@ Otherwise, [0-9A-F]." "Toggle ASCII space and Ethiopic separator for keyboard input." (interactive) (setq ethio-prefer-ascii-space - (not ethio-prefer-ascii-space)) - (if (equal current-input-method "ethiopic") - (setq current-input-method-title (quail-title))) - (force-mode-line-update)) + (not ethio-prefer-ascii-space))) (defun ethio-insert-space (arg) "Insert ASCII spaces or Ethiopic word separators depending on context. @@ -1957,68 +1002,1080 @@ many Ethiopic word separators." ((save-excursion (skip-chars-backward " ") (memq (preceding-char) - '(?$(3$h(B ?$(3$i(B ?$(3$j(B ?$(3$k(B ?$(3$l(B ?$(3$m(B ?$(3$n(B ?$(3$o(B ?$(3%t(B ?$(3%u(B ?$(3%v(B ?$(3%w(B ?$(3%x(B))) + '(?፡ ?። ?፣ ?፤ ?፥ ?፦ ?፧ ?፨ ? ? ? ? ?))) (insert-char 32 arg)) (t - (insert-char ?$(3$h(B arg)))) + (insert-char ?፡ arg)))) +;;;###autoload (defun ethio-insert-ethio-space (arg) "Insert the Ethiopic word delimiter (the colon-like character). With ARG, insert that many delimiters." (interactive "*p") - (insert-char ?$(3$h(B arg)) - -;; -;; Ethiopic punctuation vs. ASCII punctuation -;; - -(defvar ethio-prefer-ascii-punctuation nil) -(make-variable-buffer-local 'ethio-prefer-ascii-punctuation) - -(defun ethio-toggle-punctuation nil - "Toggle Ethiopic punctuations and ASCII punctuations for keyboard input." - (interactive) - (setq ethio-prefer-ascii-punctuation - (not ethio-prefer-ascii-punctuation)) - (let* ((keys '("." ".." "..." "," ",," ";" ";;" ":" "::" ":::" "*" "**")) - (puncs - (if ethio-prefer-ascii-punctuation - '(?. [".."] ["..."] ?, [",,"] ?\; [";;"] ?: ["::"] [":::"] ?* ["**"]) - '(?$(3$i(B ?$(3%u(B ?. ?$(3$j(B ?, ?$(3$k(B ?\; ?$(3$h(B ?$(3$i(B ?: ?* ?$(3$o(B)))) - (while keys - (quail-defrule (car keys) (car puncs) "ethiopic") - (setq keys (cdr keys) - puncs (cdr puncs))) - (if (equal current-input-method "ethiopic") - (setq current-input-method-title (quail-title))) - (force-mode-line-update))) + (insert-char ?፡ arg)) ;; ;; Gemination ;; +;;;###autoload +(defun ethio-composition-function (pos &optional string) + (setq pos (1- pos)) + (let ((pattern "\\ce\\(፟\\|\\)")) + (if string + (if (and (>= pos 0) + (eq (string-match pattern string pos) pos)) + (prog1 (match-end 0) + (compose-string string pos (match-end 0)))) + (if (>= pos (point-min)) + (progn + (goto-char pos) + (if (looking-at pattern) + (prog1 (match-end 0) + (compose-region pos (match-end 0))))))))) + +;; This function is not used any more. (defun ethio-gemination nil "Compose the character before the point with the Ethiopic gemination mark. If the character is already composed, decompose it and remove the gemination mark." (interactive "*") - (cond - ((eq (char-charset (preceding-char)) 'ethiopic) - (insert "$(3%s(B") - (compose-region - (save-excursion (backward-char 2) (point)) - (point)) - (forward-char 1)) - ((eq (char-charset (preceding-char)) 'leading-code-composition) - (decompose-region - (save-excursion (backward-char 1) (point)) - (point)) - (delete-backward-char 1)) - (t - (error "")))) + (let ((ch (preceding-char))) + (cond + ((and (= ch ?) (find-composition (1- (point)))) + (decompose-region (- (point) 2) (point))) + ((and (>= ch #x1200) (<= ch #x137f)) + (insert "") + (compose-region (- (point) 2) (point))) + (t + (error ""))))) + +;;; +;;; Robin packages +;;; + +(robin-define-package "ethiopic-sera" + "SERA transliteration system for Ethiopic." + + ("he" ?ሀ) + ("hu" ?ሁ) + ("hi" ?ሂ) + ("ha" ?ሃ) + ("hE" ?ሄ) ("hee" "ሄ") + ("h" ?ህ) + ("ho" ?ሆ) + + ("le" ?ለ) ("Le" "ለ") + ("lu" ?ሉ) ("Lu" "ሉ") + ("li" ?ሊ) ("Li" "ሊ") + ("la" ?ላ) ("La" "ላ") + ("lE" ?ሌ) ("LE" "ሌ") ("lee" "ሌ") ("Lee" "ሌ") + ("l" ?ል) ("L" "ል") + ("lo" ?ሎ) ("Lo" "ሎ") + ("lWa" ?ሏ) ("LWa" "ሏ") ("lW" "ሏ") ("LW" "ሏ") + + ("He" ?ሐ) + ("Hu" ?ሑ) + ("Hi" ?ሒ) + ("Ha" ?ሓ) + ("HE" ?ሔ) ("Hee" "ሔ") + ("H" ?ሕ) + ("Ho" ?ሖ) + ("HWa" ?ሗ) ("HW" "ሗ") + + ("me" ?መ) ("Me" "መ") + ("mu" ?ሙ) ("Mu" "ሙ") + ("mi" ?ሚ) ("Mi" "ሚ") + ("ma" ?ማ) ("Ma" "ማ") + ("mE" ?ሜ) ("ME" "ሜ") ("mee" "ሜ") ("Mee" "ሜ") + ("m" ?ም) ("M" "ም") + ("mo" ?ሞ) ("Mo" "ሞ") + ("mWa" ?ሟ) ("MWa" "ሟ") ("mW" "ሟ") ("MW" "ሟ") + + ("`se" ?ሠ) ("sse" "ሠ") ("s2e" "ሠ") + ("`su" ?ሡ) ("ssu" "ሡ") ("s2u" "ሡ") + ("`si" ?ሢ) ("ssi" "ሢ") ("s2i" "ሢ") + ("`sa" ?ሣ) ("ssa" "ሣ") ("s2a" "ሣ") + ("`sE" ?ሤ) ("ssE" "ሤ") ("s2E" "ሤ") + ("`see" "ሤ") ("ssee" "ሤ") ("s2ee" "ሤ") + ("`s" ?ሥ) ("ss" "ሥ") ("s2" "ሥ") + ("`so" ?ሦ) ("sso" "ሦ") ("s2o" "ሦ") + ("`sWa" ?ሧ) ("ssWa" "ሧ") ("s2Wa" "ሧ") + ("`sW" "ሧ") ("ssW" "ሧ") ("s2W" "ሧ") + + ("re" ?ረ) ("Re" "ረ") + ("ru" ?ሩ) ("Ru" "ሩ") + ("ri" ?ሪ) ("Ri" "ሪ") + ("ra" ?ራ) ("Ra" "ራ") + ("rE" ?ሬ) ("RE" "ሬ") ("ree" "ሬ") ("Ree" "ሬ") + ("r" ?ር) ("R" "ር") + ("ro" ?ሮ) ("Ro" "ሮ") + ("rWa" ?ሯ) ("RWa" "ሯ") ("rW" "ሯ") ("RW" "ሯ") + + ("se" ?ሰ) + ("su" ?ሱ) + ("si" ?ሲ) + ("sa" ?ሳ) + ("sE" ?ሴ) ("see" "ሴ") + ("s" ?ስ) + ("so" ?ሶ) + ("sWa" ?ሷ) ("sW" "ሷ") + + ("xe" ?ሸ) + ("xu" ?ሹ) + ("xi" ?ሺ) + ("xa" ?ሻ) + ("xE" ?ሼ) ("xee" "ሼ") + ("x" ?ሽ) + ("xo" ?ሾ) + ("xWa" ?ሿ) ("xW" "ሿ") + + ("qe" ?ቀ) + ("qu" ?ቁ) + ("qi" ?ቂ) + ("qa" ?ቃ) + ("qE" ?ቄ) ("qee" "ቄ") + ("q" ?ቅ) + ("qo" ?ቆ) + ("qWe" ?ቈ) + ("qWi" ?ቊ) + ("qWa" ?ቋ) ("qW" "ቋ") + ("qWE" ?ቌ) ("qWee" "ቌ") + ("qW'" ?ቍ) ("qWu" "ቍ") + + ("Qe" ?ቐ) + ("Qu" ?ቑ) + ("Qi" ?ቒ) + ("Qa" ?ቓ) + ("QE" ?ቔ) ("Qee" "ቔ") + ("Q" ?ቕ) + ("Qo" ?ቖ) + ("QWe" ?ቘ) + ("QWi" ?ቚ) + ("QWa" ?ቛ) ("QW" "ቛ") + ("QWE" ?ቜ) ("QWee" "ቜ") + ("QW'" ?ቝ) ("QWu" "ቝ") + + ("be" ?በ) ("Be" "በ") + ("bu" ?ቡ) ("Bu" "ቡ") + ("bi" ?ቢ) ("Bi" "ቢ") + ("ba" ?ባ) ("Ba" "ባ") + ("bE" ?ቤ) ("BE" "ቤ") ("bee" "ቤ") ("Bee" "ቤ") + ("b" ?ብ) ("B" "ብ") + ("bo" ?ቦ) ("Bo" "ቦ") + ("bWa" ?ቧ) ("BWa" "ቧ") ("bW" "ቧ") ("BW" "ቧ") + + ("ve" ?ቨ) ("Ve" "ቨ") + ("vu" ?ቩ) ("Vu" "ቩ") + ("vi" ?ቪ) ("Vi" "ቪ") + ("va" ?ቫ) ("Va" "ቫ") + ("vE" ?ቬ) ("VE" "ቬ") ("vee" "ቬ") ("Vee" "ቬ") + ("v" ?ቭ) ("V" "ቭ") + ("vo" ?ቮ) ("Vo" "ቮ") + ("vWa" ?ቯ) ("VWa" "ቯ") ("vW" "ቯ") ("VW" "ቯ") + + ("te" ?ተ) + ("tu" ?ቱ) + ("ti" ?ቲ) + ("ta" ?ታ) + ("tE" ?ቴ) ("tee" "ቴ") + ("t" ?ት) + ("to" ?ቶ) + ("tWa" ?ቷ) ("tW" "ቷ") + + ("ce" ?ቸ) + ("cu" ?ቹ) + ("ci" ?ቺ) + ("ca" ?ቻ) + ("cE" ?ቼ) ("cee" "ቼ") + ("c" ?ች) + ("co" ?ቾ) + ("cWa" ?ቿ) ("cW" "ቿ") + + ("`he" ?ኀ) ("hhe" "ኀ") ("h2e" "ኀ") + ("`hu" ?ኁ) ("hhu" "ኁ") ("h2u" "ኁ") + ("`hi" ?ኂ) ("hhi" "ኂ") ("h2i" "ኂ") + ("`ha" ?ኃ) ("hha" "ኃ") ("h2a" "ኃ") + ("`hE" ?ኄ) ("hhE" "ኄ") ("h2E" "ኄ") + ("`hee" "ኄ") ("hhee" "ኄ") ("h2ee" "ኄ") + ("`h" ?ኅ) ("hh" "ኅ") ("h2" "ኅ") + ("`ho" ?ኆ) ("hho" "ኆ") ("h2o" "ኆ") + ("`hWe" ?ኈ) ("hhWe" "ኈ") ("h2We" "ኈ") ("hWe" "ኈ") + ("`hWi" ?ኊ) ("hhWi" "ኊ") ("h2Wi" "ኊ") ("hWi" "ኊ") + ("`hWa" ?ኋ) ("hhWa" "ኋ") ("h2Wa" "ኋ") ("hWa" "ኋ") + ("`hW" "ኋ") ("hhW" "ኋ") ("h2W" "ኋ") + ("`hWE" ?ኌ) ("hhWE" "ኌ") ("h2WE" "ኌ") ("hWE" "ኌ") + ("`hWee" "ኌ") ("hhWee" "ኌ") ("h2Wee" "ኌ") ("hWee" "ኌ") + ("`hW'" ?ኍ) ("hhW'" "ኍ") ("h2W'" "ኍ") ("hW'" "ኍ") + ("`hWu" "ኍ") ("hhWu" "ኍ") ("h2Wu" "ኍ") ("hWu" "ኍ") + + ("ne" ?ነ) + ("nu" ?ኑ) + ("ni" ?ኒ) + ("na" ?ና) + ("nE" ?ኔ) ("nee" "ኔ") + ("n" ?ን) + ("no" ?ኖ) + ("nWa" ?ኗ) ("nW" "ኗ") + + ("Ne" ?ኘ) + ("Nu" ?ኙ) + ("Ni" ?ኚ) + ("Na" ?ኛ) + ("NE" ?ኜ) ("Nee" "ኜ") + ("N" ?ኝ) + ("No" ?ኞ) + ("NWa" ?ኟ) ("NW" "ኟ") + + ("'A" ?አ) ("A" "አ") + ("'u" ?ኡ) ("u" "ኡ") ("'U" "ኡ") ("U" "ኡ") + ("'i" ?ኢ) ("i" "ኢ") + ("'a" ?ኣ) ("a" "ኣ") + ("'E" ?ኤ) ("E" "ኤ") + ("'I" ?እ) ("I" "እ") ("'e" "እ") ("e" "እ") + ("'o" ?ኦ) ("o" "ኦ") ("'O" "ኦ") ("O" "ኦ") + ("'ea" ?ኧ) ("ea" "ኧ") + + ("ke" ?ከ) + ("ku" ?ኩ) + ("ki" ?ኪ) + ("ka" ?ካ) + ("kE" ?ኬ) ("kee" "ኬ") + ("k" ?ክ) + ("ko" ?ኮ) + ("kWe" ?ኰ) + ("kWi" ?ኲ) + ("kWa" ?ኳ) ("kW" "ኳ") + ("kWE" ?ኴ) ("kWee" "ኴ") + ("kW'" ?ኵ) ("kWu" "ኵ") + + ("Ke" ?ኸ) + ("Ku" ?ኹ) + ("Ki" ?ኺ) + ("Ka" ?ኻ) + ("KE" ?ኼ) ("Kee" "ኼ") + ("K" ?ኽ) + ("Ko" ?ኾ) + ("KWe" ?ዀ) + ("KWi" ?ዂ) + ("KWa" ?ዃ) ("KW" "ዃ") + ("KWE" ?ዄ) ("KWee" "ዄ") + ("KW'" ?ዅ) ("KWu" "ዅ") + + ("we" ?ወ) + ("wu" ?ዉ) + ("wi" ?ዊ) + ("wa" ?ዋ) + ("wE" ?ዌ) ("wee" "ዌ") + ("w" ?ው) + ("wo" ?ዎ) + + ("`e" ?ዐ) ("ae" "ዐ") ("aaa" "ዐ") ("e2" "ዐ") + ("`u" ?ዑ) ("uu" "ዑ") ("u2" "ዑ") ("`U" "ዑ") ("UU" "ዑ") ("U2" "ዑ") + ("`i" ?ዒ) ("ii" "ዒ") ("i2" "ዒ") + ("`a" ?ዓ) ("aa" "ዓ") ("a2" "ዓ") ("`A" "ዓ") ("AA" "ዓ") ("A2" "ዓ") + ("`E" ?ዔ) ("EE" "ዔ") ("E2" "ዔ") + ("`I" ?ዕ) ("II" "ዕ") ("I2" "ዕ") ("ee" "ዕ") + ("`o" ?ዖ) ("oo" "ዖ") ("o2" "ዖ") ("`O" "ዖ") ("OO" "ዖ") ("O2" "ዖ") + + ("ze" ?ዘ) + ("zu" ?ዙ) + ("zi" ?ዚ) + ("za" ?ዛ) + ("zE" ?ዜ) ("zee" "ዜ") + ("z" ?ዝ) + ("zo" ?ዞ) + ("zWa" ?ዟ) ("zW" "ዟ") + + ("Ze" ?ዠ) + ("Zu" ?ዡ) + ("Zi" ?ዢ) + ("Za" ?ዣ) + ("ZE" ?ዤ) ("Zee" "ዤ") + ("Z" ?ዥ) + ("Zo" ?ዦ) + ("ZWa" ?ዧ) ("ZW" "ዧ") + + ("ye" ?የ) ("Ye" "የ") + ("yu" ?ዩ) ("Yu" "ዩ") + ("yi" ?ዪ) ("Yi" "ዪ") + ("ya" ?ያ) ("Ya" "ያ") + ("yE" ?ዬ) ("YE" "ዬ") ("yee" "ዬ") ("Yee" "ዬ") + ("y" ?ይ) ("Y" "ይ") + ("yo" ?ዮ) ("Yo" "ዮ") + + ("de" ?ደ) + ("du" ?ዱ) + ("di" ?ዲ) + ("da" ?ዳ) + ("dE" ?ዴ) ("dee" "ዴ") + ("d" ?ድ) + ("do" ?ዶ) + ("dWa" ?ዷ) ("dW" "ዷ") + + ("De" ?ዸ) + ("Du" ?ዹ) + ("Di" ?ዺ) + ("Da" ?ዻ) + ("DE" ?ዼ) ("Dee" "ዼ") + ("D" ?ዽ) + ("Do" ?ዾ) + ("DWa" ?ዿ) ("DW" "ዿ") + + ("je" ?ጀ) ("Je" "ጀ") + ("ju" ?ጁ) ("Ju" "ጁ") + ("ji" ?ጂ) ("Ji" "ጂ") + ("ja" ?ጃ) ("Ja" "ጃ") + ("jE" ?ጄ) ("JE" "ጄ") ("jee" "ጄ") ("Jee" "ጄ") + ("j" ?ጅ) ("J" "ጅ") + ("jo" ?ጆ) ("Jo" "ጆ") + ("jWa" ?ጇ) ("jW" "ጇ") ("JWa" "ጇ") ("JW" "ጇ") + + ("ge" ?ገ) + ("gu" ?ጉ) + ("gi" ?ጊ) + ("ga" ?ጋ) + ("gE" ?ጌ) ("gee" "ጌ") + ("g" ?ግ) + ("go" ?ጎ) + ("gWe" ?ጐ) + ("gWi" ?ጒ) + ("gWa" ?ጓ) ("gW" "ጓ") + ("gWE" ?ጔ) ("gWee" "ጔ") + ("gW'" ?ጕ) ("gWu" "ጕ") + + ("Ge" ?ጘ) + ("Gu" ?ጙ) + ("Gi" ?ጚ) + ("Ga" ?ጛ) + ("GE" ?ጜ) ("Gee" "ጜ") + ("G" ?ጝ) + ("Go" ?ጞ) + + ("Te" ?ጠ) + ("Tu" ?ጡ) + ("Ti" ?ጢ) + ("Ta" ?ጣ) + ("TE" ?ጤ) ("Tee" "ጤ") + ("T" ?ጥ) + ("To" ?ጦ) + ("TWa" ?ጧ) ("TW" "ጧ") + + ("Ce" ?ጨ) + ("Cu" ?ጩ) + ("Ci" ?ጪ) + ("Ca" ?ጫ) + ("CE" ?ጬ) ("Cee" "ጬ") + ("C" ?ጭ) + ("Co" ?ጮ) + ("CWa" ?ጯ) ("CW" "ጯ") + + ("Pe" ?ጰ) + ("Pu" ?ጱ) + ("Pi" ?ጲ) + ("Pa" ?ጳ) + ("PE" ?ጴ) ("Pee" "ጴ") + ("P" ?ጵ) + ("Po" ?ጶ) + ("PWa" ?ጷ) ("PW" "ጷ") + + ("Se" ?ጸ) + ("Su" ?ጹ) + ("Si" ?ጺ) + ("Sa" ?ጻ) + ("SE" ?ጼ) ("See" "ጼ") + ("S" ?ጽ) + ("So" ?ጾ) + ("SWa" ?ጿ) ("`SWa" "ጿ") ("SSWa" "ጿ") ("S2Wa" "ጿ") + ("SW" "ጿ") ("`SW" "ጿ") ("SSW" "ጿ") ("S2W" "ጿ") + + ("`Se" ?ፀ) ("SSe" "ፀ") ("S2e" "ፀ") + ("`Su" ?ፁ) ("SSu" "ፁ") ("S2u" "ፁ") + ("`Si" ?ፂ) ("SSi" "ፂ") ("S2i" "ፂ") + ("`Sa" ?ፃ) ("SSa" "ፃ") ("S2a" "ፃ") + ("`SE" ?ፄ) ("SSE" "ፄ") ("S2E" "ፄ") + ("`See" "ፄ") ("SSee" "ፄ") ("S2ee" "ፄ") + ("`S" ?ፅ) ("SS" "ፅ") ("S2" "ፅ") + ("`So" ?ፆ) ("SSo" "ፆ") ("S2o" "ፆ") + + ("fe" ?ፈ) ("Fe" "ፈ") + ("fu" ?ፉ) ("Fu" "ፉ") + ("fi" ?ፊ) ("Fi" "ፊ") + ("fa" ?ፋ) ("Fa" "ፋ") + ("fE" ?ፌ) ("FE" "ፌ") ("fee" "ፌ") ("Fee" "ፌ") + ("f" ?ፍ) ("F" "ፍ") + ("fo" ?ፎ) ("Fo" "ፎ") + ("fWa" ?ፏ) ("FWa" "ፏ") ("fW" "ፏ") ("FW" "ፏ") + + ("pe" ?ፐ) + ("pu" ?ፑ) + ("pi" ?ፒ) + ("pa" ?ፓ) + ("pE" ?ፔ) ("pee" "ፔ") + ("p" ?ፕ) + ("po" ?ፖ) + ("pWa" ?ፗ) ("pW" "ፗ") + + ("rYa" ?ፘ) ("RYa" "ፘ") ("rY" "ፘ") ("RY" "ፘ") + ("mYa" ?ፙ) ("MYa" "ፙ") ("mY" "ፙ") ("MY" "ፙ") + ("fYa" ?ፚ) ("FYa" "ፚ") ("fY" "ፚ") ("FY" "ፚ") + + (" : " ?፡) (":" "፡") ("`:" "፡") + ("::" ?።) ("." "።") + ("," ?፣) + (";" ?፤) + ("-:" ?፥) + (":-" ?፦) + ("`?" ?፧) ("??" "፧") + (":|:" ?፨) ("**" "፨") + + ;; Explicit syllable delimiter + ("'" "") + + ;; Quick ASCII input + ("''" "'") + (":::" ":") + (".." ".") + (",," ",") + (";;" ";") + + ("`1" ?፩) + ("`2" ?፪) + ("`3" ?፫) + ("`4" ?፬) + ("`5" ?፭) + ("`6" ?፮) + ("`7" ?፯) + ("`8" ?፰) + ("`9" ?፱) + ("`10" ?፲) + ("`20" ?፳) + ("`30" ?፴) + ("`40" ?፵) + ("`50" ?፶) + ("`60" ?፷) + ("`70" ?፸) + ("`80" ?፹) + ("`90" ?፺) + ("`100" ?፻) + ("`10000" ?፼) + + ("`200" "፪፻") + ("`300" "፫፻") + ("`400" "፬፻") + ("`500" "፭፻") + ("`600" "፮፻") + ("`700" "፯፻") + ("`800" "፰፻") + ("`900" "፱፻") + ("`1000" "፲፻") + ("`2000" "፳፻") + ("`3000" "፴፻") + ("`4000" "፵፻") + ("`5000" "፶፻") + ("`6000" "፷፻") + ("`7000" "፸፻") + ("`8000" "፹፻") + ("`9000" "፺፻") + ("`20000" "፪፼") + ("`30000" "፫፼") + ("`40000" "፬፼") + ("`50000" "፭፼") + ("`60000" "፮፼") + ("`70000" "፯፼") + ("`80000" "፰፼") + ("`90000" "፱፼") + ("`100000" "፲፼") + ("`200000" "፳፼") + ("`300000" "፴፼") + ("`400000" "፵፼") + ("`500000" "፶፼") + ("`600000" "፷፼") + ("`700000" "፸፼") + ("`800000" "፹፼") + ("`900000" "፺፼") + ("`1000000" "፻፼") + ) + +(register-input-method + "ethiopic-sera" "Ethiopic" + 'robin-use-package "et" "An input method for Ethiopic.") + +(robin-define-package "ethiopic-tex" + "TeX transliteration system for Ethiopic." + + ("\\heG" ?ሀ) ; U+1200 .. + ("\\huG" ?ሁ) + ("\\hiG" ?ሂ) + ("\\haG" ?ሃ) + ("\\hEG" ?ሄ) + ("\\hG" ?ህ) + ("\\hoG" ?ሆ) + ;; reserved + ("\\leG" ?ለ) + ("\\luG" ?ሉ) + ("\\liG" ?ሊ) + ("\\laG" ?ላ) + ("\\lEG" ?ሌ) + ("\\lG" ?ል) + ("\\loG" ?ሎ) + ("\\lWaG" ?ሏ) + + ("\\HeG" ?ሐ) ; U+1210 .. + ("\\HuG" ?ሑ) + ("\\HiG" ?ሒ) + ("\\HaG" ?ሓ) + ("\\HEG" ?ሔ) + ("\\HG" ?ሕ) + ("\\HoG" ?ሖ) + ("\\HWaG" ?ሗ) + ("\\meG" ?መ) + ("\\muG" ?ሙ) + ("\\miG" ?ሚ) + ("\\maG" ?ማ) + ("\\mEG" ?ሜ) + ("\\mG" ?ም) + ("\\moG" ?ሞ) + ("\\mWaG" ?ሟ) + + ("\\sseG" ?ሠ) ; U+1220 .. + ("\\ssuG" ?ሡ) + ("\\ssiG" ?ሢ) + ("\\ssaG" ?ሣ) + ("\\ssEG" ?ሤ) + ("\\ssG" ?ሥ) + ("\\ssoG" ?ሦ) + ("\\ssWaG" ?ሧ) + ("\\reG" ?ረ) + ("\\ruG" ?ሩ) + ("\\riG" ?ሪ) + ("\\raG" ?ራ) + ("\\rEG" ?ሬ) + ("\\rG" ?ር) + ("\\roG" ?ሮ) + ("\\rWaG" ?ሯ) + + ("\\seG" ?ሰ) ; U+1230 .. + ("\\suG" ?ሱ) + ("\\siG" ?ሲ) + ("\\saG" ?ሳ) + ("\\sEG" ?ሴ) + ("\\sG" ?ስ) + ("\\soG" ?ሶ) + ("\\sWaG" ?ሷ) + ("\\xeG" ?ሸ) + ("\\xuG" ?ሹ) + ("\\xiG" ?ሺ) + ("\\xaG" ?ሻ) + ("\\xEG" ?ሼ) + ("\\xG" ?ሽ) + ("\\xoG" ?ሾ) + ("\\xWaG" ?ሿ) + + ("\\qeG" ?ቀ) ; U+1240 .. + ("\\quG" ?ቁ) + ("\\qiG" ?ቂ) + ("\\qaG" ?ቃ) + ("\\qEG" ?ቄ) + ("\\qG" ?ቅ) + ("\\qoG" ?ቆ) + ;; reserved + ("\\qWeG" ?ቈ) + ;; reserved + ("\\qWiG" ?ቊ) + ("\\qWaG" ?ቋ) + ("\\qWEG" ?ቌ) + ("\\qWG" ?ቍ) + ;; reserved + ;; reserved + + ("\\QeG" ?ቐ) ; U+1250 .. + ("\\QuG" ?ቑ) + ("\\QiG" ?ቒ) + ("\\QaG" ?ቓ) + ("\\QEG" ?ቔ) + ("\\QG" ?ቕ) + ("\\QoG" ?ቖ) + ;; reserved + ("\\QWeG" ?ቘ) + ;; reserved + ("\\QWiG" ?ቚ) + ("\\QWaG" ?ቛ) + ("\\QWEG" ?ቜ) + ("\\QWG" ?ቝ) + ;; reserved + ;; reserved + + ("\\beG" ?በ) ; U+1260 .. + ("\\buG" ?ቡ) + ("\\biG" ?ቢ) + ("\\baG" ?ባ) + ("\\bEG" ?ቤ) + ("\\bG" ?ብ) + ("\\boG" ?ቦ) + ("\\bWaG" ?ቧ) + ("\\veG" ?ቨ) + ("\\vuG" ?ቩ) + ("\\viG" ?ቪ) + ("\\vaG" ?ቫ) + ("\\vEG" ?ቬ) + ("\\vG" ?ቭ) + ("\\voG" ?ቮ) + ("\\vWaG" ?ቯ) + + ("\\teG" ?ተ) ; U+1270 .. + ("\\tuG" ?ቱ) + ("\\tiG" ?ቲ) + ("\\taG" ?ታ) + ("\\tEG" ?ቴ) + ("\\tG" ?ት) + ("\\toG" ?ቶ) + ("\\tWaG" ?ቷ) + ("\\ceG" ?ቸ) + ("\\cuG" ?ቹ) + ("\\ciG" ?ቺ) + ("\\caG" ?ቻ) + ("\\cEG" ?ቼ) + ("\\cG" ?ች) + ("\\coG" ?ቾ) + ("\\cWaG" ?ቿ) + + ("\\hheG" ?ኀ) ; U+1280 .. + ("\\hhuG" ?ኁ) + ("\\hhiG" ?ኂ) + ("\\hhaG" ?ኃ) + ("\\hhEG" ?ኄ) + ("\\hhG" ?ኅ) + ("\\hhoG" ?ኆ) + ;; reserved + ("\\hWeG" ?ኈ) + ;; reserved + ("\\hWiG" ?ኊ) + ("\\hWaG" ?ኋ) + ("\\hWEG" ?ኌ) + ("\\hWG" ?ኍ) + ;; reserved + ;; reserved + + ("\\neG" ?ነ) ; U+1290 .. + ("\\nuG" ?ኑ) + ("\\niG" ?ኒ) + ("\\naG" ?ና) + ("\\nEG" ?ኔ) + ("\\nG" ?ን) + ("\\noG" ?ኖ) + ("\\nWaG" ?ኗ) + ("\\NeG" ?ኘ) + ("\\NuG" ?ኙ) + ("\\NiG" ?ኚ) + ("\\NaG" ?ኛ) + ("\\NEG" ?ኜ) + ("\\NG" ?ኝ) + ("\\NoG" ?ኞ) + ("\\NWaG" ?ኟ) + + ("\\eG" ?አ) ; U+12A0 .. + ("\\uG" ?ኡ) + ("\\iG" ?ኢ) + ("\\AG" ?ኣ) + ("\\EG" ?ኤ) + ("\\IG" ?እ) + ("\\oG" ?ኦ) + ("\\eaG" ?ኧ) + ("\\keG" ?ከ) + ("\\kuG" ?ኩ) + ("\\kiG" ?ኪ) + ("\\kaG" ?ካ) + ("\\kEG" ?ኬ) + ("\\kG" ?ክ) + ("\\koG" ?ኮ) + ;; reserved + + ("\\kWeG" ?ኰ) ; U+12B0 .. + ;; reserved + ("\\kWiG" ?ኲ) + ("\\kWaG" ?ኳ) + ("\\kWEG" ?ኴ) + ("\\kWG" ?ኵ) + ;; reserved + ;; reserved + ("\\KeG" ?ኸ) + ("\\KuG" ?ኹ) + ("\\KiG" ?ኺ) + ("\\KaG" ?ኻ) + ("\\KEG" ?ኼ) + ("\\KG" ?ኽ) + ("\\KoG" ?ኾ) + ;; reserved + + ("\\KWeG" ?ዀ) ; U+12C0 .. + ;; reserved + ("\\KWiG" ?ዂ) + ("\\KWaG" ?ዃ) + ("\\KWEG" ?ዄ) + ("\\KWG" ?ዅ) + ;; reserved + ;; reserved + ("\\weG" ?ወ) + ("\\wuG" ?ዉ) + ("\\wiG" ?ዊ) + ("\\waG" ?ዋ) + ("\\wEG" ?ዌ) + ("\\wG" ?ው) + ("\\woG" ?ዎ) + ;; reserved + + ("\\eeG" ?ዐ) ; U+12D0 .. + ("\\uuG" ?ዑ) + ("\\iiG" ?ዒ) + ("\\aaG" ?ዓ) + ("\\EEG" ?ዔ) + ("\\IIG" ?ዕ) + ("\\ooG" ?ዖ) + ;; reserved + ("\\zeG" ?ዘ) + ("\\zuG" ?ዙ) + ("\\ziG" ?ዚ) + ("\\zaG" ?ዛ) + ("\\zEG" ?ዜ) + ("\\zG" ?ዝ) + ("\\zoG" ?ዞ) + ("\\zWaG" ?ዟ) + + ("\\ZeG" ?ዠ) ; U+12E0 .. + ("\\ZuG" ?ዡ) + ("\\ZiG" ?ዢ) + ("\\ZaG" ?ዣ) + ("\\ZEG" ?ዤ) + ("\\ZG" ?ዥ) + ("\\ZoG" ?ዦ) + ("\\ZWaG" ?ዧ) + ("\\yeG" ?የ) + ("\\yuG" ?ዩ) + ("\\yiG" ?ዪ) + ("\\yaG" ?ያ) + ("\\yEG" ?ዬ) + ("\\yG" ?ይ) + ("\\yoG" ?ዮ) + ;; reserved + + ("\\deG" ?ደ) ; U+12F0 .. + ("\\duG" ?ዱ) + ("\\diG" ?ዲ) + ("\\daG" ?ዳ) + ("\\dEG" ?ዴ) + ("\\dG" ?ድ) + ("\\doG" ?ዶ) + ("\\dWaG" ?ዷ) + ("\\DeG" ?ዸ) + ("\\DuG" ?ዹ) + ("\\DiG" ?ዺ) + ("\\DaG" ?ዻ) + ("\\DEG" ?ዼ) + ("\\DG" ?ዽ) + ("\\DoG" ?ዾ) + ("\\DWaG" ?ዿ) + + ("\\jeG" ?ጀ) ; U+1300 .. + ("\\juG" ?ጁ) + ("\\jiG" ?ጂ) + ("\\jaG" ?ጃ) + ("\\jEG" ?ጄ) + ("\\jG" ?ጅ) + ("\\joG" ?ጆ) + ("\\jWaG" ?ጇ) + ("\\geG" ?ገ) + ("\\guG" ?ጉ) + ("\\giG" ?ጊ) + ("\\gaG" ?ጋ) + ("\\gEG" ?ጌ) + ("\\gG" ?ግ) + ("\\goG" ?ጎ) + ;; reserved + + ("\\gWeG" ?ጐ) ; U+1310 .. + ;; reserved + ("\\gWiG" ?ጒ) + ("\\gWaG" ?ጓ) + ("\\gWEG" ?ጔ) + ("\\gWG" ?ጕ) + ;; reserved + ;; reserved + ("\\GeG" ?ጘ) + ("\\GuG" ?ጙ) + ("\\GiG" ?ጚ) + ("\\GaG" ?ጛ) + ("\\GEG" ?ጜ) + ("\\GG" ?ጝ) + ("\\GoG" ?ጞ) + ;; reserved + + ("\\TeG" ?ጠ) ; U+1320 .. + ("\\TuG" ?ጡ) + ("\\TiG" ?ጢ) + ("\\TaG" ?ጣ) + ("\\TEG" ?ጤ) + ("\\TG" ?ጥ) + ("\\ToG" ?ጦ) + ("\\TWaG" ?ጧ) + ("\\CeG" ?ጨ) + ("\\CuG" ?ጩ) + ("\\CiG" ?ጪ) + ("\\CaG" ?ጫ) + ("\\CEG" ?ጬ) + ("\\CG" ?ጭ) + ("\\CoG" ?ጮ) + ("\\CWaG" ?ጯ) + + ("\\PeG" ?ጰ) ; U+1330 .. + ("\\PuG" ?ጱ) + ("\\PiG" ?ጲ) + ("\\PaG" ?ጳ) + ("\\PEG" ?ጴ) + ("\\PG" ?ጵ) + ("\\PoG" ?ጶ) + ("\\PWaG" ?ጷ) + ("\\SeG" ?ጸ) + ("\\SuG" ?ጹ) + ("\\SiG" ?ጺ) + ("\\SaG" ?ጻ) + ("\\SEG" ?ጼ) + ("\\SG" ?ጽ) + ("\\SoG" ?ጾ) + ("\\SWaG" ?ጿ) + + ("\\SSeG" ?ፀ) ; U+1340 .. + ("\\SSuG" ?ፁ) + ("\\SSiG" ?ፂ) + ("\\SSaG" ?ፃ) + ("\\SSEG" ?ፄ) + ("\\SSG" ?ፅ) + ("\\SSoG" ?ፆ) + ;; reserved + ("\\feG" ?ፈ) + ("\\fuG" ?ፉ) + ("\\fiG" ?ፊ) + ("\\faG" ?ፋ) + ("\\fEG" ?ፌ) + ("\\fG" ?ፍ) + ("\\foG" ?ፎ) + ("\\fWaG" ?ፏ) + + ("\\peG" ?ፐ) ; U+1350 .. + ("\\puG" ?ፑ) + ("\\piG" ?ፒ) + ("\\paG" ?ፓ) + ("\\pEG" ?ፔ) + ("\\pG" ?ፕ) + ("\\poG" ?ፖ) + ("\\pWaG" ?ፗ) + ("\\mYaG" ?ፘ) + ("\\rYaG" ?ፙ) + ("\\fYaG" ?ፚ) + ;; reserved + ;; reserved + ;; reserved + ;; reserved + ;; reserved + + ;; reserved ; U+1360 .. + ("\\spaceG" ?፡) + ("\\periodG" ?።) + ("\\commaG" ?፣) + ("\\semicolonG" ?፤) + ("\\colonG" ?፥) + ("\\precolonG" ?፦) + ("\\oldqmarkG" ?፧) + ("\\pbreakG" ?፨) + ("\\andG" ?፩) + ("\\huletG" ?፪) + ("\\sostG" ?፫) + ("\\aratG" ?፬) + ("\\amstG" ?፭) + ("\\sadstG" ?፮) + ("\\sabatG" ?፯) + + ("\\smntG" ?፰) ; U+1370 .. + ("\\zeteNG" ?፱) + ("\\asrG" ?፲) + ("\\heyaG" ?፳) + ("\\selasaG" ?፴) + ("\\arbaG" ?፵) + ("\\hemsaG" ?፶) + ("\\slsaG" ?፷) + ("\\sebaG" ?፸) + ("\\semanyaG" ?፹) + ("\\zeTanaG" ?፺) + ("\\metoG" ?፻) + ("\\asrxiG" ?፼) + ;; reserved + ;; reserved + ;; reserved + + ;; + ;; private extension + ;; + + ("\\yWaG" ?) ; U+1A00EF (was U+12EF) + + ("\\GWaG" ?) ; U+1A011F (was U+131F) + + ("\\qqeG" ?) ; U+1A0180 .. (was U+1380 ..) + ("\\qquG" ?) + ("\\qqiG" ?) + ("\\qqaG" ?) + ("\\qqEG" ?) + ("\\qqG" ?) + ("\\qqoG" ?) + ;; unused + ("\\MWeG" ?) + ("\\bWeG" ?) + ("\\GWeG" ?) + ("\\fWeG" ?) + ("\\pWeG" ?) + ;; unused + ;; unused + ;; unused + + ("\\kkeG" ?) ; U+1A0190 .. (was U+1390 ..) + ("\\kkuG" ?) + ("\\kkiG" ?) + ("\\kkaG" ?) + ("\\kkEG" ?) + ("\\kkG" ?) + ("\\kkoG" ?) + ;; unused + ("\\mWiG" ?) + ("\\bWiG" ?) + ("\\GWiG" ?) + ("\\fWiG" ?) + ("\\pWiG" ?) + ;; unused + ;; unused + ;; unused + + ("\\XeG" ?) ; U+1A01A0 .. (was U+13A0 ..) + ("\\XuG" ?) + ("\\XiG" ?) + ("\\XaG" ?) + ("\\XEG" ?) + ("\\XG" ?) + ("\\XoG" ?) + ;; unused + ("\\mWEG" ?) + ("\\bWEG" ?) + ("\\GWEG" ?) + ("\\fWEG" ?) + ("\\pWEG" ?) + ;; unused + ;; unused + ;; unused + + ("\\ggeG" ?) ; U+1A01B0 .. (was U+13B0 ..) + ("\\gguG" ?) + ("\\ggiG" ?) + ("\\ggaG" ?) + ("\\ggEG" ?) + ("\\ggG" ?) + ("\\ggoG" ?) + ;; unused + ("\\mWG" ?) + ("\\bWG" ?) + ("\\GWG" ?) + ("\\fWG" ?) + ("\\pWG" ?) + ;; unused + ;; unused + ;; unused + + ("\\ornamentG" ?) ; U+1A01C0 .. (was U+FDF0 ..) + ("\\flandG" ?) + ("\\iflandG" ?) + ("\\africaG" ?) + ("\\iafricaG" ?) + ("\\wWeG" ?) + ("\\wWiG" ?) + ("\\wWaG" ?) + ("\\wWEG" ?) + ("\\wWG" ?) + ;; Gemination () is handled in a special way. + ("\\slaqG" ?) + + ;; Assign reverse conversion to Fidel chars. + ;; Then override forward conversion with ASCII chars. + ;; ASCII chars should not have reverse conversions. + ("\\dotG" ?) ("\\dotG" ".") + ("\\lquoteG" ?) ("\\lquoteG" "«") + ("\\rquoteG" ?) ("\\rquoteG" "»") + ("\\qmarkG" ?) ("\\qmarkG" "?") + + ;; + ;; New characters in Unicode 4.1. + ;; + ;; In forward conversion, these characters override the old private + ;; extensions above. The old private extensions still keep their + ;; reverse conversion. + ;; + + ("\\ornamentG" ?፠) + ("\\yWaG" ?ዯ) + ("\\GWaG" ?ጟ) + ("\\MWeG" ?ᎀ) + ("\\mWiG" ?ᎁ) + ("\\mWEG" ?ᎂ) + ("\\mWG" ?ᎃ) + ("\\bWeG" ?ᎄ) + ("\\bWiG" ?ᎅ) + ("\\bWEG" ?ᎆ) + ("\\bWG" ?ᎇ) + ("\\fWeG" ?ᎈ) + ("\\fWiG" ?ᎉ) + ("\\fWEG" ?ᎊ) + ("\\fWG" ?ᎋ) + ("\\pWeG" ?ᎌ) + ("\\pWiG" ?ᎍ) + ("\\pWEG" ?ᎎ) + ("\\pWG" ?ᎏ) + ("\\GWeG" ?ⶓ) + ("\\GWiG" ?ⶔ) + ("\\GWEG" ?ⶕ) + ("\\GWG" ?ⶖ) + ("\\qqeG" ?ⷀ) + ("\\qquG" ?ⷁ) + ("\\qqiG" ?ⷂ) + ("\\qqaG" ?ⷃ) + ("\\qqEG" ?ⷄ) + ("\\qqG" ?ⷅ) + ("\\qqoG" ?ⷆ) + ("\\kkeG" ?ⷈ) + ("\\kkuG" ?ⷉ) + ("\\kkiG" ?ⷊ) + ("\\kkaG" ?ⷋ) + ("\\kkEG" ?ⷌ) + ("\\kkG" ?ⷍ) + ("\\kkoG" ?ⷎ) + ("\\XeG" ?ⷐ) + ("\\XuG" ?ⷑ) + ("\\XiG" ?ⷒ) + ("\\XaG" ?ⷓ) + ("\\XEG" ?ⷔ) + ("\\XG" ?ⷕ) + ("\\XoG" ?ⷖ) + ("\\ggeG" ?ⷘ) + ("\\gguG" ?ⷙ) + ("\\ggiG" ?ⷚ) + ("\\ggaG" ?ⷛ) + ("\\ggEG" ?ⷜ) + ("\\ggG" ?ⷝ) + ("\\ggoG" ?ⷞ) + ) + +;; The ethiopic-tex package is not used for keyboard input, therefore +;; not registered with the register-input-method function. -;; (provide 'ethio-util) +;;; ethio-util.el ends here + ;;; arch-tag: c8feb3d6-39bf-4b0a-b6ef-26f03fbc8140 ;;; ethio-util.el ends here diff --git a/lisp/language/ethiopic.el b/lisp/language/ethiopic.el index 3fb42d33bca..0634169b6ef 100644 --- a/lisp/language/ethiopic.el +++ b/lisp/language/ethiopic.el @@ -1,4 +1,4 @@ -;;; ethiopic.el --- support for Ethiopic -*- coding: iso-2022-7bit; -*- +;;; ethiopic.el --- support for Ethiopic -*- coding: utf-8-emacs; -*- ;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. @@ -44,10 +44,10 @@ (r1 *= 94) (r2 += r1) (if (r2 < 256) - (r1 = ?\x12) + (r1 = #x12) (if (r2 < 448) - ((r1 = ?\x13) (r2 -= 256)) - ((r1 = ?\xfd) (r2 -= 208)) + ((r1 = #x13) (r2 -= 256)) + ((r1 = #xfd) (r2 -= 208)) )))) "CCL program to encode an Ethiopic code to code point of Ethiopic font.") @@ -58,30 +58,33 @@ "Ethiopic" '((setup-function . setup-ethiopic-environment-internal) (exit-function . exit-ethiopic-environment) (charset ethiopic) - (coding-system iso-2022-7bit) - (coding-priority iso-2022-7bit) + (coding-system utf-8-emacs) + (coding-priority utf-8-emacs) (input-method . "ethiopic") (features ethio-util) - (sample-text . "$(3$Q#U!.(B") + (sample-text . "ፊደል") (documentation . -"This language envrironment provides these function key bindings - \(old bindings are shown in parentheses): - [f3] ethio-fidel-to-sera-buffer (f5) - [S-f3] ethio-fidel-to-sera-region (f5) - [C-f3] ethio-fidel-to-sera-mail-or-marker (f5) - - [f4] ethio-sera-to-fidel-buffer (unchanged) - [S-f4] ethio-sera-to-fidel-region (unchanged) - [C-f4] ethio-sera-to-fidel-mail-or-marker (unchanged) - - [S-f5] ethio-toggle-punctuation (f3) - [S-f6] ethio-modify-vowel (f6) - [S-f7] ethio-replace-space (f7) - [S-f8] ethio-input-special-character (f8) - [S-f9] ethio-replace-space (unchanged) - [C-f9] ethio-toggle-space (f2)" +"This language envrironment provides these function key bindings: + [f3] ethio-fidel-to-sera-buffer + [S-f3] ethio-fidel-to-sera-region + [C-f3] ethio-fidel-to-sera-marker + + [f4] ethio-sera-to-fidel-buffer + [S-f4] ethio-sera-to-fidel-region + [C-f4] ethio-sera-to-fidel-marker + + [S-f5] ethio-toggle-punctuation + [S-f6] ethio-modify-vowel + [S-f7] ethio-replace-space + + [S-f9] ethio-replace-space + [C-f9] ethio-toggle-space" ))) +;; For automatic composition +(aset composition-function-table ? 'ethio-composition-function) +(aset composition-function-table ?፟ 'ethio-composition-function) + (provide 'ethiopic) ;;; arch-tag: e81329d9-1286-43ba-92fd-54ce5c7b213c diff --git a/lisp/language/european.el b/lisp/language/european.el index 8d0a5c6997d..bc4fbf98334 100644 --- a/lisp/language/european.el +++ b/lisp/language/european.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, European @@ -36,15 +39,14 @@ ;; Latin-1 (ISO-8859-1) (set-language-info-alist - "Latin-1" '((charset ascii latin-iso8859-1) - (coding-system iso-latin-1) - (coding-priority iso-latin-1 windows-1252) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + "Latin-1" '((charset iso-8859-1) + (coding-system iso-latin-1 iso-latin-9 windows-1252) + (coding-priority iso-latin-1) + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) (input-method . "latin-1-prefix") (sample-text - . "Hello, Hej, Tere, Hei, Bonjour, Gr,A|_(B Gott, Ciao, ,A!(BHola!") + . "Hello, Hej, Tere, Hei, Bonjour, Gr$(D+d)N(B Gott, Ciao, $(D"B(BHola!") (documentation . "\ This language environment is a generic one for the Latin-1 (ISO-8859-1) character set which supports the following European languages: @@ -65,42 +67,24 @@ Latin-1 also covers several written languages outside Europe, including Indonesian/Malay, Tagalog (Philippines), Swahili and Afrikaans.")) '("European")) -(eval-and-compile - (setq - non-iso-charset-alist - (cp-make-coding-system - windows-1252 - [?\$,1tL(B nil ?\$,1rz(B ?\$,1!R(B ?\$,1r~(B ?\$,1s&(B ?\$,1s (B ?\$,1s!(B ?\$,1$f(B ?\$,1s0(B ?\$,1! (B ?\$,1s9(B ?\$,1 r(B nil ?\$,1!=(B nil nil - ?\$,1rx(B ?\$,1ry(B ?\$,1r|(B ?\$,1r}(B ?\$,1s"(B ?\$,1rs(B ?\$,1rt(B ?\$,1$|(B ?\$,1ub(B ?\$,1!!(B ?\$,1s:(B ?\$,1 s(B nil ?\$,1!>(B ?\$,1!8(B ?\,A (B ?\,A!(B - ?\,A"(B ?\,A#(B ?\,A$(B ?\,A%(B ?\,A&(B ?\,A'(B ?\,A((B ?\,A)(B ?\,A*(B ?\,A+(B ?\,A,(B ?\,A-(B ?\,A.(B ?\,A/(B ?\,A0(B ?\,A1(B ?\,A2(B - ?\,A3(B ?\,A4(B ?\,A5(B ?\,A6(B ?\,A7(B ?\,A8(B ?\,A9(B ?\,A:(B ?\,A;(B ?\,A<(B ?\,A=(B ?\,A>(B ?\,A?(B ?\,A@(B ?\,AA(B ?\,AB(B ?\,AC(B - ?\,AD(B ?\,AE(B ?\,AF(B ?\,AG(B ?\,AH(B ?\,AI(B ?\,AJ(B ?\,AK(B ?\,AL(B ?\,AM(B ?\,AN(B ?\,AO(B ?\,AP(B ?\,AQ(B ?\,AR(B ?\,AS(B ?\,AT(B - ?\,AU(B ?\,AV(B ?\,AW(B ?\,AX(B ?\,AY(B ?\,AZ(B ?\,A[(B ?\,A\(B ?\,A](B ?\,A^(B ?\,A_(B ?\,A`(B ?\,Aa(B ?\,Ab(B ?\,Ac(B ?\,Ad(B ?\,Ae(B - ?\,Af(B ?\,Ag(B ?\,Ah(B ?\,Ai(B ?\,Aj(B ?\,Ak(B ?\,Al(B ?\,Am(B ?\,An(B ?\,Ao(B ?\,Ap(B ?\,Aq(B ?\,Ar(B ?\,As(B ?\,At(B ?\,Au(B ?\,Av(B - ?\,Aw(B ?\,Ax(B ?\,Ay(B ?\,Az(B ?\,A{(B ?\,A|(B ?\,A}(B ?\,A~(B ?\,A(B]))) - -(define-coding-system-alias 'cp1252 'windows-1252) - ;; Latin-2 (ISO-8859-2) -(make-coding-system - 'iso-latin-2 2 ?2 - "ISO 2022 based 8-bit encoding for Latin-2 (MIME:ISO-8859-2)." - '(ascii latin-iso8859-2 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii latin-iso8859-2) - (mime-charset . iso-8859-2))) +(define-coding-system 'iso-latin-2 + "ISO 2022 based 8-bit encoding for Latin-2 (MIME:ISO-8859-2)." + :coding-type 'charset + :mnemonic ?2 + :charset-list '(iso-8859-2) + :mime-charset 'iso-8859-2) (define-coding-system-alias 'iso-8859-2 'iso-latin-2) (define-coding-system-alias 'latin-2 'iso-latin-2) (set-language-info-alist - "Latin-2" '((charset ascii latin-iso8859-2) - (coding-system iso-latin-2) + "Latin-2" '((charset iso-8859-2) + (coding-system iso-latin-2 windows-1250) (coding-priority iso-latin-2) - (nonascii-translation . latin-iso8859-2) - (unibyte-syntax . "latin-2") + (nonascii-translation . iso-8859-2) (unibyte-display . iso-latin-2) (input-method . "latin-2-prefix") (documentation . "\ @@ -112,6 +96,7 @@ character set which supports the following languages: We also have specific language environments for the following languages: For Czech, \"Czech\". For Croatian, \"Croatian\". + For Polish, \"Polish\". For Romanian, \"Romanian\". For Slovak, \"Slovak\".")) '("European")) @@ -119,23 +104,21 @@ We also have specific language environments for the following languages: ;; Latin-3 (ISO-8859-3) -(make-coding-system - 'iso-latin-3 2 ?3 - "ISO 2022 based 8-bit encoding for Latin-3 (MIME:ISO-8859-3)." - '(ascii latin-iso8859-3 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii latin-iso8859-3) - (mime-charset . iso-8859-3))) +(define-coding-system 'iso-latin-3 + "ISO 2022 based 8-bit encoding for Latin-3 (MIME:ISO-8859-3)." + :coding-type 'charset + :mnemonic ?3 + :charset-list '(iso-8859-3) + :mime-charset 'iso-8859-3) (define-coding-system-alias 'iso-8859-3 'iso-latin-3) (define-coding-system-alias 'latin-3 'iso-latin-3) (set-language-info-alist - "Latin-3" '((charset ascii latin-iso8859-3) + "Latin-3" '((charset iso-8859-3) (coding-system iso-latin-3) (coding-priority iso-latin-3) - (nonascii-translation . latin-iso8859-3) - (unibyte-syntax . "latin-3") + (nonascii-translation . iso-8859-3) (unibyte-display . iso-latin-3) (input-method . "latin-3-prefix") (documentation . "\ @@ -147,23 +130,21 @@ These languages are supported with the Latin-3 (ISO-8859-3) character set: ;; Latin-4 (ISO-8859-4) -(make-coding-system - 'iso-latin-4 2 ?4 - "ISO 2022 based 8-bit encoding for Latin-4 (MIME:ISO-8859-4)." - '(ascii latin-iso8859-4 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii latin-iso8859-4) - (mime-charset . iso-8859-4))) +(define-coding-system 'iso-latin-4 + "ISO 2022 based 8-bit encoding for Latin-4 (MIME:ISO-8859-4)." + :coding-type 'charset + :mnemonic ?4 + :charset-list '(iso-8859-4) + :mime-charset 'iso-8859-4) (define-coding-system-alias 'iso-8859-4 'iso-latin-4) (define-coding-system-alias 'latin-4 'iso-latin-4) (set-language-info-alist - "Latin-4" '((charset ascii latin-iso8859-4) + "Latin-4" '((charset iso-8859-4) (coding-system iso-8859-4) (coding-priority iso-8859-4) - (nonascii-translation . latin-iso8859-4) - (unibyte-syntax . "latin-4") + (nonascii-translation . iso-8859-4) (unibyte-display . iso-8859-4) (input-method . "latin-4-postfix") (documentation . "\ @@ -175,53 +156,95 @@ These languages are supported with the Latin-4 (ISO-8859-4) character set: ;; Latin-5 (ISO-8859-9) -(make-coding-system - 'iso-latin-5 2 ?9 - "ISO 2022 based 8-bit encoding for Latin-5 (MIME:ISO-8859-9)." - '(ascii latin-iso8859-9 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii latin-iso8859-9) - (mime-charset . iso-8859-9))) +(define-coding-system 'iso-latin-5 + "ISO 2022 based 8-bit encoding for Latin-5 (MIME:ISO-8859-9)." + :coding-type 'charset + :mnemonic ?9 + :charset-list '(iso-8859-9) + :mime-charset 'iso-8859-9) (define-coding-system-alias 'iso-8859-9 'iso-latin-5) (define-coding-system-alias 'latin-5 'iso-latin-5) (set-language-info-alist - "Latin-5" '((charset ascii latin-iso8859-9) + "Latin-5" '((charset iso-8859-9) (coding-system iso-latin-5) (coding-priority iso-latin-5) - (nonascii-translation . latin-iso8859-9) - (unibyte-syntax . "latin-5") + (nonascii-translation . iso-8859-9) (unibyte-display . iso-latin-5) (input-method . "latin-5-postfix") - (documentation . "Support for Turkish language.")) + (documentation . "Support for Latin-5.\ +See also the Turkish environment.")) '("European")) +;; Latin-6 (ISO-8859-10) + +(define-coding-system 'iso-latin-6 + "ISO 2022 based 8-bit encoding for Latin-6 (MIME:ISO-8859-10)." + :coding-type 'charset + :mnemonic ?9 + :charset-list '(iso-8859-10) + :mime-charset 'iso-8859-10) + +(define-coding-system-alias 'iso-8859-10 'iso-latin-6) +(define-coding-system-alias 'latin-6 'iso-latin-6) + +(set-language-info-alist + "Latin-6" '((charset iso-8859-10) + (coding-system iso-latin-6) + (coding-priority iso-latin-6) + (nonascii-translation . iso-8859-10) + (unibyte-display . iso-latin-6) + ;; Fixme: input method. + (documentation . "Support for generic Latin-6 (Northern European).")) + '("European")) + + +;; Latin-7 (ISO-8859-13) + +(define-coding-system 'iso-latin-7 + "ISO 2022 based 8-bit encoding for Latin-7 (MIME:ISO-8859-13)." + :coding-type 'charset + :mnemonic ?9 + :charset-list '(iso-8859-13) + :mime-charset 'iso-8859-13) + +(define-coding-system-alias 'iso-8859-13 'iso-latin-7) +(define-coding-system-alias 'latin-7 'iso-latin-7) + +(set-language-info-alist + "Latin-7" '((charset iso-8859-13) + (coding-system iso-latin-7) + (coding-priority iso-latin-7) + (nonascii-translation . iso-8859-13) + (unibyte-display . iso-latin-7) + ;; Fixme: input method. + (documentation . "Support for generic Latin-7 (Baltic Rim).")) + '("European")) + ;; Latin-8 (ISO-8859-14) -(make-coding-system - 'iso-latin-8 2 ?W ; `W' for `Welsh', since `C' - ; for `Celtic' is taken. - "ISO 2022 based 8-bit encoding for Latin-8 (MIME:ISO-8859-14)." - '(ascii latin-iso8859-14 nil nil - nil nil nil nil nil nil nil nil nil nil nil t t) - '((safe-charsets ascii latin-iso8859-14) - (mime-charset . iso-8859-14))) +(define-coding-system 'iso-latin-8 + "ISO 2022 based 8-bit encoding for Latin-8 (MIME:ISO-8859-14)." + :coding-type 'charset + ;; `W' for `Welsh', since `C' for `Celtic' is taken. + :mnemonic ?W + :charset-list '(iso-8859-14) + :mime-charset 'iso-8859-14) (define-coding-system-alias 'iso-8859-14 'iso-latin-8) (define-coding-system-alias 'latin-8 'iso-latin-8) (set-language-info-alist - "Latin-8" '((charset ascii latin-iso8859-14) + "Latin-8" '((charset iso-8859-14) (coding-system iso-latin-8) (coding-priority iso-latin-8) - (nonascii-translation . latin-iso8859-14) - (unibyte-syntax . "latin-8") + (nonascii-translation . iso-8859-14) (unibyte-display . iso-latin-8) (input-method . "latin-8-prefix") ;; Fixme: Welsh/Ga{e}lic greetings - (sample-text . ",_"(B ,_p(B ,_^(B") + (sample-text . ",_"(B $(D+q(B $(D*t(B") (documentation . "\ This language environment is a generic one for the Latin-8 (ISO-8859-14) character set which supports the Celtic languages, including those not @@ -231,42 +254,156 @@ covered by other ISO-8859 character sets: ;; Latin-9 (ISO-8859-15) -(make-coding-system - 'iso-latin-9 2 ?0 ; `0' for `Latin-0' - "ISO 2022 based 8-bit encoding for Latin-9 (MIME:ISO-8859-15)." - '(ascii latin-iso8859-15 nil nil - nil nil nil nil nil nil nil nil nil nil nil t t) - '((safe-charsets ascii latin-iso8859-15) - (mime-charset . iso-8859-15))) +(define-coding-system 'iso-latin-9 + "ISO 2022 based 8-bit encoding for Latin-9 (MIME:ISO-8859-15)." + :coding-type 'charset + ;; `0' for `Latin-0' + :mnemonic ?0 + :charset-list '(iso-8859-15) + :mime-charset 'iso-8859-15) (define-coding-system-alias 'iso-8859-15 'iso-latin-9) (define-coding-system-alias 'latin-9 'iso-latin-9) (define-coding-system-alias 'latin-0 'iso-latin-9) (set-language-info-alist - "Latin-9" '((charset ascii latin-iso8859-15) + "Latin-9" '((charset iso-8859-15) (coding-system iso-latin-9) (coding-priority iso-latin-9) - (nonascii-translation . latin-iso8859-15) - (unibyte-syntax . "latin-9") + (nonascii-translation . iso-8859-15) (unibyte-display . iso-latin-9) (input-method . "latin-9-prefix") (sample-text - . "AVE. ,b&(48<=>(B ,b$(B") + . "AVE. $(D*^+^*v+v)-)M*s(B $(Q)!(B") (documentation . "\ This language environment is a generic one for the Latin-9 (ISO-8859-15) character set which supports the same languages as Latin-1 with the addition of the Euro sign and some additional French and Finnish letters. Latin-9 is sometimes nicknamed `Latin-0'.")) '("European")) + +(set-language-info-alist + "Esperanto" '((tutorial . "TUTORIAL.eo") + (charset ascii latin-iso8859-3) + (coding-system iso-latin-3) + (coding-priority iso-latin-3) + (nonascii-translation . latin-iso8859-3) + (unibyte-syntax . "latin-3") + (unibyte-display . iso-latin-3) + (input-method . "latin-3-prefix") + (documentation . "Support for Esperanto with ISO-8859-3 character set.")) + '("European")) + + +(define-coding-system 'windows-1250 + "windows-1250 (Central European) encoding (MIME: WINDOWS-1250)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(windows-1250) + :mime-charset 'windows-1250) +(define-coding-system-alias 'cp1250 'windows-1250) + +(define-coding-system 'windows-1252 + "windows-1252 (Western European) encoding (MIME: WINDOWS-1252)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(windows-1252) + :mime-charset 'windows-1252) +(define-coding-system-alias 'cp1252 'windows-1252) + +(define-coding-system 'windows-1254 + "windows-1254 (Turkish) encoding (MIME: WINDOWS-1254)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(windows-1254) + :mime-charset 'windows-1254) +(define-coding-system-alias 'cp1254 'windows-1254) + +(define-coding-system 'windows-1257 + "windows-1257 (Baltic) encoding (MIME: WINDOWS-1257)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(windows-1257) + :mime-charset 'windows-1257) +(define-coding-system-alias 'cp1257 'windows-1257) + +(define-coding-system 'cp850 + "DOS codepage 850 (Western European)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp850) + :mime-charset 'cp850) +(define-coding-system-alias 'ibm850 'cp850) + +(define-coding-system 'cp852 + "DOS codepage 852 (Slavic)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp852) + :mime-charset 'cp852) +(define-coding-system-alias 'ibm852 'cp852) + +(define-coding-system 'cp857 + "DOS codepage 857 (Turkish)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp857) + :mime-charset 'cp857) +(define-coding-system-alias 'ibm857 'cp857) + +(define-coding-system 'cp858 + "Codepage 858 (Multilingual Latin I + Euro)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp858) + :mime-charset 'cp858) + +(define-coding-system 'cp860 + "DOS codepage 860 (Portuguese)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp860) + :mime-charset 'cp860) +(define-coding-system-alias 'ibm860 'cp860) + +(define-coding-system 'cp861 + "DOS codepage 861 (Icelandic)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp861) + :mime-charset 'cp861) +(define-coding-system-alias 'ibm861 'cp861) + +(define-coding-system 'cp863 + "DOS codepage 863 (French Canadian)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp863) + :mime-charset 'cp863) +(define-coding-system-alias 'ibm863 'cp863) + +(define-coding-system 'cp865 + "DOS codepage 865 (Norwegian/Danish)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp865) + :mime-charset 'cp865) +(define-coding-system-alias 'ibm865 'cp865) + +(define-coding-system 'cp437 + "DOS codepage 437" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp437) + :mime-charset 'cp437) +(define-coding-system-alias 'ibm437 'cp437) (set-language-info-alist "Dutch" '((tutorial . "TUTORIAL.nl") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) (coding-priority iso-latin-1) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) (input-method . "dutch") (sample-text . "Er is een aantal manieren waarop je dit kan doen") @@ -277,16 +414,15 @@ but it selects the Dutch tutorial and input method.")) (set-language-info-alist "German" '((tutorial . "TUTORIAL.de") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) - (coding-priority iso-latin-1 windows-1252) + (coding-priority iso-latin-1) + (nonascii-translation . iso-8859-1) (input-method . "german-postfix") - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") (unibyte-display . iso-latin-1) (sample-text . "\ German (Deutsch Nord) Guten Tag -German (Deutsch S,A|(Bd) Gr,A|_(B Gott") +German (Deutsch S$(D+d(Bd) Gr$(D+d)N(B Gott") (documentation . "\ This language environment is almost the same as Latin-1, but sets the default input method to \"german-postfix\". @@ -295,14 +431,13 @@ Additionally, it selects the German tutorial.")) (set-language-info-alist "French" '((tutorial . "TUTORIAL.fr") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) (coding-priority iso-latin-1) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) (input-method . "latin-1-prefix") - (sample-text . "French (Fran,Ag(Bais) Bonjour, Salut") + (sample-text . "French (Fran$(D+.(Bais) Bonjour, Salut") (documentation . "\ This language environment is almost the same as Latin-1, but it selects the French tutorial and input method.")) @@ -310,11 +445,10 @@ but it selects the French tutorial and input method.")) (set-language-info-alist "Italian" '((tutorial . "TUTORIAL.it") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) (coding-priority iso-latin-1) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) (input-method . "italian-postfix") (sample-text . "Salve, ciao!") @@ -325,15 +459,14 @@ Additionally, it selects the Italian tutorial.")) '("European")) (set-language-info-alist - "Slovenian" '((charset . (ascii latin-iso8859-2)) - (coding-system . (iso-8859-2)) + "Slovenian" '((charset iso-8859-2) + (coding-system . (iso-8859-2 windows-1250)) (coding-priority . (iso-8859-2)) - (nonascii-translation . latin-iso8859-2) + (nonascii-translation . iso-8859-2) (input-method . "slovenian") - (unibyte-syntax . "latin-2") (unibyte-display . iso-8859-2) (tutorial . "TUTORIAL.sl") - (sample-text . ",B.(Belimo vam uspe,B9(Ben dan!") + (sample-text . "$(D*v(Belimo vam uspe$(D+^(Ben dan!") (documentation . "\ This language environment is almost the same as Latin-2, but it selects the Slovenian tutorial and input method.")) @@ -341,14 +474,13 @@ but it selects the Slovenian tutorial and input method.")) (set-language-info-alist "Spanish" '((tutorial . "TUTORIAL.es") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) (coding-priority iso-latin-1) (input-method . "spanish-postfix") - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) - (sample-text . "Spanish (Espa,Aq(Bol) ,A!(BHola!") + (sample-text . "Spanish (Espa$(D+P(Bol) $(D"B(BHola!") (documentation . "\ This language environment is almost the same as Latin-1, but it sets the default input method to \"spanish-postfix\", @@ -361,52 +493,52 @@ and it selects the Spanish tutorial.")) ;; "Latin-3" language environment. (set-language-info-alist - "Turkish" '((charset ascii latin-iso8859-9) - (coding-system iso-latin-5 iso-latin-3) + "Turkish" '((charset iso-8859-9) + (coding-system iso-latin-5 windows-1254 iso-latin-3) (coding-priority iso-latin-5) - (nonascii-translation . latin-iso8859-9) - (unibyte-syntax . "latin-5") + (nonascii-translation . iso-8859-9) (unibyte-display . iso-latin-5) (input-method . "turkish-postfix") - (sample-text . "Turkish (T,M|(Brk,Mg(Be) Merhaba") - (documentation . t) + (sample-text . "Turkish (T$(D+d(Brk$(D+.(Be) Merhaba") (setup-function . turkish-case-conversion-enable) - (exit-function . turkish-case-conversion-disable))) + (setup-function . turkish-case-conversion-disable) + (documentation . "Support for Turkish. +Differs from the Latin-5 environment in using the `turkish-postfix' input +method and applying Turkish case rules for the characters i, I, $(D)E(B, $(D*D(B."))) (defun turkish-case-conversion-enable () - "Set up Turkish case conversion of `i' and `I' into `$,1 P(B' and `$,1 Q(B'." + "Set up Turkish case conversion of `i' and `I' into `$(D*D(B' and `$(D)E(B'." (let ((table (standard-case-table))) - (set-case-syntax-pair ?$,1 P(B ?i table) - (set-case-syntax-pair ?I ?$,1 Q(B table))) + (set-case-syntax-pair ?$(D*D(B ?i table) + (set-case-syntax-pair ?I ?$(D)E(B table))) (defun turkish-case-conversion-disable () "Set up normal (non-Turkish) case conversion of `i' into `I'." (let ((table (standard-case-table))) (set-case-syntax-pair ?I ?i table) - (set-case-syntax ?$,1 P(B "w" table) - (set-case-syntax ?$,1 Q(B "w" table))) + (set-case-syntax ?$(D*D(B "w" table) + (set-case-syntax ?$(D)E(B "w" table))) ;; Polish ISO 8859-2 environment. ;; Maintainer: Wlodek Bzyl <matwb@univ.gda.pl> ;; Keywords: multilingual, Polish (set-language-info-alist - "Polish" '((charset . (ascii latin-iso8859-2)) - (coding-system . (iso-8859-2)) - (coding-priority . (iso-8859-2)) + "Polish" '((charset iso-8859-2) + (coding-system iso-8859-2 windows-1250) + (coding-priority iso-8859-2) (input-method . "polish-slash") - (nonascii-translation . latin-iso8859-2) - (unibyte-syntax . "latin-2") + (nonascii-translation . iso-8859-2) (unibyte-display . iso-8859-2) (tutorial . "TUTORIAL.pl") - (sample-text . "P,Bs(Bjd,B<(B, ki,Bq(B-,B?(Be t,Bj(B chmurno,B6f(B w g,B31(Bb flaszy") + (sample-text . "P$(D+Q(Bjd$(D+u(B, ki$(D+M(B-$(D+w(Be t$(D+8(B chmurno$(D+\++(B w g$(D)H+((Bb flaszy") (documentation . t)) '("European")) (set-language-info-alist "Welsh" `((coding-system utf-8 latin-8) ; the input method is Unicode-based (coding-priority utf-8 latin-8) - (nonascii-translation . latin-iso8859-14) + (nonascii-translation . iso-8859-14) (input-method . "welsh") (documentation . "Support for Welsh, using Unicode.")) '("European")) @@ -423,270 +555,130 @@ and it selects the Spanish tutorial.")) (set-language-info-alist "Latin-7" `((coding-system latin-7) (coding-priority latin-7) - (nonascii-translation . ,(get 'decode-iso-latin-7 - 'translation-table)) + (nonascii-translation . iso-8859-13) (input-method . "latin-prefix") - (features code-pages) (documentation . "Support for Latin-7, e.g. Latvian, Lithuanian.")) '("European")) (set-language-info-alist - "Lithuanian" `((coding-system latin-7) + "Lithuanian" `((coding-system latin-7 windows-1257) (coding-priority latin-7) + (nonascii-translation . iso-8859-13) (input-method . "lithuanian-keyboard") - (nonascii-translation . ,(get 'decode-iso-latin-7 - 'translation-table)) - (features code-pages) (documentation . "Support for Lithuanian.")) '("European")) (set-language-info-alist - "Latvian" `((coding-system latin-7) + "Latvian" `((coding-system latin-7 windows-1257) (coding-priority latin-7) + (nonascii-translation . iso-8859-13) (input-method . "latvian-keyboard") - (nonascii-translation . ,(get 'decode-iso-latin-7 - 'translation-table)) - (features code-pages) (documentation . "Support for Latvian.")) '("European")) (set-language-info-alist "Swedish" '((tutorial . "TUTORIAL.sv") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1) (coding-priority iso-latin-1) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") + (nonascii-translation . iso-8859-1) (unibyte-display . iso-latin-1) (sample-text . "Goddag Hej") (documentation . "Support for Swedish")) '("European")) (set-language-info-alist - "Croatian" '((charset . (ascii latin-iso8859-2)) - (coding-system . (iso-8859-2)) - (coding-priority . (iso-8859-2)) + "Croatian" '((charset iso-8859-2) + (coding-system iso-8859-2) + (coding-priority iso-8859-2) (input-method . "croatian") - (nonascii-translation . latin-iso8859-2) - (unibyte-syntax . "latin-2") + (nonascii-translation . iso-8859-2) (unibyte-display . iso-8859-2) (documentation . "Support for Croatian with Latin-2 encoding.")) '("European")) (set-language-info-alist "Brazilian Portuguese" '((tutorial . "TUTORIAL.pt_BR") - (charset ascii latin-iso8859-1) + (charset iso-8859-1) (coding-system iso-latin-1 iso-latin-9) (coding-priority iso-latin-1) - (nonascii-translation . latin-iso8859-1) - (unibyte-syntax . "latin-1") - (unibyte-display . iso-latin-1) + (nonascii-translation . iso-8859-1) + (unibyte-display . iso-8859-1) (input-method . "latin-1-prefix") (sample-text . "Oi") (documentation . "Support for Brazilian Portuguese.")) '("European")) -(set-language-info-alist - "Esperanto" '((tutorial . "TUTORIAL.eo") - (charset ascii latin-iso8859-3) - (coding-system iso-latin-3) - (coding-priority iso-latin-3) - (nonascii-translation . latin-iso8859-3) - (unibyte-syntax . "latin-3") - (unibyte-display . iso-latin-3) - (input-method . "latin-3-prefix") - (documentation . "Support for Esperanto with ISO-8859-3 character set.")) - '("European")) + +(define-coding-system 'mac-roman + "Mac Roman Encoding (MIME:MACINTOSH)." + :coding-type 'charset + :mnemonic ?M + :charset-list '(mac-roman) + :mime-charset 'macintosh) + +(define-coding-system 'next + "NeXTstep encoding" + :coding-type 'charset + :mnemonic ?* + :charset-list '(next) + :mime-charset 'next) + +(define-coding-system 'hp-roman8 + "Hewlet-Packard roman-8 encoding (MIME:ROMAN-8)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(hp-roman8) + :mime-charset 'hp-roman8) +(define-coding-system-alias 'roman8 'hp-roman8) + +(define-coding-system 'adobe-standard-encoding + "Adobe `standard' encoding for PostScript" + :coding-type 'charset + :mnemonic ?* + :charset-list '(adobe-standard-encoding) + :mime-charset 'adobe-standard-encoding) -;; Definitions for the Mac Roman character sets and coding system. -;; The Mac Roman encoding uses all 128 code points in the range 128 to -;; 255 for actual characters. Emacs decodes them to one of the -;; following character sets. -;; ascii, latin-iso8859-1, mule-unicode-0100-24ff, -;; mule-unicode-2500-33ff, mule-unicode-e000-ffff - -(let - ((encoding-vector (make-vector 256 nil)) - (i 0) - (vec ;; mac-roman (128..255) -> UCS mapping - [ #x00C4 ;; 128:LATIN CAPITAL LETTER A WITH DIAERESIS - #x00C5 ;; 129:LATIN CAPITAL LETTER A WITH RING ABOVE - #x00C7 ;; 130:LATIN CAPITAL LETTER C WITH CEDILLA - #x00C9 ;; 131:LATIN CAPITAL LETTER E WITH ACUTE - #x00D1 ;; 132:LATIN CAPITAL LETTER N WITH TILDE - #x00D6 ;; 133:LATIN CAPITAL LETTER O WITH DIAERESIS - #x00DC ;; 134:LATIN CAPITAL LETTER U WITH DIAERESIS - #x00E1 ;; 135:LATIN SMALL LETTER A WITH ACUTE - #x00E0 ;; 136:LATIN SMALL LETTER A WITH GRAVE - #x00E2 ;; 137:LATIN SMALL LETTER A WITH CIRCUMFLEX - #x00E4 ;; 138:LATIN SMALL LETTER A WITH DIAERESIS - #x00E3 ;; 139:LATIN SMALL LETTER A WITH TILDE - #x00E5 ;; 140:LATIN SMALL LETTER A WITH RING ABOVE - #x00E7 ;; 141:LATIN SMALL LETTER C WITH CEDILLA - #x00E9 ;; 142:LATIN SMALL LETTER E WITH ACUTE - #x00E8 ;; 143:LATIN SMALL LETTER E WITH GRAVE - #x00EA ;; 144:LATIN SMALL LETTER E WITH CIRCUMFLEX - #x00EB ;; 145:LATIN SMALL LETTER E WITH DIAERESIS - #x00ED ;; 146:LATIN SMALL LETTER I WITH ACUTE - #x00EC ;; 147:LATIN SMALL LETTER I WITH GRAVE - #x00EE ;; 148:LATIN SMALL LETTER I WITH CIRCUMFLEX - #x00EF ;; 149:LATIN SMALL LETTER I WITH DIAERESIS - #x00F1 ;; 150:LATIN SMALL LETTER N WITH TILDE - #x00F3 ;; 151:LATIN SMALL LETTER O WITH ACUTE - #x00F2 ;; 152:LATIN SMALL LETTER O WITH GRAVE - #x00F4 ;; 153:LATIN SMALL LETTER O WITH CIRCUMFLEX - #x00F6 ;; 154:LATIN SMALL LETTER O WITH DIAERESIS - #x00F5 ;; 155:LATIN SMALL LETTER O WITH TILDE - #x00FA ;; 156:LATIN SMALL LETTER U WITH ACUTE - #x00F9 ;; 157:LATIN SMALL LETTER U WITH GRAVE - #x00FB ;; 158:LATIN SMALL LETTER U WITH CIRCUMFLEX - #x00FC ;; 159:LATIN SMALL LETTER U WITH DIAERESIS - #x2020 ;; 160:DAGGER - #x00B0 ;; 161:DEGREE SIGN - #x00A2 ;; 162:CENT SIGN - #x00A3 ;; 163:POUND SIGN - #x00A7 ;; 164:SECTION SIGN - #x2022 ;; 165:BULLET - #x00B6 ;; 166:PILCROW SIGN - #x00DF ;; 167:LATIN SMALL LETTER SHARP S - #x00AE ;; 168:REGISTERED SIGN - #x00A9 ;; 169:COPYRIGHT SIGN - #x2122 ;; 170:TRADE MARK SIGN - #x00B4 ;; 171:ACUTE ACCENT - #x00A8 ;; 172:DIAERESIS - #x2260 ;; 173:NOT EQUAL TO - #x00C6 ;; 174:LATIN CAPITAL LETTER AE - #x00D8 ;; 175:LATIN CAPITAL LETTER O WITH STROKE - #x221E ;; 176:INFINITY - #x00B1 ;; 177:PLUS-MINUS SIGN - #x2264 ;; 178:LESS-THAN OR EQUAL TO - #x2265 ;; 179:GREATER-THAN OR EQUAL TO - #x00A5 ;; 180:YEN SIGN - #x00B5 ;; 181:MICRO SIGN - #x2202 ;; 182:PARTIAL DIFFERENTIAL - #x2211 ;; 183:N-ARY SUMMATION - #x220F ;; 184:N-ARY PRODUCT - #x03C0 ;; 185:GREEK SMALL LETTER PI - #x222B ;; 186:INTEGRAL - #x00AA ;; 187:FEMININE ORDINAL INDICATOR - #x00BA ;; 188:MASCULINE ORDINAL INDICATOR - #x03A9 ;; 189:GREEK CAPITAL LETTER OMEGA - #x00E6 ;; 190:LATIN SMALL LETTER AE - #x00F8 ;; 191:LATIN SMALL LETTER O WITH STROKE - #x00BF ;; 192:INVERTED QUESTION MARK - #x00A1 ;; 193:INVERTED EXCLAMATION MARK - #x00AC ;; 194:NOT SIGN - #x221A ;; 195:SQUARE ROOT - #x0192 ;; 196:LATIN SMALL LETTER F WITH HOOK - #x2248 ;; 197:ALMOST EQUAL TO - #x2206 ;; 198:INCREMENT - #x00AB ;; 199:LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - #x00BB ;; 200:RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - #x2026 ;; 201:HORIZONTAL ELLIPSIS - #x00A0 ;; 202:NO-BREAK SPACE - #x00C0 ;; 203:LATIN CAPITAL LETTER A WITH GRAVE - #x00C3 ;; 204:LATIN CAPITAL LETTER A WITH TILDE - #x00D5 ;; 205:LATIN CAPITAL LETTER O WITH TILDE - #x0152 ;; 206:LATIN CAPITAL LIGATURE OE - #x0153 ;; 207:LATIN SMALL LIGATURE OE - #x2013 ;; 208:EN DASH - #x2014 ;; 209:EM DASH - #x201C ;; 210:LEFT DOUBLE QUOTATION MARK - #x201D ;; 211:RIGHT DOUBLE QUOTATION MARK - #x2018 ;; 212:LEFT SINGLE QUOTATION MARK - #x2019 ;; 213:RIGHT SINGLE QUOTATION MARK - #x00F7 ;; 214:DIVISION SIGN - #x25CA ;; 215:LOZENGE - #x00FF ;; 216:LATIN SMALL LETTER Y WITH DIAERESIS - #x0178 ;; 217:LATIN CAPITAL LETTER Y WITH DIAERESIS - #x2044 ;; 218:FRACTION SLASH - #x20AC ;; 219:EURO SIGN - #x2039 ;; 220:SINGLE LEFT-POINTING ANGLE QUOTATION MARK - #x203A ;; 221:SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - #xFB01 ;; 222:LATIN SMALL LIGATURE FI - #xFB02 ;; 223:LATIN SMALL LIGATURE FL - #x2021 ;; 224:DOUBLE DAGGER - #x00B7 ;; 225:MIDDLE DOT - #x201A ;; 226:SINGLE LOW-9 QUOTATION MARK - #x201E ;; 227:DOUBLE LOW-9 QUOTATION MARK - #x2030 ;; 228:PER MILLE SIGN - #x00C2 ;; 229:LATIN CAPITAL LETTER A WITH CIRCUMFLEX - #x00CA ;; 230:LATIN CAPITAL LETTER E WITH CIRCUMFLEX - #x00C1 ;; 231:LATIN CAPITAL LETTER A WITH ACUTE - #x00CB ;; 232:LATIN CAPITAL LETTER E WITH DIAERESIS - #x00C8 ;; 233:LATIN CAPITAL LETTER E WITH GRAVE - #x00CD ;; 234:LATIN CAPITAL LETTER I WITH ACUTE - #x00CE ;; 235:LATIN CAPITAL LETTER I WITH CIRCUMFLEX - #x00CF ;; 236:LATIN CAPITAL LETTER I WITH DIAERESIS - #x00CC ;; 237:LATIN CAPITAL LETTER I WITH GRAVE - #x00D3 ;; 238:LATIN CAPITAL LETTER O WITH ACUTE - #x00D4 ;; 239:LATIN CAPITAL LETTER O WITH CIRCUMFLEX - #xF8FF ;; 240:Apple logo - #x00D2 ;; 241:LATIN CAPITAL LETTER O WITH GRAVE - #x00DA ;; 242:LATIN CAPITAL LETTER U WITH ACUTE - #x00DB ;; 243:LATIN CAPITAL LETTER U WITH CIRCUMFLEX - #x00D9 ;; 244:LATIN CAPITAL LETTER U WITH GRAVE - #x0131 ;; 245:LATIN SMALL LETTER DOTLESS I - #x02C6 ;; 246:MODIFIER LETTER CIRCUMFLEX ACCENT - #x02DC ;; 247:SMALL TILDE - #x00AF ;; 248:MACRON - #x02D8 ;; 249:BREVE - #x02D9 ;; 250:DOT ABOVE - #x02DA ;; 251:RING ABOVE - #x00B8 ;; 252:CEDILLA - #x02DD ;; 253:DOUBLE ACUTE ACCENT - #x02DB ;; 254:OGONEK - #x02C7 ;; 255:CARON - ]) - translation-table) - (while (< i 128) - (aset encoding-vector i i) - (setq i (1+ i))) - (while (< i 256) - (aset encoding-vector i - (decode-char 'ucs (aref vec (- i 128)))) - (setq i (1+ i))) - (setq translation-table - (make-translation-table-from-vector encoding-vector)) - (define-translation-table 'mac-roman-decoder translation-table) - (define-translation-table 'mac-roman-encoder - (char-table-extra-slot translation-table 0))) - -(define-ccl-program decode-mac-roman - `(4 - ((loop - (read r1) - (if (r1 < 128) ;; ASCII - (r0 = ,(charset-id 'ascii)) - (if (r1 < 160) - (r0 = ,(charset-id 'eight-bit-control)) - (r0 = ,(charset-id 'eight-bit-graphic)))) - (translate-character mac-roman-decoder r0 r1) - (write-multibyte-character r0 r1) - (repeat)))) - "CCL program to decode Mac Roman") - -(define-ccl-program encode-mac-roman - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character ucs-mule-to-mule-unicode r0 r1) - (translate-character mac-roman-encoder r0 r1) - (if (r0 != ,(charset-id 'ascii)) - (if (r0 != ,(charset-id 'eight-bit-graphic)) - (if (r0 != ,(charset-id 'eight-bit-control)) - (r1 = ??)))) - (write-repeat r1)))) - "CCL program to encode Mac Roman") - -(make-coding-system - 'mac-roman 4 ?M - "Mac Roman Encoding (MIME:MACINTOSH)." - '(decode-mac-roman . encode-mac-roman) - (list (cons 'safe-chars (get 'mac-roman-encoder 'translation-table)) - '(valid-codes (0 . 255)) - '(mime-charset . macintosh))) ; per IANA, rfc1345 +;; For automatic composing of diacritics and combining marks. +(dolist (range '( ;; combining diacritical marks + (#x0300 #x0314 (tc . bc)) + (#x0315 (tr . bl)) + (#x0316 #x0319 (bc . tc)) + (#x031A (tr . cl)) + (#x031B #x0320 (bc . tc)) + (#x0321 (Br . tr)) + (#x0322 (Br . tl)) + (#x0323 #x0333 (bc . tc)) + (#x0334 #x0338 (Bc . Bc)) + (#x0339 #x033C (bc . tc)) + (#x033D #x033F (tc . bc)) + (#x0340 (tl . bc)) + (#x0341 (tr . bc)) + (#x0342 #x0344 (tc . bc)) + (#x0345 (bc . tc)) + (#x0346 (tc . bc)) + (#x0347 #x0349 (bc . tc)) + (#x034A #x034C (tc . bc)) + (#x034D #x034E (bc . tc)) + ;; combining diacritical marks for symbols + (#x20D0 #x20D1 (tc . bc)) + (#x20D2 #x20D3 (Bc . Bc)) + (#x20D4 #x20D7 (tc . bc)) + (#x20D8 #x20DA (Bc . Bc)) + (#x20DB #x20DC (tc . bc)) + (#x20DD #x20E0 (Bc . Bc)) + (#x20E1 (tc . bc)) + (#x20E2 #x20E3 (Bc . Bc)))) + (let* ((from (car range)) + (to (if (= (length range) 3) + (nth 1 range) + from)) + (composition (car (last range)))) + (while (<= from to) + (put-char-code-property from 'diacritic-composition composition) + (aset composition-function-table from 'diacritic-composition-function) + (setq from (1+ from))))) (defconst diacritic-composition-pattern "\\C^\\c^+") @@ -699,13 +691,15 @@ positions (integers or markers) specifying the region." (narrow-to-region beg end) (goto-char (point-min)) (while (re-search-forward diacritic-composition-pattern nil t) - (compose-region (match-beginning 0) (match-end 0))))) + (if (= (char-syntax (char-after (match-beginning 0))) ?w) + (compose-region (match-beginning 0) (match-end 0)))))) (defun diacritic-compose-string (string) "Compose diacritic characters in STRING and return the resulting string." (let ((idx 0)) (while (setq idx (string-match diacritic-composition-pattern string idx)) - (compose-string string idx (match-end 0)) + (if (= (char-syntax (aref string idx)) ?w) + (compose-string string idx (match-end 0))) (setq idx (match-end 0)))) string) @@ -714,33 +708,50 @@ positions (integers or markers) specifying the region." (interactive) (diacritic-compose-region (point-min) (point-max))) -(defun diacritic-post-read-conversion (len) - (diacritic-compose-region (point) (+ (point) len)) - len) - -(defun diacritic-composition-function (from to pattern &optional string) - "Compose diacritic text in the region FROM and TO. -The text matches the regular expression PATTERN. -Optional 4th argument STRING, if non-nil, is a string containing text +(defun diacritic-composition-function (pos &optional string) + "Compose diacritic text around POS. +Optional 2nd argument STRING, if non-nil, is a string containing text to compose. -The return value is the number of composed characters." - (when (< (1+ from) to) - (if string - (compose-string string from to) - (compose-region from to)) - (- to from))) - -;; Register a function to compose Unicode diacrtics and marks. -(let ((patterns '(("\\C^\\c^+" . diacritic-composition-function)))) - (let ((c #x300)) - (while (<= c #x362) - (aset composition-function-table (decode-char 'ucs c) patterns) - (setq c (1+ c))) - (setq c #x20d0) - (while (<= c #x20e3) - (aset composition-function-table (decode-char 'ucs c) patterns) - (setq c (1+ c))))) +The return value is the end position of composed characters, +or nil if no characters are composed." + (setq pos (1- pos)) + (if string + (if (>= pos 0) + (let ((ch (aref string pos)) + start end components ch composition) + (when (= (char-syntax ch) ?w) + (setq start pos + end (length string) + components (list ch) + pos (1+ pos)) + (while (and + (< pos end) + (setq ch (aref string pos) + composition + (get-char-code-property ch + 'diacritic-composition))) + (setq components (cons ch (cons composition components)) + pos (1+ pos))) + (compose-string string start pos (nreverse components)) + pos))) + (if (>= pos (point-min)) + (let ((ch (char-after pos)) + start end components composition) + (when (= (char-syntax ch) ?w) + (setq start pos + end (point-max) + components (list ch) + pos (1+ pos)) + (while (and + (< pos end) + (setq ch (char-after pos) + composition + (get-char-code-property ch 'diacritic-composition))) + (setq components (cons ch (cons composition components)) + pos (1+ pos))) + (compose-region start pos (nreverse components)) + pos))))) (provide 'european) diff --git a/lisp/language/georgian.el b/lisp/language/georgian.el index 9fd25ae5ed3..92acff8aaca 100644 --- a/lisp/language/georgian.el +++ b/lisp/language/georgian.el @@ -27,13 +27,23 @@ ;;; Code: +(define-coding-system 'georgian-ps + "Georgian PS encoding" + :coding-type 'charset + :mnemonic ?G + :charset-list '(georgian-ps)) + +(define-coding-system 'georgian-academy + "Georgian Academy encoding" + :coding-type 'charset + :mnemonic ?G + :charset-list '(georgian-academy)) + (set-language-info-alist "Georgian" `((coding-system georgian-ps) (coding-priority georgian-ps) (input-method . "georgian") - (features code-pages) - (nonascii-translation . ,(get 'decode-georgian-ps - 'translation-table)) + (nonascii-translation . georgian-ps) (documentation . "Support for georgian-ps character set.")) '("European")) ; fixme: is this appropriate for ; a non-Latin script? diff --git a/lisp/language/greek.el b/lisp/language/greek.el index fb71e4a2ed2..6fa81c7251a 100644 --- a/lisp/language/greek.el +++ b/lisp/language/greek.el @@ -1,10 +1,15 @@ ;;; greek.el --- support for Greek -*- no-byte-compile: t -*- +;; Copyright (C) 2002 Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 + ;; Keywords: multilingual, Greek ;; This file is part of GNU Emacs. @@ -30,23 +35,52 @@ ;;; Code: -(make-coding-system - 'greek-iso-8bit 2 ?7 - "ISO 2022 based 8-bit encoding for Greek (MIME:ISO-8859-7)." - '(ascii greek-iso8859-7 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii greek-iso8859-7) - (mime-charset . iso-8859-7))) +(define-coding-system 'greek-iso-8bit + "ISO 2022 based 8-bit encoding for Greek (MIME:ISO-8859-7)." + :coding-type 'charset + :mnemonic ?7 + :charset-list '(iso-8859-7) + :mime-charset 'iso-8859-7) (define-coding-system-alias 'iso-8859-7 'greek-iso-8bit) +(define-coding-system 'windows-1253 + "windows-1253 encoding for Greek" + :coding-type 'charset + :mnemonic ?g + :charset-list '(windows-1253) + :mime-charset 'windows-1253) +(define-coding-system-alias 'cp1253 'windows-1253) + +(define-coding-system 'cp737 + "Codepage 737 (PC Greek)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp737) + :mime-charset 'cp737) + +(define-coding-system 'cp851 + "DOS codepage 851 (Greek)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp851) + :mime-charset 'cp851) +(define-coding-system-alias 'ibm851 'cp851) + +(define-coding-system 'cp869 + "DOS codepage 869 (Greek)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp869) + :mime-charset 'cp869) +(define-coding-system-alias 'ibm869 'cp869) + (set-language-info-alist - "Greek" '((charset . (greek-iso8859-7)) - (coding-system . (greek-iso-8bit)) + "Greek" '((charset iso-8859-7) + (coding-system greek-iso-8bit windows-1253 cp851 cp869) (coding-priority greek-iso-8bit) - (nonascii-translation . greek-iso8859-7) + (nonascii-translation . iso-8859-7) (input-method . "greek") - (unibyte-display . greek-iso-8bit) (documentation . t))) (provide 'greek) diff --git a/lisp/language/hebrew.el b/lisp/language/hebrew.el index fe4ed03ca7e..f1606943070 100644 --- a/lisp/language/hebrew.el +++ b/lisp/language/hebrew.el @@ -7,6 +7,10 @@ ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 + ;; Keywords: multilingual, Hebrew ;; This file is part of GNU Emacs. @@ -34,13 +38,12 @@ ;;; Code: -(make-coding-system - 'hebrew-iso-8bit 2 ?8 - "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)." - '(ascii hebrew-iso8859-8 nil nil - nil nil nil nil nil nil nil nil t nil nil t) - '((safe-charsets ascii hebrew-iso8859-8) - (mime-charset . iso-8859-8))) +(define-coding-system 'hebrew-iso-8bit + "ISO 2022 based 8-bit encoding for Hebrew (MIME:ISO-8859-8)." + :coding-type 'charset + :mnemonic ?8 + :charset-list '(iso-8859-8) + :mime-charset 'iso-8859-8) (define-coding-system-alias 'iso-8859-8 'hebrew-iso-8bit) @@ -52,10 +55,10 @@ (define-coding-system-alias 'iso-8859-8-i 'hebrew-iso-8bit) (set-language-info-alist - "Hebrew" '((charset . (hebrew-iso8859-8)) + "Hebrew" '((charset iso-8859-8) (coding-priority hebrew-iso-8bit) - (coding-system . (hebrew-iso-8bit)) - (nonascii-translation . hebrew-iso8859-8) + (coding-system hebrew-iso-8bit windows-1255 cp862) + (nonascii-translation . iso-8859-8) (input-method . "hebrew") (unibyte-display . hebrew-iso-8bit) (sample-text . "Hebrew ,Hylem(B") @@ -64,11 +67,26 @@ (set-language-info-alist "Windows-1255" '((coding-priority windows-1255) (coding-system windows-1255) - (features code-pages) (documentation . "\ Support for Windows-1255 encoding, e.g. for Yiddish. Right-to-left writing is not yet supported."))) +(define-coding-system 'windows-1255 + "windows-1255 (Hebrew) encoding (MIME: WINDOWS-1255)" + :coding-type 'charset + :mnemonic ?h + :charset-list '(windows-1255) + :mime-charset 'windows-1255) +(define-coding-system-alias 'cp1255 'windows-1255) + +(define-coding-system 'cp862 + "DOS codepage 862 (Hebrew)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp862) + :mime-charset 'cp862) +(define-coding-system-alias 'ibm862 'cp862) + (provide 'hebrew) ;;; arch-tag: 3ca04f32-3f1e-498e-af46-8267498ba5d9 diff --git a/lisp/language/ind-util.el b/lisp/language/ind-util.el index d33c1ee4a9b..679bf424de3 100644 --- a/lisp/language/ind-util.el +++ b/lisp/language/ind-util.el @@ -408,7 +408,7 @@ FUNCTION will be called 15 times." ;; trans-char -- nil / string / list of strings (when (and char trans-char) (if (stringp trans-char) (setq trans-char (list trans-char))) - (if (char-valid-p char) (setq char (char-to-string char))) + (if (characterp char) (setq char (char-to-string char))) (puthash char (car trans-char) encode-hash) (dolist (trans trans-char) (puthash trans char decode-hash))))) @@ -426,7 +426,7 @@ FUNCTION will be called 15 times." (defun indian--puthash-c (c trans-c halant hashtbls) (indian--map (lambda (c trans-c) - (if (char-valid-p c) (setq c (char-to-string c))) + (if (characterp c) (setq c (char-to-string c))) (indian--puthash-char (concat c halant) trans-c hashtbls)) c trans-c)) @@ -442,8 +442,8 @@ FUNCTION will be called 15 times." (indian--map (lambda (v trans-v) (when (and c trans-c v trans-v) - (if (char-valid-p c) (setq c (char-to-string c))) - (setq v (if (char-valid-p (cadr v)) (char-to-string (cadr v)) "")) + (if (characterp c) (setq c (char-to-string c))) + (setq v (if (characterp (cadr v)) (char-to-string (cadr v)) "")) (if (stringp trans-c) (setq trans-c (list trans-c))) (if (stringp trans-v) (setq trans-v (list trans-v))) (indian--puthash-char @@ -577,152 +577,165 @@ FUNCTION will be called 15 times." ;; The followings provide conversion between IS 13194 (ISCII) and UCS. -(defvar ucs-devanagari-to-is13194-alist - '(;;Unicode vs IS13194 ;; only Devanagari is supported now. - (?\x0900 . "[U+0900]") - (?\x0901 . "(5!(B") - (?\x0902 . "(5"(B") - (?\x0903 . "(5#(B") - (?\x0904 . "[U+0904]") - (?\x0905 . "(5$(B") - (?\x0906 . "(5%(B") - (?\x0907 . "(5&(B") - (?\x0908 . "(5'(B") - (?\x0909 . "(5((B") - (?\x090a . "(5)(B") - (?\x090b . "(5*(B") - (?\x090c . "(5&i(B") - (?\x090d . "(5.(B") - (?\x090e . "(5+(B") - (?\x090f . "(5,(B") - (?\x0910 . "(5-(B") - (?\x0911 . "(52(B") - (?\x0912 . "(5/(B") - (?\x0913 . "(50(B") - (?\x0914 . "(51(B") - (?\x0915 . "(53(B") - (?\x0916 . "(54(B") - (?\x0917 . "(55(B") - (?\x0918 . "(56(B") - (?\x0919 . "(57(B") - (?\x091a . "(58(B") - (?\x091b . "(59(B") - (?\x091c . "(5:(B") - (?\x091d . "(5;(B") - (?\x091e . "(5<(B") - (?\x091f . "(5=(B") - (?\x0920 . "(5>(B") - (?\x0921 . "(5?(B") - (?\x0922 . "(5@(B") - (?\x0923 . "(5A(B") - (?\x0924 . "(5B(B") - (?\x0925 . "(5C(B") - (?\x0926 . "(5D(B") - (?\x0927 . "(5E(B") - (?\x0928 . "(5F(B") - (?\x0929 . "(5G(B") - (?\x092a . "(5H(B") - (?\x092b . "(5I(B") - (?\x092c . "(5J(B") - (?\x092d . "(5K(B") - (?\x092e . "(5L(B") - (?\x092f . "(5M(B") - (?\x0930 . "(5O(B") - (?\x0931 . "(5P(B") - (?\x0932 . "(5Q(B") - (?\x0933 . "(5R(B") - (?\x0934 . "(5S(B") - (?\x0935 . "(5T(B") - (?\x0936 . "(5U(B") - (?\x0937 . "(5V(B") - (?\x0938 . "(5W(B") - (?\x0939 . "(5X(B") - (?\x093a . "[U+093a]") - (?\x093b . "[U+093b]") - (?\x093c . "(5i(B") - (?\x093d . "(5ji(B") - (?\x093e . "(5Z(B") - (?\x093f . "(5[(B") - (?\x0940 . "(5\(B") - (?\x0941 . "(5](B") - (?\x0942 . "(5^(B") - (?\x0943 . "(5_(B") - (?\x0944 . "(5_i(B") - (?\x0945 . "(5c(B") - (?\x0946 . "(5`(B") - (?\x0947 . "(5a(B") - (?\x0948 . "(5b(B") - (?\x0949 . "(5g(B") - (?\x094a . "(5d(B") - (?\x094b . "(5e(B") - (?\x094c . "(5f(B") - (?\x094d . "(5h(B") - (?\x094e . "[U+094e]") - (?\x094f . "[U+094f]") - (?\x0950 . "(5!i(B") - (?\x0951 . "(5p5(B") - (?\x0952 . "(5p8(B") - (?\x0953 . "[DEVANAGARI GRAVE ACCENT]") - (?\x0954 . "[DEVANAGARI ACUTE ACCENT]") - (?\x0955 . "[U+0955]") - (?\x0956 . "[U+0956]") - (?\x0957 . "[U+0957]") - (?\x0958 . "(53i(B") - (?\x0959 . "(54i(B") - (?\x095a . "(55i(B") - (?\x095b . "(5:i(B") - (?\x095c . "(5?i(B") - (?\x095d . "(5@i(B") - (?\x095e . "(5Ii(B") - (?\x095f . "(5N(B") - (?\x0960 . "(5*i(B") - (?\x0961 . "(5'i(B") - (?\x0962 . "(5[i(B") - (?\x0963 . "(5ei(B") - (?\x0964 . "(5j(B") - (?\x0965 . "(5jj(B") - (?\x0966 . "(5q(B") - (?\x0967 . "(5r(B") - (?\x0968 . "(5s(B") - (?\x0969 . "(5t(B") - (?\x096a . "(5u(B") - (?\x096b . "(5v(B") - (?\x096c . "(5w(B") - (?\x096d . "(5x(B") - (?\x096e . "(5y(B") - (?\x096f . "(5z(B") - (?\x0970 . "[U+0970]") - (?\x0971 . "[U+0971]") - (?\x0972 . "[U+0972]") - (?\x0973 . "[U+0973]") - (?\x0974 . "[U+0974]") - (?\x0975 . "[U+0975]") - (?\x0976 . "[U+0976]") - (?\x0977 . "[U+0977]") - (?\x0978 . "[U+0978]") - (?\x0979 . "[U+0979]") - (?\x097a . "[U+097a]") - (?\x097b . "[U+097b]") - (?\x097c . "[U+097c]") - (?\x097d . "[U+097d]") - (?\x097e . "[U+097e]") - (?\x097f . "[U+097f]"))) - -(defvar ucs-bengali-to-is13194-alist nil) -(defvar ucs-assamese-to-is13194-alist nil) -(defvar ucs-gurmukhi-to-is13194-alist nil) -(defvar ucs-gujarati-to-is13194-alist nil) -(defvar ucs-oriya-to-is13194-alist nil) -(defvar ucs-tamil-to-is13194-alist nil) -(defvar ucs-telugu-to-is13194-alist nil) -(defvar ucs-malayalam-to-is13194-alist nil) -(defvar ucs-kannada-to-is13194-alist nil) - -(defvar is13194-default-repartory 'devanagari) +(let + ;;Unicode vs IS13194 ;; only Devanagari is supported now. + ((ucs-devanagari-to-is13194-alist + '((?\x0900 . "[U+0900]") + (?\x0901 . "(5!(B") + (?\x0902 . "(5"(B") + (?\x0903 . "(5#(B") + (?\x0904 . "[U+0904]") + (?\x0905 . "(5$(B") + (?\x0906 . "(5%(B") + (?\x0907 . "(5&(B") + (?\x0908 . "(5'(B") + (?\x0909 . "(5((B") + (?\x090a . "(5)(B") + (?\x090b . "(5*(B") + (?\x090c . "(5&i(B") + (?\x090d . "(5.(B") + (?\x090e . "(5+(B") + (?\x090f . "(5,(B") + (?\x0910 . "(5-(B") + (?\x0911 . "(52(B") + (?\x0912 . "(5/(B") + (?\x0913 . "(50(B") + (?\x0914 . "(51(B") + (?\x0915 . "(53(B") + (?\x0916 . "(54(B") + (?\x0917 . "(55(B") + (?\x0918 . "(56(B") + (?\x0919 . "(57(B") + (?\x091a . "(58(B") + (?\x091b . "(59(B") + (?\x091c . "(5:(B") + (?\x091d . "(5;(B") + (?\x091e . "(5<(B") + (?\x091f . "(5=(B") + (?\x0920 . "(5>(B") + (?\x0921 . "(5?(B") + (?\x0922 . "(5@(B") + (?\x0923 . "(5A(B") + (?\x0924 . "(5B(B") + (?\x0925 . "(5C(B") + (?\x0926 . "(5D(B") + (?\x0927 . "(5E(B") + (?\x0928 . "(5F(B") + (?\x0929 . "(5G(B") + (?\x092a . "(5H(B") + (?\x092b . "(5I(B") + (?\x092c . "(5J(B") + (?\x092d . "(5K(B") + (?\x092e . "(5L(B") + (?\x092f . "(5M(B") + (?\x0930 . "(5O(B") + (?\x0931 . "(5P(B") + (?\x0932 . "(5Q(B") + (?\x0933 . "(5R(B") + (?\x0934 . "(5S(B") + (?\x0935 . "(5T(B") + (?\x0936 . "(5U(B") + (?\x0937 . "(5V(B") + (?\x0938 . "(5W(B") + (?\x0939 . "(5X(B") + (?\x093a . "[U+093a]") + (?\x093b . "[U+093b]") + (?\x093c . "(5i(B") + (?\x093d . "(5ji(B") + (?\x093e . "(5Z(B") + (?\x093f . "(5[(B") + (?\x0940 . "(5\(B") + (?\x0941 . "(5](B") + (?\x0942 . "(5^(B") + (?\x0943 . "(5_(B") + (?\x0944 . "(5_i(B") + (?\x0945 . "(5c(B") + (?\x0946 . "(5`(B") + (?\x0947 . "(5a(B") + (?\x0948 . "(5b(B") + (?\x0949 . "(5g(B") + (?\x094a . "(5d(B") + (?\x094b . "(5e(B") + (?\x094c . "(5f(B") + (?\x094d . "(5h(B") + (?\x094e . "[U+094e]") + (?\x094f . "[U+094f]") + (?\x0950 . "(5!i(B") + (?\x0951 . "(5p5(B") + (?\x0952 . "(5p8(B") + (?\x0953 . "[DEVANAGARI GRAVE ACCENT]") + (?\x0954 . "[DEVANAGARI ACUTE ACCENT]") + (?\x0955 . "[U+0955]") + (?\x0956 . "[U+0956]") + (?\x0957 . "[U+0957]") + (?\x0958 . "(53i(B") + (?\x0959 . "(54i(B") + (?\x095a . "(55i(B") + (?\x095b . "(5:i(B") + (?\x095c . "(5?i(B") + (?\x095d . "(5@i(B") + (?\x095e . "(5Ii(B") + (?\x095f . "(5N(B") + (?\x0960 . "(5*i(B") + (?\x0961 . "(5'i(B") + (?\x0962 . "(5[i(B") + (?\x0963 . "(5ei(B") + (?\x0964 . "(5j(B") + (?\x0965 . "(5jj(B") + (?\x0966 . "(5q(B") + (?\x0967 . "(5r(B") + (?\x0968 . "(5s(B") + (?\x0969 . "(5t(B") + (?\x096a . "(5u(B") + (?\x096b . "(5v(B") + (?\x096c . "(5w(B") + (?\x096d . "(5x(B") + (?\x096e . "(5y(B") + (?\x096f . "(5z(B") + (?\x0970 . "[U+0970]") + (?\x0971 . "[U+0971]") + (?\x0972 . "[U+0972]") + (?\x0973 . "[U+0973]") + (?\x0974 . "[U+0974]") + (?\x0975 . "[U+0975]") + (?\x0976 . "[U+0976]") + (?\x0977 . "[U+0977]") + (?\x0978 . "[U+0978]") + (?\x0979 . "[U+0979]") + (?\x097a . "[U+097a]") + (?\x097b . "[U+097b]") + (?\x097c . "[U+097c]") + (?\x097d . "[U+097d]") + (?\x097e . "[U+097e]") + (?\x097f . "[U+097f]"))) + (ucs-bengali-to-is13194-alist nil) + (ucs-assamese-to-is13194-alist nil) + (ucs-gurmukhi-to-is13194-alist nil) + (ucs-gujarati-to-is13194-alist nil) + (ucs-oriya-to-is13194-alist nil) + (ucs-tamil-to-is13194-alist nil) + (ucs-telugu-to-is13194-alist nil) + (ucs-malayalam-to-is13194-alist nil) + (ucs-kannada-to-is13194-alist nil)) + (dolist (script '(devanagari bengali assamese gurmukhi gujarati + oriya tamil telugu malayalam kannada)) + (let ((hashtable (intern (concat "is13194-to-ucs-" + (symbol-name script) "-hashtbl" ))) + (regexp (intern (concat "is13194-to-ucs-" + (symbol-name script) "-regexp")))) + (set hashtable (make-hash-table :test 'equal :size 128)) + (dolist (x (eval (intern (concat "ucs-" (symbol-name script) + "-to-is13194-alist")))) + (put-char-code-property (car x) 'script script) + (put-char-code-property (car x) 'iscii (cdr x)) + (puthash (cdr x) (char-to-string (car x)) (eval hashtable))) + (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable)))))) + +(defvar is13194-default-repertory 'devanagari) (defvar is13194-repertory-to-ucs-script - `((DEF ?\x40 ,is13194-default-repartory) - (RMN ?\x41 ,is13194-default-repartory) + `((DEF ?\x40 ,is13194-default-repertory) + (RMN ?\x41 ,is13194-default-repertory) (DEV ?\x42 devanagari) (BNG ?\x43 bengali) (TML ?\x44 tamil) @@ -756,31 +769,10 @@ FUNCTION will be called 15 times." (defvar is13194-to-ucs-kannada-hashtbl nil) (defvar is13194-to-ucs-kannada-regexp nil) -(mapc - (function (lambda (script) - (let ((hashtable (intern (concat "is13194-to-ucs-" - (symbol-name script) "-hashtbl" ))) - (regexp (intern (concat "is13194-to-ucs-" - (symbol-name script) "-regexp")))) - (set hashtable (make-hash-table :test 'equal :size 128)) - (mapc - (function (lambda (x) - (put-char-code-property (decode-char 'ucs (car x)) - 'script script) - (put-char-code-property (decode-char 'ucs (car x)) - 'iscii (cdr x)) - (puthash (cdr x) (char-to-string (decode-char 'ucs (car x))) - (eval hashtable)))) - (eval (intern (concat "ucs-" (symbol-name script) - "-to-is13194-alist")))) - (set regexp (indian-regexp-of-hashtbl-keys (eval hashtable)))))) - '(devanagari bengali assamese gurmukhi gujarati - oriya tamil telugu malayalam kannada)) - (defvar ucs-to-is13194-regexp ;; only Devanagari is supported now. - (concat "[" (char-to-string (decode-char 'ucs #x0900)) - "-" (char-to-string (decode-char 'ucs #x097f)) "]") + (concat "[" (char-to-string #x0900) + "-" (char-to-string #x097f) "]") "Regexp that matches to conversion") (defun ucs-to-iscii-region (from to) @@ -792,11 +784,11 @@ Returns new end position." (save-restriction (narrow-to-region from to) (goto-char (point-min)) - (let* ((current-repertory is13194-default-repartory)) - (while (re-search-forward ucs-to-is13194-regexp nil t) - (replace-match - (get-char-code-property (string-to-char (match-string 0)) - 'iscii)))) + (let* ((current-repertory is13194-default-repertory)) + (while (re-search-forward ucs-to-is13194-regexp nil t) + (replace-match + (get-char-code-property (string-to-char (match-string 0)) + 'iscii)))) (point-max)))) (defun iscii-to-ucs-region (from to) @@ -808,16 +800,17 @@ Returns new end position." (save-restriction (narrow-to-region from to) (goto-char (point-min)) - (let* ((current-repertory is13194-default-repartory) - (current-hashtable - (intern (concat "is13194-to-ucs-" - (symbol-name current-repertory) "-hashtbl"))) - (current-regexp - (intern (concat "is13194-to-ucs-" - (symbol-name current-repertory) "-regexp")))) - (while (re-search-forward (eval current-regexp) nil t) - (replace-match - (gethash (match-string 0) (eval current-hashtable) "")))) + (let* ((current-repertory is13194-default-repertory) + (current-hashtable + (intern (concat "is13194-to-ucs-" + (symbol-name current-repertory) "-hashtbl"))) + (current-regexp + (intern (concat "is13194-to-ucs-" + (symbol-name current-repertory) "-regexp"))) + (re (eval current-regexp)) + (hash (eval current-hashtable))) + (while (re-search-forward re nil t) + (replace-match (gethash (match-string 0) hash "")))) (point-max)))) ;;;###autoload @@ -826,11 +819,15 @@ Returns new end position." (interactive "r") (save-excursion (save-restriction - (let ((pos from) chars (max to)) - (narrow-to-region from to) - (while (< pos max) - (setq chars (compose-chars-after pos)) - (if chars (setq pos (+ pos chars)) (setq pos (1+ pos)))))))) + (let ((pos from) newpos func (max to)) + (narrow-to-region from to) + (while (< pos max) + (setq func (aref composition-function-table (char-after pos))) + (if (fboundp func) + (setq newpos (funcall func pos nil) + pos (if (and (integerp newpos) (> newpos pos)) + newpos (1+ pos))) + (setq pos (1+ pos)))))))) ;;;###autoload (defun indian-compose-string (string) @@ -861,405 +858,370 @@ Returns new end position." ;;; Backward Compatibility support programs -;; The followings provides the conversion from old-implementation of +;; The following provides the conversion from old-implementation of ;; Emacs Devanagari script to UCS. (defconst indian-2-colum-to-ucs '( ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2120 $(5!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B - ("$(5!!(B" . "$,15A(B") - ("$(5!"(B" . "$,15B(B") - ("$(5!#(B" . "$,15C(B") - ("$(5!$(B" . "$,15E(B") - ("$(5!%(B" . "$,15F(B") - ("$(5!&(B" . "$,15G(B") - ("$(5!'(B" . "$,15H(B") - ("$(5!((B" . "$,15I(B") - ("$(5!)(B" . "$,15J(B") - ("$(5!*(B" . "$,15K(B") - ("$(5!*"p(B" . "$,15p6#(B") - ("$(5!+(B" . "$,15N(B") - ("$(5!,(B" . "$,15O(B") - ("$(5!-(B" . "$,15P(B") - ("$(5!.(B" . "$,15M(B") - ("$(5!/(B" . "$,15R(B") + ;;2120 $(6!!!"!#!$!%!&!'!(!)!*!+!,!-!.!/(B + ("$(6!!(B" . "$,15A(B") + ("$(6!"(B" . "$,15B(B") + ("$(6!#(B" . "$,15C(B") + ("$(6!$(B" . "$,15E(B") + ("$(6!%(B" . "$,15F(B") + ("$(6!&(B" . "$,15G(B") + ("$(6!'(B" . "$,15H(B") + ("$(6!((B" . "$,15I(B") + ("$(6!)(B" . "$,15J(B") + ("$(6!*(B" . "$,15K(B") + ("$(6!*"p(B" . "$,15p6#(B") + ("$(6!+(B" . "$,15N(B") + ("$(6!,(B" . "$,15O(B") + ("$(6!-(B" . "$,15P(B") + ("$(6!.(B" . "$,15M(B") + ("$(6!/(B" . "$,15R(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2130 $(5!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B - ("$(5!0(B" . "$,15S(B") - ("$(5!1(B" . "$,15T(B") - ("$(5!2(B" . "$,15Q(B") - ("$(5!3(B" . "$,15U(B") - ("$(5!4(B" . "$,15V(B") - ("$(5!5(B" . "$,15W(B") - ("$(5!6(B" . "$,15X(B") - ("$(5!7(B" . "$,15Y(B") - ("$(5!8(B" . "$,15Z(B") - ("$(5!9(B" . "$,15[(B") - ("$(5!:(B" . "$,15\(B") - ("$(5!;(B" . "$,15](B") - ("$(5!<(B" . "$,15^(B") - ("$(5!=(B" . "$,15_(B") - ("$(5!>(B" . "$,15`(B") - ("$(5!?(B" . "$,15a(B") + ;;2130 $(6!0!1!2!3!4!5!6!7!8!9!:!;!<!=!>!?(B + ("$(6!0(B" . "$,15S(B") + ("$(6!1(B" . "$,15T(B") + ("$(6!2(B" . "$,15Q(B") + ("$(6!3(B" . "$,15U(B") + ("$(6!4(B" . "$,15V(B") + ("$(6!5(B" . "$,15W(B") + ("$(6!6(B" . "$,15X(B") + ("$(6!7(B" . "$,15Y(B") + ("$(6!8(B" . "$,15Z(B") + ("$(6!9(B" . "$,15[(B") + ("$(6!:(B" . "$,15\(B") + ("$(6!;(B" . "$,15](B") + ("$(6!<(B" . "$,15^(B") + ("$(6!=(B" . "$,15_(B") + ("$(6!>(B" . "$,15`(B") + ("$(6!?(B" . "$,15a(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2140 $(5!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B - ("$(5!@(B" . "$,15b(B") - ("$(5!A(B" . "$,15c(B") - ("$(5!B(B" . "$,15d(B") - ("$(5!C(B" . "$,15e(B") - ("$(5!D(B" . "$,15f(B") - ("$(5!E(B" . "$,15g(B") - ("$(5!F(B" . "$,15h(B") - ("$(5!G(B" . "$,15i(B") - ("$(5!H(B" . "$,15j(B") - ("$(5!I(B" . "$,15k(B") - ("$(5!J(B" . "$,15l(B") - ("$(5!K(B" . "$,15m(B") - ("$(5!L(B" . "$,15n(B") - ("$(5!M(B" . "$,15o(B") - ("$(5!N(B" . "$,16?(B") - ("$(5!O(B" . "$,15p(B") + ;;2140 $(6!@!A!B!C!D!E!F!G!H!I!J!K!L!M!N!O(B + ("$(6!@(B" . "$,15b(B") + ("$(6!A(B" . "$,15c(B") + ("$(6!B(B" . "$,15d(B") + ("$(6!C(B" . "$,15e(B") + ("$(6!D(B" . "$,15f(B") + ("$(6!E(B" . "$,15g(B") + ("$(6!F(B" . "$,15h(B") + ("$(6!G(B" . "$,15i(B") + ("$(6!H(B" . "$,15j(B") + ("$(6!I(B" . "$,15k(B") + ("$(6!J(B" . "$,15l(B") + ("$(6!K(B" . "$,15m(B") + ("$(6!L(B" . "$,15n(B") + ("$(6!M(B" . "$,15o(B") + ("$(6!N(B" . "$,16?(B") + ("$(6!O(B" . "$,15p(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2150 $(5!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B - ("$(5!P(B" . "$,15q(B") - ("$(5!Q(B" . "$,15r(B") - ("$(5!R(B" . "$,15s(B") - ("$(5!S(B" . "$,15t(B") - ("$(5!T(B" . "$,15u(B") - ("$(5!U(B" . "$,15v(B") - ("$(5!V(B" . "$,15w(B") - ("$(5!W(B" . "$,15x(B") - ("$(5!X(B" . "$,15y(B") - ("$(5!Z(B" . "$,15~(B") - ("$(5![(B" . "$,15(B") - ("$(5!\(B" . "$,16 (B") - ("$(5!](B" . "$,16!(B") - ("$(5!^(B" . "$,16"(B") - ("$(5!_(B" . "$,16#(B") + ;;2150 $(6!P!Q!R!S!T!U!V!W!X!Y!Z![!\!]!^!_(B + ("$(6!P(B" . "$,15q(B") + ("$(6!Q(B" . "$,15r(B") + ("$(6!R(B" . "$,15s(B") + ("$(6!S(B" . "$,15t(B") + ("$(6!T(B" . "$,15u(B") + ("$(6!U(B" . "$,15v(B") + ("$(6!V(B" . "$,15w(B") + ("$(6!W(B" . "$,15x(B") + ("$(6!X(B" . "$,15y(B") + ("$(6!Z(B" . "$,15~(B") + ("$(6![(B" . "$,15(B") + ("$(6!\(B" . "$,16 (B") + ("$(6!](B" . "$,16!(B") + ("$(6!^(B" . "$,16"(B") + ("$(6!_(B" . "$,16#(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2160 $(5!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B - ("$(5!`(B" . "$,16&(B") - ("$(5!a(B" . "$,16'(B") - ("$(5!b(B" . "$,16((B") - ("$(5!c(B" . "$,16%(B") - ("$(5!d(B" . "$,16*(B") - ("$(5!e(B" . "$,16+(B") - ("$(5!f(B" . "$,16,(B") - ("$(5!g(B" . "$,16)(B") - ("$(5!h(B" . "$,16-(B") - ("$(5!i(B" . "$,15|(B") - ("$(5!j(B" . "$,16D(B") - ("$(5!j!j(B" . "$,16E(B") + ;;2160 $(6!`!a!b!c!d!e!f!g!h!i!j!k!l!m!n!o(B + ("$(6!`(B" . "$,16&(B") + ("$(6!a(B" . "$,16'(B") + ("$(6!b(B" . "$,16((B") + ("$(6!c(B" . "$,16%(B") + ("$(6!d(B" . "$,16*(B") + ("$(6!e(B" . "$,16+(B") + ("$(6!f(B" . "$,16,(B") + ("$(6!g(B" . "$,16)(B") + ("$(6!h(B" . "$,16-(B") + ("$(6!i(B" . "$,15|(B") + ("$(6!j(B" . "$,16D(B") + ("$(6!j!j(B" . "$,16E(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2170 $(5!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B - ("$(5!q(B" . "$,16F(B") - ("$(5!r(B" . "$,16G(B") - ("$(5!s(B" . "$,16H(B") - ("$(5!t(B" . "$,16I(B") - ("$(5!u(B" . "$,16J(B") - ("$(5!v(B" . "$,16K(B") - ("$(5!w(B" . "$,16L(B") - ("$(5!x(B" . "$,16M(B") - ("$(5!y(B" . "$,16N(B") - ("$(5!z(B" . "$,16O(B") + ;;2170 $(6!p!q!r!s!t!u!v!w!x!y!z!{!|!}!~(B + ("$(6!q(B" . "$,16F(B") + ("$(6!r(B" . "$,16G(B") + ("$(6!s(B" . "$,16H(B") + ("$(6!t(B" . "$,16I(B") + ("$(6!u(B" . "$,16J(B") + ("$(6!v(B" . "$,16K(B") + ("$(6!w(B" . "$,16L(B") + ("$(6!x(B" . "$,16M(B") + ("$(6!y(B" . "$,16N(B") + ("$(6!z(B" . "$,16O(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2220 $(5"!"""#"$"%"&"'"(")"*"+","-"."/(B - ("$(5"!(B" . "$,16;6-5p(B") - ("$(5""(B" . "$,16>6-5p(B") - ("$(5"#(B" . "$,15U6-5p(B") - ("$(5"$(B" . "$,15W6-5p(B") - ("$(5"%(B" . "$,15d6-5p(B") - ("$(5"&(B" . "$,15j6-5p(B") - ("$(5"'(B" . "$,15k6-5p(B") - ("$(5")(B" . "$,15v6-5p(B") - ("$(5",(B" . "$,15p6!(B") - ("$(5"-(B" . "$,15p6"(B") - ("$(5".(B" . "$,15q6!(B") - ("$(5"/(B" . "$,15q6"(B") + ;;2220 $(6"!"""#"$"%"&"'"(")"*"+","-"."/(B + ("$(6"!(B" . "$,16;6-5p(B") + ("$(6""(B" . "$,16>6-5p(B") + ("$(6"#(B" . "$,15U6-5p(B") + ("$(6"$(B" . "$,15W6-5p(B") + ("$(6"%(B" . "$,15d6-5p(B") + ("$(6"&(B" . "$,15j6-5p(B") + ("$(6"'(B" . "$,15k6-5p(B") + ("$(6")(B" . "$,15v6-5p(B") + ("$(6",(B" . "$,15p6!(B") + ("$(6"-(B" . "$,15p6"(B") + ("$(6".(B" . "$,15q6!(B") + ("$(6"/(B" . "$,15q6"(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2230 $(5"0"1"2"3"4"5"6"7"8"9":";"<"=">"?(B - ("$(5"3(B" . "$,15U6-(B") - ("$(5"4(B" . "$,15V6-(B") - ("$(5"5(B" . "$,15W6-(B") - ("$(5"6(B" . "$,15X6-(B") - ("$(5"8(B" . "$,15Z6-(B") - ("$(5"8"q(B" . "$,15Z6-5p6-(B") - ("$(5":(B" . "$,15\6-(B") - ("$(5";(B" . "$,15]6-(B") - ("$(5"<(B" . "$,15^6-(B") - ("$(5"<(B" . "$,15^6-(B") + ;;2230 $(6"0"1"2"3"4"5"6"7"8"9":";"<"=">"?(B + ("$(6"3(B" . "$,15U6-(B") + ("$(6"4(B" . "$,15V6-(B") + ("$(6"5(B" . "$,15W6-(B") + ("$(6"6(B" . "$,15X6-(B") + ("$(6"8(B" . "$,15Z6-(B") + ("$(6"8"q(B" . "$,15Z6-5p6-(B") + ("$(6":(B" . "$,15\6-(B") + ("$(6";(B" . "$,15]6-(B") + ("$(6"<(B" . "$,15^6-(B") + ("$(6"<(B" . "$,15^6-(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2240 $(5"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B - ("$(5"A(B" . "$,15c6-(B") - ("$(5"B(B" . "$,15d6-(B") - ("$(5"C(B" . "$,15e6-(B") - ("$(5"E(B" . "$,15g6-(B") - ("$(5"F(B" . "$,15h6-(B") - ("$(5"G(B" . "$,15i6-(B") - ("$(5"H(B" . "$,15j6-(B") - ("$(5"I(B" . "$,15k6-(B") - ("$(5"J(B" . "$,15l6-(B") - ("$(5"J(B" . "$,15l6-(B") - ("$(5"K(B" . "$,15m6-(B") - ("$(5"L(B" . "$,15n6-(B") - ("$(5"M(B" . "$,15o6-(B") - ("$(5"N(B" . "$,16?6-(B") + ;;2240 $(6"@"A"B"C"D"E"F"G"H"I"J"K"L"M"N"O(B + ("$(6"A(B" . "$,15c6-(B") + ("$(6"B(B" . "$,15d6-(B") + ("$(6"C(B" . "$,15e6-(B") + ("$(6"E(B" . "$,15g6-(B") + ("$(6"F(B" . "$,15h6-(B") + ("$(6"G(B" . "$,15i6-(B") + ("$(6"H(B" . "$,15j6-(B") + ("$(6"I(B" . "$,15k6-(B") + ("$(6"J(B" . "$,15l6-(B") + ("$(6"J(B" . "$,15l6-(B") + ("$(6"K(B" . "$,15m6-(B") + ("$(6"L(B" . "$,15n6-(B") + ("$(6"M(B" . "$,15o6-(B") + ("$(6"N(B" . "$,16?6-(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2250 $(5"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B - ("$(5"Q(B" . "$,15r6-(B") - ("$(5"R(B" . "$,15s6-(B") - ("$(5"S(B" . "$,15t6-(B") - ("$(5"T(B" . "$,15u6-(B") - ("$(5"U(B" . "$,15v6-(B") - ("$(5"V(B" . "$,15w6-(B") - ("$(5"W(B" . "$,15x6-(B") - ("$(5"](B" . "$,16-5o(B") + ;;2250 $(6"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^"_(B + ("$(6"Q(B" . "$,15r6-(B") + ("$(6"R(B" . "$,15s6-(B") + ("$(6"S(B" . "$,15t6-(B") + ("$(6"T(B" . "$,15u6-(B") + ("$(6"U(B" . "$,15v6-(B") + ("$(6"V(B" . "$,15w6-(B") + ("$(6"W(B" . "$,15x6-(B") + ("$(6"](B" . "$,16-5o(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2260 $(5"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B - ("$(5"`(B" . "$,15W6-5p6-(B") - ("$(5"a(B" . "$,15X6-5h6-(B") - ("$(5"c(B" . "$,15d6-5d6-(B") - ("$(5"d(B" . "$,15d6-5p6-(B") - ("$(5"e(B" . "$,15g6-5h6-(B") - ("$(5"f(B" . "$,15g6-5p6-(B") - ("$(5"g(B" . "$,15j6-5d6-(B") - ("$(5"h(B" . "$,15v6-5Z6-(B") - ("$(5"i(B" . "$,15v6-5p6-(B") - ("$(5"j(B" . "$,15v6-5u6-(B") - ("$(5"k(B" . "$,15h6-5h6-(B") - ("$(5"l(B" . "$,15U6-5w6-(B") - ("$(5"m(B" . "$,15\6-5^6-(B") + ;;2260 $(6"`"a"b"c"d"e"f"g"h"i"j"k"l"m"n"o(B + ("$(6"`(B" . "$,15W6-5p6-(B") + ("$(6"a(B" . "$,15X6-5h6-(B") + ("$(6"c(B" . "$,15d6-5d6-(B") + ("$(6"d(B" . "$,15d6-5p6-(B") + ("$(6"e(B" . "$,15g6-5h6-(B") + ("$(6"f(B" . "$,15g6-5p6-(B") + ("$(6"g(B" . "$,15j6-5d6-(B") + ("$(6"h(B" . "$,15v6-5Z6-(B") + ("$(6"i(B" . "$,15v6-5p6-(B") + ("$(6"j(B" . "$,15v6-5u6-(B") + ("$(6"k(B" . "$,15h6-5h6-(B") + ("$(6"l(B" . "$,15U6-5w6-(B") + ("$(6"m(B" . "$,15\6-5^6-(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2270 $(5"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B - ("$(5"p(B" . "$,15p6-(B") - ("$(5"q(B" . "$,16-5p(B") - ("$(5"r(B" . "$,16-5p(B") - ("$(5"s(B" . "$,1686-(B") - ("$(5"t(B" . "$,1696-(B") - ("$(5"u(B" . "$,16:6-(B") - ("$(5"y(B" . "$,16>6-(B") - ("$(5"z(B" . "$,16;6-(B") + ;;2270 $(6"p"q"r"s"t"u"v"w"x"y"z"{"|"}"~(B + ("$(6"p(B" . "$,15p6-(B") + ("$(6"q(B" . "$,16-5p(B") + ("$(6"r(B" . "$,16-5p(B") + ("$(6"s(B" . "$,1686-(B") + ("$(6"t(B" . "$,1696-(B") + ("$(6"u(B" . "$,16:6-(B") + ("$(6"y(B" . "$,16>6-(B") + ("$(6"z(B" . "$,16;6-(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2320 $(5#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B - ("$(5#!(B" . "$,160(B") - ("$(5#&(B" . "$,15L(B") - ("$(5#&"p(B" . "$,15p6$(B") - ("$(5#'(B" . "$,16A(B") - ("$(5#'"p(B" . "$,15p6C(B") - ("$(5#*(B" . "$,16@(B") - ("$(5#*"p(B" . "$,15p6B(B") + ;;2320 $(6#!#"###$#%#&#'#(#)#*#+#,#-#.#/(B + ("$(6#!(B" . "$,160(B") + ("$(6#&(B" . "$,15L(B") + ("$(6#&"p(B" . "$,15p6$(B") + ("$(6#'(B" . "$,16A(B") + ("$(6#'"p(B" . "$,15p6C(B") + ("$(6#*(B" . "$,16@(B") + ("$(6#*"p(B" . "$,15p6B(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2330 $(5#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B - ("$(5#3(B" . "$,168(B") - ("$(5#4(B" . "$,169(B") - ("$(5#5(B" . "$,16:(B") - ("$(5#:(B" . "$,16;(B") - ("$(5#?(B" . "$,16<(B") + ;;2330 $(6#0#1#2#3#4#5#6#7#8#9#:#;#<#=#>#?(B + ("$(6#3(B" . "$,168(B") + ("$(6#4(B" . "$,169(B") + ("$(6#5(B" . "$,16:(B") + ("$(6#:(B" . "$,16;(B") + ("$(6#?(B" . "$,16<(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2340 $(5#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B - ("$(5#@(B" . "$,16=(B") - ("$(5#I(B" . "$,16>(B") - ("$(5#J(B" . "$,15}(B") - ("$(5#K(B" . "$,16$(B") - ("$(5#L(B" . "$,16B(B") - ("$(5#M(B" . "$,16C(B") + ;;2340 $(6#@#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O(B + ("$(6#@(B" . "$,16=(B") + ("$(6#I(B" . "$,16>(B") + ("$(6#J(B" . "$,15}(B") + ("$(6#K(B" . "$,16$(B") + ("$(6#L(B" . "$,16B(B") + ("$(6#M(B" . "$,16C(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2350 $(5#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B - ("$(5#P(B" . "$,15n6-5h(B") - ("$(5#Q(B" . "$,15n6-5r(B") - ("$(5#R(B" . "$,15y6#(B") + ;;2350 $(6#P#Q#R#S#T#U#V#W#X#Y#Z#[#\#]#^#_(B + ("$(6#P(B" . "$,15n6-5h(B") + ("$(6#Q(B" . "$,15n6-5r(B") + ("$(6#R(B" . "$,15y6#(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2360 $(5#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B - ("$(5#`(B" . "$,15r6-5r(B") - ("$(5#a(B" . "$,15u6-5h(B") - ("$(5#b(B" . "$,15u6-5u(B") - ("$(5#c(B" . "$,15v6-5Z(B") - ("$(5#d(B" . "$,15v6-5h(B") - ("$(5#e(B" . "$,15v6-5l(B") - ("$(5#f(B" . "$,15v6-5r(B") - ("$(5#g(B" . "$,15v6-5u(B") - ("$(5#h(B" . "$,15w6-5_6-5p6-5o(B") - ("$(5#i(B" . "$,15w6-5_6-5o(B") - ("$(5#j(B" . "$,15w6-5_6-5u(B") - ("$(5#k(B" . "$,15w6-5_(B") - ("$(5#l(B" . "$,15w6-5`(B") - ("$(5#m(B" . "$,15x6-5h(B") - ("$(5#n(B" . "$,15x6-5p(B") + ;;2360 $(6#`#a#b#c#d#e#f#g#h#i#j#k#l#m#n#o(B + ("$(6#`(B" . "$,15r6-5r(B") + ("$(6#a(B" . "$,15u6-5h(B") + ("$(6#b(B" . "$,15u6-5u(B") + ("$(6#c(B" . "$,15v6-5Z(B") + ("$(6#d(B" . "$,15v6-5h(B") + ("$(6#e(B" . "$,15v6-5l(B") + ("$(6#f(B" . "$,15v6-5r(B") + ("$(6#g(B" . "$,15v6-5u(B") + ("$(6#h(B" . "$,15w6-5_6-5p6-5o(B") + ("$(6#i(B" . "$,15w6-5_6-5o(B") + ("$(6#j(B" . "$,15w6-5_6-5u(B") + ("$(6#k(B" . "$,15w6-5_(B") + ("$(6#l(B" . "$,15w6-5`(B") + ("$(6#m(B" . "$,15x6-5h(B") + ("$(6#n(B" . "$,15x6-5p(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2370 $(5#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B - ("$(5#p(B" . "$,15y6-5c(B") - ("$(5#q(B" . "$,15y6-5h(B") - ("$(5#r(B" . "$,15y6-5n(B") - ("$(5#s(B" . "$,15y6-5o(B") - ("$(5#t(B" . "$,15y6-5p(B") - ("$(5#u(B" . "$,15y6-5r(B") - ("$(5#v(B" . "$,15y6-5u(B") + ;;2370 $(6#p#q#r#s#t#u#v#w#x#y#z#{#|#}#~(B + ("$(6#p(B" . "$,15y6-5c(B") + ("$(6#q(B" . "$,15y6-5h(B") + ("$(6#r(B" . "$,15y6-5n(B") + ("$(6#s(B" . "$,15y6-5o(B") + ("$(6#t(B" . "$,15y6-5p(B") + ("$(6#u(B" . "$,15y6-5r(B") + ("$(6#v(B" . "$,15y6-5u(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2420 $(5$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B - ("$(5$!(B" . "$,15U6-5d6-5p6-5o(B") - ("$(5$"(B" . "$,15U6-5d6-5u(B") - ("$(5$#(B" . "$,15U6-5d6-5o(B") - ("$(5$$(B" . "$,15U6-5h6-5o(B") - ("$(5$%(B" . "$,15U6-5p6-5o(B") - ("$(5$&(B" . "$,15U6-5u6-5o(B") - ("$(5$'(B" . "$,15U6-5U(B") - ("$(5$((B" . "$,15U6-5d(B") - ("$(5$)(B" . "$,15U6-5h(B") - ("$(5$*(B" . "$,15U6-5n(B") - ("$(5$+(B" . "$,15U6-5o(B") - ("$(5$,(B" . "$,15U6-5r(B") - ("$(5$-(B" . "$,15U6-5u(B") - ("$(5$.(B" . "$,15U6-5w(B") - ("$(5$/(B" . "$,15X6-5h(B") + ;;2420 $(6$!$"$#$$$%$&$'$($)$*$+$,$-$.$/(B + ("$(6$!(B" . "$,15U6-5d6-5p6-5o(B") + ("$(6$"(B" . "$,15U6-5d6-5u(B") + ("$(6$#(B" . "$,15U6-5d6-5o(B") + ("$(6$$(B" . "$,15U6-5h6-5o(B") + ("$(6$%(B" . "$,15U6-5p6-5o(B") + ("$(6$&(B" . "$,15U6-5u6-5o(B") + ("$(6$'(B" . "$,15U6-5U(B") + ("$(6$((B" . "$,15U6-5d(B") + ("$(6$)(B" . "$,15U6-5h(B") + ("$(6$*(B" . "$,15U6-5n(B") + ("$(6$+(B" . "$,15U6-5o(B") + ("$(6$,(B" . "$,15U6-5r(B") + ("$(6$-(B" . "$,15U6-5u(B") + ("$(6$.(B" . "$,15U6-5w(B") + ("$(6$/(B" . "$,15X6-5h(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2430 $(5$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B - ("$(5$0(B" . "$,15Y6-5U6-5d6-5o(B") - ("$(5$1(B" . "$,15Y6-5U6-5w6-5u(B") - ("$(5$2(B" . "$,15Y6-5U6-5d(B") - ("$(5$3(B" . "$,15Y6-5U6-5w(B") - ("$(5$4(B" . "$,15Y6-5X6-5p(B") - ("$(5$5(B" . "$,15Y6-5U6-5o(B") - ("$(5$6(B" . "$,15Y6-5V6-5o(B") - ("$(5$7(B" . "$,15Y6-5W6-5o(B") - ("$(5$8(B" . "$,15Y6-5X6-5o(B") - ("$(5$9(B" . "$,15Y6-5U(B") - ("$(5$:(B" . "$,15Y6-5V(B") - ("$(5$;(B" . "$,15Y6-5W(B") - ("$(5$<(B" . "$,15Y6-5X(B") - ("$(5$=(B" . "$,15Y6-5Y(B") - ("$(5$>(B" . "$,15Y6-5h(B") - ("$(5$?(B" . "$,15Y6-5n(B") + ;;2430 $(6$0$1$2$3$4$5$6$7$8$9$:$;$<$=$>$?(B + ("$(6$0(B" . "$,15Y6-5U6-5d6-5o(B") + ("$(6$1(B" . "$,15Y6-5U6-5w6-5u(B") + ("$(6$2(B" . "$,15Y6-5U6-5d(B") + ("$(6$3(B" . "$,15Y6-5U6-5w(B") + ("$(6$4(B" . "$,15Y6-5X6-5p(B") + ("$(6$5(B" . "$,15Y6-5U6-5o(B") + ("$(6$6(B" . "$,15Y6-5V6-5o(B") + ("$(6$7(B" . "$,15Y6-5W6-5o(B") + ("$(6$8(B" . "$,15Y6-5X6-5o(B") + ("$(6$9(B" . "$,15Y6-5U(B") + ("$(6$:(B" . "$,15Y6-5V(B") + ("$(6$;(B" . "$,15Y6-5W(B") + ("$(6$<(B" . "$,15Y6-5X(B") + ("$(6$=(B" . "$,15Y6-5Y(B") + ("$(6$>(B" . "$,15Y6-5h(B") + ("$(6$?(B" . "$,15Y6-5n(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2440 $(5$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B - ("$(5$@(B" . "$,15Y6-5o(B") - ("$(5$A(B" . "$,15Z6-5Z(B") - ("$(5$B(B" . "$,15Z6-5^(B") - ("$(5$C(B" . "$,15[6-5o(B") - ("$(5$D(B" . "$,15\6-5p(B") - ("$(5$E(B" . "$,15\6-5^(B") - ("$(5$F(B" . "$,15^6-5Z(B") - ("$(5$G(B" . "$,15^6-5\(B") - ("$(5$H(B" . "$,15_6-5U(B") - ("$(5$I(B" . "$,15_6-5_(B") - ("$(5$J(B" . "$,15_6-5`(B") - ("$(5$K(B" . "$,15_6-5o(B") - ("$(5$L(B" . "$,15`6-5o(B") - ("$(5$M(B" . "$,15a6-5W6-5o(B") - ("$(5$N(B" . "$,15a6-5X6-5p(B") - ("$(5$O(B" . "$,15a6-5p6-5o(B") + ;;2440 $(6$@$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O(B + ("$(6$@(B" . "$,15Y6-5o(B") + ("$(6$A(B" . "$,15Z6-5Z(B") + ("$(6$B(B" . "$,15Z6-5^(B") + ("$(6$C(B" . "$,15[6-5o(B") + ("$(6$D(B" . "$,15\6-5p(B") + ("$(6$E(B" . "$,15\6-5^(B") + ("$(6$F(B" . "$,15^6-5Z(B") + ("$(6$G(B" . "$,15^6-5\(B") + ("$(6$H(B" . "$,15_6-5U(B") + ("$(6$I(B" . "$,15_6-5_(B") + ("$(6$J(B" . "$,15_6-5`(B") + ("$(6$K(B" . "$,15_6-5o(B") + ("$(6$L(B" . "$,15`6-5o(B") + ("$(6$M(B" . "$,15a6-5W6-5o(B") + ("$(6$N(B" . "$,15a6-5X6-5p(B") + ("$(6$O(B" . "$,15a6-5p6-5o(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2450 $(5$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B - ("$(5$P(B" . "$,15a6-5W(B") - ("$(5$Q(B" . "$,15a6-5X(B") - ("$(5$R(B" . "$,15a6-5a(B") - ("$(5$S(B" . "$,15a6-5n(B") - ("$(5$T(B" . "$,15a6-5o(B") + ;;2450 $(6$P$Q$R$S$T$U$V$W$X$Y$Z$[$\$]$^$_(B + ("$(6$P(B" . "$,15a6-5W(B") + ("$(6$Q(B" . "$,15a6-5X(B") + ("$(6$R(B" . "$,15a6-5a(B") + ("$(6$S(B" . "$,15a6-5n(B") + ("$(6$T(B" . "$,15a6-5o(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2460 $(5$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B - ("$(5$`(B" . "$,15b6-5o(B") - ("$(5$a(B" . "$,15d6-5d(B") - ("$(5$b(B" . "$,15d6-5h(B") - ("$(5$c(B" . "$,15f6-5f6-5o(B") - ("$(5$d(B" . "$,15f6-5g6-5o(B") - ("$(5$e(B" . "$,15f6-5m6-5o(B") - ("$(5$f(B" . "$,15f6-5p6-5o(B") - ("$(5$g(B" . "$,15f6-5u6-5o(B") - ("$(5$h(B" . "$,15f6-5W6-5p(B") - ("$(5$i(B" . "$,15f6-5X6-5p(B") - ("$(5$j(B" . "$,15f6-5f6-5u(B") - ("$(5$k(B" . "$,15f6-5g6-5u(B") - ("$(5$l(B" . "$,15f6-5W(B") - ("$(5$m(B" . "$,15f6-5X(B") - ("$(5$n(B" . "$,15f6-5f(B") - ("$(5$o(B" . "$,15f6-5g(B") + ;;2460 $(6$`$a$b$c$d$e$f$g$h$i$j$k$l$m$n$o(B + ("$(6$`(B" . "$,15b6-5o(B") + ("$(6$a(B" . "$,15d6-5d(B") + ("$(6$b(B" . "$,15d6-5h(B") + ("$(6$c(B" . "$,15f6-5f6-5o(B") + ("$(6$d(B" . "$,15f6-5g6-5o(B") + ("$(6$e(B" . "$,15f6-5m6-5o(B") + ("$(6$f(B" . "$,15f6-5p6-5o(B") + ("$(6$g(B" . "$,15f6-5u6-5o(B") + ("$(6$h(B" . "$,15f6-5W6-5p(B") + ("$(6$i(B" . "$,15f6-5X6-5p(B") + ("$(6$j(B" . "$,15f6-5f6-5u(B") + ("$(6$k(B" . "$,15f6-5g6-5u(B") + ("$(6$l(B" . "$,15f6-5W(B") + ("$(6$m(B" . "$,15f6-5X(B") + ("$(6$n(B" . "$,15f6-5f(B") + ("$(6$o(B" . "$,15f6-5g(B") ;; 0 1 2 3 4 5 6 7 8 9 a b c d e f - ;;2470 $(5$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B - ("$(5$p(B" . "$,15f6-5h(B") - ("$(5$q(B" . "$,15f6-5l(B") - ("$(5$r(B" . "$,15f6-5m(B") - ("$(5$s(B" . "$,15f6-5n(B") - ("$(5$t(B" . "$,15f6-5o(B") - ("$(5$u(B" . "$,15f6-5u(B") - ("$(5$v(B" . "$,15g6-5h(B") - ("$(5$w(B" . "$,15h6-5h(B") - ("$(5$x(B" . "$,15j6-5d(B") - ("$(5$y(B" . "$,15j6-5h(B") - ("$(5$z(B" . "$,15j6-5r(B") - ("$(5${(B" . "$,15l6-5h(B") - ("$(5$|(B" . "$,15l6-5l(B") - ("$(5$}(B" . "$,15l6-5u(B") - ("$(5$~(B" . "$,15m6-5h(B"))) + ;;2470 $(6$p$q$r$s$t$u$v$w$x$y$z${$|$}$~(B + ("$(6$p(B" . "$,15f6-5h(B") + ("$(6$q(B" . "$,15f6-5l(B") + ("$(6$r(B" . "$,15f6-5m(B") + ("$(6$s(B" . "$,15f6-5n(B") + ("$(6$t(B" . "$,15f6-5o(B") + ("$(6$u(B" . "$,15f6-5u(B") + ("$(6$v(B" . "$,15g6-5h(B") + ("$(6$w(B" . "$,15h6-5h(B") + ("$(6$x(B" . "$,15j6-5d(B") + ("$(6$y(B" . "$,15j6-5h(B") + ("$(6$z(B" . "$,15j6-5r(B") + ("$(6${(B" . "$,15l6-5h(B") + ("$(6$|(B" . "$,15l6-5l(B") + ("$(6$}(B" . "$,15l6-5u(B") + ("$(6$~(B" . "$,15m6-5h(B"))) (defconst indian-2-column-to-ucs-regexp - "$(5!j!j(B\\|$(5"8"q(B\\|[$(5#&#'!*#*(B]$(5"p(B\\|[$(5!!(B-$(5$~(B]") + "$(6!j!j(B\\|$(6"8"q(B\\|[$(6#&#'!*#*(B]$(6"p(B\\|[$(6!!(B-$(6$~(B]") (put 'indian-2-column-to-ucs-chartable 'char-table-extra-slots 1) (defconst indian-2-column-to-ucs-chartable (let ((table (make-char-table 'indian-2-column-to-ucs-chartable)) - (alist nil)) + (alist nil)) (dolist (elt indian-2-colum-to-ucs) (if (= (length (car elt)) 1) - (aset table (aref (car elt) 0) (cdr elt)) - (setq alist (cons elt alist)))) + (aset table (aref (car elt) 0) (cdr elt)) + (setq alist (cons elt alist)))) (set-char-table-extra-slot table 0 alist) table)) +;;;###autoload (defun indian-2-column-to-ucs-region (from to) "Convert old Emacs Devanagari characters to UCS." (interactive "r") (save-excursion (save-restriction (let ((pos from) - (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0))) - (narrow-to-region from to) - (decompose-region from to) - (goto-char (point-min)) - (while (re-search-forward indian-2-column-to-ucs-regexp nil t) - (let ((len (- (match-end 0) (match-beginning 0))) - subst) - (if (= len 1) - (setq subst (aref indian-2-column-to-ucs-chartable + (alist (char-table-extra-slot indian-2-column-to-ucs-chartable 0))) + (narrow-to-region from to) + (decompose-region from to) + (goto-char (point-min)) + (while (re-search-forward indian-2-column-to-ucs-regexp nil t) + (let ((len (- (match-end 0) (match-beginning 0))) + subst) + (if (= len 1) + (setq subst (aref indian-2-column-to-ucs-chartable (char-after (match-beginning 0)))) - (setq subst (cdr (assoc (match-string 0) alist)))) - (replace-match (if subst subst "?")))) - (indian-compose-region (point-min) (point-max)))))) - -;;;###autoload -(defun indian-glyph-char (index &optional script) - "Return character of charset `indian-glyph' made from glyph index INDEX. -The variable `indian-default-script' specifies the script of the glyph. -Optional argument SCRIPT, if non-nil, overrides `indian-default-script'. -See also the function `indian-char-glyph'." - (or script - (setq script indian-default-script)) - (let ((offset (get script 'indian-glyph-code-offset))) - (or (integerp offset) - (error "Invalid script name: %s" script)) - (or (and (>= index 0) (< index 256)) - (error "Invalid glyph index: %d" index)) - (setq index (+ offset index)) - (make-char 'indian-glyph (+ (/ index 96) 32) (+ (% index 96) 32)))) - -(defvar indian-glyph-max-char - (indian-glyph-char - 255 (aref indian-script-table (1- (length indian-script-table)))) - "The maximum valid code of characters in the charset `indian-glyph'.") - -;;;###autoload -(defun indian-char-glyph (char) - "Return information about the glyph code for CHAR of `indian-glyph' charset. -The value is (INDEX . SCRIPT), where INDEX is the glyph index -in the font that Indian script name SCRIPT specifies. -See also the function `indian-glyph-char'." - (let ((split (split-char char)) - code) - (or (eq (car split) 'indian-glyph) - (error "Charset of `%c' is not indian-glyph" char)) - (or (<= char indian-glyph-max-char) - (error "Invalid indian-glyph char: %d" char)) - (setq code (+ (* (- (nth 1 split) 32) 96) (nth 2 split) -32)) - (cons (% code 256) (aref indian-script-table (/ code 256))))) + (setq subst (cdr (assoc (match-string 0) alist)))) + (replace-match (if subst subst "?")))) + (indian-compose-region (point-min) (point-max)))))) (provide 'ind-util) diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 89b2ab44dbe..6e15474ac9d 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el @@ -33,21 +33,16 @@ ;;; Code: -(make-coding-system - 'in-is13194 2 ?D - "8-bit encoding for ASCII (MSB=0) and IS13194-Devanagari (MSB=1)." - '(ascii indian-is13194 nil nil - nil ascii-eol) - `((safe-chars . ,(let ((table (make-char-table 'safe-chars nil))) - (set-char-table-range table 'indian-is13194 t) - (dotimes (i 127) - (aset table i t) - (aset table (decode-char 'ucs (+ #x900 i)) t)) - table)) - (post-read-conversion . in-is13194-post-read-conversion) - (pre-write-conversion . in-is13194-pre-write-conversion))) - -(define-coding-system-alias 'devanagari 'in-is13194) +(define-coding-system 'in-is13194-devanagari + "8-bit encoding for ASCII (MSB=0) and IS13194-Devanagari (MSB=1)." + :coding-type 'iso-2022 + :mnemonic ?D + :designation [ascii indian-is13194 nil nil] + :charset-list '(ascii indian-is13194) + :post-read-conversion 'in-is13194-post-read-conversion + :pre-write-conversion 'in-is13194-pre-write-conversion) + +(define-coding-system-alias 'devanagari 'in-is13194-devanagari) (defvar indian-font-foundry 'cdac "Font foundry for Indian characters. @@ -160,18 +155,9 @@ Each Indian language environment sets this value to one of `indian-script-table' (which see). The default value is `devanagari'.") -(define-ccl-program ccl-encode-indian-glyph-font - `(0 - ;; Shorten (r1 = (((((r1 - 32) * 96) + r2) - 32) % 256)) - (r1 = ((((r1 * 96) + r2) - ,(+ (* 32 96) 32)) % 256)))) - -(setq font-ccl-encoder-alist - (cons (cons "-CDAC" 'ccl-encode-indian-glyph-font) - font-ccl-encoder-alist)) - -(setq font-ccl-encoder-alist - (cons (cons "-AKRUTI" 'ccl-encode-indian-glyph-font) - font-ccl-encoder-alist)) +(defvar indian-composable-pattern + (make-char-table nil) + "Char table of regexps for composable Indian character sequence.") (provide 'indian) diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el index ae58c5a793a..6e3680d6146 100644 --- a/lisp/language/japanese.el +++ b/lisp/language/japanese.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, Japanese @@ -33,85 +36,220 @@ ;;; Code: -(make-coding-system - 'iso-2022-jp 2 ?J - "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)." - '((ascii japanese-jisx0208-1978 japanese-jisx0208 - latin-jisx0201 japanese-jisx0212) nil nil nil - short ascii-eol ascii-cntl seven) - '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208 - latin-jisx0201 japanese-jisx0212) - (mime-charset . iso-2022-jp))) +;;; Load translation tables for CP932. +(load "international/cp51932") +(load "international/eucjp-ms") + +(define-coding-system 'iso-2022-jp + "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)." + :coding-type 'iso-2022 + :mnemonic ?J + :designation [(ascii japanese-jisx0208-1978 japanese-jisx0208 + latin-jisx0201) + nil nil nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation) + :charset-list '(ascii japanese-jisx0208 + japanese-jisx0208-1978 latin-jisx0201) + :mime-charset 'iso-2022-jp + :suitable-for-keyboard t) (define-coding-system-alias 'junet 'iso-2022-jp) -(make-coding-system - 'iso-2022-jp-2 2 ?J - "ISO 2022 based 7bit encoding for CJK, Latin-1, and Greek (MIME:ISO-2022-JP-2)." - '((ascii japanese-jisx0208-1978 japanese-jisx0208 - latin-jisx0201 japanese-jisx0212 - chinese-gb2312 korean-ksc5601) nil - (nil latin-iso8859-1 greek-iso8859-7) nil - short ascii-eol ascii-cntl seven nil single-shift nil nil nil init-bol) - '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208 - latin-jisx0201 japanese-jisx0212 - chinese-gb2312 korean-ksc5601 - latin-iso8859-1 greek-iso8859-7) - (mime-charset . iso-2022-jp-2))) - -(make-coding-system - 'japanese-shift-jis 1 ?S - "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)." - nil - '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978 - latin-jisx0201 katakana-jisx0201) - (mime-charset . shift_jis) - (charset-origin-alist (japanese-jisx0208 "SJIS" encode-sjis-char) - (katakana-jisx0201 "SJIS" encode-sjis-char)))) +(define-coding-system 'iso-2022-jp-2 + "ISO 2022 based 7bit encoding for CJK, Latin-1, Greek (MIME:ISO-2022-JP-2)." + :coding-type 'iso-2022 + :mnemonic ?J + :designation [(ascii japanese-jisx0208-1978 japanese-jisx0208 + latin-jisx0201 japanese-jisx0212 + chinese-gb2312 korean-ksc5601) + nil + (nil latin-iso8859-1 greek-iso8859-7) + nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation single-shift + init-at-bol) + :charset-list '(ascii japanese-jisx0208 japanese-jisx0212 + latin-jisx0201 japanese-jisx0208-1978 + chinese-gb2312 korean-ksc5601 + latin-iso8859-1 greek-iso8859-7) + :mime-charset 'iso-2022-jp-2 + :suitable-for-keyboard t) + +(let ((map ; JIS vs CP932 + '((#x301C . #xFF5E) ; WAVE DASH FULLWIDTH TILDE + (#x2014 . #x2015) ; EM DASH HORIZONTAL BAR + (#x2016 . #x2225) ; DOUBLE VERTICAL LINE PARALLEL TO + (#x2212 . #xFF0D) ; MINUS SIGN FULLWIDTH HYPHEN-MINUS + (#x00A2 . #xFFE0) ; CENT SIGN FULLWIDTH CENT SIGN + (#x00A3 . #xFFE1) ; POUND SIGN FULLWIDTH POUND SIGN + (#x00AC . #xFFE2) ; NOT SIGN FULLWIDTH NOT SIGN + (#x00A6 . #xFFE4) ; BROKEN LINE FULLWIDTH BROKEN LINE + ))) + (define-translation-table 'japanese-ucs-jis-to-cp932-map map) + (mapc #'(lambda (x) (let ((tmp (car x))) + (setcar x (cdr x)) (setcdr x tmp))) + map) + (define-translation-table 'japanese-ucs-cp932-to-jis-map map)) + +;; U+2014 (EM DASH) vs U+2015 (HORIZONTAL BAR) +(define-translation-table 'japanese-ucs-glibc-to-jis-map '((#x2015 . #x2014))) +(define-translation-table 'japanese-ucs-jis-to-glibc-map '((#x2014 . #x2015))) + +(define-coding-system 'japanese-shift-jis + "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)" + :coding-type 'shift-jis + :mnemonic ?S + :charset-list '(ascii katakana-jisx0201 japanese-jisx0208) + :mime-charset 'shift_jis) (define-coding-system-alias 'shift_jis 'japanese-shift-jis) (define-coding-system-alias 'sjis 'japanese-shift-jis) (define-coding-system-alias 'cp932 'japanese-shift-jis) -(make-coding-system - 'japanese-iso-7bit-1978-irv 2 ?j - "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman." - '((ascii japanese-jisx0208-1978 japanese-jisx0208 - latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil - short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis) - '(ascii japanese-jisx0208-1978 japanese-jisx0208 latin-jisx0201)) +(define-coding-system 'japanese-cp932 + "CP932 (Microsoft shift-jis)" + :coding-type 'charset + :mnemonic ?S + :charset-list '(ascii katakana-sjis cp932-2-byte)) + +(define-coding-system-alias 'cp932 'japanese-cp932) + +(define-coding-system 'japanese-iso-7bit-1978-irv + "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman." + :coding-type 'iso-2022 + :mnemonic ?j + :designation [(latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208 + japanese-jisx0212 katakana-jisx0201) + nil nil nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation + use-roman use-oldjis) + :charset-list '(ascii latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208 + japanese-jisx0212)) (define-coding-system-alias 'iso-2022-jp-1978-irv 'japanese-iso-7bit-1978-irv) (define-coding-system-alias 'old-jis 'japanese-iso-7bit-1978-irv) -(make-coding-system - 'japanese-iso-8bit 2 ?E - "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)." - '(ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212 - short ascii-eol ascii-cntl nil nil single-shift) - '((safe-charsets ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978 - katakana-jisx0201 japanese-jisx0212) - (mime-charset . euc-jp))) +(define-coding-system 'japanese-iso-8bit + "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)." + :coding-type 'iso-2022 + :mnemonic ?E + :designation [ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212] + :flags '(short ascii-at-eol ascii-at-cntl single-shift) + :charset-list '(ascii latin-jisx0201 japanese-jisx0208 + katakana-jisx0201 japanese-jisx0212 + japanese-jisx0208-1978) + :mime-charset 'euc-jp) (define-coding-system-alias 'euc-japan-1990 'japanese-iso-8bit) (define-coding-system-alias 'euc-japan 'japanese-iso-8bit) (define-coding-system-alias 'euc-jp 'japanese-iso-8bit) +(define-coding-system 'eucjp-ms + "eucJP-ms (like EUC-JP but with CP932 extension). +eucJP-ms is defined in <http://www.opengroup.or.jp/jvc/cde/appendix.html>." + :coding-type 'iso-2022 + :mnemonic ?E + :designation [ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212] + :flags '(short ascii-at-eol ascii-at-cntl single-shift) + :charset-list '(ascii latin-jisx0201 japanese-jisx0208 + katakana-jisx0201 japanese-jisx0212) + :decode-translation-table 'eucjp-ms-decode + :encode-translation-table 'eucjp-ms-encode) + +(define-coding-system 'iso-2022-jp-2004 + "ISO 2022 based 7bit encoding for JIS X 0213:2004 (MIME:ISO-2022-JP-2004)." + :coding-type 'iso-2022 + :mnemonic ?J + :designation [(ascii japanese-jisx0208 japanese-jisx0213.2004-1 + japanese-jisx0213-1 japanese-jisx0213-2) + nil nil nil] + :flags '(short ascii-at-eol ascii-at-cntl 7-bit designation) + ;; init-at-bol) + :charset-list '(ascii japanese-jisx0208 japanese-jisx0213.2004-1 + japanese-jisx0213-1 japanese-jisx0213-2) + :mime-charset 'iso-2022-jp-2004 + :suitable-for-keyboard t) + +(define-coding-system-alias 'iso-2022-jp-3 'iso-2022-jp-2004) + +(define-coding-system 'euc-jis-2004 + "ISO 2022 based EUC encoding for JIS X 0213 (MIME:EUC-JIS-2004)." + :coding-type 'iso-2022 + :mnemonic ?E + :designation [ascii japanese-jisx0213.2004-1 katakana-jisx0201 + japanese-jisx0213-2] + :flags '(short ascii-at-eol ascii-at-cntl single-shift) + :charset-list '(ascii latin-jisx0201 japanese-jisx0213.2004-1 + japanese-jisx0213-1 katakana-jisx0201 + japanese-jisx0213-2) + :mime-charset 'euc-jis-2004) + +(define-coding-system-alias 'euc-jisx0213 'euc-jis-2004) + +(define-coding-system 'japanese-shift-jis-2004 + "Shift_JIS 8-bit encodinf for Japanese (MIME:SHIFT_JIS-2004)" + :coding-type 'shift-jis + :mnemonic ?S + :charset-list '(ascii katakana-jisx0201 + japanese-jisx0213.2004-1 japanese-jisx0213-2)) + +(define-coding-system-alias 'shift_jis-2004 'japanese-shift-jis-2004) + (set-language-info-alist "Japanese" '((setup-function . setup-japanese-environment-internal) (tutorial . "TUTORIAL.ja") - (charset japanese-jisx0208 japanese-jisx0208-1978 + (charset japanese-jisx0208 japanese-jisx0212 latin-jisx0201 katakana-jisx0201 - japanese-jisx0213-1 japanese-jisx0213-2) + japanese-jisx0213.2004-1 japanese-jisx0213-1 + japanese-jisx0213-2 japanese-jisx0208-1978) (coding-system iso-2022-jp japanese-iso-8bit - japanese-shift-jis japanese-iso-7bit-1978-irv) + japanese-shift-jis japanese-iso-7bit-1978-irv + iso-2022-jp-2004 japanese-shift-jis-2004 + euc-jis-2004) (coding-priority iso-2022-jp japanese-iso-8bit - japanese-shift-jis iso-2022-jp-2) + japanese-shift-jis + iso-2022-jp-2004 euc-jis-2004 + japanese-shift-jis-2004 + iso-2022-jp-2) (input-method . "japanese") (features japan-util) (sample-text . "Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B") (documentation . t))) +(let ((map + ;; JISX0213-1 vs Unicode + '((#x2477 . [#x304B #x309A]) + (#x2478 . [#x304D #x309A]) + (#x2479 . [#x304F #x309A]) + (#x247a . [#x3051 #x309A]) + (#x247b . [#x3053 #x309A]) + (#x2577 . [#x30AB #x309A]) + (#x2578 . [#x30AD #x309A]) + (#x2579 . [#x30AF #x309A]) + (#x257a . [#x30B1 #x309A]) + (#x257b . [#x30B3 #x309A]) + (#x257c . [#x30BB #x309A]) + (#x257d . [#x30C4 #x309A]) + (#x257e . [#x30C8 #x309A]) + (#x2678 . [#x31F7 #x309A]) + (#x2b44 . [#x00E6 #x0300]) + (#x2b48 . [#x0254 #x0300]) + (#x2b49 . [#x0254 #x0301]) + (#x2b4a . [#x028C #x0300]) + (#x2b4b . [#x028C #x0301]) + (#x2b4c . [#x0259 #x0300]) + (#x2b4d . [#x0259 #x0301]) + (#x2b4e . [#x025A #x0300]) + (#x2b4f . [#x025A #x0301]) + (#x2b65 . [#x02E9 #x02E5]) + (#x2b66 . [#x02E5 #x02E9]))) + table) + (dolist (elt map) + (setcar elt (decode-char 'japanese-jisx0213-1 (car elt)))) + (setq table (make-translation-table-from-alist map)) + (define-translation-table 'jisx0213-to-unicode table) + (define-translation-table 'unicode-to-jisx0213 + (char-table-extra-slot table 0))) + (provide 'japanese) ;;; arch-tag: 450f5537-9d53-4d5e-b731-4cf116d8cbc9 diff --git a/lisp/language/kannada.el b/lisp/language/kannada.el index f720a9c7367..42299cc43d4 100644 --- a/lisp/language/kannada.el +++ b/lisp/language/kannada.el @@ -38,12 +38,16 @@ (features knd-util) (sample-text . (kannada-compose-string - (copy-sequence "Kannada (4$,43Ov#4z0$,1>u14$,44Kv#4zv#4M0$,1?(?M?(14$,43sv#4z0$,1?!1(B) 4$,44Kv#4z0$,1?(14$,44hv#4zv#40$,1?.14$,44qv#4{v#3Q0$,1?8?M>u?>14$,44av#4z0$,1?01(B"))) + (copy-sequence "Kannada ($,1>u?(?M?(?!(B) $,1?(?.?8?M>u?>?0(B"))) (documentation . "\ Kannada language and script is supported in this language environment.")) '("Indian")) +;; For automatic composition. +(set-char-table-range composition-function-table '(#x0c80 . #x0cff) + 'kannada-composition-function) + (provide 'kannada) ;;; arch-tag: 880ba90b-f6f5-4131-bc1d-930705b78416 diff --git a/lisp/language/knd-util.el b/lisp/language/knd-util.el index abb887347e7..5c54cbebf37 100644 --- a/lisp/language/knd-util.el +++ b/lisp/language/knd-util.el @@ -113,21 +113,18 @@ dummy) (function (lambda (x y) (> (length x) (length y)))))))) -(defun kannada-composition-function (from to pattern &optional string) - "Compose Kannada characters in REGION, or STRING if specified. -Assume that the REGION or STRING must fully match the composable -PATTERN regexp." - (if string (kannada-compose-syllable-string string) - (kannada-compose-syllable-region from to)) - (- to from)) - -;; Register a function to compose Kannada characters. -(mapc - (function (lambda (ucs) - (aset composition-function-table (decode-char 'ucs ucs) - (list (cons kannada-composable-pattern - 'kannada-composition-function))))) - (kannada-range #x0c80 #x0cff)) +;;;###autoload +(defun kannada-composition-function (pos &optional string) + "Compose Kannada characters after the position POS. +If STRING is not nil, it is a string, and POS is an index to the string. +In this case, compose characters after POS of the string." + (if string + ;; Not yet implemented. + nil + (goto-char pos) + (if (looking-at kannada-composable-pattern) + (prog1 (match-end 0) + (kannada-compose-syllable-region pos (match-end 0)))))) ;; Notes on conversion steps. @@ -298,8 +295,8 @@ Default value contains only the basic rules.") (defun knd-charseq (from &optional to) (if (null to) (setq to from)) - (mapcar (function (lambda (x) (indian-glyph-char x 'kannada))) - (kannada-range from to))) + (number-sequence (decode-char 'kannada-cdac from) + (decode-char 'kannada-cdac to))) (defvar knd-glyph-cv (append diff --git a/lisp/language/korean.el b/lisp/language/korean.el index e7f3ae68568..b59fb27f177 100644 --- a/lisp/language/korean.el +++ b/lisp/language/korean.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, Korean @@ -32,26 +35,28 @@ ;;; Code: -(make-coding-system - 'korean-iso-8bit 2 ?K - "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)." - '(ascii korean-ksc5601 nil nil - nil ascii-eol ascii-cntl) - '((safe-charsets ascii korean-ksc5601) - (mime-charset . euc-kr))) +(define-coding-system 'korean-iso-8bit + "ISO 2022 based EUC encoding for Korean KSC5601 (MIME:EUC-KR)." + :coding-type 'iso-2022 + :mnemonic ?K + :designation [ascii korean-ksc5601 nil nil] + :charset-list '(ascii korean-ksc5601) + :mime-charset 'euc-kr) (define-coding-system-alias 'euc-kr 'korean-iso-8bit) (define-coding-system-alias 'euc-korea 'korean-iso-8bit) (define-coding-system-alias 'cp949 'korean-iso-8bit) -(make-coding-system - 'iso-2022-kr 2 ?k - "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)." - '(ascii (nil korean-ksc5601) nil nil - nil ascii-eol ascii-cntl seven locking-shift nil nil nil nil nil - designation-bol) - '((safe-charsets ascii korean-ksc5601) - (mime-charset . iso-2022-kr))) +(define-coding-system 'iso-2022-kr + "ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)." + :coding-type 'iso-2022 + :mnemonic ?k + :designation [ascii (nil korean-ksc5601) nil nil] + :flags '(ascii-at-eol ascii-at-cntl 7-bit designation locking-shift + designation-bol) + :charset-list '(ascii korean-ksc5601) + :mime-charset 'iso-2022-kr + :suitable-for-keyboard t) (define-coding-system-alias 'korean-iso-7bit-lock 'iso-2022-kr) diff --git a/lisp/language/lao-util.el b/lisp/language/lao-util.el index 4df49a9ac23..6d3b985c0d3 100644 --- a/lisp/language/lao-util.el +++ b/lisp/language/lao-util.el @@ -5,8 +5,11 @@ ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: multilingual, Lao +;; Keywords: multilingual, Lao, i18n ;; This file is part of GNU Emacs. @@ -130,73 +133,7 @@ (?(1{(B invalid nil) (?(1|(B consonant "LETTER NHOR NHUU" "MOUSE") (?(1}(B consonant "LETTER MHOR MHAR" "DOG") - (?(1~(B invalid nil) - ;; Unicode equivalents - (?$,1D!(B consonant "LETTER KOR KAI'" "CHICKEN") - (?$,1D"(B consonant "LETTER KHOR KHAI'" "EGG") - (?$,1D$(B consonant "LETTER QHOR QHWARGN" "BUFFALO") - (?$,1D'(B consonant "LETTER NGOR NGUU" "SNAKE") - (?$,1D((B consonant "LETTER JOR JUA" "BUDDHIST NOVICE") - (?$,1D*(B consonant "LETTER XOR X\"ARNG" "ELEPHANT") - (?$,1D-(B consonant "LETTER YOR YUNG" "MOSQUITO") - (?$,1D4(B consonant "LETTER DOR DANG" "NOSE") - (?$,1D5(B consonant "LETTER TOR TAR" "EYE") - (?$,1D6(B consonant "LETTER THOR THUNG" "TO ASK,QUESTION") - (?$,1D7(B consonant "LETTER DHOR DHARM" "FLAG") - (?$,1D9(B consonant "LETTER NOR NOK" "BIRD") - (?$,1D:(B consonant "LETTER BOR BED" "FISHHOOK") - (?$,1D;(B consonant "LETTER POR PAR" "FISH") - (?$,1D<(B consonant "LETTER HPOR HPER\"" "BEE") - (?$,1D=(B consonant "LETTER FHOR FHAR" "WALL") - (?$,1D>(B consonant "LETTER PHOR PHUU" "MOUNTAIN") - (?$,1D?(B consonant "LETTER FOR FAI" "FIRE") - (?$,1DA(B consonant "LETTER MOR MAR\"" "HORSE") - (?$,1DB(B consonant "LETTER GNOR GNAR" "MEDICINE") - (?$,1DC(B consonant "LETTER ROR ROD" "CAR") - (?$,1DE(B consonant "LETTER LOR LIING" "MONKEY") - (?$,1DG(B consonant "LETTER WOR WII" "HAND FAN") - (?$,1DJ(B consonant "LETTER SOR SEA" "TIGER") - (?$,1DK(B consonant "LETTER HHOR HHAI" "JAR") - (?$,1DM(B consonant "LETTER OR OOW" "TAKE") - (?$,1DN(B consonant "LETTER HOR HEA" "BOAT") - (?$,1DO(B special "ELLIPSIS") - (?$,1DP(B vowel-base "VOWEL SIGN SARA A") - (?$,1DQ(B vowel-upper "VOWEL SIGN MAI KAN") - (?$,1DR(B vowel-base "VOWEL SIGN SARA AR") - (?$,1DS(B vowel-base "VOWEL SIGN SARA AM") - (?$,1DT(B vowel-upper "VOWEL SIGN SARA I") - (?$,1DU(B vowel-upper "VOWEL SIGN SARA II") - (?$,1DV(B vowel-upper "VOWEL SIGN SARA EU") - (?$,1DW(B vowel-upper "VOWEL SIGN SARA UR") - (?$,1DX(B vowel-lower "VOWEL SIGN SARA U") - (?$,1DY(B vowel-lower "VOWEL SIGN SARA UU") - (?$,1D[(B vowel-upper "VOWEL SIGN MAI KONG") - (?$,1D\(B semivowel-lower "SEMIVOWEL SIGN LO") - (?$,1D](B vowel-base "SEMIVOWEL SIGN SARA IA") - (?$,1D`(B vowel-base "VOWEL SIGN SARA EE") - (?$,1Da(B vowel-base "VOWEL SIGN SARA AA") - (?$,1Db(B vowel-base "VOWEL SIGN SARA OO") - (?$,1Dc(B vowel-base "VOWEL SIGN SARA EI MAI MUAN\"") - (?$,1Dd(B vowel-base "VOWEL SIGN SARA AI MAI MAY") - (?$,1Df(B special "KO LA (REPETITION)") - (?$,1Dh(B tone "TONE MAI EK") - (?$,1Di(B tone "TONE MAI THO") - (?$,1Dj(B tone "TONE MAI TI") - (?$,1Dk(B tone "TONE MAI JADTAWAR") - (?$,1Dl(B tone "CANCELLATION MARK") - (?$,1Dm(B vowel-upper "VOWEL SIGN SARA OR") - (?$,1Dp(B special "DIGIT ZERO") - (?$,1Dq(B special "DIGIT ONE") - (?$,1Dr(B special "DIGIT TWO") - (?$,1Ds(B special "DIGIT THREE") - (?$,1Dt(B special "DIGIT FOUR") - (?$,1Du(B special "DIGIT FIVE") - (?$,1Dv(B special "DIGIT SIX") - (?$,1Dw(B special "DIGIT SEVEN") - (?$,1Dx(B special "DIGIT EIGHT") - (?$,1Dy(B special "DIGIT NINE") - (?$,1D|(B consonant "LETTER NHOR NHUU" "MOUSE") - (?$,1D}(B consonant "LETTER MHOR MHAR" "DOG"))) + (?(1~(B invalid nil))) elm) (while l (setq elm (car l) l (cdr l)) @@ -221,10 +158,10 @@ ;; CV -> C, CT -> C, CVT -> C, Cv -> C, CvT -> C ;; v v ;; T -;; V T V T -;; CsV -> C, CsT -> C, CsVT -> C, Csv -> C, CvT -> C -;; s s s s s -;; v v +;; V T V T +;; CsV -> C, CsT -> C, CsVT -> C, Csv -> C, CsvT -> C +;; s s s s s +;; v v ;; where C: consonant, V: vowel upper, v: vowel lower, @@ -424,37 +361,7 @@ ("(1d(B" (?(1d(B 0)) ("(1c(B" (?(1c(B 0)) ("(1`[R(B" (?(1`(B 0 ?(1[(B ?(1R(B)) - ("(1S(B" (0 ?(1S(B)) - - ;; Unicode equivalents - ("$,1DP(B" (0 ?$,1DP(B) (0 ?$,1DQ(B)) - ("$,1DR(B" (0 ?$,1DR(B)) - ("$,1DT(B" (0 ?$,1DU(B)) - ("$,1DU(B" (0 ?$,1DU(B)) - ("$,1DV(B" (0 ?$,1DV(B)) - ("$,1DW(B" (0 ?$,1DW(B)) - ("$,1DX(B" (0 ?$,1DX(B)) - ("$,1DY(B" (0 ?$,1DY(B)) - ("$,1D`DP(B" (?$,1D`(B 0 ?$,1DP(B) (?$,1D`(B 0 ?$,1DQ(B)) - ("$,1D`(B" (?$,1D`(B 0)) - ("$,1DaDP(B" (?$,1Da(B 0 ?$,1DP(B) (?$,1Da(B 0 ?$,1DQ(B)) - ("$,1Da(B" (?$,1Da(B 0)) - ("$,1DbDP(B" (?$,1Db(B 0 ?$,1DP(B) (0 ?$,1D[(B) (?$,1D-(B ?$,1Db(B 0 ?$,1DQ(B) (?$,1DG(B ?$,1Db(B 0 ?$,1DQ(B)) - ("$,1Db(B" (?$,1Db(B 0)) - ("$,1D`DRDP(B" (?$,1D`(B 0 ?$,1DR(B ?$,1DP(B) (0 ?$,1DQ(B ?$,1DM(B)) - ("$,1Dm(B" (0 ?$,1Dm(B) (0 ?$,1DM(B)) - ("$,1D`DT(B" (?$,1D`(B 0 ?$,1DT(B)) - ("$,1D`DU(B" (?$,1D`(B 0 ?$,1DU(B)) - ("$,1D[DGDP(B" (0 ?$,1D[(B ?$,1DG(B ?$,1DP(B) (0 ?$,1DQ(B ?$,1DG(B)) - ("$,1D[DG(B" (0 ?$,1D[(B ?$,1DG(B) (0 ?$,1DG(B)) - ("$,1D`DQD]DP(B" (?$,1D`(B 0 ?$,1DQ(B ?$,1D](B ?$,1DP(B) (0 ?$,1DQ(B ?$,1D](B)) - ("$,1D`DQD](B" (?$,1D`(B 0 ?$,1DQ(B ?$,1D](B) (0 ?$,1D](B)) - ("$,1D`DVDM(B" (?$,1D`(B 0 ?$,1DV(B ?$,1DM(B)) - ("$,1D`DWDM(B" (?$,1D`(B 0 ?$,1DW(B ?$,1DM(B)) - ("$,1Dd(B" (?$,1Dd(B 0)) - ("$,1Dc(B" (?$,1Dc(B 0)) - ("$,1D`D[DR(B" (?$,1D`(B 0 ?$,1D[(B ?$,1DR(B)) - ("$,1DS(B" (0 ?$,1DS(B))) + ("(1S(B" (0 ?(1S(B))) "Alist of Lao vowel string vs the corresponding re-ordering rule. Each element has this form: (VOWEL NO-MAA-SAKOD-RULE WITH-MAA-SAKOD-RULE (MAA-SAKOD-0 RULE-0) ...) @@ -585,24 +492,20 @@ syllable. In that case, FROM and TO are indexes to STR." lao-str))) ;;;###autoload -(defun lao-post-read-conversion (len) - (lao-compose-region (point) (+ (point) len)) - len) - -;;;###autoload -(defun lao-composition-function (from to pattern &optional string) - "Compose Lao text in the region FROM and TO. -The text matches the regular expression PATTERN. -Optional 4th argument STRING, if non-nil, is a string containing text -to compose. - -The return value is number of composed characters." - (if (< (1+ from) to) - (progn - (if string - (compose-string string from to) - (compose-region from to)) - (- to from)))) +(defun lao-composition-function (pos &optional string) + (setq pos (1- pos)) + (with-category-table lao-category-table + (if string + (if (and (>= pos 0) + (eq (string-match lao-composition-pattern string pos) pos)) + (prog1 (match-end 0) + (compose-string string pos (match-end 0)))) + (if (>= pos (point-min)) + (save-excursion + (goto-char pos) + (if (looking-at lao-composition-pattern) + (prog1 (match-end 0) + (compose-region pos (match-end 0))))))))) ;;;###autoload (defun lao-compose-region (from to) diff --git a/lisp/language/lao.el b/lisp/language/lao.el index 22991b3d3df..e9b62efacd5 100644 --- a/lisp/language/lao.el +++ b/lisp/language/lao.el @@ -4,6 +4,9 @@ ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: multilingual, Lao @@ -28,41 +31,26 @@ ;;; Code: -(make-coding-system - 'lao 2 ?L - "8-bit encoding for ASCII (MSB=0) and LAO (MSB=1)." - '(ascii lao nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii lao) - (post-read-conversion . lao-post-read-conversion))) +(define-coding-system 'lao + "8-bit encoding for ASCII (MSB=0) and LAO (MSB=1)." + :coding-type 'charset + :mnemonic ?L + :charset-list '(lao)) (set-language-info-alist "Lao" '((charset lao) (coding-system lao) (coding-priority lao) (input-method . "lao") - (nonascii-translation . lao) (unibyte-display . lao) (features lao-util) (documentation . t))) -(aset use-default-ascent ?(1;(B t) -(aset use-default-ascent ?$,1D;(B t) -(aset use-default-ascent ?(1=(B t) -(aset use-default-ascent ?$,1D=(B t) -(aset use-default-ascent ?(1?(B t) -(aset use-default-ascent ?$,1D?(B t) -(aset use-default-ascent ?(1B(B t) -(aset use-default-ascent ?$,1DB(B t) -(aset ignore-relative-composition ?(1\(B t) -(aset ignore-relative-composition ?$,1D\(B t) - -;; Register a function to compose Lao characters. -(let ((patterns '(("\\c0\\c9?\\(\\(\\c2\\|\\c3\\)\\c4?\\|\\c4\\)?" - . lao-composition-function)))) - (aset composition-function-table (make-char 'lao) patterns) - (dotimes (i (1+ (- #xeff #xe80))) - (aset composition-function-table (decode-char 'ucs (+ i #xe80)) patterns))) +;; For automatic composition. +(let ((chars "(1QTUVWXY[\hijklm(B")) + (dotimes (i (length chars)) + (aset composition-function-table (aref chars i) + 'lao-composition-function))) (provide 'lao) diff --git a/lisp/language/malayalam.el b/lisp/language/malayalam.el index 731a9ae67af..1b7038936a6 100644 --- a/lisp/language/malayalam.el +++ b/lisp/language/malayalam.el @@ -41,6 +41,11 @@ South Indian language Malayalam is supported in this language environment.")) '("Indian")) +;; For automatic composition. +(set-char-table-range composition-function-table '(#x0d00 . #x0d7f) + 'malayalam-composition-function) + + (provide 'malayalam) ;;; arch-tag: 5f500e53-1e4f-4bb2-aa93-ad8736f0349f diff --git a/lisp/language/misc-lang.el b/lisp/language/misc-lang.el index c7328eb83a2..ab2c0bd2a7c 100644 --- a/lisp/language/misc-lang.el +++ b/lisp/language/misc-lang.el @@ -43,6 +43,16 @@ IPA is International Phonetic Alphabet for English, French, German and Italian."))) +;; This is for Arabic. But, as we still don't have Arabic language +;; support, we at least define a coding system here. + +(define-coding-system 'iso-8859-6 + "ISO-8859-6 based encoding (MIME:ISO-8859-6)." + :coding-type 'charset + :mnemonic ?6 + :charset-list '(iso-8859-6) + :mime-charset 'iso-8859-6) + (provide 'misc-lang) ;;; arch-tag: 6953585c-1a1a-4c09-be82-a2518afb6074 diff --git a/lisp/language/mlm-util.el b/lisp/language/mlm-util.el index c5244279837..45d78c7019b 100644 --- a/lisp/language/mlm-util.el +++ b/lisp/language/mlm-util.el @@ -101,21 +101,17 @@ ;;;###autoload -(defun malayalam-composition-function (from to pattern &optional string) - "Compose Malayalam characters in REGION, or STRING if specified. -Assume that the REGION or STRING must fully match the composable -PATTERN regexp." - (if string (malayalam-compose-syllable-string string) - (malayalam-compose-syllable-region from to)) - (- to from)) - -;; Register a function to compose Malayalam characters. -(mapc - (function (lambda (ucs) - (aset composition-function-table (decode-char 'ucs ucs) - (list (cons malayalam-composable-pattern - 'malayalam-composition-function))))) - (nconc '(#x0d02 #x0d03) (malayalam-range #x0d05 #x0d39))) +(defun malayalam-composition-function (pos &optional string) + "Compose Malayalam characters after the position POS. +If STRING is not nil, it is a string, and POS is an index to the string. +In this case, compose characters after POS of the string." + (if string + ;; Not yet implemented. + nil + (goto-char pos) + (if (looking-at malayalam-composable-pattern) + (prog1 (match-end 0) + (malayalam-compose-syllable-region pos (match-end 0)))))) ;; Notes on conversion steps. @@ -380,10 +376,16 @@ PATTERN regexp." (narrow-to-region from to) (goto-char (point-min)) ;; char-glyph-conversion - (while (re-search-forward mlm-char-glyph-regexp nil t) - (setq match-str (match-string 0)) - (setq glyph-str - (concat glyph-str (gethash match-str mlm-char-glyph-hash)))) + (while (not (eobp)) + (if (looking-at mlm-char-glyph-regexp) + (progn + (setq match-str (match-string 0) + glyph-str + (concat glyph-str + (gethash match-str mlm-char-glyph-hash))) + (goto-char (match-end 0))) + (setq glyph-str (concat glyph-str (string (following-char)))) + (forward-char 1))) (when (string-match mlm-glyph-reorder-key-glyphs glyph-str) ;; glyph reordering (setq glyph-reorder-regexps mlm-glyph-reordering-regexp-list) diff --git a/lisp/language/romanian.el b/lisp/language/romanian.el index 80e27b3b8f0..3c3b9d628a1 100644 --- a/lisp/language/romanian.el +++ b/lisp/language/romanian.el @@ -4,7 +4,7 @@ ;; Free Software Foundation. ;; Author: Dan Nicolaescu <done@ece.arizona.edu> -;; Keywords: multilingual, Romanian +;; Keywords: multilingual, Romanian, i18n ;; This file is part of GNU Emacs. @@ -25,23 +25,33 @@ ;;; Commentary: -;; Romanian ISO 8859-2 environment. +;; Romanian ISO 8859-2 environment plus 8859-16 coding system. ;;; Code: (set-language-info-alist - "Romanian" '((charset . (ascii latin-iso8859-2)) - (coding-system . (iso-8859-2)) - (coding-priority . (iso-8859-2)) - (nonascii-translation . latin-iso8859-2) + "Romanian" '((charset iso-8859-2) + (coding-system iso-8859-2 iso-latin-10) + (coding-priority iso-8859-2) + (nonascii-translation . iso-8859-2) (input-method . "latin-2-postfix") - (unibyte-syntax . "latin-2") (unibyte-display . iso-8859-2) (tutorial . "TUTORIAL.ro") (sample-text . "Bun ziua, bine ai venit!") - (documentation . t)) + (documentation . "Rmoanian environment using Latin-2 encoding. +An environment for generic Latin-10 encoding is also available.")) '("European")) +(define-coding-system 'iso-latin-10 + "ISO 2022 based 8-bit encoding for Latin-10." + :coding-type 'charset + :mnemonic ?* + :charset-list '(iso-8859-16) + :mime-charset 'iso-8859-16) + +(define-coding-system-alias 'iso-8859-16 'iso-latin-10) +(define-coding-system-alias 'latin-10 'iso-latin-10) + (provide 'romanian) ;;; arch-tag: a0bf93ee-2f02-4678-a477-c08acc35366b diff --git a/lisp/language/slovak.el b/lisp/language/slovak.el index 6b7fa1f6653..fd2ad98aa44 100644 --- a/lisp/language/slovak.el +++ b/lisp/language/slovak.el @@ -35,9 +35,8 @@ "Slovak" '((charset . (ascii latin-iso8859-2)) (coding-system . (iso-8859-2)) (coding-priority . (iso-8859-2)) - (nonascii-translation . latin-iso8859-2) + (nonascii-translation . iso-8859-2) (input-method . "slovak") - (unibyte-syntax . "latin-2") (unibyte-display . iso-8859-2) (tutorial . "TUTORIAL.sk") (sample-text . "Prajeme V,Ba(Bm pr,Bm(Bjemn,B}(B de,Br(B!") diff --git a/lisp/language/tai-viet.el b/lisp/language/tai-viet.el new file mode 100644 index 00000000000..faa666d5533 --- /dev/null +++ b/lisp/language/tai-viet.el @@ -0,0 +1,68 @@ +;;; tai-viet.el --- support for Tai Viet -*- coding: utf-8; no-byte-compile: t -*- + +;; Copyright (C) 2007 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 +;; Copyright (C) 2007 Free Software Foundation, Inc. + +;; Keywords: multilingual, Tai Viet, i18n + +;; 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. + +;;; Commentary: + +;; Tai Viet is being included in the Unicode at the range U+AA80..U+AADF. + +;;; Code: + +(set-char-table-range composition-function-table + '(#xAA80 . #xAADF) + 'tai-viet-composition-function) + +(set-language-info-alist + "TaiViet" '((charset unicode) + (coding-system utf-8) + (coding-priority utf-8) + (input-method . "tai-sonla") + (sample-text + "TaiViet (ꪁꪫꪱꪣ ꪽꪕ)\t\tꪅꪰꪙ ꪨꪮ ꪁꪫꪱ / ꪅꪾ ꪨ� ꪁꪫꪱ") + (documentation . "\ +TaiViet refers to the Tai language used by Tai people in +Vietnam, and also refers to the script used for this language. +Both the script and language have the same origin as that of Thai +language/script used in Thailand, but now they differ from each +other in a significant way (especially the scripts are). + +The language name is spelled as \"ꪁꪫꪱꪣ ꪽꪕ\", and the script name is +spelled as \"ꪎ� ꪽꪕ\" in the modern form, \"ꪎꪴ ꪽꪕ\" in the traditional +from. + +As the proposal for TaiViet script to the Unicode is still on +the progress, we use the Private Use Area for TaiViet +characters (U+F000..U+F07E). A TaiViet font encoded accordingly +is available at this web page: + http://www.m17n.org/TaiViet/ +"))) + +(provide 'tai-viet) + +;; Local Variables: +;; coding: utf-8 +;; End: + +;; arch-tag: db4e3377-2ba7-47a0-b173-e44420d540c3 diff --git a/lisp/language/tamil.el b/lisp/language/tamil.el index 08f16e273c8..fcb7f8f5774 100644 --- a/lisp/language/tamil.el +++ b/lisp/language/tamil.el @@ -38,6 +38,9 @@ South Indian Language Tamil supported in this language environment.")) '("Indian")) +;; For automatic composition. +(set-char-table-range composition-function-table '(#x0b80 . #x0bff) + 'tamil-composition-function) (provide 'tamil) ;;; arch-tag: 2201ac78-7d1e-4674-9bcb-9923c7a2bd9c diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el index 7696f634211..5302a8d5a60 100644 --- a/lisp/language/thai-util.el +++ b/lisp/language/thai-util.el @@ -3,11 +3,11 @@ ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) -;; Registration Number H14PRO021 +;; Registration Number H13PRO009 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; Free Software Foundation, Inc. -;; Keywords: mule, multilingual, thai +;; Keywords: mule, multilingual, Thai, i18n ;; This file is part of GNU Emacs. @@ -58,17 +58,6 @@ "\\cc\\(\\cu\\|\\cI\\cU\\|\\cv\\ct?\\)\\|\\cv\\ct\\|\\cI\\cU" "Regular expression matching a Thai composite sequence.") -(defun thai-self-insert-command (&optional n) - "Insert the Thai character you type. -The character will be composed with the surrounding Thai character -if necessary." - (interactive "*p") - (let ((pos (point)) - category-set ch) - (self-insert-command n) - (or thai-auto-composition-mode - (thai-auto-composition (1- (point)) (point) 0)))) - (let ((l '((?,T!(B consonant "LETTER KO KAI") ; 0xA1 (?,T"(B consonant "LETTER KHO KHAI") ; 0xA2 (?,T#(B consonant "LETTER KHO KHUAT") ; 0xA3 @@ -163,95 +152,6 @@ if necessary." (?,T|(B invalid nil) ; 0xFC (?,T}(B invalid nil) ; 0xFD (?,T~(B invalid nil) ; 0xFE - - ;; Unicode equivalents - (?$,1Ba(B consonant "LETTER KO KAI") - (?$,1Bb(B consonant "LETTER KHO KHAI") - (?$,1Bc(B consonant "LETTER KHO KHUAT") - (?$,1Bd(B consonant "LETTER KHO KHWAI") - (?$,1Be(B consonant "LETTER KHO KHON") - (?$,1Bf(B consonant "LETTER KHO RAKHANG") - (?$,1Bg(B consonant "LETTER NGO NGU") - (?$,1Bh(B consonant "LETTER CHO CHAN") - (?$,1Bi(B consonant "LETTER CHO CHING") - (?$,1Bj(B consonant "LETTER CHO CHANG") - (?$,1Bk(B consonant "LETTER SO SO") - (?$,1Bl(B consonant "LETTER CHO CHOE") - (?$,1Bm(B consonant "LETTER YO YING") - (?$,1Bn(B consonant "LETTER DO CHADA") - (?$,1Bo(B consonant "LETTER TO PATAK") - (?$,1Bp(B consonant "LETTER THO THAN") - (?$,1Bq(B consonant "LETTER THO NANGMONTHO") - (?$,1Br(B consonant "LETTER THO PHUTHAO") - (?$,1Bs(B consonant "LETTER NO NEN") - (?$,1Bt(B consonant "LETTER DO DEK") - (?$,1Bu(B consonant "LETTER TO TAO") - (?$,1Bv(B consonant "LETTER THO THUNG") - (?$,1Bw(B consonant "LETTER THO THAHAN") - (?$,1Bx(B consonant "LETTER THO THONG") - (?$,1By(B consonant "LETTER NO NU") - (?$,1Bz(B consonant "LETTER BO BAIMAI") - (?$,1B{(B consonant "LETTER PO PLA") - (?$,1B|(B consonant "LETTER PHO PHUNG") - (?$,1B}(B consonant "LETTER FO FA") - (?$,1B~(B consonant "LETTER PHO PHAN") - (?$,1B(B consonant "LETTER FO FAN") - (?$,1C (B consonant "LETTER PHO SAMPHAO") - (?$,1C!(B consonant "LETTER MO MA") - (?$,1C"(B consonant "LETTER YO YAK") - (?$,1C#(B consonant "LETTER RO RUA") - (?$,1C$(B vowel-base "LETTER RU (Pali vowel letter)") - (?$,1C%(B consonant "LETTER LO LING") - (?$,1C&(B vowel-base "LETTER LU (Pali vowel letter)") - (?$,1C'(B consonant "LETTER WO WAEN") - (?$,1C((B consonant "LETTER SO SALA") - (?$,1C)(B consonant "LETTER SO RUSI") - (?$,1C*(B consonant "LETTER SO SUA") - (?$,1C+(B consonant "LETTER HO HIP") - (?$,1C,(B consonant "LETTER LO CHULA") - (?$,1C-(B consonant "LETTER O ANG") - (?$,1C.(B consonant "LETTER HO NOK HUK") - (?$,1C/(B special "PAI YAN NOI (abbreviation)") - (?$,1C0(B vowel-base "VOWEL SIGN SARA A") - (?$,1C1(B vowel-upper "VOWEL SIGN MAI HAN-AKAT N/S-T") - (?$,1C2(B vowel-base "VOWEL SIGN SARA AA") - (?$,1C3(B vowel-base "VOWEL SIGN SARA AM") - (?$,1C4(B vowel-upper "VOWEL SIGN SARA I N/S-T") - (?$,1C5(B vowel-upper "VOWEL SIGN SARA II N/S-T") - (?$,1C6(B vowel-upper "VOWEL SIGN SARA UE N/S-T") - (?$,1C7(B vowel-upper "VOWEL SIGN SARA UEE N/S-T") - (?$,1C8(B vowel-lower "VOWEL SIGN SARA U N/S-B") - (?$,1C9(B vowel-lower "VOWEL SIGN SARA UU N/S-B") - (?$,1C:(B vowel-lower "VOWEL SIGN PHINTHU N/S-B (Pali virama)") - (?$,1C?(B special "BAHT SIGN (currency symbol)") - (?$,1C@(B vowel-base "VOWEL SIGN SARA E") - (?$,1CA(B vowel-base "VOWEL SIGN SARA AE") - (?$,1CB(B vowel-base "VOWEL SIGN SARA O") - (?$,1CC(B vowel-base "VOWEL SIGN SARA MAI MUAN") - (?$,1CD(B vowel-base "VOWEL SIGN SARA MAI MALAI") - (?$,1CE(B vowel-base "LAK KHANG YAO") - (?$,1CF(B special "MAI YAMOK (repetion)") - (?$,1CG(B sign-upper "VOWEL SIGN MAI TAI KHU N/S-T") - (?$,1CH(B tone "TONE MAI EK N/S-T") - (?$,1CI(B tone "TONE MAI THO N/S-T") - (?$,1CJ(B tone "TONE MAI TRI N/S-T") - (?$,1CK(B tone "TONE MAI CHATTAWA N/S-T") - (?$,1CL(B sign-upper "THANTHAKHAT N/S-T (cancellation mark)") - (?$,1CM(B sign-upper "NIKKHAHIT N/S-T (final nasal)") - (?$,1CN(B sign-upper "YAMAKKAN N/S-T") - (?$,1CO(B special "FONRMAN") - (?$,1CP(B special "DIGIT ZERO") - (?$,1CQ(B special "DIGIT ONE") - (?$,1CR(B special "DIGIT TWO") - (?$,1CS(B special "DIGIT THREE") - (?$,1CT(B special "DIGIT FOUR") - (?$,1CU(B special "DIGIT FIVE") - (?$,1CV(B special "DIGIT SIX") - (?$,1CW(B special "DIGIT SEVEN") - (?$,1CX(B special "DIGIT EIGHT") - (?$,1CY(B special "DIGIT NINE") - (?$,1CZ(B special "ANGKHANKHU (ellipsis)") - (?$,1C[(B special "KHOMUT (beginning of religious texts)") )) elm) (while l @@ -260,24 +160,20 @@ if necessary." (ptype (nth 1 elm))) (put-char-code-property char 'phonetic-type ptype) (cond ((eq ptype 'consonant) - (modify-category-entry char ?c thai-category-table) - (global-set-key (vector char) 'thai-self-insert-command)) + (modify-category-entry char ?c thai-category-table)) ((memq ptype '(vowel-upper vowel-lower)) (modify-category-entry char ?v thai-category-table) - (if (or (= char ?,TT(B) (= char ?$,1C4(B)) + (if (= char ?,TT(B) ;; Give category `I' to "SARA I". - (modify-category-entry char ?I thai-category-table)) - (global-set-key (vector char) 'thai-self-insert-command)) + (modify-category-entry char ?I thai-category-table))) ((eq ptype 'tone) (modify-category-entry char ?t thai-category-table) - (modify-category-entry char ?u thai-category-table) - (global-set-key (vector char) 'thai-self-insert-command)) + (modify-category-entry char ?u thai-category-table)) ((eq ptype 'sign-upper) (modify-category-entry char ?u thai-category-table) - (if (or (= char ?,Tl(B) (= char ?$,1CL(B)) + (if (= char ?,Tl(B) ;; Give category `U' to "THANTHAKHAT". - (modify-category-entry char ?U thai-category-table)) - (global-set-key (vector char) 'thai-self-insert-command))) + (modify-category-entry char ?U thai-category-table)))) (put-char-code-property char 'name (nth 2 elm))))) (defun thai-compose-syllable (beg end &optional category-set string) @@ -333,57 +229,20 @@ positions (integers or markers) specifying the region." (thai-compose-region (point-min) (point-max))) ;;;###autoload -(defun thai-post-read-conversion (len) - (thai-compose-region (point) (+ (point) len)) - len) - -;;;###autoload -(defun thai-composition-function (from to pattern &optional string) - "Compose Thai text in the region FROM and TO. -The text matches the regular expression PATTERN. -Optional 4th argument STRING, if non-nil, is a string containing text -to compose. - -The return value is number of composed characters." - (when (and (not thai-auto-composition-mode) - (< (1+ from) to)) - (with-category-table thai-category-table - (if string - (if (eq (string-match thai-composition-pattern string from) from) - (thai-compose-syllable from (match-end 0) nil string)) - (if (save-excursion - (goto-char from) - (and (looking-at thai-composition-pattern) - (setq to (match-end 0)))) - (thai-compose-syllable from to)))))) - -(defun thai-auto-composition (beg end len) +(defun thai-composition-function (pos &optional string) + (setq pos (1- pos)) (with-category-table thai-category-table - (let (category-set) - (while (and (> beg (point-min)) - (setq category-set (char-category-set (char-after (1- beg)))) - (or (aref category-set ?v) (aref category-set ?u))) - (setq beg (1- beg))) - (if (and (> beg (point-min)) - (aref (char-category-set (char-after (1- beg))) ?c)) - (setq beg (1- beg))) - (while (and (< end (point-max)) - (setq category-set (char-category-set (char-after end))) - (or (aref category-set ?v) (aref category-set ?u))) - (setq end (1+ end))) - (if (< beg end) - (thai-compose-region beg end))))) - -(put 'thai-auto-composition-mode 'permanent-local t) - -;;;###autoload -(define-minor-mode thai-auto-composition-mode - "Minor mode for automatically correct Thai character composition." - :group 'mule - (cond ((null thai-auto-composition-mode) - (remove-hook 'after-change-functions 'thai-auto-composition)) - (t - (add-hook 'after-change-functions 'thai-auto-composition)))) + (if string + (if (and (>= pos 0) + (eq (string-match thai-composition-pattern string pos) pos)) + (prog1 (match-end 0) + (thai-compose-syllable pos (match-end 0) nil string))) + (if (>= pos (point-min)) + (progn + (goto-char pos) + (if (looking-at thai-composition-pattern) + (prog1 (match-end 0) + (thai-compose-syllable pos (match-end 0))))))))) ;; Thai-word-mode requires functions in the feature `thai-word'. (require 'thai-word) diff --git a/lisp/language/thai.el b/lisp/language/thai.el index 98fe8ea77a1..7008cc9d380 100644 --- a/lisp/language/thai.el +++ b/lisp/language/thai.el @@ -3,11 +3,14 @@ ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 +;; Copyright (C) 2005 +;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 ;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007 Free Software Foundation, Inc. -;; Keywords: multilingual, Thai +;; Keywords: multilingual, Thai, i18n ;; This file is part of GNU Emacs. @@ -32,14 +35,11 @@ ;;; Code: -(make-coding-system - 'thai-tis620 2 ?T - "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)." - '(ascii thai-tis620 nil nil - nil nil nil nil nil nil nil nil nil nil nil t) - '((safe-charsets ascii thai-tis620) - (mime-charset . tis-620) - (post-read-conversion . thai-post-read-conversion))) +(define-coding-system 'thai-tis620 + "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)." + :coding-type 'charset + :mnemonic ?T + :charset-list '(tis620-2533)) (define-coding-system-alias 'th-tis620 'thai-tis620) (define-coding-system-alias 'tis620 'thai-tis620) @@ -48,9 +48,9 @@ (set-language-info-alist "Thai" '((tutorial . "TUTORIAL.th") (charset thai-tis620) - (coding-system thai-tis620) + (coding-system thai-tis620 iso-8859-11 cp874) (coding-priority thai-tis620) - (nonascii-translation . thai-tis620) + (nonascii-translation . tis620-2533) (input-method . "thai-kesmanee") (unibyte-display . thai-tis620) (features thai-util) @@ -58,16 +58,30 @@ (exit-function . exit-thai-language-environment-internal) (sample-text . (thai-compose-string - (copy-sequence "Thai (,T@RIRd7B(B) ,TJ0GQ1J04U1$0CQ1:(B, ,TJ0GQ1J04U10$h1P(B"))) + (copy-sequence "Thai (,T@RIRd7B(B) ,TJGQJ4U$CQ:(B, ,TJGQJ4U$hP(B"))) (documentation . t))) - -;; Register a function to compose Thai characters. -(let ((patterns '(("\\c0?\\(\\c2\\|\\c3\\|\\c4\\)+" - . thai-composition-function)))) - (aset composition-function-table (make-char 'thai-tis620) patterns) - (dotimes (i (1+ (- #xe7f #xe00))) - (aset composition-function-table (decode-char 'ucs (+ i #xe00)) patterns))) +(define-coding-system 'cp874 + "DOS codepage 874 (Thai)" + :coding-type 'charset + :mnemonic ?D + :charset-list '(cp874) + :mime-charset 'cp874) +(define-coding-system-alias 'ibm874 'cp874) + +(define-coding-system 'iso-8859-11 + "ISO/IEC 8859/11 (Latin/Thai) +This is the same as `thai-tis620' with the addition of no-break-space." + :coding-type 'charset + :mnemonic ?* + :mime-charset 'iso-8859-11 ; not actually registered as of 2002-05-24 + :charset-list '(iso-8859-11)) + +;; For automatic composition. +(let ((chars ",TQTUVWXYZghijklmn(B")) + (dotimes (i (length chars)) + (aset composition-function-table (aref chars i) + 'thai-composition-function))) (provide 'thai) diff --git a/lisp/language/tibet-util.el b/lisp/language/tibet-util.el index b0c38d40c2d..e9f5e67df9d 100644 --- a/lisp/language/tibet-util.el +++ b/lisp/language/tibet-util.el @@ -40,13 +40,13 @@ ;;; Code: (defconst tibetan-obsolete-glyphs - `(("$(7!=(B" . "$(8!=(B") ; 2 col <-> 1 col - ("$(7!?(B" . "$(8!?(B") - ("$(7!@(B" . "$(8!@(B") - ("$(7!A(B" . "$(8!A(B") - ("$(7"`(B" . "$(8"`(B") - ("$(7!;(B" . "$(8!;(B") - ("$(7!D(B" . "$(8!D(B") + `(("$(7!=(B" . "$(7!=(B") ; 2 col <-> 1 col + ("$(7!?(B" . "$(7!?(B") + ("$(7!@(B" . "$(7!@(B") + ("$(7!A(B" . "$(7!A(B") + ("$(7"`(B" . "$(7"`(B") + ("$(7!;(B" . "$(7!;(B") + ("$(7!D(B" . "$(7!D(B") ;; Yes these are dirty. But ... ("$(7!>(B $(7!>(B" . ,(compose-string "$(7!>(B $(7!>(B" 0 3 [?$(7!>(B (Br . Bl) ? (Br . Bl) ?$(7!>(B])) ("$(7!4!5!5(B" . ,(compose-string @@ -141,7 +141,7 @@ The returned string has no composition information." ;;; ;;; Here are examples of the words "bsgrubs" and "hfauM" ;;; -;;; 4$(7"70"714%qx!"U0"G###C"U14"70"714"G0"G1(B 4$(7"Hx!"Rx!"Ur'"_0"H"R"U"_1(B +;;; $(7"7"G###C"U"7"G(B $(7"H"R"U"_(B ;;; ;;; M ;;; b s b s h @@ -167,7 +167,7 @@ The returned string has no composition information." ;; If 'a follows a consonant, turn it into the subjoined form. ;; * Disabled by Tomabechi 2000/06/09 * ;; Because in Unicode, $(7"A(B may follow directly a consonant without - ;; any intervening vowel, as in 4$(7"90"914""0"""Q14"A0"A1!;(B=4$(7"90"91(B 4$(7""0""1(B 4$(7"A0"A1(B not 4$(7"90"91(B 4$(7""0""1(B $(7"Q(B 4$(7"A0"A1(B + ;; any intervening vowel, as in $(7"9"""Q"A!;(B=$(7"9(B $(7""(B $(7"A(B not $(7"9(B $(7""(B $(7"Q(B $(7"A(B ;;(if (and (= char ?$(7"A(B) ;; (aref (char-category-set (car last)) ?0)) ;; (setq char ?$(7"R(B)) ;; modified for new font by Tomabechi 1999/12/10 @@ -189,7 +189,8 @@ The returned string has no composition information." ;; Compose lower vowel sign vertically under. ((aref (char-category-set char) ?3) - (if (eq char ?$(7"Q(B) ;; `$(7"Q(B' should not visible when composed. + (if (or (eq char ?$(7"Q(B) ;; `$(7"Q(B' and `$,1FP(B' should not visible when composed. + (eq char #xF70)) (setq rule nil) (setq rule stack-under))) ;; Transform ra-mgo (superscribed r) if followed by a subjoined @@ -315,11 +316,17 @@ are decomposed into normal Tibetan character sequences." new)) ;;;###autoload -(defun tibetan-composition-function (from to pattern &optional string) +(defun tibetan-composition-function (pos &optional string) + (setq pos (1- pos)) (if string - (tibetan-compose-string string) - (tibetan-compose-region from to)) - (- to from)) + ;; Not yet implemented. + nil + (if (>= pos (point-min)) + (save-excursion + (goto-char pos) + (if (looking-at tibetan-composable-pattern) + (prog1 (match-end 0) + (tibetan-compose-region pos (match-end 0)))))))) ;;; ;;; This variable is used to avoid repeated decomposition. diff --git a/lisp/language/tibetan.el b/lisp/language/tibetan.el index fb8d02ba3b4..b990e130a07 100644 --- a/lisp/language/tibetan.el +++ b/lisp/language/tibetan.el @@ -5,8 +5,11 @@ ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: multilingual, Tibetan +;; Keywords: multilingual, Tibetan, i18n ;; This file is part of GNU Emacs. @@ -85,14 +88,12 @@ ;;; -(make-coding-system - 'tibetan-iso-8bit 2 ?Q - "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)." - '(ascii tibetan nil nil - nil nil) - '((safe-charsets ascii tibetan) - (post-read-conversion . tibetan-post-read-conversion) - (pre-write-conversion . tibetan-pre-write-conversion))) +(define-coding-system 'tibetan-iso-8bit + "8-bit encoding for ASCII (MSB=0) and TIBETAN (MSB=1)." + :coding-type 'iso-2022 + :mnemonic ?Q + :designation [ascii tibetan nil nil] + :charset-list '(ascii tibetan)) (define-coding-system-alias 'tibetan 'tibetan-iso-8bit) @@ -103,11 +104,7 @@ (input-method . "tibetan-wylie") (features tibet-util) (documentation . t) - (sample-text - . (tibetan-compose-string - (copy-sequence -"Tibetan (4$(7"7r'"]0"7"]14"20"21!;4%P0"G#!"Q14"20"21!;(B) $(7!4!5!5!>4"70"714$P0"!#C"Q1!;4"Er'"S0"E"S14"G0"G1!;4"70"714"2r'"[0"2"[1!;4"Dr'"[0"D"[14"#0"#14"G0"G1!>4"Ir'"]r'"_0"I"]"_1!;4"90"9"Q1!;4"/r'"S0"/"S1!;4"50"5"Q14#2x!#9r'"[0"2#9"[1!;4"Hx!"Rx!"Ur'"c0"H"A"U"c1!>(B"))))) - + (sample-text "Tibetan ($(7"7"]"2!;"G#!"Q"2!;(B) $(7!4!5!5!>"7"!#C"Q!;"E"S"G!;"7"2"[!;"D"["#"G!>"I"]"_!;"9"Q!;"/"S!;"5"Q"2#9"[!;"H"A"U"c!>(B"))) ;; `$(7"A(B' is included in the pattern for subjoined consonants because we ;; treat it specially in tibetan-add-components. @@ -118,13 +115,9 @@ ;; $(7"A(B is removed from the class of subjoined. Tomabechi 2000/06/08 ;; (for Unicode support) (defconst tibetan-composable-pattern - "[$(7"!(B-$(7"J"K(B][$(7#!(B-$(7#J#K#L#M(B]*[$(7"Q"R"S(B-$(7"^"a"b"e(B]*[$(7"_"c"d"g(B-$(7"l!I!e!g(B]*" + "[$(7"!(B-$(7"J"K(B][$(7#!(B-$(7#J#K#L#M(B]*[$,1FP$(7"Q"R"S(B-$(7"^"a"b"e(B]*[$(7"_"c"d"g(B-$(7"l!I!e!g(B]*" "Regexp matching a composable sequence of Tibetan characters.") -;; Register a function to compose Tibetan characters. -(aset composition-function-table (make-char 'tibetan) - (list (cons tibetan-composable-pattern 'tibetan-composition-function))) - ;;; ;;; Definitions of conversion data. ;;; @@ -611,6 +604,16 @@ This also matches some punctuation characters which need conversion.") (defvar tibetan-decomposed nil) (defvar tibetan-decomposed-temp nil) + +;; For automatic composition. +(dolist (range '((?$(7#!(B . ?$(7#J(B) "$(7#K#L#M"Q"R(B" (?$(7"S(B . ?$(7"^(B) "$(7"a"b"e"_"c"d(B" (?$(7"g(B . ?$(7"l(B) "$(7!I!e!g(B")) + (if (stringp range) + (dotimes (i (length range)) + (aset composition-function-table (aref range i) + 'tibetan-composition-function)) + (set-char-table-range composition-function-table range + 'tibetan-composition-function))) + (provide 'tibetan) ;;; arch-tag: 8d37c8d7-f95d-450f-9ec2-819e61fc79a7 diff --git a/lisp/language/tml-util.el b/lisp/language/tml-util.el index ebc7b1f01f7..ca4ad7a41fd 100644 --- a/lisp/language/tml-util.el +++ b/lisp/language/tml-util.el @@ -102,23 +102,6 @@ (function (lambda (x y) (> (length x) (length y)))))))) -;;;###autoload -(defun tamil-composition-function (from to pattern &optional string) - "Compose Tamil characters in REGION, or STRING if specified. -Assume that the REGION or STRING must fully match the composable -PATTERN regexp." - (if string (tamil-compose-syllable-string string) - (tamil-compose-syllable-region from to)) - (- to from)) - -;; Register a function to compose Tamil characters. -(mapc - (function (lambda (ucs) - (aset composition-function-table (decode-char 'ucs ucs) - (list (cons tamil-composable-pattern - 'tamil-composition-function))))) - (nconc '(#x0b82 #x0b83) (tamil-range #x0b85 #x0bb9))) - ;; Notes on conversion steps. ;; 1. chars to glyphs @@ -136,7 +119,7 @@ PATTERN regexp." (defvar tml-char-glyph '(;; various signs - ;;("$,1<"(B" . "") + ("$,1<"(B" . "$,4)b(B") ;; not good ("$,1<#(B" . "$,4*G(B") ;; Independent Vowels ("$,1<%(B" . "$,4*<(B") @@ -335,10 +318,18 @@ PATTERN regexp." (narrow-to-region from to) (goto-char (point-min)) ;; char-glyph-conversion - (while (re-search-forward tml-char-glyph-regexp nil t) - (setq match-str (match-string 0)) - (setq glyph-str - (concat glyph-str (gethash match-str tml-char-glyph-hash)))) + (while (not (eobp)) + (if (looking-at tml-char-glyph-regexp) + (progn + (setq match-str (match-string 0) + glyph-str + (concat glyph-str + (gethash match-str tml-char-glyph-hash))) + (goto-char (match-end 0))) + (setq glyph-str (concat glyph-str (string (following-char)))) + (forward-char 1))) + (or glyph-str + (aset glyph-str 0 (following-char))) ;; glyph reordering (when (string-match tml-glyph-reorder-key-glyphs glyph-str) (if (string-match (car tml-glyph-reordering-regexp-list) @@ -363,6 +354,19 @@ PATTERN regexp." glyph-str)))) (compose-region from to glyph-str))))) +;;;###autoload +(defun tamil-composition-function (pos &optional string) + "Compose Tamil characters after the position POS. +If STRING is not nil, it is a string, and POS is an index to the string. +In this case, compose characters after POS of the string." + (if string + ;; Not yet implemented. + nil + (goto-char pos) + (if (looking-at tamil-composable-pattern) + (prog1 (match-end 0) + (tamil-compose-syllable-region pos (match-end 0)))))) + (provide 'tml-util) ;;; arch-tag: 4d1c9737-e7b1-44cf-a040-4f64c50e773e diff --git a/lisp/language/tv-util.el b/lisp/language/tv-util.el new file mode 100644 index 00000000000..b8a33fac3e0 --- /dev/null +++ b/lisp/language/tv-util.el @@ -0,0 +1,148 @@ +;;; tv-util.el --- support for Tai Viet -*- coding: utf-8 -*- + +;; Copyright (C) 2007 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 + +;; Keywords: multilingual, Tai Viet, i18n + +;; 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. + +;;; Code + +;; Regexp matching with a sequence of Tai Viet characters. +(defconst tai-viet-re + (format "[\xaa80-\xaac2\xaadb-\xaadf]+")) + +;; Char-table of information about glyph type of Tai Viet characters. +(defconst tai-viet-glyph-info + (let ((table (make-char-table nil)) + (specials '((right-overhang . "ꪊꪋꪌꪍꪏꪓꪖꪜꪞꪡꪤꪨ") + (left-overhang . "ꫂ") + (combining-vowel . "ꪴꪰꪲꪳꪷꪸꪾ") + (combining-tone . "꪿꫁")))) + ;; Set all TaiViet characters to `t'. + (set-char-table-range table (cons #xaa80 #xaac2) t) + (set-char-table-range table (cons #xaadb #xaadf) t) + ;; Overwrite it for special characters. + (dolist (elt specials) + (let ((category (car elt)) + (chars (cdr elt))) + (dotimes (i (length chars)) + (aset table (aref chars i) category)))) + table)) + +(defun tai-viet-compose-string (from to string) + "Compose Tai Viet characters in STRING between indices FROM and TO." + (let* ((ch (aref string from)) + (info (aref tai-viet-glyph-info ch)) + prev-info) + (if (eq info 'non-spacing) + (compose-string string from (1+ from) (string ch ?\t))) + (setq from (1+ from) prev-info info) + (while (and (< from to) + (>= #xaa80 (setq ch (aref string from))) + (<= #xaaDF ch)) + (setq info (aref tai-viet-glyph-info ch)) + (if (and (eq info 'non-spacing) + (eq prev-info 'non-spacing)) + (compose-string from (1+ from) (string ?\t ch))) + (setq from (1+ from) prev-info info)) + (if (eq info 'right-overhang) + (compose-string string (1- from) from (string ch ?\t))) + from)) + +(defun tai-viet-compose-region (from to) + "Compose Tai Viet characters in the region between FROM and TO." + (decompose-region from to) + (let ((normal-rule '(Br . Bl)) + (tone-rule '(tr . bl)) + (prev-viet nil) + ch info pos components overhang) + (while (< from to) + (or ch + (setq ch (char-after from) + info (aref tai-viet-glyph-info ch))) + (setq from (1+ from)) + (if (not info) + (setq prev-viet nil + ch nil) + (if (memq info '(combining-vowel combining-tone)) + (progn + ;; Display this as a spacing glyph. + (compose-region (1- from) from (string ?\t ch)) + (setq prev-viet t + ch nil)) + (setq pos (1- from) + components ch + overhang (if (eq info 'right-overhang) + 'right-overhang + (if (and (not prev-viet) (eq info 'left-overhang)) + 'left-overhang)) + prev-viet t + ch nil) + (if (and (< from to) + (setq ch (char-after from) + info (aref tai-viet-glyph-info ch))) + (if (memq info '(combining-vowel combining-tone)) + (progn + (setq components + (list components normal-rule ch) + from (1+ from) + ch nil) + (if (and (< from to) + (setq ch (char-after from) + info (aref tai-viet-glyph-info ch)) + (eq info 'combining-tone)) + (setq components (nconc components + (list tone-rule ch)) + from (1+ from))) + (if (eq overhang 'left-overhang) + (setq components (cons ?\t + (cons normal-rule components))) + (if (and (eq overhang 'right-overhang) + (>= from to)) + (setq components (nconc components + (list normal-rule ?\t))))) + (compose-region pos from components)) + (if (eq overhang 'left-overhang) + (compose-region pos from (string ?\t components)))) + (if (eq overhang 'left-overhang) + (compose-region pos from (string ?\t components)) + (if (and (eq overhang 'right-overhang) (>= from to)) + (compose-region pos from (string components ?\t)))))))) + from)) + + +;;;###autoload +(defun tai-viet-composition-function (pos &optional string) + (let (to) + (if string + (progn + (if (string-match tai-viet-re string pos) + (tai-viet-compose-string pos (match-end 0) string) + (1+ pos))) + (goto-char pos) + (if (looking-at tai-viet-re) + (tai-viet-compose-region pos (match-end 0)) + (1+ pos))))) + +;; +(provide 'tai-viet-util) + +;; arch-tag: a45ac3fc-07d0-44d5-8841-2ebea7e11f5b diff --git a/lisp/language/utf-8-lang.el b/lisp/language/utf-8-lang.el index a4bd6fbf7b0..d2cec6dce86 100644 --- a/lisp/language/utf-8-lang.el +++ b/lisp/language/utf-8-lang.el @@ -28,14 +28,15 @@ ;;; Code: (set-language-info-alist - "UTF-8" `((coding-system mule-utf-8) - (coding-priority mule-utf-8) - (setup-function - . (lambda () - ;; Use Unicode font under Windows. Jason Rumney fecit. - (if (and (fboundp 'w32-add-charset-info) - (not (boundp 'w32-unicode-charset-defined))) - (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t)))) + "UTF-8" `((coding-system utf-8) + (coding-priority utf-8) +;; Presumably not relevant now. +;; (setup-function +;; . (lambda () +;; ;; Use Unicode font under Windows. Jason Rumney fecit. +;; (if (and (fboundp 'w32-add-charset-info) +;; (not (boundp 'w32-unicode-charset-defined))) +;; (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t)))) ;; Is this appropriate? ;; (exit-function ;; . (lambda () @@ -46,8 +47,8 @@ ;; w32-charset-info-alist))))) (input-method . "rfc1345") ; maybe not the best choice (documentation . "\ -This language environment is a generic one for a subset of the Unicode -character set encoded in UTF-8.")) +This language environment is a generic one for the Unicode character set +encoded in UTF-8.")) nil) (provide 'utf-8-lang) diff --git a/lisp/language/viet-util.el b/lisp/language/viet-util.el index eb89bf11ef2..18fa8ef5f3e 100644 --- a/lisp/language/viet-util.el +++ b/lisp/language/viet-util.el @@ -6,6 +6,9 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 ;; Keywords: mule, multilingual, Vietnamese @@ -45,8 +48,7 @@ ;;;###autoload (defun viet-encode-viscii-char (char) "Return VISCII character code of CHAR if appropriate." - (aref (char-table-extra-slot viet-viscii-nonascii-translation-table 0) - char)) + (encode-char char 'viscii)) ;; VIQR is a menmonic encoding specification for Vietnamese. ;; It represents diacritical marks by ASCII characters as follows: diff --git a/lisp/language/vietnamese.el b/lisp/language/vietnamese.el index f50605429b7..09b75c90c5c 100644 --- a/lisp/language/vietnamese.el +++ b/lisp/language/vietnamese.el @@ -6,8 +6,11 @@ ;; 2005, 2006, 2007 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: multilingual, Vietnamese +;; Keywords: multilingual, Vietnamese, i18n ;; This file is part of GNU Emacs. @@ -33,243 +36,25 @@ ;;; Code: -(defvar viet-viscii-decode-table - [;; VISCII is a full 8-bit code. - 0 1 ?,2F(B 3 4 ?,2G(B ?,2g(B 7 8 9 10 11 12 13 14 15 - 16 17 18 19 ?,2V(B 21 22 23 24 ?,2[(B 26 27 28 29 ?,2\(B 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - ?,2U(B ?,2!(B ?,2"(B ?,2#(B ?,2$(B ?,2%(B ?,2&(B ?,2'(B ?,2((B ?,2)(B ?,2*(B ?,2+(B ?,2,(B ?,2-(B ?,2.(B ?,2/(B - ?,20(B ?,21(B ?,22(B ?,25(B ?,2~(B ?,2>(B ?,26(B ?,27(B ?,28(B ?,2v(B ?,2w(B ?,2o(B ?,2|(B ?,2{(B ?,2x(B ?,2O(B - ?,2u(B ?,1!(B ?,1"(B ?,1#(B ?,1$(B ?,1%(B ?,1&(B ?,1'(B ?,1((B ?,1)(B ?,1*(B ?,1+(B ?,1,(B ?,1-(B ?,1.(B ?,1/(B - ?,10(B ?,11(B ?,12(B ?,2^(B ?,2=(B ?,15(B ?,16(B ?,17(B ?,18(B ?,2q(B ?,2Q(B ?,2W(B ?,2X(B ?,1=(B ?,1>(B ?,2_(B - ?,2`(B ?,2a(B ?,2b(B ?,2c(B ?,2d(B ?,2e(B ?,1F(B ?,1G(B ?,2h(B ?,2i(B ?,2j(B ?,2k(B ?,2l(B ?,2m(B ?,2n(B ?,1O(B - ?,2p(B ?,1Q(B ?,2r(B ?,2s(B ?,2t(B ?,1U(B ?,1V(B ?,1W(B ?,1X(B ?,2y(B ?,2z(B ?,1[(B ?,1\(B ?,2}(B ?,1^(B ?,1_(B - ?,1`(B ?,1a(B ?,1b(B ?,1c(B ?,1d(B ?,1e(B ?,1f(B ?,1g(B ?,1h(B ?,1i(B ?,1j(B ?,1k(B ?,1l(B ?,1m(B ?,1n(B ?,1o(B - ?,1p(B ?,1q(B ?,1r(B ?,1s(B ?,1t(B ?,1u(B ?,1v(B ?,1w(B ?,1x(B ?,1y(B ?,1z(B ?,1{(B ?,1|(B ?,1}(B ?,1~(B ?,2f(B ] - "Vietnamese VISCII decoding table.") - -(let ((table (make-translation-table-from-vector viet-viscii-decode-table))) - (define-translation-table 'viet-viscii-nonascii-translation-table table) - (define-translation-table 'viet-viscii-encode-table - (char-table-extra-slot table 0))) - -;;; -;;; VSCII is a pre-version of TCVN-5712 and deprecated -;;; -(defvar viet-vscii-decode-table - [;; VSCII is a full 8-bit code. - 0 ?,2z(B ?,2x(B 3 ?,2W(B ?,2X(B ?,2f(B 7 8 9 10 11 12 13 14 15 - 16 ?,2Q(B ?,2_(B ?,2O(B ?,2V(B ?,2[(B ?,2}(B ?,2\(B 24 25 26 27 28 29 30 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - ?,2`(B ?,2d(B ?,2c(B ?,2a(B ?,2U(B ?,2#(B ?,2'(B ?,2h(B ?,2k(B ?,2((B ?,2i(B ?,2)(B ?,2.(B ?,2l(B ?,2o(B ?,2n(B - ?,2m(B ?,28(B ?,2r(B ?,2v(B ?,2u(B ?,2s(B ?,2w(B ?,25(B ?,26(B ?,27(B ?,2^(B ?,2>(B ?,2~(B ?,2y(B ?,2|(B ?,2{(B - 160 ?,2e(B ?,2b(B ?,2j(B ?,2t(B ?,2=(B ?,2_(B ?,2p(B ?,1e(B ?,1b(B ?,1j(B ?,1t(B ?,1=(B ?,1y(B ?,1p(B ?,2"(B - 192 193 194 195 196 ?,1`(B ?,1d(B ?,1c(B ?,1a(B ?,1U(B ?,2F(B ?,1"(B ?,1F(B ?,1G(B ?,1!(B ?,2G(B - ?,2!(B ?,2%(B ?,2&(B ?,2g(B ?,2%(B ?,2+(B ?,1#(B ?,1%(B ?,1&(B ?,1g(B ?,1$(B ?,1'(B ?,1h(B ?,2,(B ?,1k(B ?,1((B - ?,1i(B ?,1)(B ?,1+(B ?,1,(B ?,1-(B ?,1*(B ?,1.(B ?,1l(B ?,1o(B ?,2-(B ?,2*(B ?,20(B ?,1n(B ?,1m(B ?,18(B ?,1r(B - ?,21(B ?,1v(B ?,1u(B ?,1s(B ?,1w(B ?,10(B ?,11(B ?,12(B ?,1/(B ?,15(B ?,16(B ?,17(B ?,1^(B ?,1>(B ?,1~(B ?,1y(B - ?,22(B ?,1|(B ?,1{(B ?,1z(B ?,1x(B ?,1W(B ?,1X(B ?,1f(B ?,1Q(B ?,1q(B ?,1O(B ?,1V(B ?,1[(B ?,1}(B ?,1\(B ?,2/(B] - "Vietnamese VSCII decoding table.") - -(let ((table (make-translation-table-from-vector viet-vscii-decode-table))) - (define-translation-table 'viet-vscii-nonascii-translation-table table) - (define-translation-table 'viet-vscii-encode-table - (char-table-extra-slot table 0))) - -;; Does not support combining characters in the range [176, 180] -(defvar viet-tcvn-decode-table - [;; TCVN is a full 8-bit code. - 0 ?,2z(B ?,2x(B 3 ?,2W(B ?,2X(B ?,2f(B 7 8 9 10 11 12 13 14 15 - 16 ?,2Q(B ?,2q(B ?,2O(B ?,2V(B ?,2[(B ?,2}(B ?,2\(B 24 25 26 27 28 29 30 31 - 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 - 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 - 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 - 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 - 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 - 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 - ?,2`(B ?,2d(B ?,2c(B ?,2a(B ?,2U(B ?,2#(B ?,2'(B ?,2h(B ?,2k(B ?,2((B ?,2i(B ?,2)(B ?,2.(B ?,2l(B ?,2o(B ?,2n(B - ?,2m(B ?,28(B ?,2r(B ?,2v(B ?,2u(B ?,2s(B ?,2w(B ?,25(B ?,26(B ?,27(B ?,2^(B ?,2>(B ?,2~(B ?,2y(B ?,2|(B ?,2{(B - 160 ?,2e(B ?,2b(B ?,2j(B ?,2t(B ?,2=(B ?,2_(B ?,2p(B ?,1e(B ?,1b(B ?,1j(B ?,1t(B ?,1=(B ?,1_(B ?,1p(B ?,2"(B - 176 177 178 179 180 ?,1`(B ?,1d(B ?,1c(B ?,1a(B ?,1U(B ?,2F(B ?,1"(B ?,1F(B ?,1G(B ?,1!(B ?,2G(B - ?,2!(B ?,2%(B ?,2&(B ?,2g(B ?,2$(B ?,2+(B ?,1#(B ?,1%(B ?,1&(B ?,1g(B ?,1$(B ?,1'(B ?,1h(B ?,2,(B ?,1k(B ?,1((B - ?,1i(B ?,1)(B ?,1+(B ?,1,(B ?,1-(B ?,1*(B ?,1.(B ?,1l(B ?,1o(B ?,2-(B ?,2*(B ?,20(B ?,1n(B ?,1m(B ?,18(B ?,1r(B - ?,21(B ?,1v(B ?,1u(B ?,1s(B ?,1w(B ?,10(B ?,11(B ?,12(B ?,1/(B ?,15(B ?,16(B ?,17(B ?,1^(B ?,1>(B ?,1~(B ?,1y(B - ?,22(B ?,1|(B ?,1{(B ?,1z(B ?,1x(B ?,1W(B ?,1X(B ?,1f(B ?,1Q(B ?,1q(B ?,1O(B ?,1V(B ?,1[(B ?,1}(B ?,1\(B ?,2/(B] - "Vietnamese TCVN-5712 decoding table.") - -(let ((table (make-translation-table-from-vector viet-tcvn-decode-table))) - (define-translation-table 'viet-tcvn-nonascii-translation-table table) - (define-translation-table 'viet-tcvn-encode-table - (char-table-extra-slot table 0))) - -;; (defvar viet-vps-decode-table -;; [;; VPS is a full 8-bit code. -;; 0 1 ?,2U(B ?,2'(B ?,2#(B ?,2)(B ?,2.(B 7 8 9 10 11 12 13 14 15 -;; ?,28(B ?,2w(B ?,25(B ?,2~(B ?,2x(B ?,2q(B 22 23 24 ?,2\(B 26 27 ?,2g(B ?,2f(B 30 31 -;; 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 -;; 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 -;; 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 -;; 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 -;; 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 -;; 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 -;; ?,2`(B ?,2d(B ?,2c(B ?,2$(B ?,2%(B ?,2&(B ?,1w(B ?,12(B ?,2e(B ?,1*(B ?,1+(B ?,1,(B ?,1.(B ?,2!(B ?,2"(B ?,2F(B -;; ?,2*(B 145 146 ?,2+(B ?,2,(B ?,2-(B ?,2/(B ?,20(B ?,21(B ?,22(B ?,1}(B ?,1V(B ?,1\(B ?,2>(B ?,26(B ?,27(B -;; 160 ?,1!(B ?,1"(B ?,1F(B ?,1G(B ?,1#(B ?,2^(B ?,1>(B ?,2y(B ?,16(B ?,17(B ?,1^(B ?,2{(B ?,2Q(B ?,1~(B ?,2W(B -;; ?,11(B ?,2X(B ?,2O(B ?,2[(B ?,2m(B ?,2l(B ?,15(B ?,2o(B ?,2n(B ?,2s(B ?,1X(B ?,1f(B ?,2r(B ?,2v(B ?,2u(B ?,1q(B -;; ?,1%(B ?,2a(B ?,2b(B ?,1$(B ?,1&(B ?,1g(B ?,1'(B ?,1p(B ?,1k(B ?,2i(B ?,2j(B ?,1)(B ?,1o(B ?,1-(B ?,18(B ?,1[(B -;; ?,2_(B ?,2|(B ?,10(B ?,1/(B ?,2t(B ?,1v(B ?,1=(B ?,2h(B ?,1W(B ?,1Q(B ?,2z(B ?,1{(B ?,1_(B ?,2}(B ?,2k(B 223 -;; ?,1`(B ?,1a(B ?,1b(B ?,1c(B ?,1d(B ?,1U(B ?,1e(B 231 ?,1h(B ?,1i(B ?,1j(B ?,1((B ?,1l(B ?,1m(B 238 ?,1n(B -;; ?,2G(B ?,2p(B ?,1r(B ?,1s(B ?,1t(B ?,1u(B 246 ?,2=(B ?,1x(B ?,1y(B ?,1z(B ?,1|(B 252 ?,2V(B ?,2((B ?,1O(B] -;; "Vietnamese VPS decoding table.") -;; -;; (let ((table (make-translation-table-from-vector viet-vps-decode-table))) -;; (define-translation-table 'viet-vps-nonascii-translation-table table) -;; (define-translation-table 'viet-vps-encode-table -;; (char-table-extra-slot table 0))) - -(define-ccl-program ccl-decode-viscii - `(3 - ((loop - (r0 = 0) - (read r1) - (translate-character viet-viscii-nonascii-translation-table r0 r1) - (write-multibyte-character r0 r1) - (repeat)))) - "CCL program to decode VISCII 1.1") - -(define-ccl-program ccl-encode-viscii - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character viet-viscii-encode-table r0 r1) - (write-repeat r1)))) - "CCL program to encode VISCII 1.1") - -(define-ccl-program ccl-encode-viscii-font - `(0 - ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper - ;; R1:position code - ;; Out: R1:font code point - (translate-character viet-viscii-encode-table r0 r1)) - "CCL program to encode Vietnamese chars to VISCII 1.1 font") - -(define-ccl-program ccl-decode-vscii - `(3 - ((loop - (r0 = 0) - (read r1) - (translate-character viet-vscii-nonascii-translation-table r0 r1) - (write-multibyte-character r0 r1) - (repeat)))) - "CCL program to decode VSCII-1.") - -(define-ccl-program ccl-encode-vscii - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character viet-vscii-encode-table r0 r1) - (write-repeat r1)))) - "CCL program to encode VSCII-1.") - -(define-ccl-program ccl-encode-vscii-font - `(0 - ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper - ;; R1:position code - ;; Out: R1:font code point - (translate-character viet-vscii-encode-table r0 r1)) - "CCL program to encode Vietnamese chars to VSCII-1 font.") - -(define-ccl-program ccl-decode-tcvn - `(3 - ((loop - (r0 = 0) - (read r1) - (translate-character viet-tcvn-nonascii-translation-table r0 r1) - (write-multibyte-character r0 r1) - (repeat)))) - "CCL program to decode TCVN-5712.") - -(define-ccl-program ccl-encode-tcvn - `(1 - ((loop - (read-multibyte-character r0 r1) - (translate-character viet-tcvn-encode-table r0 r1) - (write-repeat r1)))) - "CCL program to encode TCVN-5712.") - -(define-ccl-program ccl-encode-tcvn-font - `(0 - ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper - ;; R1:position code - ;; Out: R1:font code point - (translate-character viet-tcvn-encode-table r0 r1)) - "CCL program to encode Vietnamese chars to TCVN-5712 font.") - -;; (define-ccl-program ccl-decode-vps -;; `(3 -;; ((loop -;; (r0 = 0) -;; (read r1) -;; (translate-character viet-vps-nonascii-translation-table r0 r1) -;; (write-multibyte-character r0 r1) -;; (repeat)))) -;; "CCL program to decode VPS.") -;; -;; (define-ccl-program ccl-encode-vps -;; `(1 -;; ((loop -;; (read-multibyte-character r0 r1) -;; (translate-character viet-vps-encode-table r0 r1) -;; (write-repeat r1)))) -;; "CCL program to encode VPS.") -;; -;; (define-ccl-program ccl-encode-vps-font -;; `(0 -;; ;; In: R0:vietnamese-viscii-lower/vietnamese-viscii-upper -;; ;; R1:position code -;; ;; Out: R1:font code point -;; (translate-character viet-vps-encode-table r0 r1)) -;; "CCL program to encode Vietnamese chars to VPS font.") - -(make-coding-system - 'vietnamese-viscii 4 ?V - "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)" - '(ccl-decode-viscii . ccl-encode-viscii) - '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper) - (mime-charset . viscii) - (valid-codes (0 . 255)))) +(define-coding-system 'vietnamese-viscii + "8-bit encoding for Vietnamese VISCII 1.1 (MIME:VISCII)." + :coding-type 'charset + :mnemonic ?V + :charset-list '(viscii) + :mime-charset 'viscii + :suitable-for-file-name t) (define-coding-system-alias 'viscii 'vietnamese-viscii) -(make-coding-system - 'vietnamese-vscii 4 ?v - "8-bit encoding for Vietnamese VSCII-1" - '(ccl-decode-vscii . ccl-encode-vscii) - '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper) - (valid-codes (0 . 255)))) +(define-coding-system 'vietnamese-vscii + "8-bit encoding for Vietnamese VSCII-1." + :coding-type 'charset + :mnemonic ?v + :charset-list '(vscii) + :suitable-for-file-name t) (define-coding-system-alias 'vscii 'vietnamese-vscii) -(make-coding-system - 'vietnamese-tcvn 4 ?t - "8-bit encoding for Vietnamese TCVN-5712" - '(ccl-decode-tcvn . ccl-encode-tcvn) - '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper) - (valid-codes (0 . 255)))) - -(define-coding-system-alias 'tcvn 'vietnamese-tcvn) -(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn) - ;; (make-coding-system ;; 'vietnamese-vps 4 ?p ;; "8-bit encoding for Vietnamese VPS" @@ -279,36 +64,21 @@ ;; ;; (define-coding-system-alias 'vps 'vietnamese-vps) -(make-coding-system - 'vietnamese-viqr 0 ?q - "Vietnamese latin transcription (VIQR)" - nil - '((safe-charsets ascii vietnamese-viscii-lower vietnamese-viscii-upper) - (post-read-conversion . viqr-post-read-conversion) - (pre-write-conversion . viqr-pre-write-conversion) - (charset-origin-alist - (vietnamese-viscii-lower "VISCII" viet-encode-viscii-char) - (vietnamese-viscii-upper "VISCII" viet-encode-viscii-char)))) - +(define-coding-system 'vietnamese-viqr + "Vietnamese latin transcription (VIQR)." + :coding-type 'utf-8 + :mnemonic ?q + :charset-list '(ascii viscii) + :post-read-conversion 'viqr-post-read-conversion + :pre-write-conversion 'viqr-pre-write-conversion) (define-coding-system-alias 'viqr 'vietnamese-viqr) -(setq font-ccl-encoder-alist - (cons '("viscii" . ccl-encode-viscii-font) font-ccl-encoder-alist)) - -(setq font-ccl-encoder-alist - (cons '("vscii" . ccl-encode-vscii-font) font-ccl-encoder-alist)) - -(setq font-ccl-encoder-alist - (cons '("tcvn" . ccl-encode-tcvn-font) font-ccl-encoder-alist)) - (set-language-info-alist - "Vietnamese" `((charset vietnamese-viscii-lower vietnamese-viscii-upper) - (nonascii-translation - . ,(get 'viet-viscii-nonascii-translation-table - 'translation-table)) - (coding-system vietnamese-viscii vietnamese-vscii vietnamese-tcvn - vietnamese-viqr) + "Vietnamese" `((charset viscii) + (coding-system vietnamese-viscii vietnamese-vscii + vietnamese-tcvn vietnamese-viqr windows-1258) + (nonascii-translation . viscii) (coding-priority vietnamese-viscii) (input-method . "vietnamese-viqr") (unibyte-display . vietnamese-viscii) @@ -316,13 +86,29 @@ (sample-text . "Vietnamese (Ti,1*(Bng Vi,1.(Bt) Ch,1`(Bo b,1U(Bn") (documentation . "\ For Vietnamese, Emacs uses special charsets internally. -They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, and -VIQR. VSCII is deprecated in favour of TCVN-5712. Current setting -puts higher priority to the coding system VISCII than TCVN-5712. If -you prefer TCVN-5712, please do: (prefer-coding-system 'vietnamese-tcvn). -There are two Vietnamese input methods: VIQR and Telex, VIQR is the -default setting.") - )) +They can be decoded from and encoded to VISCII, VSCII, TCVN-5712, VIQR +and windows-1258. VSCII is deprecated in favour of TCVN-5712. The +Current setting gives higher priority to the coding system VISCII than +TCVN-5712. If you prefer TCVN-5712, please do: (prefer-coding-system +'vietnamese-tcvn). There are two Vietnamese input methods: VIQR and +Telex, VIQR is the default setting."))) + +(define-coding-system 'windows-1258 + "windows-1258 encoding for Vietnamese (MIME: WINDOWS-1258)" + :coding-type 'charset + :mnemonic ?* + :charset-list '(windows-1258) + :mime-charset 'windows-1258) +(define-coding-system-alias 'cp1258 'windows-1258) + +(define-coding-system 'vietnamese-tcvn + "8-bit encoding for Vietnamese TCVN-5712" + :coding-type 'charset + :mnemonic ?t + :charset-list '(tcvn-5712) + :suitable-for-file-name t) +(define-coding-system-alias 'tcvn 'vietnamese-tcvn) +(define-coding-system-alias 'tcvn-5712 'vietnamese-tcvn) (provide 'vietnamese) diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 25df6135e3e..b12fe880074 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -4346,66 +4346,6 @@ is run). ;;;*** -;;;### (autoloads (cp-make-coding-system) "code-pages" "international/code-pages.el" -;;;;;; (17842 54888)) -;;; Generated autoloads from international/code-pages.el - -(autoload (quote cp-make-coding-system) "code-pages" "\ -Make coding system NAME for and 8-bit, extended-ASCII character set. -V is a 128-long vector of characters to translate the upper half of -the character set. DOC-STRING and MNEMONIC are used as the -corresponding args of `make-coding-system'. If MNEMONIC isn't given, -?* is used. -Return an updated `non-iso-charset-alist'. - -\(fn NAME V &optional DOC-STRING MNEMONIC)" nil (quote macro)) -(autoload-coding-system 'cp437 '(require 'code-pages)) -(autoload-coding-system 'cp737 '(require 'code-pages)) -(autoload-coding-system 'cp775 '(require 'code-pages)) -(autoload-coding-system 'cp850 '(require 'code-pages)) -(autoload-coding-system 'cp851 '(require 'code-pages)) -(autoload-coding-system 'cp852 '(require 'code-pages)) -(autoload-coding-system 'cp855 '(require 'code-pages)) -(autoload-coding-system 'cp857 '(require 'code-pages)) -(autoload-coding-system 'cp858 '(require 'code-pages)) -(autoload-coding-system 'cp860 '(require 'code-pages)) -(autoload-coding-system 'cp861 '(require 'code-pages)) -(autoload-coding-system 'cp862 '(require 'code-pages)) -(autoload-coding-system 'cp863 '(require 'code-pages)) -(autoload-coding-system 'cp864 '(require 'code-pages)) -(autoload-coding-system 'cp865 '(require 'code-pages)) -(autoload-coding-system 'cp866 '(require 'code-pages)) -(autoload-coding-system 'cp869 '(require 'code-pages)) -(autoload-coding-system 'cp874 '(require 'code-pages)) -(autoload-coding-system 'windows-1250 '(require 'code-pages)) -(autoload-coding-system 'cp1250 '(require 'code-pages)) -(autoload-coding-system 'windows-1253 '(require 'code-pages)) -(autoload-coding-system 'cp1253 '(require 'code-pages)) -(autoload-coding-system 'windows-1254 '(require 'code-pages)) -(autoload-coding-system 'cp1254 '(require 'code-pages)) -(autoload-coding-system 'windows-1255 '(require 'code-pages)) -(autoload-coding-system 'cp1255 '(require 'code-pages)) -(autoload-coding-system 'windows-1256 '(require 'code-pages)) -(autoload-coding-system 'cp1256 '(require 'code-pages)) -(autoload-coding-system 'windows-1257 '(require 'code-pages)) -(autoload-coding-system 'cp1257 '(require 'code-pages)) -(autoload-coding-system 'windows-1258 '(require 'code-pages)) -(autoload-coding-system 'cp1258 '(require 'code-pages)) -(autoload-coding-system 'next '(require 'code-pages)) -(autoload-coding-system 'koi8-t '(require 'code-pages)) -(autoload-coding-system 'iso-8859-16 '(require 'code-pages)) -(autoload-coding-system 'iso-8859-6 '(require 'code-pages)) -(autoload-coding-system 'iso-8859-10 '(require 'code-pages)) -(autoload-coding-system 'iso-8859-13 '(require 'code-pages)) -(autoload-coding-system 'georgian-ps '(require 'code-pages)) -(autoload-coding-system 'cp720 '(require 'code-pages)) -(autoload-coding-system 'cp1125 '(require 'code-pages)) -(autoload-coding-system 'mik '(require 'code-pages)) -(autoload-coding-system 'pt154 '(require 'code-pages)) -(autoload-coding-system 'iso-8859-11 '(require 'code-pages)) - -;;;*** - ;;;### (autoloads (codepage-setup cp-supported-codepages cp-offset-for-codepage ;;;;;; cp-language-for-codepage cp-charset-for-codepage cp-make-coding-systems-for-codepage) ;;;;;; "codepage" "international/codepage.el" (17842 54888)) @@ -28931,12 +28871,6 @@ The buffer in question is current when this function is called. ;;;*** -;;;### (autoloads nil "utf-7" "international/utf-7.el" (17842 54888)) -;;; Generated autoloads from international/utf-7.el -(autoload-coding-system 'utf-7 '(require 'utf-7)) - -;;;*** - ;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal ;;;;;; uudecode-decode-region-external) "uudecode" "gnus/uudecode.el" ;;;;;; (17855 50203)) diff --git a/lisp/loadup.el b/lisp/loadup.el index 7c144bf8315..af1e4cc87c0 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -33,6 +33,8 @@ ;; get autoloaded when bootstrapping (if (or (equal (nth 3 command-line-args) "bootstrap") (equal (nth 4 command-line-args) "bootstrap") + (equal (nth 3 command-line-args) "unidata-gen.el") + (equal (nth 4 command-line-args) "unidata-gen-files") ;; in case CANNOT_DUMP (equal (nth 0 command-line-args) "../src/bootstrap-emacs")) (let ((dir (car load-path))) @@ -86,18 +88,12 @@ ;; multilingual text. (load "international/mule-cmds") (load "case-table") -(load "international/utf-8") -(load "international/utf-16") (load "international/characters") +(load "composite") +;; This file doesn't exist when building Emacs from CVS. It is +;; generated just after temacs is build. +(load "international/charprop.el" t) -(let ((set-case-syntax-set-multibyte t)) - (load "international/latin-1") - (load "international/latin-2") - (load "international/latin-3") - (load "international/latin-4") - (load "international/latin-5") - (load "international/latin-8") - (load "international/latin-9")) ;; Load language-specific files. (load "language/chinese") (load "language/cyrillic") @@ -117,6 +113,7 @@ (load "language/japanese") (load "language/korean") (load "language/lao") +(load "language/tai-viet") (load "language/thai") (load "language/tibetan") (load "language/vietnamese") @@ -124,10 +121,6 @@ (load "language/utf-8-lang") (load "language/georgian") -(load "international/ucs-tables") - -(update-coding-systems-internal) - (load "indent") (load "window") (load "frame") @@ -319,6 +312,7 @@ (equal (nth 4 command-line-args) "bootstrap")) (setcdr load-path nil)) +(clear-charset-maps) (garbage-collect) ;;; At this point, we're ready to resume undo recording for scratch. diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index df5445da412..cfcad60c11a 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -153,7 +153,7 @@ usually do not have translators to read other languages for them.\n\n") '(lambda (var) (insert (format " value of $%s: %s\n" var (getenv var)))) '("LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" - "LC_MONETARY" "LC_NUMERIC" "LC_TIME" "LANG")) + "LC_MONETARY" "LC_NUMERIC" "LC_TIME" "LANG" "XMODIFIERS")) (insert (format " locale-coding-system: %s\n" locale-coding-system)) (insert (format " default-enable-multibyte-characters: %s\n" default-enable-multibyte-characters)) diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 37a0533acc9..e4475f5be62 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el @@ -934,17 +934,17 @@ Note: it means the file has no messages in it.\n\^_"))) (unless (and coding-system (coding-system-p coding-system)) (setq coding-system - ;; Emacs 21.1 and later writes RMAIL files in emacs-mule, but - ;; earlier versions did that with the current buffer's encoding. - ;; So we want to favor detection of emacs-mule (whose normal - ;; priority is quite low), but still allow detection of other - ;; encodings if emacs-mule won't fit. The call to - ;; detect-coding-with-priority below achieves that. - (car (detect-coding-with-priority - from to - '((coding-category-emacs-mule . emacs-mule)))))) - (unless (memq coding-system - '(undecided undecided-unix)) + ;; If rmail-file-coding-system is nil, Emacs 21 writes + ;; RMAIL files in emacs-mule, Emacs 22 in utf-8, but + ;; earlier versions did that with the current buffer's + ;; encoding. So we want to favor detection of emacs-mule + ;; (whose normal priority is quite low) and utf-8, but + ;; still allow detection of other encodings if they won't + ;; fit. The call to with-coding-priority below achieves + ;; that. + (with-coding-priority '(emacs-mule utf-8) + (detect-coding-region from to 'highest)))) + (unless (eq (coding-system-type coding-system) 'undecided) (set-buffer-modified-p t) ; avoid locking when decoding (let ((buffer-undo-list t)) (decode-coding-region from to coding-system)) diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 5803661bc6e..324ce427b09 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -1090,7 +1090,7 @@ external program defined by `sendmail-program'." (/= (point) (point-max))) selected-coding (setq charset - (coding-system-get selected-coding 'mime-charset)) + (coding-system-get selected-coding :mime-charset)) (goto-char delimline) (insert "MIME-version: 1.0\n" "Content-type: text/plain; charset=" @@ -1776,7 +1776,7 @@ The seventh argument ACTIONS is a list of actions to take (define-key (current-local-map) "v" (lambda () (interactive) - (let ((coding-system-for-read 'emacs-mule-unix)) + (let ((coding-system-for-read 'utf-8-emacs-unix)) (dired-view-file)))) (define-key (current-local-map) "\C-c\C-c" (lambda () @@ -1784,13 +1784,13 @@ The seventh argument ACTIONS is a list of actions to take (let ((fname (dired-get-filename)) ;; Auto-saved files are written in the internal ;; representation, so they should be read accordingly. - (coding-system-for-read 'emacs-mule-unix)) + (coding-system-for-read 'utf-8-emacs-unix)) (switch-to-buffer-other-window "*mail*") (let ((buffer-read-only nil)) (erase-buffer) (insert-file-contents fname nil) ;; insert-file-contents will set buffer-file-coding-system - ;; to emacs-mule, which is probably not what they want to + ;; to utf-8-emacs, which is probably not what they want to ;; use for sending the message. But we don't know what ;; was its value before the buffer was killed or Emacs ;; crashed. We therefore reset buffer-file-coding-system @@ -1841,7 +1841,7 @@ you can move to one of them and type C-c C-c to recover that one." (buffer-coding buffer-file-coding-system) ;; Auto-save files are written in internal ;; representation of non-ASCII characters. - (coding-system-for-read 'emacs-mule-unix)) + (coding-system-for-read 'utf-8-emacs-unix)) (erase-buffer) (insert-file-contents file-name nil) (setq buffer-file-coding-system buffer-coding))))) diff --git a/lisp/makefile.w32-in b/lisp/makefile.w32-in index 1da46b7684e..fbecb2ee593 100644 --- a/lisp/makefile.w32-in +++ b/lisp/makefile.w32-in @@ -43,6 +43,9 @@ EMACSOPT = -batch --no-init-file --no-site-file --multibyte # Set EMACSLOADPATH correctly (already defined in environment). EMACSLOADPATH=$(lisp) +# Use C locale +LC_ALL = C + lisptagsfiles1 = $(lisp)/*.el lisptagsfiles2 = $(lisp)/*/*.el ETAGS = "../lib-src/$(BLD)/etags" diff --git a/lisp/obsolete/swedish.el b/lisp/obsolete/swedish.el index 41b349aec5a..0efcc09b8b6 100644 --- a/lisp/obsolete/swedish.el +++ b/lisp/obsolete/swedish.el @@ -26,14 +26,16 @@ ;;; Commentary: +;; Fixme: Is this actually used? if so, it should be in language, +;; possibly as a feature property of Swedish, probably defining a +;; `swascii' coding system. + ;;; Code: ;; Written by Howard Gayle. See case-table.el for details. ;; See iso-swed.el for a description of the character set. -(require 'latin-1) - (defvar mail-send-hook) (defvar news-group-hook-alist) (defvar news-inews-hook) diff --git a/lisp/progmodes/cap-words.el b/lisp/progmodes/cap-words.el new file mode 100644 index 00000000000..6854c5e89c1 --- /dev/null +++ b/lisp/progmodes/cap-words.el @@ -0,0 +1,94 @@ +;;; cap-words.el --- minor mode for motion in CapitalizedWordIdentifiers + +;; Copyright (C) 2002 Free Software Foundation, Inc. + +;; Author: Dave Love <fx@gnu.org> +;; Keywords: languages + +;; This file 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. + +;; This file 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., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: + +;; Provides Capitalized Words minor mode for word movement in +;; identifiers CapitalizedLikeThis. + +;; Note that the same effect could be obtained by frobbing the +;; category of upper case characters to produce word boundaries, but +;; the necessary processing isn't done for ASCII characters. + +;; Fixme: This doesn't work properly for mouse double clicks. + +;;; Code: + +(defun capitalized-next-word-boundary (pos limit) + "Function for use in `next-word-boundary-function-table'. +Looks for word boundaries before capitals." + (save-excursion + (goto-char pos) + (let (case-fold-search) + (if (<= pos limit) + ;; Fixme: Are these regexps the best? + (or (and (re-search-forward "\\=.\\w*[[:upper:]]" + limit t) + (progn (backward-char) + t)) + (re-search-forward "\\>" limit t)) + (or (re-search-backward "[[:upper:]]\\w*\\=" limit t) + (re-search-backward "\\<" limit t)))) + (point))) + +(defconst capitalized-next-word-boundary-function-table + (let ((tab (make-char-table nil))) + (set-char-table-range tab t #'capitalized-next-word-boundary) + tab) + "Assigned to `next-word-boundary-function-table' in Capitalized Words mode.") + +;;;###autoload +(define-minor-mode capitalized-words-mode + "Toggle Capitalized- Words mode. + +In this minor mode, a word boundary occurs immediately before an +uppercase letter in a symbol. This is in addition to all the normal +boundaries given by the syntax and category tables. There is no +restriction to ASCII. + +E.g. the beginning of words in the following identifier are as marked: + + capitalizedWorDD + ^ ^ ^^ + +Note that these word boundaries only apply for word motion and +marking commands such as \\[forward-word]. This mode does not affect word +boundaries in found by regexp matching (`\\>', `\\w' &c). + +This style of identifiers is common in environments like Java ones, +where underscores aren't trendy enough. Capitalization rules are +sometimes part of the language, e.g. Haskell, which may thus encourage +such a style. It is appropriate to add `capitalized-words-mode' to +the mode hook for programming langauge modes in which you encounter +variables like this, e.g. `java-mode-hook'. It's unlikely to cause +trouble if such identifiers aren't used. + +See also `glasses-mode' and `studlify-word'. +Obsoletes `c-forward-into-nomenclature'." + nil " Caps" nil :group 'programming + (set (make-local-variable 'next-word-boundary-function-table) + capitalized-next-word-boundary-function-table)) + +(provide 'cap-words) + +;;; arch-tag: 46513b64-fe5a-4c0b-902c-ed235c22975f +;;; cap-words.el ends here diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index cfef0eedfe4..a38a5525bc9 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el @@ -312,7 +312,7 @@ The expansion is entirely correct because it uses the C preprocessor." (while (< (point) limit) (cond ((or (null (setq char (nth 3 state))) - (and (char-valid-p char) (eq (char-syntax (nth 3 state)) ?\"))) + (and (characterp char) (eq (char-syntax (nth 3 state)) ?\"))) ;; Normal text, or comment, or docstring, or normal string. nil) ((eq (nth 3 state) ?\n) diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index f6ef646069b..7860bb35200 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1117,7 +1117,7 @@ subshells can nest." (defun sh-font-lock-syntactic-face-function (state) (let ((q (nth 3 state))) (if q - (if (char-valid-p q) + (if (characterp q) (if (eq q ?\`) 'sh-quoted-exec font-lock-string-face) sh-heredoc-face) font-lock-comment-face))) diff --git a/lisp/ps-bdf.el b/lisp/ps-bdf.el index 097bd18bb1a..19a776d7706 100644 --- a/lisp/ps-bdf.el +++ b/lisp/ps-bdf.el @@ -6,6 +6,10 @@ ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 + ;; Keywords: wp, BDF, font, PostScript ;; Maintainer: Kenichi Handa <handa@m17n.org> @@ -34,11 +38,7 @@ ;;; Code: (eval-and-compile - (require 'ps-mule) - - ;; to avoid XEmacs compilation gripes - (defvar installation-directory nil) - (defvar coding-system-for-read nil)) + (require 'ps-mule)) ;;;###autoload (defvar bdf-directory-list @@ -61,15 +61,11 @@ for BDFNAME." (if (file-name-absolute-p bdfname) (and (file-readable-p bdfname) bdfname) - (let ((dir-list bdf-directory-list) - dir) - (while (and dir-list - (progn - (setq dir (expand-file-name bdfname (car dir-list))) - (not (file-readable-p dir)))) - (setq dir nil - dir-list (cdr dir-list))) - dir))) + (catch 'tag + (dolist (dir bdf-directory-list) + (let ((absolute-path (expand-file-name bdfname dir))) + (if (file-readable-p absolute-path) + (throw 'tag absolute-path))))))) (defsubst bdf-file-mod-time (filename) "Return modification time of FILENAME. @@ -81,28 +77,24 @@ The value is a list of two integers, the first integer has high-order "Return non-nil if and only if FILENAME is newer than MOD-TIME. MOD-TIME is a modification time as a list of two integers, the first integer has high-order 16 bits, the second has low 16 bits." - (let ((file-name (bdf-expand-file-name filename))) - (and file-name - (let* ((new-mod-time (bdf-file-mod-time file-name)) - (new-time (car new-mod-time)) - (time (car mod-time))) - (or (> new-time time) - (and (= new-time time) - (> (nth 1 new-mod-time) (nth 1 mod-time)))))))) + (let* ((new-mod-time (bdf-file-mod-time filename)) + (new-time (car new-mod-time)) + (time (car mod-time))) + (or (> new-time time) + (and (= new-time time) + (> (nth 1 new-mod-time) (nth 1 mod-time)))))) (defun bdf-find-file (bdfname) "Return a buffer visiting a bdf file BDFNAME. -If BDFNAME is not an absolute path, directories listed in -`bdf-directory-list' is searched. +BDFNAME must be an absolute file name. If BDFNAME doesn't exist, return nil." - (let ((file-name (bdf-expand-file-name bdfname))) - (and file-name - (let ((buf (generate-new-buffer " *bdf-work*")) - (coding-system-for-read 'no-conversion)) - (save-excursion - (set-buffer buf) - (insert-file-contents file-name) - buf))))) + (and (file-readable-p bdfname) + (let ((buf (generate-new-buffer " *bdf-work*")) + (coding-system-for-read 'no-conversion)) + (save-excursion + (set-buffer buf) + (insert-file-contents bdfname) + buf)))) (defvar bdf-cache-file (if (eq system-type 'ms-dos) ;; convert-standard-filename doesn't @@ -115,7 +107,7 @@ If BDFNAME doesn't exist, return nil." (defvar bdf-cache nil "Cached information of `BDF' font files. It is a list of FONT-INFO. FONT-INFO is a list of the following format: - (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX + (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) See the documentation of the function `bdf-read-font-info' for more detail.") @@ -146,7 +138,7 @@ The file is written if and only if the file already exists and writable." (defun bdf-set-cache (font-info) "Cache FONT-INFO as information about one `BDF' font file. FONT-INFO is a list of the following format: - (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX + (ABSOLUTE-FILE-NAME MOD-TIME SIZE FONT-BOUNDING-BOX RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) See the documentation of the function `bdf-read-font-info' for more detail." (let ((slot (assoc (car font-info) bdf-cache))) @@ -181,19 +173,16 @@ See the documentation of the function `bdf-read-font-info' for more detail." (defun bdf-read-font-info (bdfname) "Read `BDF' font file BDFNAME and return information (FONT-INFO) of the file. +BDFNAME must be an absolute file name. FONT-INFO is a list of the following format: - (BDFFILE ABSOLUTE-PATH MOD-TIME FONT-BOUNDING-BOX + (BDFFILE MOD-TIME FONT-BOUNDING-BOX RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) -BDFFILE is a name of a font file (excluding directory part). - -ABSOLUTE-PATH is an absolute path of the font file. - MOD-TIME is last modification time as a list of two integers, the first integer has high-order 16 bits, the second has low 16 bits. -SIZE is a size of the font. This value is got from SIZE record of the -font. +SIZE is a size of the font on 72 dpi device. This value is got +from SIZE record of the font. FONT-BOUNDING-BOX is the font bounding box as a list of four integers, BBX-WIDTH, BBX-HEIGHT, BBX-XOFF, and BBX-YOFF. @@ -218,12 +207,12 @@ of the glyph in the font file. Nth element of OFFSET-VECTOR is a file position for the glyph of code CODE, where N and CODE are in the following relation: (bdf-compact-code CODE) => N, (bdf-expand-code N) => CODE" - (let* ((absolute-path (bdf-expand-file-name bdfname)) - (buf (and absolute-path (bdf-find-file absolute-path))) + (let* ((buf (bdf-find-file bdfname)) (maxlen 0) (relative-compose 'false) (baseline-offset 0) size + dpi font-bounding-box default-char code-range @@ -248,12 +237,19 @@ CODE, where N and CODE are in the following relation: (- (aref font-bounding-box 3)))) (goto-char (point-min)) - (search-forward "\nSIZE ") - (setq size (read (current-buffer))) - ;; The following kludgy code is t avoid bugs of several - ;; fonts which have wrong SIZE record. - (and (<= size (/ (aref font-bounding-box 1) 3)) - (setq size (aref font-bounding-box 1))) + (search-forward "\nFONT ") + (if (looking-at "-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-\\([0-9]+\\)") + (setq size (string-to-int (match-string 1))) + (search-forward "\nSIZE ") + (setq size (read (current-buffer))) + ;; The following kludgy code is t avoid bugs of several + ;; fonts which have wrong SIZE record. + (and (string-match "jiskan" bdfname) + (<= size (/ (aref font-bounding-box 1) 3)) + (setq size (aref font-bounding-box 1))) + (setq dpi (read (current-buffer))) + (if (and (> dpi 0) (/= dpi 72)) + (setq size (/ (* size dpi) 72)))) (setq default-char (bdf-search-and-read "\nDEFAULT_CHAR" nil)) @@ -305,55 +301,39 @@ CODE, where N and CODE are in the following relation: (kill-buffer buf)) (message "Reading %s...done" bdfname) - (list bdfname absolute-path (bdf-file-mod-time absolute-path) + (list bdfname (bdf-file-mod-time bdfname) size font-bounding-box relative-compose baseline-offset code-range maxlen offset-vector))) -(defsubst bdf-info-absolute-path (font-info) (nth 1 font-info)) -(defsubst bdf-info-mod-time (font-info) (nth 2 font-info)) -(defsubst bdf-info-size (font-info) (nth 3 font-info)) -(defsubst bdf-info-font-bounding-box (font-info) (nth 4 font-info)) -(defsubst bdf-info-relative-compose (font-info) (nth 5 font-info)) -(defsubst bdf-info-baseline-offset (font-info) (nth 6 font-info)) -(defsubst bdf-info-code-range (font-info) (nth 7 font-info)) -(defsubst bdf-info-maxlen (font-info) (nth 8 font-info)) -(defsubst bdf-info-offset-vector (font-info) (nth 9 font-info)) +(defsubst bdf-info-absolute-path (font-info) (nth 0 font-info)) +(defsubst bdf-info-mod-time (font-info) (nth 1 font-info)) +(defsubst bdf-info-size (font-info) (nth 2 font-info)) +(defsubst bdf-info-font-bounding-box (font-info) (nth 3 font-info)) +(defsubst bdf-info-relative-compose (font-info) (nth 4 font-info)) +(defsubst bdf-info-baseline-offset (font-info) (nth 5 font-info)) +(defsubst bdf-info-code-range (font-info) (nth 6 font-info)) +(defsubst bdf-info-maxlen (font-info) (nth 7 font-info)) +(defsubst bdf-info-offset-vector (font-info) (nth 8 font-info)) (defun bdf-get-font-info (bdfname) "Return information about `BDF' font file BDFNAME. +BDFNAME must be an absolute file name. The value FONT-INFO is a list of the following format: - (BDFFILE ABSOLUTE-PATH MOD-TIME SIZE FONT-BOUNDING-BOX + (BDFNAME MOD-TIME SIZE FONT-BOUNDING-BOX RELATIVE-COMPOSE BASELINE-OFFSET CODE-RANGE MAXLEN OFFSET-VECTOR) See the documentation of the function `bdf-read-font-info' for more detail." (or bdf-cache (bdf-read-cache)) (let ((font-info (assoc bdfname bdf-cache))) (if (or (not font-info) - (not (file-readable-p (bdf-info-absolute-path font-info))) + (not (file-readable-p bdfname)) (bdf-file-newer-than-time bdfname (bdf-info-mod-time font-info))) (progn (setq font-info (bdf-read-font-info bdfname)) (bdf-set-cache font-info))) font-info)) -(defun bdf-find-font-info (bdfnames) - "Return information about `BDF' font file with alternative names BDFNAMES. - -If BDFNAMES is a list of file names, this function finds the first file -in the list which exists and is readable, then calls `bdf-get-font-info' -on that file name." - (let ((fnlist bdfnames) - (fname bdfnames)) - (if (consp fnlist) - (while (and fnlist - (progn - (setq fname (car fnlist)) - (null (bdf-expand-file-name fname)))) - (setq fname nil - fnlist (cdr fnlist)))) - (bdf-get-font-info (or fname (car bdfnames))))) - -(defun bdf-read-bitmap (bdfname offset maxlen) +(defun bdf-read-bitmap (bdfname offset maxlen relative-compose) "Read `BDF' font file BDFNAME to get bitmap data at file position OFFSET. BDFNAME is an absolute path name of the font file. MAXLEN specifies how many bytes we should read at least. @@ -362,7 +342,7 @@ DWIDTH is a pixel width of a glyph. BBX is a bounding box of the glyph. BITMAP-STRING is a string representing bits by hexadecimal digits." (let* ((coding-system-for-read 'no-conversion) - (bbx (elt (bdf-get-font-info bdfname) 4)) + (bbx (bdf-info-font-bounding-box (bdf-get-font-info bdfname))) (dwidth (elt bbx 0)) (bitmap-string "") height yoff) @@ -372,6 +352,8 @@ BITMAP-STRING is a string representing bits by hexadecimal digits." (goto-char (point-min)) (search-forward "\nDWIDTH") (setq dwidth (read (current-buffer))) + (if (= dwidth 0) + (setq dwidth 0.1)) (goto-char (point-min)) (search-forward "\nBBX") (setq bbx (vector (read (current-buffer)) (read (current-buffer)) @@ -403,29 +385,26 @@ BITMAP-STRING is a string representing bits by hexadecimal digits." (delete-char 1)) (setq bitmap-string (buffer-string))) (error nil)) - (list dwidth bbx bitmap-string))) - -(defun bdf-get-bitmaps (bdfname codes) - "Return bitmap information of glyphs of CODES in `BDF' font file BDFNAME. -CODES is a list of encoding number of glyphs in the file. -The value is a list of CODE, DWIDTH, BBX, and BITMAP-STRING. + (vector dwidth (aref bbx 0) (aref bbx 1) (aref bbx 2) (aref bbx 3) + (concat "<" bitmap-string ">") + (or relative-compose 'false)))) + +(defun bdf-get-bitmap (bdfname code) + "Return bitmap information of glyph of CODE in `BDF' font file BDFNAME. +CODE is an encoding number of glyph in the file. +The value is a list (DWIDTH BBX BITMAP-STRING). DWIDTH is a pixel width of a glyph. BBX is a bounding box of the glyph. BITMAP-STRING is a string representing bits by hexadecimal digits." - (let* ((font-info (bdf-find-font-info bdfname)) - (absolute-path (bdf-info-absolute-path font-info)) - ;;(font-bounding-box (bdf-info-font-bounding-box font-info)) - (maxlen (bdf-info-maxlen font-info)) - (code-range (bdf-info-code-range font-info)) - (offset-vector (bdf-info-offset-vector font-info))) - (mapcar '(lambda (x) - (cons x (bdf-read-bitmap - absolute-path - (aref offset-vector (bdf-compact-code x code-range)) - maxlen))) - codes))) - -;;; Interface to ps-print.el + (let* ((info (bdf-get-font-info bdfname)) + (maxlen (bdf-info-maxlen info)) + (code-range (bdf-info-code-range info)) + (offset-vector (bdf-info-offset-vector info))) + (bdf-read-bitmap bdfname + (aref offset-vector (bdf-compact-code code code-range)) + maxlen (bdf-info-relative-compose info)))) + +;;; Interface to ps-mule.el ;; Called from ps-mule-init-external-library. (defun bdf-generate-prologue () @@ -433,27 +412,36 @@ BITMAP-STRING is a string representing bits by hexadecimal digits." (bdf-initialize)) (ps-mule-generate-bitmap-prologue)) +;; Called from ps-mule-check-font. +(defun bdf-check-font (font-spec) + (let ((font-name-list (ps-mule-font-spec-name font-spec))) + (ps-mule-font-spec-set-name + font-spec + (if (stringp font-name-list) + (bdf-expand-file-name font-name-list) + (catch 'tag + (dolist (font-name font-name-list) + (setq font-name (bdf-expand-file-name font-name)) + (if font-name + (throw 'tag font-name)))))))) + ;; Called from ps-mule-generate-font. -(defun bdf-generate-font (charset font-spec) - (let* ((font-name (ps-mule-font-spec-name font-spec)) - (font-info (bdf-find-font-info font-name)) - (font-name (if (consp font-name) (car font-name) font-name))) - (ps-mule-generate-bitmap-font font-name - (ps-mule-font-spec-bytes font-spec) - (charset-width charset) - (bdf-info-size font-info) - (bdf-info-relative-compose font-info) - (bdf-info-baseline-offset font-info) - (bdf-info-font-bounding-box font-info)))) - -;; Called from ps-mule-generate-glyphs. -(defun bdf-generate-glyphs (font-spec code-list bytes) - (let ((font-name (ps-mule-font-spec-name font-spec))) - (mapcar '(lambda (x) - (apply 'ps-mule-generate-bitmap-glyph - (if (consp font-name) (car font-name) font-name) - x)) - (bdf-get-bitmaps font-name code-list)))) +(defun bdf-generate-font (font-spec) + (let ((info (bdf-get-font-info (ps-mule-font-spec-name font-spec)))) + (ps-mule-font-spec-set-extra + font-spec (bdf-info-absolute-path info)) + (ps-mule-generate-bitmap-font font-spec + (bdf-info-size info) + (bdf-info-relative-compose info) + (bdf-info-baseline-offset info) + (bdf-info-font-bounding-box info)))) + +;; Called from ps-mule-generate-glyph. +(defun bdf-generate-glyph (font-spec char) + (let ((font-name (ps-mule-font-spec-extra font-spec)) + (code (ps-mule-encode-char char font-spec))) + (ps-mule-generate-bitmap-glyph font-spec char code + (bdf-get-bitmap font-name code)))) (provide 'ps-bdf) diff --git a/lisp/ps-def.el b/lisp/ps-def.el new file mode 100644 index 00000000000..547939ef32e --- /dev/null +++ b/lisp/ps-def.el @@ -0,0 +1,456 @@ +;;; ps-def.el --- XEmacs and Emacs definitions for ps-print + +;; Copyright (C) 2007 Free Software Foundation, Inc. + +;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br> +;; Kenichi Handa <handa@m17n.org> (multi-byte characters) +;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) +;; Vinicius Jose Latorre <viniciusjl@ig.com.br> +;; Keywords: wp, print, PostScript +;; Version: 7.2.2 +;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre + +;; 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. + +;;; Commentary: + +;; See ps-print.el for documentation. + +;;; Code: + + + +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; XEmacs Definitions + + +(cond + ((featurep 'xemacs) ; XEmacs + + + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; ps-bdf + + (defvar installation-directory nil) + (defvar coding-system-for-read) + + + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; ps-mule + + (defvar leading-code-private-22 157) + + (or (fboundp 'charset-bytes) + (defun charset-bytes (charset) 1)) ; ascii + + (or (fboundp 'charset-dimension) + (defun charset-dimension (charset) 1)) ; ascii + + (or (fboundp 'charset-id) + (defun charset-id (charset) 0)) ; ascii + + (or (fboundp 'charset-width) + (defun charset-width (charset) 1)) ; ascii + + (or (fboundp 'find-charset-region) + (defun find-charset-region (beg end &optional table) + (list 'ascii))) + + (or (fboundp 'char-width) + (defun char-width (char) 1)) ; ascii + + (or (fboundp 'chars-in-region) + (defun chars-in-region (beg end) + (- (max beg end) (min beg end)))) + + (or (fboundp 'forward-point) + (defun forward-point (arg) + (save-excursion + (let ((count (abs arg)) + (step (if (zerop arg) + 0 + (/ arg arg)))) + (while (and (> count 0) + (< (point-min) (point)) (< (point) (point-max))) + (forward-char step) + (setq count (1- count))) + (+ (point) (* count step)))))) + + (or (fboundp 'decompose-composite-char) + (defun decompose-composite-char (char &optional type + with-composition-rule) + nil)) + + (or (fboundp 'encode-coding-string) + (defun encode-coding-string (string coding-system &optional nocopy) + (if nocopy + string + (copy-sequence string)))) + + (or (fboundp 'coding-system-p) + (defun coding-system-p (obj) nil)) + + (or (fboundp 'ccl-execute-on-string) + (defun ccl-execute-on-string (ccl-prog status str + &optional contin unibyte-p) + str)) + + (or (fboundp 'define-ccl-program) + (defmacro define-ccl-program (name ccl-program &optional doc) + `(defconst ,name nil ,doc))) + + (or (fboundp 'multibyte-string-p) + (defun multibyte-string-p (str) + (let ((len (length str)) + (i 0) + multibyte) + (while (and (< i len) (not (setq multibyte (> (aref str i) 255)))) + (setq i (1+ i))) + multibyte))) + + (or (fboundp 'string-make-multibyte) + (defalias 'string-make-multibyte 'copy-sequence)) + + (or (fboundp 'encode-char) + (defun encode-char (ch ccs) + ch)) + + + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; ps-print + + ;; GNU Emacs + (or (fboundp 'line-beginning-position) + (defun line-beginning-position (&optional n) + (save-excursion + (and n (/= n 1) (forward-line (1- n))) + (beginning-of-line) + (point)))) + + + ;; GNU Emacs + (or (fboundp 'find-composition) + (defalias 'find-composition 'ignore)) + + + (defun ps-xemacs-color-name (color) + (if (color-specifier-p color) + (color-name color) + color)) + + + (defalias 'ps-mark-active-p 'region-active-p) + + + (defun ps-face-foreground-name (face) + (ps-xemacs-color-name (face-foreground face))) + + + (defun ps-face-background-name (face) + (ps-xemacs-color-name (face-background face))) + + + (defalias 'ps-frame-parameter 'frame-property) + + + ;; Return t if the device (which can be changed during an emacs session) + ;; can handle colors. + ;; XEmacs change: Need to check for emacs-major-version too. + (if (or (> emacs-major-version 19) + (and (= emacs-major-version 19) + (>= emacs-minor-version 12))) + ;; xemacs >= 19.12 + (defun ps-color-device () + (eq (device-class) 'color)) + ;; xemacs < 19.12 + (setq ps-print-color-p nil) + (defalias 'ps-color-device 'ignore)) + + + (defun ps-mapper (extent list) + (nconc list + (list (list (extent-start-position extent) 'push extent) + (list (extent-end-position extent) 'pull extent))) + nil) + + + (defun ps-extent-sorter (a b) + (< (extent-priority a) (extent-priority b))) + + + (defun ps-xemacs-face-kind-p (face kind kind-regex) + (let* ((frame-font (or (face-font-instance face) + (face-font-instance 'default))) + (kind-cons + (and frame-font + (assq kind + (font-instance-properties frame-font)))) + (kind-spec (cdr-safe kind-cons)) + (case-fold-search t)) + (and kind-spec (string-match kind-regex kind-spec)))) + + + ;; to avoid XEmacs compilation gripes + (defvar coding-system-for-write) + (defvar buffer-file-coding-system) + + + (and (fboundp 'find-coding-system) + (or (funcall 'find-coding-system 'raw-text-unix) + (funcall 'copy-coding-system 'no-conversion-unix 'raw-text-unix))) + + + (defun ps-color-values (x-color) + (let ((color (ps-xemacs-color-name x-color))) + (cond + ((fboundp 'x-color-values) + (funcall 'x-color-values color)) + ((and (fboundp 'color-instance-rgb-components) + (ps-color-device)) + (funcall 'color-instance-rgb-components + (if (color-instance-p x-color) + x-color + (make-color-instance color)))) + (t + (error "No available function to determine X color values"))))) + + + (defun ps-face-bold-p (face) + (or (ps-xemacs-face-kind-p face 'WEIGHT_NAME "bold\\|demibold") + (memq face ps-bold-faces))) ; Kludge-compatible + + + (defun ps-face-italic-p (face) + (or (ps-xemacs-face-kind-p face 'ANGLE_NAME "i\\|o") + (ps-xemacs-face-kind-p face 'SLANT "i\\|o") + (memq face ps-italic-faces))) ; Kludge-compatible + + + ;; XEmacs will have to make do with %s (princ) for floats. + (defvar ps-color-format "%s %s %s") + (defvar ps-float-format "%s ") + + + (defun ps-generate-postscript-with-faces1 (from to) + ;; Generate some PostScript. + (let ((face 'default) + (position to) + ;; XEmacs + ;; Build the list of extents... + (a (cons 'dummy nil)) + record type extent extent-list) + (map-extents 'ps-mapper nil from to a) + (setq a (sort (cdr a) 'car-less-than-car) + extent-list nil) + + ;; Loop through the extents... + (while a + (setq record (car a) + position (car record) + + record (cdr record) + type (car record) + + record (cdr record) + extent (car record)) + + ;; Plot up to this record. + ;; XEmacs 19.12: for some reason, we're getting into a + ;; situation in which some of the records have + ;; positions less than 'from'. Since we've narrowed + ;; the buffer, this'll generate errors. This is a hack, + ;; but don't call ps-plot-with-face unless from > point-min. + (and (>= from (point-min)) + (ps-plot-with-face from (min position (point-max)) face)) + + (cond + ((eq type 'push) + (and (extent-face extent) + (setq extent-list (sort (cons extent extent-list) + 'ps-extent-sorter)))) + + ((eq type 'pull) + (setq extent-list (sort (delq extent extent-list) + 'ps-extent-sorter)))) + + (setq face (if extent-list + (extent-face (car extent-list)) + 'default) + from position + a (cdr a))) + + (ps-plot-with-face from to face))) + + ) + (t ; Emacs + ;; Do nothing + )) ; end cond featurep + + + +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Emacs Definitions + + +(cond + ((featurep 'xemacs) ; XEmacs + ;; Do nothing + ) + (t ; Emacs + + + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; ps-print + + + (defun ps-mark-active-p () + mark-active) + + + (defun ps-face-foreground-name (face) + (face-foreground face nil t)) + + + (defun ps-face-background-name (face) + (face-background face nil t)) + + + (defalias 'ps-frame-parameter 'frame-parameter) + + + ;; Return t if the device (which can be changed during an emacs session) can + ;; handle colors. This function is not yet implemented for GNU emacs. + (defun ps-color-device () + (if (fboundp 'color-values) + (funcall 'color-values "Green") + t)) + + + (defun ps-color-values (x-color) + (cond + ((fboundp 'color-values) + (funcall 'color-values x-color)) + ((fboundp 'x-color-values) + (funcall 'x-color-values x-color)) + (t + (error "No available function to determine X color values")))) + + + (defun ps-face-bold-p (face) + (or (face-bold-p face) + (memq face ps-bold-faces))) + + + (defun ps-face-italic-p (face) + (or (face-italic-p face) + (memq face ps-italic-faces))) + + + ;; Emacs understands the %f format; we'll use it to limit color RGB values + ;; to three decimals to cut down some on the size of the PostScript output. + (defvar ps-color-format "%0.3f %0.3f %0.3f") + (defvar ps-float-format "%0.3f ") + + + (defun ps-generate-postscript-with-faces1 (from to) + ;; Generate some PostScript. + (let ((face 'default) + (position to) + ;; Emacs + (property-change from) + (overlay-change from) + (save-buffer-invisibility-spec buffer-invisibility-spec) + (buffer-invisibility-spec nil) + before-string after-string) + (while (< from to) + (and (< property-change to) ; Don't search for property change + ; unless previous search succeeded. + (setq property-change (next-property-change from nil to))) + (and (< overlay-change to) ; Don't search for overlay change + ; unless previous search succeeded. + (setq overlay-change (min (next-overlay-change from) + to))) + (setq position (min property-change overlay-change) + before-string nil + after-string nil) + ;; The code below is not quite correct, + ;; because a non-nil overlay invisible property + ;; which is inactive according to the current value + ;; of buffer-invisibility-spec nonetheless overrides + ;; a face text property. + (setq face + (cond ((let ((prop (get-text-property from 'invisible))) + ;; Decide whether this invisible property + ;; really makes the text invisible. + (if (eq save-buffer-invisibility-spec t) + (not (null prop)) + (or (memq prop save-buffer-invisibility-spec) + (assq prop save-buffer-invisibility-spec)))) + 'emacs--invisible--face) + ((get-text-property from 'face)) + (t 'default))) + (let ((overlays (overlays-at from)) + (face-priority -1)) ; text-property + (while (and overlays + (not (eq face 'emacs--invisible--face))) + (let* ((overlay (car overlays)) + (overlay-invisible + (overlay-get overlay 'invisible)) + (overlay-priority + (or (overlay-get overlay 'priority) 0))) + (and (> overlay-priority face-priority) + (setq before-string + (or (overlay-get overlay 'before-string) + before-string) + after-string + (or (and (<= (overlay-end overlay) position) + (overlay-get overlay 'after-string)) + after-string) + face-priority overlay-priority + face + (cond + ((if (eq save-buffer-invisibility-spec t) + (not (null overlay-invisible)) + (or (memq overlay-invisible + save-buffer-invisibility-spec) + (assq overlay-invisible + save-buffer-invisibility-spec))) + 'emacs--invisible--face) + ((overlay-get overlay 'face)) + (t face) + )))) + (setq overlays (cdr overlays)))) + ;; Plot up to this record. + (and before-string + (ps-plot-string before-string)) + (ps-plot-with-face from position face) + (and after-string + (ps-plot-string after-string)) + (setq from position)) + (ps-plot-with-face from to face))) + + )) ; end cond featurep + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(provide 'ps-def) + +;; arch-tag: 4edde45b-af10-4685-b8ee-7cd0f951095a +;;; ps-def.el ends here diff --git a/lisp/ps-mule.el b/lisp/ps-mule.el index fcad2c85bdf..54054e4e36e 100644 --- a/lisp/ps-mule.el +++ b/lisp/ps-mule.el @@ -91,78 +91,7 @@ ;;; Code: (eval-and-compile - (require 'ps-print) - - ;; to avoid XEmacs compilation gripes - (defvar leading-code-private-22 157) - (or (fboundp 'charset-bytes) - (defun charset-bytes (charset) 1)) ; ascii - (or (fboundp 'charset-dimension) - (defun charset-dimension (charset) 1)) ; ascii - (or (fboundp 'charset-id) - (defun charset-id (charset) 0)) ; ascii - (or (fboundp 'charset-width) - (defun charset-width (charset) 1)) ; ascii - (or (fboundp 'find-charset-region) - (defun find-charset-region (beg end &optional table) - (list 'ascii))) - (or (fboundp 'char-valid-p) - (defun char-valid-p (char) - (< (following-char) 256))) - (or (fboundp 'split-char) - (defun split-char (char) - (list (if (char-valid-p char) - 'ascii - 'unknow) - char))) - (or (fboundp 'char-width) - (defun char-width (char) 1)) ; ascii - (or (fboundp 'chars-in-region) - (defun chars-in-region (beg end) - (- (max beg end) (min beg end)))) - (or (fboundp 'forward-point) - (defun forward-point (arg) - (save-excursion - (let ((count (abs arg)) - (step (if (zerop arg) - 0 - (/ arg arg)))) - (while (and (> count 0) - (< (point-min) (point)) (< (point) (point-max))) - (forward-char step) - (setq count (1- count))) - (+ (point) (* count step)))))) - (or (fboundp 'decompose-composite-char) - (defun decompose-composite-char (char &optional type - with-composition-rule) - nil)) - (or (fboundp 'encode-coding-string) - (defun encode-coding-string (string coding-system &optional nocopy) - (if nocopy - string - (copy-sequence string)))) - (or (fboundp 'coding-system-p) - (defun coding-system-p (obj) nil)) - (or (fboundp 'ccl-execute-on-string) - (defun ccl-execute-on-string (ccl-prog status str - &optional contin unibyte-p) - str)) - (or (fboundp 'define-ccl-program) - (defmacro define-ccl-program (name ccl-program &optional doc) - `(defconst ,name nil ,doc))) - (or (fboundp 'multibyte-string-p) - (defun multibyte-string-p (str) - (let ((len (length str)) - (i 0) - multibyte) - (while (and (< i len) (not (setq multibyte (> (aref str i) 255)))) - (setq i (1+ i))) - multibyte))) - (or (fboundp 'string-make-multibyte) - (defalias 'string-make-multibyte 'copy-sequence)) - (or (fboundp 'encode-char) - (defun encode-char (ch ccs) - ch))) + (require 'ps-print)) ;;;###autoload @@ -255,8 +184,8 @@ font family. See also the variable `ps-font-info-database'.") (defconst ps-mule-font-info-database-latin - '((latin-iso8859-1 - (normal nil nil iso-latin-1))) + '((iso-8859-1 + (normal nil nil))) "Sample setting of `ps-mule-font-info-database' to use latin fonts.") (defcustom ps-mule-font-info-database-default @@ -267,119 +196,104 @@ See also the variable `ps-font-info-database'.") (defconst ps-mule-font-info-database-ps '((katakana-jisx0201 - (normal builtin "Ryumin-Light.Katakana" ps-mule-encode-7bit 1) - (bold builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1) - (bold-italic builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1)) + (normal builtin "Ryumin-Light.Katakana") + (bold builtin "GothicBBB-Medium.Katakana") + (bold-italic builtin "GothicBBB-Medium.Katakana")) (latin-jisx0201 - (normal builtin "Ryumin-Light.Hankaku" ps-mule-encode-7bit 1) - (bold builtin "GothicBBB-Medium.Hankaku" ps-mule-encode-7bit 1)) + (normal builtin "Ryumin-Light.Hankaku") + (bold builtin "GothicBBB-Medium.Hankaku")) (japanese-jisx0208 - (normal builtin "Ryumin-Light-H" ps-mule-encode-7bit 2) - (bold builtin "GothicBBB-Medium-H" ps-mule-encode-7bit 2)) + (normal builtin "Ryumin-Light-H") + (bold builtin "GothicBBB-Medium-H")) (korean-ksc5601 - (normal builtin "Munhwa-Regular-KSC-EUC-H" ps-mule-encode-7bit 2) - (bold builtin "Munhwa-Bold-KSC-EUC-H" ps-mule-encode-7bit 2)) + (normal builtin "Munhwa-Regular-KSC-EUC-H") + (bold builtin "Munhwa-Bold-KSC-EUC-H")) ) "Sample setting of the `ps-mule-font-info-database' to use builtin PS font. Currently, data for Japanese and Korean PostScript printers are listed.") (defconst ps-mule-font-info-database-bdf - '((ascii - (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf") nil 1) - (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf") nil 1) - (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf") nil 1) - (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf") nil 1)) - (latin-iso8859-1 - (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf") iso-latin-1 1) - (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf") iso-latin-1 1) - (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf") iso-latin-1 1) - (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf") iso-latin-1 1)) - (latin-iso8859-2 - (normal bdf ("lt2-24-etl.bdf" "etl24-latin2.bdf") iso-latin-2 1)) - (latin-iso8859-3 - (normal bdf ("lt3-24-etl.bdf" "etl24-latin3.bdf") iso-latin-3 1)) - (latin-iso8859-4 - (normal bdf ("lt4-24-etl.bdf" "etl24-latin4.bdf") iso-latin-4 1)) + '((iso-8859-1 + (normal bdf ("lt1-24-etl.bdf" "etl24-latin1.bdf")) + (bold bdf ("lt1-16b-etl.bdf" "etl16b-latin1.bdf")) + (italic bdf ("lt1-16i-etl.bdf" "etl16i-latin1.bdf")) + (bold-italic bdf ("lt1-16bi-etl.bdf" "etl16bi-latin1.bdf"))) + (iso-8859-2 + (normal bdf ("lt2-24-etl.bdf" "etl24-latin2.bdf"))) + (iso-8859-3 + (normal bdf ("lt3-24-etl.bdf" "etl24-latin3.bdf"))) + (iso-8859-4 + (normal bdf ("lt4-24-etl.bdf" "etl24-latin4.bdf"))) (thai-tis620 - (normal bdf ("thai24.bdf" "thai-24.bdf") thai-tis620 1)) + (normal bdf ("thai24.bdf" "thai-24.bdf") iso-8859-11)) (greek-iso8859-7 - (normal bdf ("grk24-etl.bdf" "etl24-greek.bdf") greek-iso-8bit 1)) - ;; (arabic-iso8859-6 nil) ; not yet available + (normal bdf ("grk24-etl.bdf" "etl24-greek.bdf") iso-8859-7)) (hebrew-iso8859-8 - (normal bdf ("heb24-etl.bdf" "etl24-hebrew.bdf") hebrew-iso-8bit 1)) - (katakana-jisx0201 - (normal bdf "12x24rk.bdf" ps-mule-encode-8bit 1)) - (latin-jisx0201 - (normal bdf "12x24rk.bdf" ps-mule-encode-7bit 1)) + (normal bdf ("heb24-etl.bdf" "etl24-hebrew.bdf") iso-8859-8)) + (jisx0201 + (normal bdf "12x24rk.bdf" jisx0201)) (cyrillic-iso8859-5 - (normal bdf ("cyr24-etl.bdf" "etl24-cyrillic.bdf") cyrillic-iso-8bit 1)) - (latin-iso8859-9 - (normal bdf ("lt5-24-etl.bdf" "etl24-latin5.bdf") iso-latin-5 1)) - (japanese-jisx0208-1978 - (normal bdf "jiskan24.bdf" ps-mule-encode-7bit 2)) + (normal bdf ("cyr24-etl.bdf" "etl24-cyrillic.bdf") iso-8859-5)) + (iso-8859-9 + (normal bdf ("lt5-24-etl.bdf" "etl24-latin5.bdf") iso-8859-9)) (chinese-gb2312 - (normal bdf "gb24st.bdf" ps-mule-encode-7bit 2)) + (normal bdf "gb24st.bdf")) (japanese-jisx0208 - (normal bdf "jiskan24.bdf" ps-mule-encode-7bit 2)) + (normal bdf "jiskan24.bdf")) (korean-ksc5601 - (normal bdf "hanglm24.bdf" ps-mule-encode-7bit 2)) + (normal bdf "hanglm24.bdf")) (japanese-jisx0212 - (normal bdf ("jksp40.bdf" "jisksp40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("jksp40.bdf" "jisksp40.bdf"))) (chinese-cns11643-1 - (normal bdf ("cns1-40.bdf" "cns-1-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns1-40.bdf" "cns-1-40.bdf"))) (chinese-cns11643-2 - (normal bdf ("cns2-40.bdf" "cns-2-40.bdf") ps-mule-encode-7bit 2)) - (chinese-big5-1 - (normal bdf "taipei24.bdf" chinese-big5 2)) - (chinese-big5-2 - (normal bdf "taipei24.bdf" chinese-big5 2)) + (normal bdf ("cns2-40.bdf" "cns-2-40.bdf"))) + (big5 + (normal bdf "taipei24.bdf")) (chinese-sisheng - (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf") ps-mule-encode-7bit 1)) + (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf"))) (ipa - (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ps-mule-encode-8bit 1)) - (vietnamese-viscii-lower - (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf") vietnamese-viscii 1)) - (vietnamese-viscii-upper - (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf") vietnamese-viscii 1)) + (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ipa)) + (viscii + (normal bdf ("visc24-etl.bdf" "etl24-viscii.bdf"))) (arabic-digit - (normal bdf ("arab24-0-etl.bdf" "etl24-arabic0.bdf") ps-mule-encode-7bit 1)) + (normal bdf ("arab24-0-etl.bdf" "etl24-arabic0.bdf"))) (arabic-1-column - (normal bdf ("arab24-1-etl.bdf" "etl24-arabic1.bdf") ps-mule-encode-7bit 1)) - ;; (ascii-right-to-left nil) ; not yet available + (normal bdf ("arab24-1-etl.bdf" "etl24-arabic1.bdf"))) (lao - (normal bdf ("lao24-mule.bdf" "mule-lao-24.bdf") lao 1)) + (normal bdf ("lao24-mule.bdf" "mule-lao-24.bdf") ps-mule-encode-lao 1)) (arabic-2-column - (normal bdf ("arab24-2-etl.bdf" "etl24-arabic2.bdf") ps-mule-encode-7bit 1)) + (normal bdf ("arab24-2-etl.bdf" "etl24-arabic2.bdf"))) + (devanagari-cdac + (normal bdf "dvsr0ntt-32.bdf")) + (malayalam-cdac + (normal bdf "mlkr0ntt-32.bdf")) + (tamil-cdac + (normal bdf "tmvl0ntt-32.bdf")) (indian-is13194 - (normal bdf ("isci24-mule.bdf" "mule-iscii-24.bdf") ps-mule-encode-7bit 1)) + (normal bdf ("isci24-mule.bdf" "mule-iscii-24.bdf"))) (indian-1-column - (normal bdf ("ind1c24-mule.bdf" "mule-indian-1col-24.bdf") ps-mule-encode-7bit 2)) - (tibetan-1-column - (normal bdf ("tib1c24-mule.bdf" "mule-tibmdx-1col-24.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("ind1c24-mule.bdf" "mule-indian-1col-24.bdf"))) (ethiopic - (normal bdf ("ethio24f-uni.bdf" "ethiomx24f-uni.bdf") ps-mule-encode-ethiopic 2)) + (normal bdf ("ethio24f-uni.bdf" "ethiomx24f-uni.bdf") unicode-bmp)) (chinese-cns11643-3 - (normal bdf ("cns3-40.bdf" "cns-3-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns3-40.bdf" "cns-3-40.bdf"))) (chinese-cns11643-4 - (normal bdf ("cns4-40.bdf" "cns-4-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns4-40.bdf" "cns-4-40.bdf"))) (chinese-cns11643-5 - (normal bdf ("cns5-40.bdf" "cns-5-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns5-40.bdf" "cns-5-40.bdf"))) (chinese-cns11643-6 - (normal bdf ("cns6-40.bdf" "cns-6-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns6-40.bdf" "cns-6-40.bdf"))) (chinese-cns11643-7 - (normal bdf ("cns7-40.bdf" "cns-7-40.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("cns7-40.bdf" "cns-7-40.bdf"))) (indian-2-column - (normal bdf ("ind24-mule.bdf" "mule-indian-24.bdf") ps-mule-encode-7bit 2)) + (normal bdf ("ind24-mule.bdf" "mule-indian-24.bdf"))) (tibetan - (normal bdf ("tib24p-mule.bdf" "tib24-mule.bdf" "mule-tibmdx-24.bdf") - ps-mule-encode-7bit 2)) - (mule-unicode-0100-24ff - (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2)) - (mule-unicode-2500-33ff - (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2)) - (mule-unicode-e000-ffff - (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2))) + (normal bdf ("tib24p-mule.bdf" "tib24-mule.bdf" "mule-tibmdx-24.bdf"))) + (unicode-bmp + (normal bdf "etl24-unicode.bdf")) + ) "Sample setting of the `ps-mule-font-info-database' to use BDF fonts. BDF (Bitmap Distribution Format) is a format used for distributing X's font source file. @@ -407,130 +321,112 @@ by `ps-font-family' and `ps-header-font-family'. See also `ps-mule-font-info-database-bdf'.") -;; Two typical encoding functions for PostScript fonts. - -(defun ps-mule-encode-7bit (string) - (ps-mule-encode-bit string 0)) - -(defun ps-mule-encode-8bit (string) - (ps-mule-encode-bit string 128)) - -(defun ps-mule-encode-bit (string delta) - (let* ((dim (charset-dimension (char-charset (string-to-char string)))) - (len (length string)) - (str (make-string (* len dim) 0)) - (j 0)) - (if (= dim 1) - ;; (apply 'string - ;; (mapcar (lambda (c) (+ (nth 1 (split-char c)) delta)) - ;; string)) - (dotimes (i len) - (aset str i - (+ (nth 1 (split-char (aref string i))) delta))) - ;; (mapconcat (lambda (c) - ;; (let ((split (split-char c))) - ;; (string (+ (nth 1 split) delta) - ;; (+ (nth 2 split) delta)))) - ;; string "") - (dotimes (i len) - (let ((split (split-char (aref string i)))) - (aset str j (+ (nth 1 split) delta)) - (aset str (1+ j) (+ (nth 2 split) delta)) - (setq j (+ j 2))))) - str)) - -;; Special encoding function for Ethiopic. -(if (boundp 'mule-version) ; only if mule package is loaded - (define-ccl-program ccl-encode-ethio-unicode - `(1 - ((read r2) - (loop - (if (r2 == ,leading-code-private-22) - ((read r0) - (if (r0 == ,(charset-id 'ethiopic)) - ((read r1 r2) - (r1 &= 127) (r2 &= 127) - (call ccl-encode-ethio-font) - (write r1) - (write-read-repeat r2)) - ((write r2 r0) - (repeat)))) - (write-read-repeat r2)))))) - ;; to avoid compilation gripes - (defvar ccl-encode-ethio-unicode nil)) - -(defalias 'ps-mule-encode-ethiopic - (if (boundp 'mule-version) - ;; Bound mule-version. - (lambda (string) - (ccl-execute-on-string (symbol-value 'ccl-encode-ethio-unicode) - (make-vector 9 nil) - string)) - ;; Unbound mule-version. - #'identity)) - -;; Special encoding for mule-unicode-* characters. -(defun ps-mule-encode-ucs2 (string) - (let* ((len (length string)) - (str (make-string (* 2 len) 0)) - (j 0) - ch hi lo) - (dotimes (i len) - (setq ch (encode-char (aref string i) 'ucs) - hi (lsh ch -8) - lo (logand ch 255)) - (aset str j hi) - (aset str (1+ j) lo) - (setq j (+ j 2))) - str)) - -;; A charset which we are now processing. -(defvar ps-mule-current-charset nil) - -(defun ps-mule-get-font-spec (charset font-type) - "Return FONT-SPEC for printing characters CHARSET with FONT-TYPE. -FONT-SPEC is a list that has the form: - - (FONT-SRC FONT-NAME ENCODING BYTES) - -FONT-SPEC is extracted from `ps-mule-font-info-database'. - -See the documentation of `ps-mule-font-info-database' for the meaning of each -element of the list." - (let ((slot (cdr (assq charset ps-mule-font-info-database)))) - (and slot - (cdr (or (assq font-type slot) - (and (eq font-type 'bold-italic) - (or (assq 'bold slot) (assq 'italic slot))) - (assq 'normal slot)))))) +(defvar ps-mule-font-spec-list nil + "Array of FONT-SPEC lists for each font type. + +Elements are for `normal' font, `bold' font, `italic' font, and +`bold-italic' font in this order. + +Each element is a list of FONT-SPEC which has this form: + + (ID CHARSET (FONT-SRC FONT-NAME ENCODING) EXTRA-DATA) + +Where + +ID is a number for this FONT-SPEC and is unique in the list. + +CHARSET, FONT-SRC, FONT-NAME, ENCODING are the same as those in +`ps-mule-font-info-database' (which see). + +EXTRA-DATA is a data attached by external libraries. + +Each list is ordered by the current charset priorities. + +This variable is setup by `ps-mule-begin-job' from +`ps-mule-font-info-database'.") ;; Functions to access each element of FONT-SPEC. -(defsubst ps-mule-font-spec-src (font-spec) (car font-spec)) -(defsubst ps-mule-font-spec-name (font-spec) (nth 1 font-spec)) -(defsubst ps-mule-font-spec-encoding (font-spec) (nth 2 font-spec)) -(defsubst ps-mule-font-spec-bytes (font-spec) (nth 3 font-spec)) - -(defsubst ps-mule-printable-p (charset) - "Non-nil if characters in CHARSET is printable." - ;; ASCII and Latin-1 are always printable. - (or (eq charset 'ascii) - (eq charset 'latin-iso8859-1) - (ps-mule-get-font-spec charset 'normal))) +(defsubst ps-mule-font-spec-id (font-spec) (aref font-spec 0)) +(defsubst ps-mule-font-spec-charset (font-spec) (aref font-spec 1)) +(defsubst ps-mule-font-spec-font-id (font-spec) (aref font-spec 2)) +(defsubst ps-mule-font-spec-src (font-spec) (aref font-spec 3)) +(defsubst ps-mule-font-spec-name (font-spec) (aref font-spec 4)) +(defsubst ps-mule-font-spec-set-name (font-spec name) + (aset font-spec 4 name)) +(defsubst ps-mule-font-spec-encoding (font-spec) (aref font-spec 5)) +(defsubst ps-mule-font-spec-bytes (font-spec) (aref font-spec 6)) +(defsubst ps-mule-font-spec-extra (font-spec) (aref font-spec 7)) +(defsubst ps-mule-font-spec-set-extra (font-spec extra) + (aset font-spec 7 extra)) + +;; Functions to encode character into glyph code. +(defun ps-mule-encode-lao (char) + (- char #x0DE0)) + +(defun ps-mule-encode-char (char font-spec) + (let ((encoding (ps-mule-font-spec-encoding font-spec))) + (cond ((charsetp encoding) + (encode-char char encoding)) + ((fboundp encoding) + (funcall encoding char)) + (t + char)))) + +;; Array of FONT-SPEC-TABLEs; Nth element is for FONT-TYPE N. +;; +;; FONT-TYPE is 0, 1, 2, or 3 representing normal, bold, italic, and +;; bold-italic respectively. +;; +;; FONT-SPEC-TABLE is a char-table of FONT-SPECs. It records which +;; character is printed by which FONT-SPEC. It has one extra slot +;; whose value is an alist of the form: +;; (CHARSET . FONT-SPEC) +;; FONT-SPEC is a vecotr of the form: +;; (ID FONT-SRC FONT-NAME ENCODING EXTRA) +(defvar ps-mule-font-spec-tables nil) + +;; Array of FONT-TYPEs; Nth element FONT-NUMBER N. +;; +;; FONT-NUMBER is 0, 1, 2, 3, 4, 5, 6 representing fonts f0, f1, f2, +;; f3, h0, h1, and H0. +(defconst ps-mule-font-number-to-type [ 0 1 2 3 1 0 0 ]) + +(defsubst ps-mule-get-font-spec (char font-spec-table font-spec) + "Return a font spec for printing CHAR with FONT-SPEC-TABLE. + +FONT-SPEC, if non-nil, is a font spec to try at first. + +See the documentation of `ps-mule-font-spec-tables' for the +format of font spec." + + (or (aref font-spec-table char) + (aset font-spec-table char + (or (and (< char 256) + (cdr (car (char-table-extra-slot font-spec-table 0)))) + (and font-spec + (encode-char char (ps-mule-font-spec-charset font-spec)) + font-spec) + (catch 'tag + (dolist (elt (char-table-extra-slot font-spec-table 0)) + (and (encode-char char (car elt)) + (throw 'tag (cdr elt))))) + ;; Record that no font-spec exist for CHAR. + t)))) (defconst ps-mule-external-libraries - '((builtin nil nil + '((builtin nil nil nil nil nil nil) - (bdf ps-bdf nil - bdf-generate-prologue bdf-generate-font bdf-generate-glyphs) - (pcf nil nil - pcf-generate-prologue pcf-generate-font pcf-generate-glyphs) - (vflib nil nil - vflib-generate-prologue vflib-generate-font vflib-generate-glyphs)) + (bdf ps-bdf nil bdf-generate-prologue + bdf-check-font bdf-generate-font bdf-generate-glyph) + (pcf nil nil pcf-generate-prologue + pcf-check-font pcf-generate-font pcf-generate-glyph) + (vflib nil nil vflib-generate-prologue + vflib-check-font vflib-generate-font vflib-generate-glyphs)) "Alist of external libraries information to support PostScript printing. Each element has the form: - (FONT-SRC FEATURE INITIALIZED-P - PROLOGUE-FUNC FONT-FUNC GLYPHS-FUNC) + (FONT-SRC FEATURE INITIALIZED-P PROLOGUE-FUNC + CHECK-FUNC FONT-FUNC GLYPH-FUNC) FONT-SRC is the font source: builtin, bdf, pcf, or vflib. @@ -544,342 +440,230 @@ PROLOGUE-FUNC is a function to generate PostScript code which define several PostScript procedures that will be called by FONT-FUNC and GLYPHS-FUNC. It is called with no argument, and should return a list of strings. +CHECK-FUNC is a function to check if a font is available or not. +It is called with one argument FONT-SPEC, and should return non-nil iff the +font specified in FONT-SPEC is available. + FONT-FUNC is a function to generate PostScript code which define a new font. It is called with one argument FONT-SPEC, and should return a list of strings. -GLYPHS-FUNC is a function to generate PostScript code which define glyphs of -characters. It is called with three arguments FONT-SPEC, CODE-LIST, and BYTES, -and should return a list of strings.") - -(defun ps-mule-init-external-library (font-spec) - "Initialize external library specified by FONT-SPEC for PostScript printing. -See the documentation of `ps-mule-get-font-spec' for FONT-SPEC's meaning." - (let* ((font-src (ps-mule-font-spec-src font-spec)) - (slot (assq font-src ps-mule-external-libraries))) +GLYPH-FUNC is a function to generate PostScript code which define glyphs of +characters. It is called with two arguments FONT-SPEC and CODE, and should +return a list of strings.") + +(defsubst ps-mule-exlib-feature (exlib) (nth 1 exlib)) +(defsubst ps-mule-exlib-initialized-p (exlib) (nth 2 exlib)) +(defsubst ps-mule-exlib-set-initialized-p (exlib val) + (setcar (nthcdr 2 exlib) val)) +(defsubst ps-mule-exlib-prologue (exlib) (nth 3 exlib)) +(defsubst ps-mule-exlib-check (exlib) (nth 4 exlib)) +(defsubst ps-mule-exlib-font (exlib) (nth 5 exlib)) +(defsubst ps-mule-exlib-glyph (exlib) (nth 6 exlib)) + +(defun ps-mule-init-external-library (exlib) + "Initialize external library specified by EXLIB for PostScript printing. +See the documentation of `ps-mule-external-libraries' for EXLIB's meaning." + (or (ps-mule-exlib-initialized-p exlib) + (let ((prologue-func (ps-mule-exlib-prologue exlib))) + (if prologue-func + (let ((feature (ps-mule-exlib-feature exlib))) + (if feature + (require feature)) + (ps-output-prologue (funcall prologue-func)))) + (ps-mule-exlib-set-initialized-p exlib t)))) + +(defvar ps-mule-output-list nil) + +(defun ps-mule-check-font (font-spec) + "Check if a font specified in FONT-SPEC is available or not." + (let ((font-src (ps-mule-font-spec-src font-spec))) (or (not font-src) - (nth 2 slot) - (let ((func (nth 3 slot))) - (if func - (progn - (require (nth 1 slot)) - (ps-output-prologue (funcall func)))) - (setcar (nthcdr 2 slot) t))))) - -;; Cached glyph information of fonts, alist of: -;; (FONT-NAME ((FONT-TYPE-NUMBER . SCALED-FONT-NAME) ...) -;; cache CODE0 CODE1 ...) -(defvar ps-mule-font-cache nil) - -(defun ps-mule-generate-font (font-spec charset &optional header-p) - "Generate PostScript codes to define a new font in FONT-SPEC for CHARSET. - -If optional 3rd arg HEADER-P is non-nil, generate codes to define a header -font." - (let* ((font-name (ps-mule-font-spec-name font-spec)) - (font-name (if (consp font-name) (car font-name) font-name)) - (font-cache (assoc font-name ps-mule-font-cache)) - (font-src (ps-mule-font-spec-src font-spec)) - (func (nth 4 (assq font-src ps-mule-external-libraries))) - (font-size (if header-p (if (eq ps-current-font 0) - ps-header-title-font-size-internal - ps-header-font-size-internal) - ps-font-size-internal)) - (current-font (+ ps-current-font (if header-p 10 0))) - (scaled-font-name - (cond (header-p - (format "h%d" ps-current-font)) - ((eq charset 'ascii) - (format "f%d" ps-current-font)) - (t - (format "f%02x-%d" (charset-id charset) ps-current-font))))) - (and func (not font-cache) - (ps-output-prologue (funcall func charset font-spec))) - (ps-output-prologue - (list (format "/%s %f /%s Def%sFontMule\n" - scaled-font-name font-size font-name - (if (or header-p - (eq ps-mule-current-charset 'ascii)) - "Ascii" "")))) - (if font-cache - (setcar (cdr font-cache) - (cons (cons current-font scaled-font-name) - (nth 1 font-cache))) - (setq font-cache (list font-name - (list (cons current-font scaled-font-name)) - 'cache) - ps-mule-font-cache (cons font-cache ps-mule-font-cache))) - font-cache)) - -(defun ps-mule-generate-glyphs (font-spec code-list) - "Generate PostScript codes which generate glyphs for CODE-LIST of FONT-SPEC." - (let* ((font-src (ps-mule-font-spec-src font-spec)) - (func (nth 5 (assq font-src ps-mule-external-libraries)))) - (and func - (ps-output-prologue - (funcall func font-spec code-list - (ps-mule-font-spec-bytes font-spec)))))) - -(defun ps-mule-prepare-font (font-spec string charset - &optional no-setfont header-p) - "Generate PostScript codes to print STRING of CHARSET by font FONT-SPEC. - -The generated code is inserted on prologue part except the code that sets the -current font (using PostScript procedure `FM'). - -If optional 4th arg NO-SETFONT is non-nil, don't generate the code for setting -the current font. - -If optional 5th arg HEADER-P is non-nil, generate a code for setting a header -font." - (let* ((font-name (ps-mule-font-spec-name font-spec)) - (font-name (if (consp font-name) (car font-name) font-name)) - (current-font (+ ps-current-font (if header-p 10 0))) - (font-cache (assoc font-name ps-mule-font-cache))) - (or (and font-cache (assq current-font (nth 1 font-cache))) - (setq font-cache (ps-mule-generate-font font-spec charset header-p))) - (or no-setfont - (let ((new-font (cdr (assq current-font (nth 1 font-cache))))) - (or (equal new-font ps-last-font) - (progn - (ps-output (format "/%s FM\n" new-font)) - (setq ps-last-font new-font))))) - (if (nth 5 (assq (ps-mule-font-spec-src font-spec) - ps-mule-external-libraries)) - ;; We have to generate PostScript codes which define glyphs. - (let* ((cached-codes (nthcdr 2 font-cache)) - (bytes (ps-mule-font-spec-bytes font-spec)) - (len (length string)) - (i 0) - newcodes code) - (while (< i len) - (setq code (if (= bytes 1) - (aref string i) - (+ (* (aref string i) 256) (aref string (1+ i))))) - (or (memq code cached-codes) - (progn - (setq newcodes (cons code newcodes)) - (setcdr cached-codes (cons code (cdr cached-codes))))) - (setq i (+ i bytes))) - (and newcodes - (ps-mule-generate-glyphs font-spec newcodes)))))) + (let ((exlib (assq font-src ps-mule-external-libraries))) + (ps-mule-init-external-library exlib) + (or (not (ps-mule-exlib-check exlib)) + (funcall (ps-mule-exlib-check exlib) font-spec)))))) -;;;###autoload -(defun ps-mule-prepare-ascii-font (string) - "Setup special ASCII font for STRING. -STRING should contain only ASCII characters." - (let ((font-spec - (ps-mule-get-font-spec - 'ascii - (car (nth ps-current-font (ps-font-alist 'ps-font-for-text)))))) - (and font-spec - (ps-mule-prepare-font font-spec string 'ascii)))) - -;;;###autoload -(defun ps-mule-set-ascii-font () - (unless (eq ps-mule-current-charset 'ascii) - (ps-set-font ps-current-font) - (setq ps-mule-current-charset 'ascii))) - -;; List of charsets of multi-byte characters in a text being printed. -;; If the text doesn't contain any multi-byte characters (i.e. only ASCII), -;; the value is nil. -(defvar ps-mule-charset-list nil) +(defun ps-mule-prepare-font (font-spec) + "Generate PostScript codes defining a new font of FONT-SPEC for charset." + (let* ((font-src (ps-mule-font-spec-src font-spec)) + (exlib (assq font-src ps-mule-external-libraries)) + (id (ps-mule-font-spec-id font-spec)) + (ftag (format "%02X" id)) + (font-func (ps-mule-exlib-font exlib)) + output-list) + (if font-func + (setq output-list (funcall font-func font-spec)) + (setq output-list + (format "/F%s /%s findfont def\n" + ftag (or (ps-mule-font-spec-name font-spec) "Courier"))) + (ps-mule-font-spec-set-extra font-spec t)) + (and output-list + (nconc ps-mule-output-list (list output-list))))) + +(defun ps-mule-prepare-glyph (char font-spec) + "Generate PostScript codes to print CHAR by FONT-SPEC. + +If CHAR is a cons (FROM TO), generate codes for characters +specified by the character code range FROM and TO. + +The generated code is inserted on prologue part." + (if (vectorp font-spec) + (progn + (or (ps-mule-font-spec-extra font-spec) + (ps-mule-prepare-font font-spec)) + (let ((glyph-func (ps-mule-exlib-glyph + (assq (ps-mule-font-spec-src font-spec) + ps-mule-external-libraries)))) + (if glyph-func + (let (from to output-list) + (if (consp char) + (setq from (car char) to (cdr char)) + (setq from char to char)) + (while (<= from to) + (setq output-list + (funcall glyph-func font-spec from)) + (and output-list + (ps-output-prologue output-list)) + (setq from (1+ from))))))))) ;; This is a PostScript code inserted in the header of generated PostScript. (defconst ps-mule-prologue "%%%% Start of Mule Section -%% Working dictionary for general use. -/MuleDict 10 dict def - -%% Adjust /RelativeCompose properly by checking /BaselineOffset. -/AdjustRelativeCompose { % fontdict |- fontdict - dup length 2 add dict begin - { 1 index /FID ne { def } { pop pop } ifelse } forall - currentdict /BaselineOffset known { - BaselineOffset false eq { /BaselineOffset 0 def } if - } { - /BaselineOffset 0 def - } ifelse - currentdict /RelativeCompose known not { - /RelativeCompose [ 0 0.1 ] def - } { - RelativeCompose false ne { - [ BaselineOffset RelativeCompose BaselineOffset add - [ FontMatrix { FontSize div } forall ] transform ] - /RelativeCompose exch def - } if - } ifelse - currentdict - end -} def - -%% Define already scaled font for non-ASCII character sets. -/DefFontMule { % fontname size basefont |- -- - findfont exch scalefont AdjustRelativeCompose definefont pop +/Latin1Encoding { % newname fontname | font + findfont dup length dict begin + { 1 index /FID ne { def } { pop pop } ifelse } forall + /Encoding ISOLatin1Encoding def + currentdict + end + definefont } bind def -%% Define already scaled font for ASCII character sets. -/DefAsciiFontMule { % fontname size basefont |- - MuleDict begin - findfont dup /Encoding get /ISOLatin1Encoding exch def - exch scalefont AdjustRelativeCompose reencodeFontISO - end -} def - -/CurrentFont false def - -%% Set the specified font to use. -%% For non-ASCII font, don't install Ascent, etc. -/FM { % fontname |- -- - /font exch def - font /f0 eq font /f1 eq font /f2 eq font /f3 eq or or or { - font F - } { - font findfont setfont - } ifelse +%% Redefine fonts for multiple charsets. +/ReDefFont { % fontname encoding fdepvector size | - + 20 dict begin + 3 index findfont { + 1 index /FID ne 2 index /UniqueID ne and {def} {pop pop} ifelse + } forall + /FontType 0 def + /FMapType 3 def + /EscChar 0 def + % FontMatrix ::= [ size 0 0 size 0 0 ] + /FontMatrix exch [ exch dup 0 exch 0 exch 0 0 ] def + /FDepVector exch def + /Encoding exch def + currentdict + end % fontname dic + definefont pop } bind def - -%% Show vacant box for characters which don't have appropriate font. -/SB { % count column |- -- - SpaceWidth mul /w exch def - 1 exch 1 exch { %for - pop - gsave - 0 setlinewidth - 0 Descent rmoveto w 0 rlineto - 0 LineHeight rlineto w neg 0 rlineto closepath stroke - grestore - w 0 rmoveto - } for -} bind def - -%% Flag to tell if we are now handling a composition. This is -%% defined here because both composition handler and bitmap font -%% handler require it. -/Composing false def - -%%%% End of Mule Section - " "PostScript code for printing multi-byte characters.") (defvar ps-mule-prologue-generated nil) +;; EscChar used in generated composite fonts. +(defconst ps-mule-esc-char 0) + (defun ps-mule-prologue-generated () (unless ps-mule-prologue-generated (ps-output-prologue ps-mule-prologue) + (ps-output-prologue + (format "\n/EscChar %d def\n\n%%%% End of Mule Section\n\n" + ps-mule-esc-char)) (setq ps-mule-prologue-generated t))) -(defun ps-mule-find-wrappoint (from to char-width &optional composition) - "Find the longest sequence which is printable in the current line. - -The search starts at FROM and goes until TO. - -Optional 4th arg COMPOSITION, if non-nil, is information of -composition starting at FROM. - -If COMPOSITION is nil, it is assumed that all characters between FROM -and TO belong to a charset in `ps-mule-current-charset'. Otherwise, -it is assumed that all characters between FROM and TO belong to the -same composition. - -CHAR-WIDTH is the average width of ASCII characters in the current font. - -Returns the value: +(defun ps-mule-encode-region (from to font-spec-table) + "Generate PostScript code for plotting characters in the region FROM and TO. - (ENDPOS . RUN-WIDTH) +FONT-SPEC-TABLE is 0, 1, 2, 3, 4, 5, or 6, each represents font tags f0, f1, +f2, f3, h0, h1, and H0 respectively." + (let* ((font-spec nil) + (font-id 0) + (string-list nil) + ;; At most 4-byte (EscChar FONT-ID CODE1 CODE2) per character. + (str (make-string (* (- to from) 4) 0)) + (i 0)) + (goto-char from) + (while (< (point) to) + (let* ((char (following-char)) + (this-spec (ps-mule-get-font-spec char font-spec-table font-spec)) + this-id) + (if (vectorp this-spec) + (setq this-id (ps-mule-font-spec-font-id this-spec)) + ;; Can't print CHAR. Replace it with '?'. + (setq char ?? + this-spec (ps-mule-get-font-spec char font-spec-table nil) + this-id (ps-mule-font-spec-font-id this-spec))) + (or (= font-id this-id) + (progn + (if font-spec + (setq string-list (cons (substring str 0 i) string-list) + i 0)) + (setq font-id this-id) + (or (= font-id 0) + (progn + (aset str i ps-mule-esc-char) + (setq i (1+ i)) + (aset str i font-id) + (setq i (1+ i)))))) + (setq font-spec this-spec) + (if (< char 128) + (aset str i char) + (let* ((code (ps-mule-encode-char char font-spec))) + (if (= (ps-mule-font-spec-bytes font-spec) 1) + (aset str i code) + (aset str i (/ code 256)) + (setq i (1+ i)) + (aset str i (% code 256))))) + (setq i (1+ i)) + (forward-char 1))) + (nreverse (cons (substring str 0 i) string-list)))) + +(defun ps-mule-plot-composition (composition font-spec-table) + "Generate PostScript code for plotting COMPOSITION with FONT-SPEC-TABLE." + (ps-output "[") + (let ((components (copy-sequence (nth 2 composition))) + (font-spec nil)) + (dotimes (i (length components)) + (let ((elt (aref components i)) + this-spec) + (if (consp elt) + ;; ELT is a composition rule. + (ps-output (format " %d" (encode-composition-rule elt))) + ;; ELT is a glyph character. + (setq this-spec + (ps-mule-get-font-spec elt font-spec-table font-spec)) + (or (vectorp this-spec) + ;; Can't print CHAR. Replace it with '?'. + (setq elt ?? + this-spec + (ps-mule-get-font-spec elt font-spec-table font-spec))) + (setq font-spec this-spec) + (let* ((bytes (ps-mule-font-spec-bytes font-spec)) + (code (ps-mule-encode-char elt font-spec)) + (font-id (ps-mule-font-spec-font-id font-spec)) + (str (make-string (if (= font-id 0) 1 (+ 2 bytes)) 0))) + (if (= font-id 0) + (aset str 0 code) + (aset str 0 ps-mule-esc-char) + (aset str 1 font-id) + (if (= bytes 1) + (aset str 2 code) + (aset str 2 (/ code 256)) + (aset str 3 (% code 256)))) + (ps-output "[") + (ps-output-string str) + (ps-output (if (eq (ps-mule-font-spec-src font-spec) 'bdf) + (format "/C%02X-%X" (ps-mule-font-spec-id font-spec) + elt) + "false")) + (ps-output "]")))))) + (ps-output " ] " (if (nth 3 composition) "RLC" "RBC") "\n")) -Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of -the sequence." - (if (or composition (eq ps-mule-current-charset 'composition)) - ;; We must draw one char by one. - (let ((run-width (if composition - (nth 5 composition) - (* (char-width (char-after from)) char-width)))) - (if (> run-width ps-width-remaining) - (cons from ps-width-remaining) - (cons (if composition - (nth 1 composition) - (1+ from)) - run-width))) - ;; We assume that all characters in this range have the same width. - (setq char-width (* char-width (charset-width ps-mule-current-charset))) - (let ((run-width (* (abs (- from to)) char-width))) - (if (> run-width ps-width-remaining) - (cons (min to - (save-excursion - (goto-char from) - (forward-point - (truncate (/ ps-width-remaining char-width))))) - ps-width-remaining) - (cons to run-width))))) - -;;;###autoload (defun ps-mule-plot-string (from to &optional bg-color) "Generate PostScript code for plotting characters in the region FROM and TO. -It is assumed that all characters in this region belong to the same charset. - -Optional argument BG-COLOR specifies background color. - -Returns the value: - - (ENDPOS . RUN-WIDTH) - -Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of -the sequence." - (let ((ch (char-after from))) - (setq ps-mule-current-charset - (char-charset (or (aref ps-print-translation-table ch) ch)))) - (let* ((wrappoint (ps-mule-find-wrappoint - from to (ps-avg-char-width 'ps-font-for-text))) - (to (car wrappoint)) - (font-type (car (nth ps-current-font - (ps-font-alist 'ps-font-for-text)))) - (font-spec (ps-mule-get-font-spec ps-mule-current-charset font-type)) - (string (buffer-substring-no-properties from to))) - (dotimes (i (length string)) - (let ((ch (aref ps-print-translation-table (aref string i)))) - (if ch - (aset string i ch)))) - (cond - ((= from to) - ;; We can't print any more characters in the current line. - nil) - - (font-spec - ;; We surely have a font for printing this character set. - (ps-output-string (ps-mule-string-encoding font-spec string)) - (ps-output " S\n")) - - ((eq ps-mule-current-charset 'latin-iso8859-1) - ;; Latin-1 can be printed by a normal ASCII font. - (ps-output-string (ps-mule-string-ascii string)) - (ps-output " S\n")) - - ;; This case is obsolete for Emacs 21. - ((eq ps-mule-current-charset 'composition) - (ps-mule-plot-composition from (1+ from) bg-color)) - - (t - ;; No way to print this charset. Just show a vacant box of an - ;; appropriate width. - (ps-output (format "%d %d SB\n" - (length string) - (if (eq ps-mule-current-charset 'composition) - (char-width (char-after from)) - (charset-width ps-mule-current-charset)))))) - wrappoint)) - -;;;###autoload -(defun ps-mule-plot-composition (from to &optional bg-color) - "Generate PostScript code for plotting composition in the region FROM and TO. - -It is assumed that all characters in this region belong to the same -composition. - -Optional argument BG-COLOR specifies background color. +Optional argument BG-COLOR is ignored. Returns the value: @@ -887,98 +671,100 @@ Returns the value: Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of the sequence." - (let* ((composition (find-composition from nil nil t)) - (wrappoint (ps-mule-find-wrappoint - from to (ps-avg-char-width 'ps-font-for-text) - composition)) - (to (car wrappoint)) - (font-type (car (nth ps-current-font - (ps-font-alist 'ps-font-for-text))))) - (if (< from to) - ;; We can print this composition in the current line. - (let ((components (nth 2 composition))) - (ps-mule-plot-components - (ps-mule-prepare-font-for-components components font-type) - (if (nth 3 composition) "RLC" "RBC")))) - wrappoint)) - -;; Prepare font of FONT-TYPE for printing COMPONENTS. By side effect, -;; change character elements in COMPONENTS to the form: -;; ENCODED-STRING or (FONTNAME . ENCODED-STRING) -;; and change rule elements to the encoded value (integer). -;; The latter form is used if we much change font for the character. - -(defun ps-mule-prepare-font-for-components (components font-type) - (dotimes (i (length components)) - (let ((elt (aref components i))) - (if (consp elt) - ;; ELT is a composition rule. - (setq elt (encode-composition-rule elt)) - ;; ELT is a glyph character. - (let* ((charset (char-charset elt)) - (font (or (eq charset ps-mule-current-charset) - (if (eq charset 'ascii) - (format "/f%d" ps-current-font) - (format "/f%02x-%d" - (charset-id charset) ps-current-font)))) - str) - (setq ps-mule-current-charset charset - str (ps-mule-string-encoding - (ps-mule-get-font-spec charset font-type) - (char-to-string elt) - 'no-setfont)) - (if (stringp font) - (setq elt (cons font str) ps-last-font font) - (setq elt str)))) - (aset components i elt))) - components) - -(defun ps-mule-plot-components (components tail) - (let ((elt (aref components 0)) - (len (length components)) - (i 1)) - (ps-output "[ ") - (if (stringp elt) - (ps-output-string elt) - (ps-output (car elt) " ") - (ps-output-string (cdr elt))) - (while (< i len) - (setq elt (aref components i) i (1+ i)) - (ps-output " ") - (cond ((stringp elt) - (ps-output-string elt)) - ((consp elt) - (ps-output (car elt) " ") - (ps-output-string (cdr elt))) - (t ; i.e. (integerp elt) - (ps-output (format "%d" elt))))) - (ps-output " ] " tail "\n"))) - -;; Composite font support + (let* ((average-width (ps-avg-char-width 'ps-font-for-text)) + (point (point)) + (composition (find-composition from to nil t)) + (stop (if composition (car composition) to)) + (ascii-or-latin-1 "[\000-\377]+") + (run-width 0) + (endpos nil) + (font-spec-table (aref ps-mule-font-spec-tables + (aref ps-mule-font-number-to-type + ps-current-font))) + width) + (goto-char from) + (while (not endpos) + (cond ((= (point) stop) + (if (= stop to) + (setq endpos stop) + (if (< from stop) + (dolist (l (ps-mule-encode-region from (point) + font-spec-table)) + (ps-output-string l) + (ps-output " S\n"))) + (setq width (* (nth 5 composition) average-width)) + (if (< ps-width-remaining (+ run-width width)) + (setq endpos stop) + (ps-mule-plot-composition composition font-spec-table) + (setq run-width (+ run-width width) + from (nth 1 composition)) + (goto-char from) + (setq composition (find-composition (point) to nil t)) + (setq stop (if composition (car composition) to))))) + + ((looking-at ascii-or-latin-1) + (let ((nchars (- (min (match-end 0) stop) (point)))) + (setq width (* average-width nchars)) + (if (< ps-width-remaining (+ run-width width)) + (setq nchars (truncate (- ps-width-remaining run-width) + average-width) + run-width (+ run-width (* nchars average-width)) + endpos (+ (point) nchars)) + (setq run-width (+ run-width width)) + (forward-char nchars)))) + + (t + (while (and (< (point) stop) (not endpos)) + (setq width (char-width (following-char))) + (if (< ps-width-remaining (+ run-width width)) + (setq endpos (point)) + (setq run-width (+ run-width width)) + (forward-char 1)))))) + + (if (< from endpos) + (dolist (l (ps-mule-encode-region from endpos font-spec-table)) + (ps-output-string l) + (ps-output " S\n"))) + (goto-char point) + (cons endpos run-width))) + +;; Character composition support (defvar ps-mule-composition-prologue-generated nil) (defconst ps-mule-composition-prologue - "%%%% Character composition handler + "%%%% Procedures for character composition. /RelativeCompositionSkip 0.4 def %% Get a bounding box (relative to currentpoint) of STR. -/GetPathBox { % str |- -- - gsave - currentfont /FontType get 3 eq { %ifelse - stringwidth pop pop +/GetPathBox { % [ str cname ] | - + dup 1 get dup false ne { + BitmapDict exch get /bmp exch def + %% bmp ::= [ DWIDTH WIDTH HEIGHT XOFF YOFF BITMAP RELATIVE-COMPOSE] + /LLY bmp 4 get def + /URY LLY bmp 2 get add def + /RelativeCompose bmp 6 get dup false ne { + dup LLY le { pop 1 } { URY ge { -1 } { 0 } ifelse } ifelse + } { + pop 0 + } ifelse def + dup 0 get stringwidth pop dup /WIDTH exch def bmp 0 get div + dup LLY mul /LLY exch def + URY mul /URY exch def } { - currentpoint /y exch def /x exch def - false charpath flattenpath pathbbox - y sub /URY exch def x sub /URX exch def - y sub /LLY exch def x sub /LLX exch def + pop + dup 0 get stringwidth pop /WIDTH exch def + gsave 0 0 moveto + dup 0 get false charpath flattenpath pathbbox + /URY exch def pop /LLY exch def pop + grestore + /RelativeCompose 0 def } ifelse - grestore } bind def -%% Apply effects (underline, strikeout, overline, box) to the -%% rectangle specified by TOP BOTTOM LEFT RIGHT. -/SpecialEffect { % -- |- -- +%% Apply effects except for shadow and outline to the rectangle +%% specified by TOP BOTTOM LEFT RIGHT. +/SpecialEffect { % -- | -- currentpoint dup TOP add /yy exch def BOTTOM add /YY exch def dup LEFT add /xx exch def RIGHT add /XX exch def %% Adjust positions for future shadowing. @@ -996,579 +782,452 @@ the sequence." Effect 16 and 0 ne { false 0 doBox } if % box } def -%% Show STR with effects (shadow, outline). -/ShowWithEffect { % str |- -- - Effect 8 and 0 ne { dup doShadow } if - Effect 32 and 0 ne { true doOutline } { show } ifelse -} def - -%% Draw COMPONENTS which have the form [ font0? [str0 xoff0 yoff0] ... ]. -/ShowComponents { % components |- - - LEFT 0 lt { LEFT neg 0 rmoveto } if - { - dup type /nametype eq { % font - FM - } { % [ str xoff yoff ] - gsave - aload pop rmoveto ShowWithEffect - grestore - } ifelse +%% Draw COMPONENTS which has the form [ [str0 xoff0 yoff0] ... ] with +%% effects shadow and outline. +/ShowComponents { % components | - + gsave + { gsave aload pop rmoveto + Effect 8 and 0 ne { dup doShadow } if + Effect 32 and 0 ne { true doOutline } { show } ifelse + grestore } forall + grestore RIGHT 0 rmoveto } def %% Show relative composition. -/RLC { % [ font0? str0 font1? str1 ... fontN? strN ] |- -- +/RLC { % [[str0 cname0] [str1 cname1] ... [strN cnameN]] | - /components exch def - /Composing true def - /first true def - gsave - [ components { - /elt exch def - elt type /nametype eq { % font - elt dup FM - } { first { % first string - /first false def - elt GetPathBox - %% Bounding box of overall glyphs. - /LEFT LLX def - /RIGHT URX def - /TOP URY def - /BOTTOM LLY def - currentfont /RelativeCompose known { - /relative currentfont /RelativeCompose get def - relative false eq { - %% Disable relative composition by setting sufficiently low - %% and high positions. - /relative [ -100000 100000 ] def - } if + [ % push [str xoff yoff] one by one + [ components 0 get GetPathBox aload pop pop 0 0 ] + %% Bounding box of overall glyphs. + /LEFT 0 def + /RIGHT WIDTH def + /TOP URY def + /BOTTOM LLY def + + 1 1 components length 1 sub { + components exch get + [ exch + GetPathBox + aload pop pop % str + 0 % xoff + RelativeCompose 1 eq { % compose on TOP + TOP LLY sub RelativeCompositionSkip add % yoff + /TOP TOP URY LLY sub add RelativeCompositionSkip add def + } { RelativeCompose -1 eq { % compose under BOTTOM + BOTTOM URY sub RelativeCompositionSkip sub % yoff + /BOTTOM BOTTOM URY LLY sub sub + RelativeCompositionSkip sub def } { - /relative [ -100000 100000 ] def - } ifelse - [ elt 0 0 ] - } { % other strings - elt GetPathBox - [ elt % str - LLX 0 lt { RIGHT } { 0 } ifelse % xoff - LLY relative 1 get ge { % compose on TOP - TOP LLY sub RelativeCompositionSkip add % yoff - /TOP TOP URY LLY sub add RelativeCompositionSkip add def - } { URY relative 0 get le { % compose under BOTTOM - BOTTOM URY sub RelativeCompositionSkip sub % yoff - /BOTTOM BOTTOM URY LLY sub sub - RelativeCompositionSkip sub def - } { - 0 % yoff - URY TOP gt { /TOP URY def } if - LLY BOTTOM lt { /BOTTOM LLY def } if - } ifelse } ifelse - ] - URX RIGHT gt { /RIGHT URX def } if - } ifelse } ifelse - } forall ] /components exch def - grestore - - %% Reflect special effects. - SpecialEffect - - %% Draw components while ignoring effects other than shadow and outline. - components ShowComponents - /Composing false def - + 0 % yoff + URY TOP gt { /TOP URY def } if + LLY BOTTOM lt { /BOTTOM LLY def } if + } ifelse } ifelse + ] + } for + ] + SpecialEffect % Reflect special effects. + ShowComponents % Draw components. } def %% Show rule-base composition. -/RBC { % [ font0? str0 rule1 font1? str1 rule2 ... strN ] |- -- +/RBC { % [[str0 cname0] rule1 [str1 cname0] rule2 ... [strN cnameN]] | - /components exch def - /Composing true def - /first true def - gsave - [ components { - /elt exch def - elt type /nametype eq { % font - elt dup FM - } { elt type /integertype eq { % rule - %% This RULE decoding should be compatible with macro + [ % push [str xoff yoff] one by one + [ components 0 get GetPathBox aload pop pop 0 0 ] + %% Bounding box of overall glyphs. + /LEFT 0 def + /RIGHT WIDTH def + /TOP URY def + /BOTTOM LLY def + 1 1 components length 1 sub { + components exch get /elt exch def + elt type /integertype eq { % rule + %% Do the same RULE decoding as the macro %% COMPOSITION_DECODE_RULE in emacs/src/composite.h. elt 12 idiv dup 3 mod /grefx exch def 3 idiv /grefy exch def elt 12 mod dup 3 mod /nrefx exch def 3 idiv /nrefy exch def - } { first { % first string - /first false def - elt GetPathBox - %% Bounding box of overall glyphs. - /LEFT LLX def - /RIGHT URX def - /TOP URY def - /BOTTOM LLY def - /WIDTH RIGHT LEFT sub def - [ elt 0 0 ] } { % other strings + [ elt GetPathBox - /width URX LLX sub def + aload pop pop /height URY LLY sub def - /left LEFT [ 0 WIDTH 2 div WIDTH ] grefx get add - [ 0 width 2 div width ] nrefx get sub def + /left LEFT [ 0 RIGHT LEFT sub dup 2 div exch ] grefx get add + [ 0 WIDTH 2 div WIDTH ] nrefx get sub def /bottom [ TOP 0 BOTTOM TOP BOTTOM add 2 div ] grefy get [ height LLY neg 0 height 2 div ] nrefy get sub def %% Update bounding box left LEFT lt { /LEFT left def } if - left width add RIGHT gt { /RIGHT left width add def } if - /WIDTH RIGHT LEFT sub def + left WIDTH add RIGHT gt { /RIGHT left WIDTH add def } if bottom BOTTOM lt { /BOTTOM bottom def } if bottom height add TOP gt { /TOP bottom height add def } if - [ elt left LLX sub bottom LLY sub ] - } ifelse } ifelse } ifelse - } forall ] /components exch def - grestore - - %% Reflect special effects. - SpecialEffect + left bottom LLY sub ] + } ifelse + } for + ] - %% Draw components while ignoring effects other than shadow and outline. - components ShowComponents + LEFT 0 lt { % Adjust xoff to the right. + dup { dup 1 get LEFT sub 1 exch put } forall + /RIGHT RIGHT LEFT sub def + } if - /Composing false def + SpecialEffect % Reflect special effects. + ShowComponents % Draw components. } def -%%%% End of character composition handler +%%%% End of procedures for character composition " "PostScript code for printing character composition.") -(defun ps-mule-string-ascii (str) - (ps-set-font ps-current-font) - (string-as-unibyte (encode-coding-string str 'iso-latin-1))) - -;; Encode STR for a font specified by FONT-SPEC and return the result. -;; If necessary, it generates the PostScript code for the font and glyphs to -;; print STR. If optional 4th arg HEADER-P is non-nil, it is assumed that STR -;; is for headers. -(defun ps-mule-string-encoding (font-spec str &optional no-setfont header-p) - (let ((encoding (ps-mule-font-spec-encoding font-spec))) - (setq str - (string-as-unibyte - (cond ((coding-system-p encoding) - (encode-coding-string str encoding)) - ((functionp encoding) - (funcall encoding str)) - (encoding - (error "Invalid coding system or function: %s" encoding)) - (t - str)))) - (if (ps-mule-font-spec-src font-spec) - (ps-mule-prepare-font font-spec str ps-mule-current-charset - (or no-setfont header-p) - header-p) - (or no-setfont - (ps-set-font ps-current-font))) - str)) +(defun ps-mule-composition-prologue-generated () + (unless ps-mule-composition-prologue-generated + (ps-mule-prologue-generated) + (ps-output-prologue ps-mule-composition-prologue) + (setq ps-mule-composition-prologue-generated t))) ;; Bitmap font support (defvar ps-mule-bitmap-prologue-generated nil) (defconst ps-mule-bitmap-prologue - "%%%% Bitmap font handler - -/str7 7 string def % working area - -%% We grow the dictionary one bunch (1024 entries) by one. -/BitmapDictArray 256 array def -/BitmapDictLength 1024 def -/BitmapDictIndex -1 def - -/NewBitmapDict { % -- |- -- - /BitmapDictIndex BitmapDictIndex 1 add def - BitmapDictArray BitmapDictIndex BitmapDictLength dict put -} bind def - -%% Make at least one dictionary. -NewBitmapDict + "%%%% Procedures for bitmap fonts. -/AddBitmap { % gloval-charname bitmap-data |- -- - BitmapDictArray BitmapDictIndex get - dup length BitmapDictLength ge { - pop - NewBitmapDict - BitmapDictArray BitmapDictIndex get - } if - 3 1 roll put -} bind def - -/GetBitmap { % gloval-charname |- bitmap-data - 0 1 BitmapDictIndex { BitmapDictArray exch get begin } for - load - 0 1 BitmapDictIndex { pop end } for -} bind def - -%% Return a global character name which can be used as a key in the -%% bitmap dictionary. -/GlobalCharName { % fontidx code1 code2 |- gloval-charname - exch 256 mul add exch 65536 mul add 16777216 add 16 str7 cvrs 0 66 put - str7 cvn -} bind def - -%% Character code holder for a 2-byte character. -/FirstCode -1 def - -%% Glyph rendering procedure -/BuildGlyphCommon { % fontdict charname |- -- - 1 index /FontDimension get 1 eq { /FirstCode 0 store } if - NameIndexDict exch get % STACK: fontdict charcode - FirstCode 0 lt { %ifelse - %% This is the first byte of a 2-byte character. Just - %% remember it for the moment. - /FirstCode exch store - pop - 0 0 setcharwidth - } { - 1 index /FontSize get /size exch def - 1 index /FontSpaceWidthRatio get /ratio exch def - 1 index /FontIndex get exch FirstCode exch - GlobalCharName GetBitmap /bmp exch def - %% bmp == [ DWIDTH BBX-WIDTH BBX-HEIGHT BBX-XOFF BBX-YOFF BITMAP ] - Composing { %ifelse - /FontMatrix get [ exch { size div } forall ] /mtrx exch def - bmp 3 get bmp 4 get mtrx transform - /LLY exch def /LLX exch def - bmp 1 get bmp 3 get add bmp 2 get bmp 4 get add mtrx transform - /URY exch def /URX exch def - } { - pop - } ifelse - /FirstCode -1 store - - bmp 0 get size div 0 % wx wy - setcharwidth % We can't use setcachedevice here. - - bmp 1 get 0 gt bmp 2 get 0 gt and { - bmp 1 get bmp 2 get % width height - true % polarity - [ size 0 0 size neg bmp 3 get neg bmp 2 get bmp 4 get add ] % matrix - bmp 5 1 getinterval cvx % datasrc - imagemask - } if - } ifelse -} bind def - -/BuildCharCommon { - 1 index /Encoding get exch get - 1 index /BuildGlyph get exec -} bind def - -%% Bitmap font creator - -%% Common Encoding shared by all bitmap fonts. -/EncodingCommon 256 array def -%% Mapping table from character name to character code. -/NameIndexDict 256 dict def -0 1 255 { %for - /idx exch def - /idxname idx 256 add 16 (XXX) cvrs dup 0 67 put cvn def % `C' == 67 - EncodingCommon idx idxname put - NameIndexDict idxname idx put -} for - -/GlobalFontIndex 0 def - -%% fontname dim col fontsize relative-compose baseline-offset fbbx |- -- -/BitmapFont { - 15 dict begin - /FontBBox exch def +%% Create a base bitmap font. +/NBF { % fontname fontsize relative-compose baseline-offset enc | -- + 11 dict begin + /FontType 3 def + /FontMatrix matrix def + /FontBBox [ 0 0 0 0 ] def + /Encoding exch def /BaselineOffset exch def /RelativeCompose exch def /FontSize exch def - /FontBBox [ FontBBox { FontSize div } forall ] def - FontBBox 2 get FontBBox 0 get sub exch div - /FontSpaceWidthRatio exch def - /FontDimension exch def - /FontIndex GlobalFontIndex def - /FontType 3 def - /FontMatrix matrix def - /Encoding EncodingCommon def - /BuildGlyph { BuildGlyphCommon } def - /BuildChar { BuildCharCommon } def - currentdict end - definefont pop - /GlobalFontIndex GlobalFontIndex 1 add def -} bind def - -%% Define a new bitmap font. -%% fontname dim col fontsize relative-compose baseline-offset fbbx |- -- -/NF { - /fbbx exch def - %% Convert BDF's FontBoundingBox to PostScript's FontBBox - [ fbbx 2 get fbbx 3 get - fbbx 2 get fbbx 0 get add fbbx 3 get fbbx 1 get add ] - BitmapFont + /FontMatrix [ 1 FontSize div 0 0 1 FontSize div 0 0 ] def + /BuildGlyph { % fontdict charname | - + BitmapDict exch get /bmp exch def pop + %% bmp ::= [ DWIDTH WIDTH HEIGHT XOFF YOFF BITMAP RELATIVE-COMPOSE ] + /llx bmp 3 get def + /lly bmp 4 get def + /urx llx bmp 1 get add def + /ury lly bmp 2 get add def + bmp 0 get 0 llx lly urx ury setcachedevice + bmp 5 get length 0 gt { + llx ury translate + bmp 1 get bmp 2 get + true [ 1 0 0 -1 0 0 ] { bmp 5 get } imagemask + } if + } bind def + /BuildChar { % fontdict byte | - + 1 index /Encoding get exch get + 1 index /BuildGlyph get exec + } bind def + dup currentdict end + definefont def } bind def -%% Define a glyph for the specified font and character. -/NG { % fontname charcode bitmap-data |- -- - /bmp exch def - exch findfont dup /BaselineOffset get bmp 4 get add bmp exch 4 exch put - /FontIndex get exch - dup 256 idiv exch 256 mod GlobalCharName - bmp AddBitmap +%% Create a parent font of 8/8 mapping. +/NPF { % fontname encoding fdepvector | - + 8 dict begin + /FontType 0 def + /FMapType 2 def + /FontMatrix matrix def + /FDepVector exch def + /Encoding exch def + dup currentdict + end + definefont def } bind def -%%%% End of bitmap font handler +%%%% End of procedures for bitmap fonts. ") ;; External library support. +(defvar ps-mule-bitmap-dict-list nil) +(defvar ps-mule-bitmap-font-record nil) + ;; The following three functions are to be called from external ;; libraries which support bitmap fonts (e.g. `bdf') to get ;; appropriate PostScript code. (defun ps-mule-generate-bitmap-prologue () (unless ps-mule-bitmap-prologue-generated - (setq ps-mule-bitmap-prologue-generated t) + (setq ps-mule-bitmap-prologue-generated t + ps-mule-bitmap-dict-list nil + ps-mule-bitmap-font-record (make-vector 1024 nil)) (list ps-mule-bitmap-prologue))) -(defun ps-mule-generate-bitmap-font (&rest args) - (list (apply 'format "/%s %d %d %f %S %d %S NF\n" args))) - -(defun ps-mule-generate-bitmap-glyph (font-name code dwidth bbx bitmap) - (format "/%s %d [ %d %d %d %d %d <%s> ] NG\n" - font-name code - dwidth (aref bbx 0) (aref bbx 1) (aref bbx 2) (aref bbx 3) - bitmap)) +(defun ps-mule-generate-bitmap-font (font-spec size relative-compose + baselie-offset bbx) + (let* ((id (ps-mule-font-spec-id font-spec)) + (bytes (ps-mule-font-spec-bytes font-spec)) + output-list) + (if (= bytes 1) + (setq output-list + (list (format "/E%02X [ 0 1 255 {pop /.notdef} for ] def\n" id) + (format "%%%% %s\n" (ps-mule-font-spec-name font-spec)) + (format "/F%02X %f %S %d E%02X NBF\n" id size + relative-compose baselie-offset id))) + (setq output-list + (list (list (format "/E%02X [ 0 1 255 { pop 0 } for ] def\n" id)) + (list (format "/V%02X [" id)) + " ] def\n" + (format "%%%% %s\n" (ps-mule-font-spec-name font-spec)) + (format "/F%02X E%02X V%02X NPF\n" id id id)))) + (aset ps-mule-bitmap-font-record id + (vector (= bytes 1) output-list + size relative-compose baselie-offset bbx)) + (if ps-mule-bitmap-dict-list + output-list + (setq ps-mule-bitmap-dict-list (list "/BitmapDict <<\n" ">> def\n")) + (cons ps-mule-bitmap-dict-list output-list)))) + +(defun ps-mule-generate-bitmap-glyph (font-spec char code bitmap) + (let* ((id (ps-mule-font-spec-id font-spec)) + ;; FONT-RECORD ::= ([(SUBFONT-OUTPUT-LIST ...) | t] + ;; BASEFONT-OUTPUT-LIST SIZE REL-COMP B-OFFSET BBX) + (font-record (aref ps-mule-bitmap-font-record id)) + enc-name + output-list) + (if (listp (aref font-record 0)) + ;; This is a 2-dimensional font. Create a subfont for this + ;; glyph if not yet created. + (let* ((high (/ code 256)) + (id2 (+ (* id 256) high))) + (setq output-list (cdr (assq high (aref font-record 0))) + code (% code 256)) + (or output-list + ;; We must create a subfont. + (let ((enc-list (car (aref font-record 1))) + (fdep-list (nth 1 (aref font-record 1)))) + (setq output-list + (list + (format "/E%04X [ 0 1 255 {pop /.notdef} for ] def\n" + id2) + (format "/F%04X %f %S %d E%04X NBF\n" + id2 (aref font-record 2) (aref font-record 3) + (aref font-record 4) id2) + (format "E%02X %d %d put\n" + id high (1- (length fdep-list))))) + (nconc enc-list (list output-list)) + (nconc fdep-list (list (format " F%04X" id2))) + (aset font-record 0 + (cons (cons high output-list) (aref font-record 0))))) + (setq enc-name (format "%04X" id2))) + (setq output-list (aref font-record 1) + enc-name (format "%02X" id))) + (setcdr ps-mule-bitmap-dict-list + (cons (format "/C%02X-%X %s\n" id char bitmap) + (cdr ps-mule-bitmap-dict-list))) + (setcdr output-list + (cons (format "E%s %d /C%02X-%X put\n" enc-name code id char) + (cdr output-list)))) + nil) ;; Mule specific initializers. ;;;###autoload (defun ps-mule-initialize () "Initialize global data for printing multi-byte characters." - (setq ps-mule-font-cache nil - ps-mule-prologue-generated nil + (setq ps-mule-prologue-generated nil ps-mule-composition-prologue-generated nil ps-mule-bitmap-prologue-generated nil) (mapcar `(lambda (x) (setcar (nthcdr 2 x) nil)) ps-mule-external-libraries)) -(defvar ps-mule-header-charsets nil) - -;;;###autoload (defun ps-mule-encode-header-string (string fonttag) "Generate PostScript code for ploting STRING by font FONTTAG. -FONTTAG should be a string \"/h0\" or \"/h1\"." - (setq string (cond ((not (stringp string)) - "") - ((multibyte-string-p string) - (copy-sequence string)) - (t - (string-make-multibyte string)))) - (when ps-mule-header-charsets - (if (eq (car ps-mule-header-charsets) 'latin-iso8859-1) - ;; Latin1 characters can be printed by the standard PostScript - ;; font. Converts the other non-ASCII characters to `?'. - (let ((len (length string))) - (dotimes (i len) - (or (memq (char-charset (aref string i)) '(ascii latin-iso8859-1)) - (aset string i ??))) - (setq string (encode-coding-string string 'iso-latin-1))) - ;; We must prepare a font for the first non-ASCII and non-Latin1 - ;; character in STRING. - (let* ((ps-current-font (if (string= fonttag "/h0") 0 1)) - (ps-mule-current-charset (car ps-mule-header-charsets)) - (font-type (car (nth ps-current-font - (ps-font-alist 'ps-font-for-header)))) - (font-spec (ps-mule-get-font-spec ps-mule-current-charset - font-type))) - (if (or (not font-spec) - (/= (charset-dimension ps-mule-current-charset) 1)) - ;; We don't have a proper font, or we can't print them on - ;; header because this kind of charset is not ASCII - ;; compatible. - (let ((len (length string))) - (dotimes (i len) - (or (memq (char-charset (aref string i)) - '(ascii latin-iso8859-1)) - (aset string i ??))) - (setq string (encode-coding-string string 'iso-latin-1))) - (let ((charsets (list 'ascii (car ps-mule-header-charsets))) - (len (length string))) - (dotimes (i len) - (or (memq (char-charset (aref string i)) charsets) - (aset string i ??)))) - (setq string (ps-mule-string-encoding font-spec string nil t)))))) - string) - -(defun ps-mule-show-warning (charsets from to header-footer-list) - (let ((table (make-category-table)) - (buf (current-buffer)) - (max-unprintable-chars 15) - char-pos-list) - (define-category ?u "Unprintable charset" table) - (dolist (cs charsets) - (modify-category-entry (make-char cs) ?u table)) - (with-category-table table - (save-excursion - (goto-char from) - (while (and (<= (length char-pos-list) max-unprintable-chars) - (re-search-forward "\\cu" to t)) - (or (aref ps-print-translation-table (preceding-char)) - (push (cons (preceding-char) (1- (point))) char-pos-list))))) - (with-output-to-temp-buffer "*Warning*" - (with-current-buffer standard-output - (when char-pos-list - (let ((func #'(lambda (buf pos) - (when (buffer-live-p buf) - (pop-to-buffer buf) - (goto-char pos)))) - (more nil)) - (if (>= (length char-pos-list) max-unprintable-chars) - (setq char-pos-list (cdr char-pos-list) - more t)) - (insert "These characters in the buffer can't be printed:\n") - (dolist (elt (nreverse char-pos-list)) - (insert " ") - (insert-text-button (string (car elt)) - :type 'help-xref - 'help-echo - "mouse-2, RET: jump to this character" - 'help-function func - 'help-args (list buf (cdr elt))) - (insert ",")) - (if more - (insert " and more...") - ;; Delete the last comma. - (delete-char -1)) - (insert "\nClick them to jump to the buffer position,\n" - (substitute-command-keys "\ -or \\[universal-argument] \\[what-cursor-position] will give information about them.\n")))) - - (with-category-table table - (let (string-list) - (dolist (elt header-footer-list) - (when (stringp elt) - (when (string-match "\\cu+" elt) - (setq elt (copy-sequence elt)) - (put-text-property (match-beginning 0) (match-end 0) - 'face 'highlight elt) - (while (string-match "\\cu+" elt (match-end 0)) - (put-text-property (match-beginning 0) (match-end 0) - 'face 'highlight elt)) - (push elt string-list)))) - (when string-list - (insert - "These highlighted characters in header/footer can't be printed:\n") - (dolist (elt string-list) - (insert " " elt "\n"))))))))) +FONTTAG should be a string \"/h0\", \"/h1\", \"/L0\", or \"/H0\". +Any other value is treated as \"/H0\"." + (with-temp-buffer + (insert string) + (ps-mule-encode-region (point-min) (point-max) + (aref ps-mule-font-spec-tables + (aref ps-mule-font-number-to-type + (cond ((string= fonttag "/h0") 4) + ((string= fonttag "/h1") 5) + ((string= fonttag "/L0") 6) + (t 0))))))) ;;;###autoload (defun ps-mule-begin-job (from to) "Start printing job for multi-byte chars between FROM and TO. It checks if all multi-byte characters in the region are printable or not." - (setq ps-mule-charset-list nil - ps-mule-header-charsets nil - ps-mule-font-info-database - (cond ((eq ps-multibyte-buffer 'non-latin-printer) - ps-mule-font-info-database-ps) - ((eq ps-multibyte-buffer 'bdf-font) - ps-mule-font-info-database-bdf) - ((eq ps-multibyte-buffer 'bdf-font-except-latin) - ps-mule-font-info-database-ps-bdf) - (t - ps-mule-font-info-database-default))) - (and (boundp 'enable-multibyte-characters) - enable-multibyte-characters - ;; Initialize `ps-mule-charset-list'. If some characters aren't - ;; printable, warn it. - (let ((header-footer-list (ps-header-footer-string)) - unprintable-charsets) - (setq ps-mule-charset-list - (delq 'ascii (delq 'eight-bit-control - (delq 'eight-bit-graphic - (find-charset-region - from to ps-print-translation-table)))) - ps-mule-header-charsets - (delq 'ascii (delq 'eight-bit-control - (delq 'eight-bit-graphic - (find-charset-string - (mapconcat - 'identity header-footer-list "") - ps-print-translation-table))))) - (dolist (cs ps-mule-charset-list) - (or (ps-mule-printable-p cs) - (push cs unprintable-charsets))) - (dolist (cs ps-mule-header-charsets) - (or (ps-mule-printable-p cs) - (memq cs unprintable-charsets) - (push cs unprintable-charsets))) - (when unprintable-charsets - (ps-mule-show-warning unprintable-charsets from to - header-footer-list) - (or - (y-or-n-p "Font for some characters not found, continue anyway? ") - (error "Printing cancelled"))) - - (or ps-mule-composition-prologue-generated - (let ((use-composition (nth 2 (find-composition from to)))) - (or use-composition - (let (str) - (while header-footer-list - (setq str (car header-footer-list)) - (if (and (stringp str) - (nth 2 (find-composition 0 (length str) str))) - (setq use-composition t - header-footer-list nil) - (setq header-footer-list (cdr header-footer-list)))))) - (when use-composition - (progn - (ps-mule-prologue-generated) - (ps-output-prologue ps-mule-composition-prologue) - (setq ps-mule-composition-prologue-generated t))))))) - - (setq ps-mule-current-charset 'ascii) - - (if (or ps-mule-charset-list ps-mule-header-charsets) - (dolist (elt (append ps-mule-header-charsets ps-mule-charset-list)) - (ps-mule-prologue-generated) - (ps-mule-init-external-library (ps-mule-get-font-spec elt 'normal)))) - - ;; If ASCII font is also specified in ps-mule-font-info-database, - ;; use it instead of what specified in ps-font-info-database. - (let ((font-spec (ps-mule-get-font-spec 'ascii 'normal))) - (if font-spec - (progn - (ps-mule-prologue-generated) - (ps-mule-init-external-library font-spec) - (let ((ps-current-font 0)) - (dolist (font (ps-font-alist 'ps-font-for-text)) - ;; Be sure to download a glyph for SPACE in advance. - (ps-mule-prepare-font (ps-mule-get-font-spec 'ascii font) - " " 'ascii 'no-setfont) - (setq ps-current-font (1+ ps-current-font))))))) - - ;; If the header contains non-ASCII and non-Latin1 characters, prepare a font - ;; and glyphs for the first occurrence of such characters. - (if (and ps-mule-header-charsets - (not (eq (car ps-mule-header-charsets) 'latin-iso8859-1)) - (= (charset-dimension (car ps-mule-header-charsets)) 1)) - (let ((font-spec (ps-mule-get-font-spec (car ps-mule-header-charsets) - 'normal))) - (if font-spec - ;; Be sure to download glyphs for "0123456789/" in advance for page - ;; numbering. - (let ((ps-current-font 0)) - (ps-mule-prepare-font font-spec "0123456789/" 'ascii t t))))) - - (if ps-mule-charset-list - ;; We must change this regexp for multi-byte buffer. - (setq ps-control-or-escape-regexp - (cond ((eq ps-print-control-characters '8-bit) - "[^\040-\176]") - ((eq ps-print-control-characters 'control-8-bit) - (string-as-multibyte "[^\040-\176\240-\377]")) - ((eq ps-print-control-characters 'control) - (string-as-multibyte "[^\040-\176\200-\377]")) - (t (string-as-multibyte "[^\000-\011\013\015-\377]")))))) + (auto-compose-region from to) + (if (and (not (find-composition from to)) + (save-excursion + (goto-char from) + (= (skip-chars-forward "\x00-\xFF" to) to))) + ;; All characters can be printed by normal PostScript fonts. + (setq ps-basic-plot-string-function 'ps-basic-plot-string + ps-encode-header-string-function 'identity) + (setq ps-basic-plot-string-function 'ps-mule-plot-string + ps-encode-header-string-function 'ps-mule-encode-header-string + ps-mule-font-info-database + (cond ((eq ps-multibyte-buffer 'non-latin-printer) + ps-mule-font-info-database-ps) + ((eq ps-multibyte-buffer 'bdf-font) + ps-mule-font-info-database-bdf) + ((eq ps-multibyte-buffer 'bdf-font-except-latin) + ps-mule-font-info-database-ps-bdf) + (t + ps-mule-font-info-database-default))) + + ;; Be sure to have font information for Latin-1. + (or (assq 'iso-8859-1 ps-mule-font-info-database) + (setq ps-mule-font-info-database + (cons '(iso-8859-1 (normal nil nil)) + ps-mule-font-info-database))) + + ;; Generate ps-mule-font-spec-tables. + (let ((font-spec-alist (make-vector 4 nil)) + (id-max 0) + (font-id 0) + font-info-list) + ;; Generate properly ordered font-info-list from + ;; ps-mule-font-info-database. + (let ((charset-list + (copy-sequence (get-language-info current-language-environment + 'charset)))) + (setq charset-list (cons 'iso-8859-1 (delq 'iso-8859-1 charset-list))) + (dolist (charset charset-list) + (let ((font-info (assq charset ps-mule-font-info-database))) + (and font-info + (setq font-info-list (cons font-info font-info-list))))) + (dolist (font-info ps-mule-font-info-database) + (or (memq (car font-info) charset-list) + (setq font-info-list (cons font-info font-info-list)))) + (setq font-info-list (nreverse font-info-list))) + + ;; Store FONT-SPECs in each element of font-spec-alist. + (dolist (font-info font-info-list) + (let ((font-spec-vec (make-vector 4 nil)) + (charset (car font-info)) + encoding font-spec) + (dolist (e (cdr font-info)) + (setq encoding (or (nth 3 e) charset) + font-spec (vector id-max charset font-id + (nth 1 e) (nth 2 e) encoding + (or (nth 4 e) (charset-dimension encoding)) + nil) + id-max (1+ id-max)) + (if (ps-mule-check-font font-spec) + (aset font-spec-vec + (cond ((eq (car e) 'normal) 0) + ((eq (car e) 'bold) 1) + ((eq (car e) 'italic) 2) + (t 3)) font-spec))) + (when (aref font-spec-vec 0) + (or (aref font-spec-vec 3) + (aset font-spec-vec 3 (or (aref font-spec-vec 1) + (aref font-spec-vec 2) + (aref font-spec-vec 0)))) + (or (aref font-spec-vec 1) + (aset font-spec-vec 1 (aref font-spec-vec 0))) + (or (aref font-spec-vec 2) + (aset font-spec-vec 2 (aref font-spec-vec 1))) + (dotimes (i 4) + (aset font-spec-alist i + (nconc (aref font-spec-alist i) + (list (cons charset (aref font-spec-vec i)))))) + (setq font-id (1+ font-id))))) + + ;; Make four FONT-SPEC-TABLEs and set them in + ;; ps-mule-font-spec-tables. Each char table has one extra slot + ;; whose value is an element of font-spec-alist. + (setq ps-mule-font-spec-tables (make-vector 4 nil)) + (put 'font-spec-table 'char-table-extra-slots 1) + (dotimes (i 4) + (let ((table (make-char-table 'font-spec-table))) + (aset ps-mule-font-spec-tables i table) + (set-char-table-extra-slot table 0 (aref font-spec-alist i)) + ;; Be sure to have glyphs for "0123456789/" in advance for + ;; page numbering. + (let ((str " 0123456789/")) + (dotimes (i (length str)) + (or (vectorp (ps-mule-get-font-spec (aref str i) table nil)) + (error "ASCII font not available"))))))) + + (ps-mule-prologue-generated) + (if (find-composition from to) + (ps-mule-composition-prologue-generated)))) + +(defun ps-mule-restruct-output-list (list tail) + (dolist (elt list) + (if (listp elt) + (setq tail (ps-mule-restruct-output-list elt tail)) + (setcdr tail (cons elt (cdr tail))) + (setq tail (cdr tail)))) + tail) + +(defun ps-mule-redefine-font (font-number fonttag size ps-font) + (let* ((font-type (aref ps-mule-font-number-to-type font-number)) + (font-spec-alist (char-table-extra-slot + (aref ps-mule-font-spec-tables font-type) 0))) + (ps-output-prologue + (list (if (ps-mule-font-spec-src (cdr (car font-spec-alist))) + ;; We ignore a font specfied in ps-font-info-database. + (format "/V%s VTOP%d def\n" fonttag font-type) + (format "/V%s [ VTOP%d aload pop ] def\n +V%s 0 /%s-latin1 /%s Latin1Encoding put\n" + fonttag font-type fonttag ps-font ps-font)) + (format "/%s ETOP%d V%s %f ReDefFont\n" + fonttag font-type fonttag size))))) -;;;###autoload -(defun ps-mule-begin-page () - (setq ps-mule-current-charset 'ascii)) +;;;###autoload +(defun ps-mule-end-job () + "Finish printing job for multi-byte chars." + + ;; Prepare root and sub fonts while generating glyphs if necessary. + (let ((output-head (list t)) + (ps-mule-output-list (list t))) + (dotimes (i 4) + (map-char-table 'ps-mule-prepare-glyph + (aref ps-mule-font-spec-tables i))) + (ps-mule-restruct-output-list (cdr ps-mule-output-list) output-head) + (ps-output-prologue (cdr output-head))) + + ;; Prepare top Encoding and templates of FDepVector. + (dotimes (i 4) + (let ((font-spec-alist (char-table-extra-slot + (aref ps-mule-font-spec-tables i) 0)) + font-list font-spec) + (dolist (elt font-spec-alist) + (setq font-spec (cdr elt)) + (if (ps-mule-font-spec-extra font-spec) + (push (cons (ps-mule-font-spec-font-id font-spec) + (ps-mule-font-spec-id font-spec)) + font-list))) + (setq font-list (nreverse font-list)) + (ps-output-prologue + (list (format "/ETOP%d 256 array def\n" i) + (format "0 1 255 { ETOP%d exch 0 put } for\n" i))) + (let ((index 0)) + (dolist (font font-list) + (ps-output-prologue (format "ETOP%d %d %d put\n" i (car font) index)) + (setq index (1+ index)))) + (ps-output-prologue (format "/VTOP%d [%s] def\n" i + (mapconcat #'(lambda (x) + (format "F%02X" (cdr x))) + font-list " "))))) + + ;; Redefine fonts f0, f1, f2, f3, h0, h1, H0. + (ps-mule-redefine-font 4 "h0" ps-header-title-font-size-internal + (ps-font 'ps-font-for-header 'bold)) + (ps-mule-redefine-font 5 "h1" ps-header-font-size-internal + (ps-font 'ps-font-for-header 'normal)) + (ps-mule-redefine-font 6 "H0" ps-footer-font-size-internal + (ps-font 'ps-font-for-footer 'normal)) + (let ((font (ps-font-alist 'ps-font-for-text)) + (i 0)) + (while font + (ps-mule-redefine-font i (format "f%d" i) + ps-font-size-internal + (ps-font 'ps-font-for-text (car (car font)))) + (setq font (cdr font) + i (1+ i))))) (provide 'ps-mule) diff --git a/lisp/ps-print.el b/lisp/ps-print.el index e7c40351d03..62556b83a24 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -10,11 +10,11 @@ ;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) ;; Vinicius Jose Latorre <viniciusjl@ig.com.br> ;; Keywords: wp, print, PostScript -;; Version: 6.7.5 +;; Version: 7.2.4 ;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre -(defconst ps-print-version "6.7.5" - "ps-print.el, v 6.7.5 <2007/07/20 vinicius> +(defconst ps-print-version "7.2.4" + "ps-print.el, v 7.2.4 <2007/07/20 vinicius> Vinicius's last change version -- this file may have been edited as part of Emacs without changes to the version number. When reporting bugs, please also @@ -1331,7 +1331,7 @@ Please send all bug fixes and enhancements to ;; ;; Faces are always treated as opaque. ;; -;; Epoch, Lucid and Emacs 21 not supported. At all. +;; Epoch, Lucid and Emacs 22 not supported. At all. ;; ;; Fixed-pitch fonts work better for line folding, but are not required. ;; @@ -1445,9 +1445,11 @@ Please send all bug fixes and enhancements to (require 'lpr) + (or (featurep 'lisp-float-type) (error "`ps-print' requires floating point support")) + (let ((case-fold-search t)) (cond ((string-match "XEmacs" emacs-version)) ((string-match "Lucid" emacs-version) @@ -1460,80 +1462,14 @@ Please send all bug fixes and enhancements to (error "`ps-print' only supports Emacs 22 and higher"))))) -;; GNU Emacs -(or (fboundp 'line-beginning-position) - (defun line-beginning-position (&optional n) - (save-excursion - (and n (/= n 1) (forward-line (1- n))) - (beginning-of-line) - (point)))) - - -;; to avoid compilation gripes - -;; XEmacs -(defalias 'ps-x-color-instance-p 'color-instance-p) -(defalias 'ps-x-color-instance-rgb-components 'color-instance-rgb-components) -(defalias 'ps-x-color-name 'color-name) -(defalias 'ps-x-color-specifier-p 'color-specifier-p) -(defalias 'ps-x-copy-coding-system 'copy-coding-system) -(defalias 'ps-x-device-class 'device-class) -(defalias 'ps-x-extent-end-position 'extent-end-position) -(defalias 'ps-x-extent-face 'extent-face) -(defalias 'ps-x-extent-priority 'extent-priority) -(defalias 'ps-x-extent-start-position 'extent-start-position) -(defalias 'ps-x-face-font-instance 'face-font-instance) -(defalias 'ps-x-find-coding-system 'find-coding-system) -(defalias 'ps-x-font-instance-properties 'font-instance-properties) -(defalias 'ps-x-make-color-instance 'make-color-instance) -(defalias 'ps-x-map-extents 'map-extents) - -;; GNU Emacs -(defalias 'ps-e-face-bold-p 'face-bold-p) -(defalias 'ps-e-face-italic-p 'face-italic-p) -(defalias 'ps-e-next-overlay-change 'next-overlay-change) -(defalias 'ps-e-overlays-at 'overlays-at) -(defalias 'ps-e-overlay-get 'overlay-get) -(defalias 'ps-e-overlay-end 'overlay-end) -(defalias 'ps-e-x-color-values 'x-color-values) -(defalias 'ps-e-color-values 'color-values) -(defalias 'ps-e-find-composition (if (fboundp 'find-composition) - 'find-composition - 'ignore)) - - (defconst ps-windows-system (memq system-type '(emx win32 w32 mswindows ms-dos windows-nt))) (defconst ps-lp-system (memq system-type '(usg-unix-v dgux hpux irix))) -(defun ps-xemacs-color-name (color) - (if (ps-x-color-specifier-p color) - (ps-x-color-name color) - color)) - -(defalias 'ps-frame-parameter - (if (fboundp 'frame-parameter) 'frame-parameter 'frame-property)) - -(defalias 'ps-mark-active-p - (if (fboundp 'region-active-p) - 'region-active-p ; XEmacs - (defvar mark-active) ; To shup up XEmacs's byte compiler. - (lambda () mark-active))) ; Emacs - -(cond ((featurep 'xemacs) ; XEmacs - (defun ps-face-foreground-name (face) - (ps-xemacs-color-name (face-foreground face))) - (defun ps-face-background-name (face) - (ps-xemacs-color-name (face-background face))) - ) - (t ; Emacs 22 or higher - (defun ps-face-foreground-name (face) - (face-foreground face nil t)) - (defun ps-face-background-name (face) - (face-background face nil t)) - )) +;; Load XEmacs/Emacs definitions +(eval-and-compile (require 'ps-def)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -3339,9 +3275,9 @@ It's like the very first character of buffer (or region) is ^L (\\014)." (defcustom ps-postscript-code-directory (or (if (featurep 'xemacs) (cond ((fboundp 'locate-data-directory) ; XEmacs - (locate-data-directory "ps-print")) + (funcall 'locate-data-directory "ps-print")) ((boundp 'data-directory) ; XEmacs - data-directory) + (symbol-value 'data-directory)) (t ; don't know what to do nil)) data-directory) ; Emacs @@ -3833,108 +3769,6 @@ It can be retrieved with `(ps-get ALIST-SYM KEY)'." (format-time-string "%T")) -(and (featurep 'xemacs) - ;; XEmacs change: Need to check for emacs-major-version too. - (or (< emacs-major-version 19) - (and (= emacs-major-version 19) (< emacs-minor-version 12))) - (setq ps-print-color-p nil)) - - -;; Return t if the device (which can be changed during an emacs session) -;; can handle colors. -;; This function is not yet implemented for GNU emacs. -(defalias 'ps-color-device - (cond ((and (featurep 'xemacs) - ;; XEmacs change: Need to check for emacs-major-version too. - (or (> emacs-major-version 19) - (and (= emacs-major-version 19) - (>= emacs-minor-version 12)))) ; XEmacs >= 19.12 - (lambda () - (eq (ps-x-device-class) 'color))) - - (t ; Emacs - (lambda () - (if (fboundp 'color-values) - (ps-e-color-values "Green") - t))))) - - -(defun ps-mapper (extent list) - (nconc list - (list (list (ps-x-extent-start-position extent) 'push extent) - (list (ps-x-extent-end-position extent) 'pull extent))) - nil) - -(defun ps-extent-sorter (a b) - (< (ps-x-extent-priority a) (ps-x-extent-priority b))) - -(defun ps-xemacs-face-kind-p (face kind kind-regex) - (let* ((frame-font (or (ps-x-face-font-instance face) - (ps-x-face-font-instance 'default))) - (kind-cons - (and frame-font - (assq kind - (ps-x-font-instance-properties frame-font)))) - (kind-spec (cdr-safe kind-cons)) - (case-fold-search t)) - (and kind-spec (string-match kind-regex kind-spec)))) - -(cond ((featurep 'xemacs) ; XEmacs - - ;; to avoid XEmacs compilation gripes - (defvar coding-system-for-write) - (defvar coding-system-for-read) - (defvar buffer-file-coding-system) - - (and (fboundp 'find-coding-system) - (or (ps-x-find-coding-system 'raw-text-unix) - (ps-x-copy-coding-system 'no-conversion-unix 'raw-text-unix))) - - (defun ps-color-values (x-color) - (let ((color (ps-xemacs-color-name x-color))) - (cond - ((fboundp 'x-color-values) - (ps-e-x-color-values color)) - ((and (fboundp 'color-instance-rgb-components) - (ps-color-device)) - (ps-x-color-instance-rgb-components - (if (ps-x-color-instance-p x-color) - x-color - (ps-x-make-color-instance color)))) - (t - (error "No available function to determine X color values"))))) - - (defun ps-face-bold-p (face) - (or (ps-xemacs-face-kind-p face 'WEIGHT_NAME "bold\\|demibold") - (memq face ps-bold-faces))) ; Kludge-compatible - - (defun ps-face-italic-p (face) - (or (ps-xemacs-face-kind-p face 'ANGLE_NAME "i\\|o") - (ps-xemacs-face-kind-p face 'SLANT "i\\|o") - (memq face ps-italic-faces))) ; Kludge-compatible - ) - - (t ; Emacs - - (defun ps-color-values (x-color) - (cond - ((fboundp 'color-values) - (ps-e-color-values x-color)) - ((fboundp 'x-color-values) - (ps-e-x-color-values x-color)) - (t - (error "No available function to determine X color values")))) - - (defun ps-face-bold-p (face) - (or (ps-e-face-bold-p face) - (memq face ps-bold-faces))) - - (defun ps-face-italic-p (face) - (or (ps-e-face-italic-p face) - (memq face ps-italic-faces))) - )) - - (defvar ps-print-color-scale 1.0) (defun ps-color-scale (color) @@ -4014,15 +3848,6 @@ Note: No major/minor-mode is activated and no local variables are evaluated for (defvar ps-razchunk 0) (defvar ps-color-p nil) -(defvar ps-color-format - (if (featurep 'xemacs) - ;; XEmacs will have to make do with %s (princ) for floats. - "%s %s %s" - - ;; Emacs understands the %f format; we'll use it to limit color RGB - ;; values to three decimals to cut down some on the size of the - ;; PostScript output. - "%0.3f %0.3f %0.3f")) ;; These values determine how much print-height to deduct when headers/footers ;; are turned on. This is a pretty clumsy way of handling it, but it'll do for @@ -4808,65 +4633,35 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th (goto-char (point-max)) (insert-file-contents fname))) -;; These functions are used in `ps-mule' to get charset of header and footer. -;; To avoid unnecessary calls to functions in `ps-left-header', -;; `ps-right-header', `ps-left-footer' and `ps-right-footer'. - -(defun ps-generate-string-list (content) - (let (str) - (while content - (setq str (cons (cond - ;; string - ((stringp (car content)) - (car content)) - ;; function symbol - ((functionp (car content)) - (concat "(" (funcall (car content)) ")")) - ;; variable symbol - ((and (symbolp (car content)) (boundp (car content))) - (concat "(" (symbol-value (car content)) ")")) - ;; otherwise, empty string - (t - "")) - str) - content (cdr content))) - (nreverse str))) - -(defvar ps-lh-cache nil) -(defvar ps-rh-cache nil) -(defvar ps-lf-cache nil) -(defvar ps-rf-cache nil) - -(defun ps-header-footer-string () - (and ps-print-header - (setq ps-lh-cache (ps-generate-string-list ps-left-header) - ps-rh-cache (ps-generate-string-list ps-right-header))) - (and ps-print-footer - (setq ps-lf-cache (ps-generate-string-list ps-left-footer) - ps-rf-cache (ps-generate-string-list ps-right-footer))) - (append ps-lh-cache ps-rh-cache ps-lf-cache ps-rf-cache)) - ;; These functions insert the arrays that define the contents of the headers. +(defvar ps-encode-header-string-function nil) + (defun ps-generate-header-line (fonttag &optional content) (ps-output " [" fonttag " ") (cond ;; Literal strings should be output as is -- the string must contain its own ;; PS string delimiters, '(' and ')', if necessary. ((stringp content) - (ps-output (ps-mule-encode-header-string content fonttag))) + (ps-output content)) ;; Functions are called -- they should return strings; they will be inserted ;; as strings and the PS string delimiters added. - ((functionp content) - (ps-output-string (ps-mule-encode-header-string (funcall content) - fonttag))) + ((fboundp content) + (if (fboundp ps-encode-header-string-function) + (dolist (l (funcall ps-encode-header-string-function + (funcall content) fonttag)) + (ps-output-string l)) + (ps-output-string (funcall content)))) ;; Variables will have their contents inserted. They should contain ;; strings, and will be inserted as strings. ((and (symbolp content) (boundp content)) - (ps-output-string (ps-mule-encode-header-string (symbol-value content) - fonttag))) + (if (fboundp ps-encode-header-string-function) + (dolist (l (funcall ps-encode-header-string-function + (symbol-value content) fonttag)) + (ps-output-string l)) + (ps-output-string (symbol-value content)))) ;; Anything else will get turned into an empty string. (t @@ -4932,15 +4727,6 @@ page-height == ((floor print-height ((th + ls) * zh)) * ((th + ls) * zh)) - th (vector 0 0 0 0))))) -;; Emacs understands the %f format; we'll use it to limit color RGB values -;; to three decimals to cut down some on the size of the PostScript output. -;; XEmacs will have to make do with %s (princ) for floats. - -(defvar ps-float-format (if (featurep 'xemacs) - "%s " ; XEmacs - "%0.3f ")) ; Emacs - - (defun ps-float-format (value &optional default) (let ((literal (or value default))) (cond ((null literal) @@ -5841,6 +5627,7 @@ XSTART YSTART are the relative position for the first page in a sheet.") (t (list default default default)))) +(defvar ps-basic-plot-string-function 'ps-basic-plot-string) (defun ps-begin-job (genfunc) ;; prologue files @@ -5946,7 +5733,11 @@ XSTART YSTART are the relative position for the first page in a sheet.") 0.0) ps-default-color (and (eq ps-print-color-p t) ps-default-foreground) - ps-current-color ps-default-color) + ps-current-color ps-default-color + ;; Set up default functions. They may be overridden by + ;; ps-mule-begin-job. + ps-basic-plot-string-function 'ps-basic-plot-string + ps-encode-header-string-function nil) ;; initialize page dimensions (ps-get-page-dimensions) ;; final check @@ -6031,28 +5822,19 @@ XSTART YSTART are the relative position for the first page in a sheet.") (format "/PageNumber %d def\n" (ps-page-number))) (when ps-print-header - (ps-generate-header "HeaderLinesLeft" "/h0" "/h1" - (or ps-lh-cache ps-left-header)) - (ps-generate-header "HeaderLinesRight" "/h0" "/h1" - (or ps-rh-cache ps-right-header)) - (ps-output (format "%d SetHeaderLines\n" ps-header-lines)) - (setq ps-lh-cache nil - ps-rh-cache nil)) + (ps-generate-header "HeaderLinesLeft" "/h0" "/h1" ps-left-header) + (ps-generate-header "HeaderLinesRight" "/h0" "/h1" ps-right-header) + (ps-output (format "%d SetHeaderLines\n" ps-header-lines))) (when ps-print-footer - (ps-generate-header "FooterLinesLeft" "/H0" "/H0" - (or ps-lf-cache ps-left-footer)) - (ps-generate-header "FooterLinesRight" "/H0" "/H0" - (or ps-rf-cache ps-right-footer)) - (ps-output (format "%d SetFooterLines\n" ps-footer-lines)) - (setq ps-lf-cache nil - ps-rf-cache nil)) + (ps-generate-header "FooterLinesLeft" "/H0" "/H0" ps-left-footer) + (ps-generate-header "FooterLinesRight" "/H0" "/H0" ps-right-footer) + (ps-output (format "%d SetFooterLines\n" ps-footer-lines))) (ps-output (number-to-string ps-lines-printed) " BeginPage\n") (ps-set-font ps-current-font) (ps-set-bg ps-current-bg) - (ps-set-color ps-current-color) - (ps-mule-begin-page)) + (ps-set-color ps-current-color)) (defsubst ps-skip-newline (limit) (setq ps-showline-count (1+ ps-showline-count) @@ -6096,7 +5878,6 @@ XSTART YSTART are the relative position for the first page in a sheet.") (ps-avg-char-width 'ps-font-for-text))) (to (car wrappoint)) (str (substring string from to))) - (ps-mule-prepare-ascii-font str) (ps-output-string str) (ps-output " S\n") wrappoint)) @@ -6106,7 +5887,6 @@ XSTART YSTART are the relative position for the first page in a sheet.") (ps-avg-char-width 'ps-font-for-text))) (to (car wrappoint)) (string (buffer-substring-no-properties from to))) - (ps-mule-prepare-ascii-font string) (ps-output-string string) (ps-output " S\n") wrappoint)) @@ -6223,26 +6003,16 @@ to the equivalent Latin-1 characters.") (if (re-search-forward ps-control-or-escape-regexp to t) ;; region with some control characters or some multi-byte characters (let* ((match-point (match-beginning 0)) - (match (char-after match-point)) - (composition (ps-e-find-composition from (1+ match-point)))) - (if composition - (if (and (nth 2 composition) - (<= (car composition) match-point)) - (progn - (setq match-point (car composition) - match 0) - (goto-char (nth 1 composition))) - (setq composition nil))) + (match (char-after match-point))) (when (< from match-point) - (ps-mule-set-ascii-font) - (ps-plot 'ps-basic-plot-string from match-point bg-color)) + (ps-plot ps-basic-plot-string-function + from match-point bg-color)) (cond ((= match ?\t) ; tab (let ((linestart (line-beginning-position))) (forward-char -1) (setq from (+ linestart (current-column))) (when (re-search-forward "[ \t]+" to t) - (ps-mule-set-ascii-font) (ps-plot 'ps-basic-plot-whitespace from (+ linestart (current-column)) bg-color)))) @@ -6267,30 +6037,11 @@ to the equivalent Latin-1 characters.") (ps-skip-newline to)) (ps-next-page))) - (composition ; a composite sequence - (ps-plot 'ps-mule-plot-composition match-point (point) bg-color)) - - ((> match 255) ; a multi-byte character - (setq match (or (aref ps-print-translation-table match) match)) - (let* ((charset (char-charset match)) - (composition (ps-e-find-composition match-point to)) - (stop (if (nth 2 composition) (car composition) to))) - (or (eq charset 'composition) - (while (and (< (point) stop) - (let ((ch (following-char))) - (setq ch - (or (aref ps-print-translation-table ch) - ch)) - (eq (char-charset ch) charset))) - (forward-char 1))) - (ps-plot 'ps-mule-plot-string match-point (point) bg-color))) - ; characters from ^@ to ^_ and (t ; characters from 127 to 255 (ps-control-character match))) (setq from (point))) - ;; region without control characters nor multi-byte characters - (ps-mule-set-ascii-font) - (ps-plot 'ps-basic-plot-string from to bg-color) + ;; region without control characters + (ps-plot ps-basic-plot-string-function from to bg-color) (setq from to))))) (defvar ps-string-control-codes @@ -6322,7 +6073,6 @@ to the equivalent Latin-1 characters.") (if (< (car wrappoint) to) (ps-continue-line)) (setq ps-width-remaining (- ps-width-remaining (* len char-width))) - (ps-mule-prepare-ascii-font str) (ps-output-string str) (ps-output " S\n"))) @@ -6359,7 +6109,7 @@ If FACE is not a valid face name, use default face." (defun ps-face-background (face background) - (and (cond ((eq ps-use-face-background t)) ; always + (and (cond ((eq ps-use-face-background t)) ; always ((null ps-use-face-background) nil) ; never ;; ps-user-face-background is a symbol face list ((symbolp face) @@ -6523,125 +6273,7 @@ If FACE is not a valid face name, use default face." (save-restriction (narrow-to-region from to) (ps-print-ensure-fontified from to) - (let ((face 'default) - (position to)) - (cond - ((featurep 'xemacs) ; XEmacs - ;; Build the list of extents... - (let ((a (cons 'dummy nil)) - record type extent extent-list) - (ps-x-map-extents 'ps-mapper nil from to a) - (setq a (sort (cdr a) 'car-less-than-car) - extent-list nil) - - ;; Loop through the extents... - (while a - (setq record (car a) - position (car record) - - record (cdr record) - type (car record) - - record (cdr record) - extent (car record)) - - ;; Plot up to this record. - ;; XEmacs 19.12: for some reason, we're getting into a - ;; situation in which some of the records have - ;; positions less than 'from'. Since we've narrowed - ;; the buffer, this'll generate errors. This is a hack, - ;; but don't call ps-plot-with-face unless from > point-min. - (and (>= from (point-min)) - (ps-plot-with-face from (min position (point-max)) face)) - - (cond - ((eq type 'push) - (and (ps-x-extent-face extent) - (setq extent-list (sort (cons extent extent-list) - 'ps-extent-sorter)))) - - ((eq type 'pull) - (setq extent-list (sort (delq extent extent-list) - 'ps-extent-sorter)))) - - (setq face (if extent-list - (ps-x-extent-face (car extent-list)) - 'default) - from position - a (cdr a))))) - - (t ; Emacs - (let ((property-change from) - (overlay-change from) - (save-buffer-invisibility-spec buffer-invisibility-spec) - (buffer-invisibility-spec nil) - before-string after-string) - (while (< from to) - (and (< property-change to) ; Don't search for property change - ; unless previous search succeeded. - (setq property-change (next-property-change from nil to))) - (and (< overlay-change to) ; Don't search for overlay change - ; unless previous search succeeded. - (setq overlay-change (min (ps-e-next-overlay-change from) - to))) - (setq position (min property-change overlay-change) - before-string nil - after-string nil) - ;; The code below is not quite correct, - ;; because a non-nil overlay invisible property - ;; which is inactive according to the current value - ;; of buffer-invisibility-spec nonetheless overrides - ;; a face text property. - (setq face - (cond ((let ((prop (get-text-property from 'invisible))) - ;; Decide whether this invisible property - ;; really makes the text invisible. - (if (eq save-buffer-invisibility-spec t) - (not (null prop)) - (or (memq prop save-buffer-invisibility-spec) - (assq prop save-buffer-invisibility-spec)))) - 'emacs--invisible--face) - ((get-text-property from 'face)) - (t 'default))) - (let ((overlays (ps-e-overlays-at from)) - (face-priority -1)) ; text-property - (while (and overlays - (not (eq face 'emacs--invisible--face))) - (let* ((overlay (car overlays)) - (overlay-invisible - (ps-e-overlay-get overlay 'invisible)) - (overlay-priority - (or (ps-e-overlay-get overlay 'priority) 0))) - (and (> overlay-priority face-priority) - (setq before-string - (or (ps-e-overlay-get overlay 'before-string) - before-string) - after-string - (or (and (<= (ps-e-overlay-end overlay) position) - (ps-e-overlay-get overlay 'after-string)) - after-string) - face-priority overlay-priority - face - (cond - ((if (eq save-buffer-invisibility-spec t) - (not (null overlay-invisible)) - (or (memq overlay-invisible - save-buffer-invisibility-spec) - (assq overlay-invisible - save-buffer-invisibility-spec))) - 'emacs--invisible--face) - ((ps-e-overlay-get overlay 'face)) - (t face) - )))) - (setq overlays (cdr overlays)))) - ;; Plot up to this record. - (and before-string - (ps-plot-string before-string)) - (ps-plot-with-face from position face) - (and after-string - (ps-plot-string after-string)) - (setq from position))))) - (ps-plot-with-face from to face)))) + (ps-generate-postscript-with-faces1 from to))) (defun ps-generate-postscript (from to) (ps-plot-region from to 0)) @@ -6689,6 +6321,7 @@ If FACE is not a valid face name, use default face." (ps-begin-page) (funcall genfunc from to) (ps-end-page) + (ps-mule-end-job) (ps-end-job needs-begin-file) ;; Setting this variable tells the unwind form that the @@ -6836,211 +6469,11 @@ If FACE is not a valid face name, use default face." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; Sample Setup Code: - - -;; This stuff is for anybody that's brave enough to look this far, -;; and able to figure out how to use it. It isn't really part of -;; ps-print, but I'll leave it here in hopes it might be useful: - -;; WARNING!!! The following code is *sample* code only. -;; Don't use it unless you understand what it does! - -;; The key `f22' should probably be replaced by `print'. --Stef - -;; A hook to bind to `rmail-mode-hook' to locally bind prsc and set the -;; `ps-left-headers' specially for mail messages. -(defun ps-rmail-mode-hook () - (local-set-key [(f22)] 'ps-rmail-print-message-from-summary) - (setq ps-header-lines 3 - ps-left-header - ;; The left headers will display the message's subject, its - ;; author, and the name of the folder it was in. - '(ps-article-subject ps-article-author buffer-name))) - -;; See `ps-gnus-print-article-from-summary'. This function does the -;; same thing for rmail. -(defun ps-rmail-print-message-from-summary () - (interactive) - (ps-print-message-from-summary 'rmail-summary-buffer "RMAIL")) - -;; Used in `ps-rmail-print-article-from-summary', -;; `ps-gnus-print-article-from-summary' and `ps-vm-print-message-from-summary'. -(defun ps-print-message-from-summary (summary-buffer summary-default) - (let ((ps-buf (or (and (boundp summary-buffer) - (symbol-value summary-buffer)) - summary-default))) - (and (get-buffer ps-buf) - (save-excursion - (set-buffer ps-buf) - (ps-spool-buffer-with-faces))))) - -;; Look in an article or mail message for the Subject: line. To be -;; placed in `ps-left-headers'. -(defun ps-article-subject () - (save-excursion - (goto-char (point-min)) - (if (re-search-forward "^Subject:[ \t]+\\(.*\\)$" nil t) - (buffer-substring (match-beginning 1) (match-end 1)) - "Subject ???"))) - -;; Look in an article or mail message for the From: line. Sorta-kinda -;; understands RFC-822 addresses and can pull the real name out where -;; it's provided. To be placed in `ps-left-headers'. -(defun ps-article-author () - (save-excursion - (goto-char (point-min)) - (if (re-search-forward "^From:[ \t]+\\(.*\\)$" nil t) - (let ((fromstring (buffer-substring (match-beginning 1) (match-end 1)))) - (cond - - ;; Try first to match addresses that look like - ;; thompson@wg2.waii.com (Jim Thompson) - ((string-match ".*[ \t]+(\\(.*\\))" fromstring) - (substring fromstring (match-beginning 1) (match-end 1))) - - ;; Next try to match addresses that look like - ;; Jim Thompson <thompson@wg2.waii.com> or - ;; "Jim Thompson" <thompson@wg2.waii.com> - ((string-match "\\(\"?\\)\\(.*\\)\\1[ \t]+<.*>" fromstring) - (substring fromstring (match-beginning 2) (match-end 2))) - - ;; Couldn't find a real name -- show the address instead. - (t fromstring))) - "From ???"))) - -;; A hook to bind to `gnus-article-prepare-hook'. This will set the -;; `ps-left-headers' specially for gnus articles. Unfortunately, -;; `gnus-article-mode-hook' is called only once, the first time the *Article* -;; buffer enters that mode, so it would only work for the first time -;; we ran gnus. The second time, this hook wouldn't get set up. The -;; only alternative is `gnus-article-prepare-hook'. -(defun ps-gnus-article-prepare-hook () - (setq ps-header-lines 3 - ps-left-header - ;; The left headers will display the article's subject, its - ;; author, and the newsgroup it was in. - '(ps-article-subject ps-article-author gnus-newsgroup-name))) - -;; A hook to bind to `vm-mode-hook' to locally bind prsc and set the -;; `ps-left-headers' specially for mail messages. -(defun ps-vm-mode-hook () - (local-set-key [(f22)] 'ps-vm-print-message-from-summary) - (setq ps-header-lines 3 - ps-left-header - ;; The left headers will display the message's subject, its - ;; author, and the name of the folder it was in. - '(ps-article-subject ps-article-author buffer-name))) - -;; Every now and then I forget to switch from the *Summary* buffer to -;; the *Article* before hitting prsc, and a nicely formatted list of -;; article subjects shows up at the printer. This function, bound to -;; prsc for the gnus *Summary* buffer means I don't have to switch -;; buffers first. -;; sb: Updated for Gnus 5. -(defun ps-gnus-print-article-from-summary () - (interactive) - (ps-print-message-from-summary 'gnus-article-buffer "*Article*")) - -;; See `ps-gnus-print-article-from-summary'. This function does the -;; same thing for vm. -(defun ps-vm-print-message-from-summary () - (interactive) - (ps-print-message-from-summary 'vm-mail-buffer "")) - -;; A hook to bind to bind to `gnus-summary-setup-buffer' to locally bind -;; prsc. -(defun ps-gnus-summary-setup () - (local-set-key [(f22)] 'ps-gnus-print-article-from-summary)) - -;; Look in an article or mail message for the Subject: line. To be -;; placed in `ps-left-headers'. -(defun ps-info-file () - (save-excursion - (goto-char (point-min)) - (if (re-search-forward "File:[ \t]+\\([^, \t\n]*\\)" nil t) - (buffer-substring (match-beginning 1) (match-end 1)) - "File ???"))) - -;; Look in an article or mail message for the Subject: line. To be -;; placed in `ps-left-headers'. -(defun ps-info-node () - (save-excursion - (goto-char (point-min)) - (if (re-search-forward "Node:[ \t]+\\([^,\t\n]*\\)" nil t) - (buffer-substring (match-beginning 1) (match-end 1)) - "Node ???"))) - -(defun ps-info-mode-hook () - (setq ps-left-header - ;; The left headers will display the node name and file name. - '(ps-info-node ps-info-file))) - -;; WARNING! The following function is a *sample* only, and is *not* -;; meant to be used as a whole unless you understand what the effects -;; will be! (In fact, this is a copy of Jim's setup for ps-print -- -;; I'd be very surprised if it was useful to *anybody*, without -;; modification.) - -(defun ps-jts-ps-setup () - (global-set-key [(f22)] 'ps-spool-buffer-with-faces) ;f22 is prsc - (global-set-key [(shift f22)] 'ps-spool-region-with-faces) - (global-set-key [(control f22)] 'ps-despool) - (add-hook 'gnus-article-prepare-hook 'ps-gnus-article-prepare-hook) - (add-hook 'gnus-summary-mode-hook 'ps-gnus-summary-setup) - (add-hook 'vm-mode-hook 'ps-vm-mode-hook) - (add-hook 'vm-mode-hooks 'ps-vm-mode-hook) - (add-hook 'Info-mode-hook 'ps-info-mode-hook) - (setq ps-spool-duplex t - ps-print-color-p nil - ps-lpr-command "lpr" - ps-lpr-switches '("-Jjct,duplex_long")) - 'ps-jts-ps-setup) - -;; WARNING! The following function is a *sample* only, and is *not* -;; meant to be used as a whole unless it corresponds to your needs. -;; (In fact, this is a copy of Jack's setup for ps-print -- -;; I would not be that surprised if it was useful to *anybody*, -;; without modification.) - -(defun ps-jack-setup () - (setq ps-print-color-p nil - ps-lpr-command "lpr" - ps-lpr-switches nil - - ps-paper-type 'a4 - ps-landscape-mode t - ps-number-of-columns 2 - - ps-left-margin (/ (* 72 1.0) 2.54) ; 1.0 cm - ps-right-margin (/ (* 72 1.0) 2.54) ; 1.0 cm - ps-inter-column (/ (* 72 1.0) 2.54) ; 1.0 cm - ps-bottom-margin (/ (* 72 1.5) 2.54) ; 1.5 cm - ps-top-margin (/ (* 72 1.5) 2.54) ; 1.5 cm - ps-header-offset (/ (* 72 1.0) 2.54) ; 1.0 cm - ps-header-line-pad .15 - ps-print-header t - ps-print-header-frame t - ps-header-lines 2 - ps-show-n-of-n t - ps-spool-duplex nil - - ps-font-family 'Courier - ps-font-size 5.5 - ps-header-font-family 'Helvetica - ps-header-font-size 6 - ps-header-title-font-size 8) - 'ps-jack-setup) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; To make this file smaller, some commands go in a separate file. ;; But autoload them here to make the separation invisible. -;;;### (autoloads (ps-mule-begin-page ps-mule-begin-job ps-mule-encode-header-string -;;;;;; ps-mule-initialize ps-mule-plot-composition ps-mule-plot-string -;;;;;; ps-mule-set-ascii-font ps-mule-prepare-ascii-font ps-multibyte-buffer) -;;;;;; "ps-mule" "ps-mule.el" "cbb193f9b6bebd27378819035d3788f7") +;;;### (autoloads (ps-mule-end-job ps-mule-begin-job ps-mule-initialize +;;;;;; ps-multibyte-buffer) "ps-mule" "ps-mule.el" "bb18668f99d691db470ec2a32753ba28") ;;; Generated autoloads from ps-mule.el (defvar ps-multibyte-buffer nil "\ @@ -7088,69 +6521,19 @@ Any other value is treated as nil.") (custom-autoload (quote ps-multibyte-buffer) "ps-mule" t) -(autoload (quote ps-mule-prepare-ascii-font) "ps-mule" "\ -Setup special ASCII font for STRING. -STRING should contain only ASCII characters. - -\(fn STRING)" nil nil) - -(autoload (quote ps-mule-set-ascii-font) "ps-mule" "\ -Not documented - -\(fn)" nil nil) - -(autoload (quote ps-mule-plot-string) "ps-mule" "\ -Generate PostScript code for plotting characters in the region FROM and TO. - -It is assumed that all characters in this region belong to the same charset. - -Optional argument BG-COLOR specifies background color. - -Returns the value: - - (ENDPOS . RUN-WIDTH) - -Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of -the sequence. - -\(fn FROM TO &optional BG-COLOR)" nil nil) - -(autoload (quote ps-mule-plot-composition) "ps-mule" "\ -Generate PostScript code for plotting composition in the region FROM and TO. - -It is assumed that all characters in this region belong to the same -composition. - -Optional argument BG-COLOR specifies background color. - -Returns the value: - - (ENDPOS . RUN-WIDTH) - -Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of -the sequence. - -\(fn FROM TO &optional BG-COLOR)" nil nil) - (autoload (quote ps-mule-initialize) "ps-mule" "\ Initialize global data for printing multi-byte characters. \(fn)" nil nil) -(autoload (quote ps-mule-encode-header-string) "ps-mule" "\ -Generate PostScript code for ploting STRING by font FONTTAG. -FONTTAG should be a string \"/h0\" or \"/h1\". - -\(fn STRING FONTTAG)" nil nil) - (autoload (quote ps-mule-begin-job) "ps-mule" "\ Start printing job for multi-byte chars between FROM and TO. This checks if all multi-byte characters in the region are printable or not. \(fn FROM TO)" nil nil) -(autoload (quote ps-mule-begin-page) "ps-mule" "\ -Not documented +(autoload (quote ps-mule-end-job) "ps-mule" "\ +Finish printing job for multi-byte chars. \(fn)" nil nil) diff --git a/lisp/ps-samp.el b/lisp/ps-samp.el new file mode 100644 index 00000000000..b42d8cb6a1a --- /dev/null +++ b/lisp/ps-samp.el @@ -0,0 +1,244 @@ +;;; ps-samp.el --- ps-print sample setup code + +;; Copyright (C) 2007 Free Software Foundation, Inc. + +;; Author: Jim Thompson (was <thompson@wg2.waii.com>) +;; Jacques Duthen (was <duthen@cegelec-red.fr>) +;; Vinicius Jose Latorre <viniciusjl@ig.com.br> +;; Kenichi Handa <handa@m17n.org> (multi-byte characters) +;; Maintainer: Kenichi Handa <handa@m17n.org> (multi-byte characters) +;; Vinicius Jose Latorre <viniciusjl@ig.com.br> +;; Keywords: wp, print, PostScript +;; Version: 7.2.2 +;; X-URL: http://www.emacswiki.org/cgi-bin/wiki/ViniciusJoseLatorre + +;; 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. + +;;; Commentary: + +;; See ps-print.el for documentation. + +;;; Code: + + +(eval-and-compile (require 'ps-print)) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Sample Setup Code: + + +;; This stuff is for anybody that's brave enough to look this far, +;; and able to figure out how to use it. It isn't really part of +;; ps-print, but I'll leave it here in hopes it might be useful: + +;; WARNING!!! The following code is *sample* code only. +;; Don't use it unless you understand what it does! + +;; The key `f22' should probably be replaced by `print'. --Stef + +;; A hook to bind to `rmail-mode-hook' to locally bind prsc and set the +;; `ps-left-headers' specially for mail messages. +(defun ps-rmail-mode-hook () + (local-set-key [(f22)] 'ps-rmail-print-message-from-summary) + (setq ps-header-lines 3 + ps-left-header + ;; The left headers will display the message's subject, its + ;; author, and the name of the folder it was in. + '(ps-article-subject ps-article-author buffer-name))) + +;; See `ps-gnus-print-article-from-summary'. This function does the +;; same thing for rmail. +(defun ps-rmail-print-message-from-summary () + (interactive) + (ps-print-message-from-summary 'rmail-summary-buffer "RMAIL")) + +;; Used in `ps-rmail-print-article-from-summary', +;; `ps-gnus-print-article-from-summary' and `ps-vm-print-message-from-summary'. +(defun ps-print-message-from-summary (summary-buffer summary-default) + (let ((ps-buf (or (and (boundp summary-buffer) + (symbol-value summary-buffer)) + summary-default))) + (and (get-buffer ps-buf) + (save-excursion + (set-buffer ps-buf) + (ps-spool-buffer-with-faces))))) + +;; Look in an article or mail message for the Subject: line. To be +;; placed in `ps-left-headers'. +(defun ps-article-subject () + (save-excursion + (goto-char (point-min)) + (if (re-search-forward "^Subject:[ \t]+\\(.*\\)$" nil t) + (buffer-substring (match-beginning 1) (match-end 1)) + "Subject ???"))) + +;; Look in an article or mail message for the From: line. Sorta-kinda +;; understands RFC-822 addresses and can pull the real name out where +;; it's provided. To be placed in `ps-left-headers'. +(defun ps-article-author () + (save-excursion + (goto-char (point-min)) + (if (re-search-forward "^From:[ \t]+\\(.*\\)$" nil t) + (let ((fromstring (buffer-substring (match-beginning 1) (match-end 1)))) + (cond + + ;; Try first to match addresses that look like + ;; thompson@wg2.waii.com (Jim Thompson) + ((string-match ".*[ \t]+(\\(.*\\))" fromstring) + (substring fromstring (match-beginning 1) (match-end 1))) + + ;; Next try to match addresses that look like + ;; Jim Thompson <thompson@wg2.waii.com> or + ;; "Jim Thompson" <thompson@wg2.waii.com> + ((string-match "\\(\"?\\)\\(.*\\)\\1[ \t]+<.*>" fromstring) + (substring fromstring (match-beginning 2) (match-end 2))) + + ;; Couldn't find a real name -- show the address instead. + (t fromstring))) + "From ???"))) + +;; A hook to bind to `gnus-article-prepare-hook'. This will set the +;; `ps-left-headers' specially for gnus articles. Unfortunately, +;; `gnus-article-mode-hook' is called only once, the first time the *Article* +;; buffer enters that mode, so it would only work for the first time +;; we ran gnus. The second time, this hook wouldn't get set up. The +;; only alternative is `gnus-article-prepare-hook'. +(defun ps-gnus-article-prepare-hook () + (setq ps-header-lines 3 + ps-left-header + ;; The left headers will display the article's subject, its + ;; author, and the newsgroup it was in. + '(ps-article-subject ps-article-author gnus-newsgroup-name))) + +;; A hook to bind to `vm-mode-hook' to locally bind prsc and set the +;; `ps-left-headers' specially for mail messages. +(defun ps-vm-mode-hook () + (local-set-key [(f22)] 'ps-vm-print-message-from-summary) + (setq ps-header-lines 3 + ps-left-header + ;; The left headers will display the message's subject, its + ;; author, and the name of the folder it was in. + '(ps-article-subject ps-article-author buffer-name))) + +;; Every now and then I forget to switch from the *Summary* buffer to +;; the *Article* before hitting prsc, and a nicely formatted list of +;; article subjects shows up at the printer. This function, bound to +;; prsc for the gnus *Summary* buffer means I don't have to switch +;; buffers first. +;; sb: Updated for Gnus 5. +(defun ps-gnus-print-article-from-summary () + (interactive) + (ps-print-message-from-summary 'gnus-article-buffer "*Article*")) + +;; See `ps-gnus-print-article-from-summary'. This function does the +;; same thing for vm. +(defun ps-vm-print-message-from-summary () + (interactive) + (ps-print-message-from-summary 'vm-mail-buffer "")) + +;; A hook to bind to bind to `gnus-summary-setup-buffer' to locally bind +;; prsc. +(defun ps-gnus-summary-setup () + (local-set-key [(f22)] 'ps-gnus-print-article-from-summary)) + +;; Look in an article or mail message for the Subject: line. To be +;; placed in `ps-left-headers'. +(defun ps-info-file () + (save-excursion + (goto-char (point-min)) + (if (re-search-forward "File:[ \t]+\\([^, \t\n]*\\)" nil t) + (buffer-substring (match-beginning 1) (match-end 1)) + "File ???"))) + +;; Look in an article or mail message for the Subject: line. To be +;; placed in `ps-left-headers'. +(defun ps-info-node () + (save-excursion + (goto-char (point-min)) + (if (re-search-forward "Node:[ \t]+\\([^,\t\n]*\\)" nil t) + (buffer-substring (match-beginning 1) (match-end 1)) + "Node ???"))) + +(defun ps-info-mode-hook () + (setq ps-left-header + ;; The left headers will display the node name and file name. + '(ps-info-node ps-info-file))) + +;; WARNING! The following function is a *sample* only, and is *not* +;; meant to be used as a whole unless you understand what the effects +;; will be! (In fact, this is a copy of Jim's setup for ps-print -- +;; I'd be very surprised if it was useful to *anybody*, without +;; modification.) + +(defun ps-jts-ps-setup () + (global-set-key [(f22)] 'ps-spool-buffer-with-faces) ;f22 is prsc + (global-set-key [(shift f22)] 'ps-spool-region-with-faces) + (global-set-key [(control f22)] 'ps-despool) + (add-hook 'gnus-article-prepare-hook 'ps-gnus-article-prepare-hook) + (add-hook 'gnus-summary-mode-hook 'ps-gnus-summary-setup) + (add-hook 'vm-mode-hook 'ps-vm-mode-hook) + (add-hook 'vm-mode-hooks 'ps-vm-mode-hook) + (add-hook 'Info-mode-hook 'ps-info-mode-hook) + (setq ps-spool-duplex t + ps-print-color-p nil + ps-lpr-command "lpr" + ps-lpr-switches '("-Jjct,duplex_long")) + 'ps-jts-ps-setup) + +;; WARNING! The following function is a *sample* only, and is *not* +;; meant to be used as a whole unless it corresponds to your needs. +;; (In fact, this is a copy of Jack's setup for ps-print -- +;; I would not be that surprised if it was useful to *anybody*, +;; without modification.) + +(defun ps-jack-setup () + (setq ps-print-color-p nil + ps-lpr-command "lpr" + ps-lpr-switches nil + + ps-paper-type 'a4 + ps-landscape-mode t + ps-number-of-columns 2 + + ps-left-margin (/ (* 72 1.0) 2.54) ; 1.0 cm + ps-right-margin (/ (* 72 1.0) 2.54) ; 1.0 cm + ps-inter-column (/ (* 72 1.0) 2.54) ; 1.0 cm + ps-bottom-margin (/ (* 72 1.5) 2.54) ; 1.5 cm + ps-top-margin (/ (* 72 1.5) 2.54) ; 1.5 cm + ps-header-offset (/ (* 72 1.0) 2.54) ; 1.0 cm + ps-header-line-pad .15 + ps-print-header t + ps-print-header-frame t + ps-header-lines 2 + ps-show-n-of-n t + ps-spool-duplex nil + + ps-font-family 'Courier + ps-font-size 5.5 + ps-header-font-family 'Helvetica + ps-header-font-size 6 + ps-header-title-font-size 8) + 'ps-jack-setup) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(provide 'ps-samp) + +;; arch-tag: 99c415d3-be39-43c6-aa32-7ee33ba19600 +;;; ps-samp.el ends here diff --git a/lisp/ruler-mode.el b/lisp/ruler-mode.el index 156625bd41a..56bb3080862 100644 --- a/lisp/ruler-mode.el +++ b/lisp/ruler-mode.el @@ -135,8 +135,7 @@ or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or "Ensure WIDGET value is a valid character value." (save-excursion (let ((value (widget-value widget))) - (if (char-valid-p value) - nil + (unless (characterp value) (widget-put widget :error (format "Invalid character value: %S" value)) widget)))) @@ -667,7 +666,8 @@ Optional argument PROPS specifies other text properties to apply." ;; Create an "clean" ruler. (ruler (propertize - (make-string w ruler-mode-basic-graduation-char) + (string-to-multibyte + (make-string w ruler-mode-basic-graduation-char)) 'face 'ruler-mode-default 'local-map ruler-mode-map 'help-echo (cond diff --git a/lisp/simple.el b/lisp/simple.el index ab7370b02ec..de1220ce21c 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -963,9 +963,9 @@ in *Help* buffer. See also the command `describe-char'." (if (or (not coding) (eq (coding-system-type coding) t)) (setq coding default-buffer-file-coding-system)) - (if (not (char-valid-p char)) + (if (eq (char-charset char) 'eight-bit) (setq encoding-msg - (format "(%d, #o%o, #x%x, invalid)" char char char)) + (format "(%d, #o%o, #x%x, raw-byte)" char char char)) ;; Check if the character is displayed with some `display' ;; text property. In that case, set under-display to the ;; buffer substring covered by that property. diff --git a/lisp/startup.el b/lisp/startup.el index 184a2424756..e6d983ef60f 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -787,6 +787,7 @@ or `CVS', and any subdirectory that contains a file named `.nosearch'." (custom-reevaluate-setting 'file-name-shadow-mode) (custom-reevaluate-setting 'send-mail-function) (custom-reevaluate-setting 'focus-follows-mouse) + (custom-reevaluate-setting 'global-auto-composition-mode) ;; Register default TTY colors for the case the terminal hasn't a ;; terminal init file. @@ -1283,6 +1284,9 @@ where FACE is a valid face specification, as it can be used with 'keymap map))) (insert "\n")))) (fancy-splash-insert + :face '(variable-pitch :background "red") + "\n!! This version is ALPHA status. It may lose your data!!\n\n") + (fancy-splash-insert :face '(variable-pitch :foreground "red") (if (eq system-type 'gnu/linux) "GNU Emacs is one component of the GNU/Linux operating system." diff --git a/lisp/subr.el b/lisp/subr.el index c8c693565fc..97f73251c03 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -703,7 +703,7 @@ The normal global definition of the character C-x indirects to this keymap.") ;; Filter out integers too large to be events. ;; M is the biggest modifier. (zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1))))) - (char-valid-p (event-basic-type obj))) + (characterp (event-basic-type obj))) (and (symbolp obj) (get obj 'event-symbol-elements)) (and (consp obj) diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 944694b9b7e..210ed800b22 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el @@ -129,16 +129,17 @@ This information is useful, but it takes screen space away from file names." :group 'tar) (defvar tar-parse-info nil) -;; Be sure that this variable holds byte position, not char position. (defvar tar-header-offset nil) (defvar tar-superior-buffer nil) (defvar tar-superior-descriptor nil) (defvar tar-subfile-mode nil) +(defvar tar-file-name-coding-system nil) (put 'tar-parse-info 'permanent-local t) (put 'tar-header-offset 'permanent-local t) (put 'tar-superior-buffer 'permanent-local t) (put 'tar-superior-descriptor 'permanent-local t) +(put 'tar-file-name-coding-system 'permanent-local t) (defmacro tar-setf (form val) "A mind-numbingly simple implementation of setf." @@ -203,6 +204,7 @@ This information is useful, but it takes screen space away from file names." "Return a `tar-header' structure. This is a list of name, mode, uid, gid, size, write-date, checksum, link-type, and link-name." + (setq string (string-as-unibyte string)) (cond ((< (length string) 512) nil) (;(some 'plusp string) ; <-- oops, massive cycle hog! (or (not (= 0 (aref string 0))) ; This will do. @@ -231,15 +233,10 @@ write-date, checksum, link-type, and link-name." (setq linkname (substring string tar-link-offset link-end)) (if default-enable-multibyte-characters (setq name - (decode-coding-string name - (or file-name-coding-system - default-file-name-coding-system - 'undecided)) + (decode-coding-string name tar-file-name-coding-system) linkname (decode-coding-string linkname - (or file-name-coding-system - default-file-name-coding-system - 'undecided)))) + tar-file-name-coding-system))) (if (and (null link-p) (string-match "/\\'" name)) (setq link-p 5)) ; directory (make-tar-header name @@ -298,6 +295,7 @@ write-date, checksum, link-type, and link-name." (defun tar-header-block-checksum (string) "Compute and return a tar-acceptable checksum for this block." + (setq string (string-as-unibyte string)) (let* ((chk-field-start tar-chk-offset) (chk-field-end (+ chk-field-start 8)) (sum 0) @@ -400,7 +398,8 @@ MODE should be an integer which is a file mode value." (unless (file-directory-p name) (write-region start end name)) (set-file-modes name (tar-header-mode tokens)))))) - (set-buffer-multibyte multibyte)))) + (if multibyte + (set-buffer-multibyte 'to))))) (defun tar-summarize-buffer () "Parse the contents of the tar file in the current buffer. @@ -429,11 +428,11 @@ is visible (and the real data of the buffer is hidden)." (if (< size 0) (error "%s has size %s - corrupted" (tar-header-name tokens) size)) - ; - ; This is just too slow. Don't really need it anyway.... - ;(tar-header-block-check-checksum - ; hblock (tar-header-block-checksum hblock) - ; (tar-header-name tokens)) + ;; + ;; This is just too slow. Don't really need it anyway.... + ;;(tar-header-block-check-checksum + ;; hblock (tar-header-block-checksum hblock) + ;; (tar-header-name tokens)) (push (make-tar-desc pos tokens) result) @@ -441,7 +440,7 @@ is visible (and the real data of the buffer is hidden)." (> size 0) (setq pos (+ pos 512 (ash (ash (1- size) -9) 9)) ; this works - ;(+ pos (+ size (- 512 (rem (1- size) 512)))) ; this doesn't + ;;(+ pos (+ size (- 512 (rem (1- size) 512)))) ; this doesn't )))) (make-local-variable 'tar-parse-info) (setq tar-parse-info (nreverse result)) @@ -450,22 +449,24 @@ is visible (and the real data of the buffer is hidden)." (if (eq tokens 'empty-tar-block) (progress-reporter-done progress-reporter) (message "Warning: premature EOF parsing tar file"))) - (set-buffer-multibyte default-enable-multibyte-characters) + ;; Obey the user's preference for the use of uni/multibytes. + (if default-enable-multibyte-characters + (set-buffer-multibyte 'to)) (goto-char (point-min)) - (let ((inhibit-read-only t)) - ;; Collect summary lines and insert them all at once since tar files - ;; can be pretty big. - (let ((total-summaries - (mapconcat - (lambda (tar-desc) - (tar-header-block-summarize (tar-desc-tokens tar-desc))) - tar-parse-info - "\n"))) - (insert total-summaries "\n")) - (narrow-to-region (point-min) (point)) - (set (make-local-variable 'tar-header-offset) (position-bytes (point))) - (goto-char (point-min)) - (restore-buffer-modified-p modified)))) + (let ((inhibit-read-only t) + ;; Collect summary lines and insert them all at once since tar files + ;; can be pretty big. + (total-summaries + (mapconcat + (lambda (tar-desc) + (tar-header-block-summarize (tar-desc-tokens tar-desc))) + tar-parse-info + "\n"))) + (insert total-summaries "\n")) + (narrow-to-region (point-min) (point)) + (set (make-local-variable 'tar-header-offset) (position-bytes (point))) + (goto-char (point-min)) + (restore-buffer-modified-p modified))) (defvar tar-mode-map (let ((map (make-keymap))) @@ -497,50 +498,50 @@ is visible (and the real data of the buffer is hidden)." (define-key map "M" 'tar-chmod-entry) (define-key map "G" 'tar-chgrp-entry) (define-key map "O" 'tar-chown-entry) - + ;; Make menu bar items. ;; Get rid of the Edit menu bar item to save space. (define-key map [menu-bar edit] 'undefined) (define-key map [menu-bar immediate] - (cons "Immediate" (make-sparse-keymap "Immediate"))) + (cons "Immediate" (make-sparse-keymap "Immediate"))) (define-key map [menu-bar immediate view] - '("View This File" . tar-view)) + '("View This File" . tar-view)) (define-key map [menu-bar immediate display] - '("Display in Other Window" . tar-display-other-window)) + '("Display in Other Window" . tar-display-other-window)) (define-key map [menu-bar immediate find-file-other-window] - '("Find in Other Window" . tar-extract-other-window)) + '("Find in Other Window" . tar-extract-other-window)) (define-key map [menu-bar immediate find-file] - '("Find This File" . tar-extract)) + '("Find This File" . tar-extract)) (define-key map [menu-bar mark] - (cons "Mark" (make-sparse-keymap "Mark"))) + (cons "Mark" (make-sparse-keymap "Mark"))) (define-key map [menu-bar mark unmark-all] - '("Unmark All" . tar-clear-modification-flags)) + '("Unmark All" . tar-clear-modification-flags)) (define-key map [menu-bar mark deletion] - '("Flag" . tar-flag-deleted)) + '("Flag" . tar-flag-deleted)) (define-key map [menu-bar mark unmark] - '("Unflag" . tar-unflag)) + '("Unflag" . tar-unflag)) (define-key map [menu-bar operate] - (cons "Operate" (make-sparse-keymap "Operate"))) + (cons "Operate" (make-sparse-keymap "Operate"))) (define-key map [menu-bar operate chown] - '("Change Owner..." . tar-chown-entry)) + '("Change Owner..." . tar-chown-entry)) (define-key map [menu-bar operate chgrp] - '("Change Group..." . tar-chgrp-entry)) + '("Change Group..." . tar-chgrp-entry)) (define-key map [menu-bar operate chmod] - '("Change Mode..." . tar-chmod-entry)) + '("Change Mode..." . tar-chmod-entry)) (define-key map [menu-bar operate rename] - '("Rename to..." . tar-rename-entry)) + '("Rename to..." . tar-rename-entry)) (define-key map [menu-bar operate copy] - '("Copy to..." . tar-copy)) + '("Copy to..." . tar-copy)) (define-key map [menu-bar operate expunge] - '("Expunge Marked Files" . tar-expunge)) - + '("Expunge Marked Files" . tar-expunge)) + map) "Local keymap for Tar mode listings.") @@ -575,6 +576,10 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. (set (make-local-variable 'revert-buffer-function) 'tar-mode-revert) (set (make-local-variable 'local-enable-local-variables) nil) (set (make-local-variable 'next-line-add-newlines) nil) + (set (make-local-variable 'tar-file-name-coding-system) + (or file-name-coding-system + default-file-name-coding-system + locale-coding-system)) ;; Prevent loss of data when saving the file. (set (make-local-variable 'file-precious-flag) t) (auto-save-mode 0) @@ -582,7 +587,7 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. (buffer-disable-undo) (widen) (if (and (boundp 'tar-header-offset) tar-header-offset) - (narrow-to-region (point-min) (byte-to-position tar-header-offset)) + (narrow-to-region (point-min) tar-header-offset) (tar-summarize-buffer) (tar-next-line 0))) @@ -701,7 +706,6 @@ appear on disk when you save the tar-file's buffer." (- tar-header-offset (point-min)))) (end (+ start size))) (let* ((tar-buffer (current-buffer)) - (tar-buffer-multibyte enable-multibyte-characters) (tarname (buffer-name)) (bufname (concat (file-name-nondirectory name) " (" @@ -712,89 +716,74 @@ appear on disk when you save the tar-file's buffer." ;; `:' is not allowed on Windows (concat tarname "!" name))) (buffer (get-file-buffer new-buffer-file-name)) - (just-created nil)) + (just-created nil) + (pos (point)) + undo-list) (unless buffer (setq buffer (generate-new-buffer bufname)) + (save-excursion + (set-buffer buffer) + (setq undo-list buffer-undo-list + buffer-undo-list t)) (setq bufname (buffer-name buffer)) (setq just-created t) (unwind-protect - (progn + (let (coding) + (narrow-to-region start end) + (goto-char start) + (setq coding (or coding-system-for-read + (and set-auto-coding-function + (funcall set-auto-coding-function + name (- end start))) + ;; The following binding causes + ;; find-buffer-file-type-coding-system + ;; (defined on dos-w32.el) to act as if + ;; the file being extracted existed, so + ;; that the file's contents' encoding and + ;; EOL format are auto-detected. + (let ((file-name-handler-alist + '(("" . tar-file-name-handler)))) + (car (find-operation-coding-system + 'insert-file-contents + (cons name (current-buffer)) t))))) + (if (or (not coding) + (eq (coding-system-type coding) 'undecided)) + (setq coding (detect-coding-region start end t))) + (if (and default-enable-multibyte-characters + (coding-system-get coding :for-unibyte)) + (save-excursion + (set-buffer buffer) + (set-buffer-multibyte nil))) (widen) - (set-buffer-multibyte nil) + (decode-coding-region start end coding buffer) (save-excursion (set-buffer buffer) - (let ((buffer-undo-list t)) - (if enable-multibyte-characters - (progn - ;; We must avoid unibyte->multibyte conversion. - (set-buffer-multibyte nil) - (insert-buffer-substring tar-buffer start end) - (set-buffer-multibyte t)) - (insert-buffer-substring tar-buffer start end)) - (goto-char (point-min)) - (setq buffer-file-name new-buffer-file-name) - (setq buffer-file-truename - (abbreviate-file-name buffer-file-name)) - ;; We need to mimic the parts of insert-file-contents - ;; which determine the coding-system and decode the text. - (let ((coding - (or coding-system-for-read - (and set-auto-coding-function - (save-excursion - (funcall set-auto-coding-function - name (- (point-max) (point))))) - ;; The following binding causes - ;; find-buffer-file-type-coding-system - ;; (defined on dos-w32.el) to act as if - ;; the file being extracted existed, so - ;; that the file's contents' encoding and - ;; EOL format are auto-detected. - (let ((file-name-handler-alist - '(("" . tar-file-name-handler)))) - (car (find-operation-coding-system - 'insert-file-contents - (cons name (current-buffer)) t))))) - (multibyte enable-multibyte-characters) - (detected (detect-coding-region - (point-min) - (min (+ (point-min) 16384) (point-max)) t))) - (if coding - (or (numberp (coding-system-eol-type coding)) - (vectorp (coding-system-eol-type detected)) - (setq coding (coding-system-change-eol-conversion - coding - (coding-system-eol-type detected)))) - (setq coding - (find-new-buffer-file-coding-system detected))) - (if (or (eq coding 'no-conversion) - (eq (coding-system-type coding) 5)) - (setq multibyte (set-buffer-multibyte nil))) - (or multibyte - (setq coding - (coding-system-change-text-conversion - coding 'raw-text))) - (decode-coding-region (point-min) (point-max) coding) - ;; Force buffer-file-coding-system to what - ;; decode-coding-region actually used. - (set-buffer-file-coding-system last-coding-system-used t)) - ;; Set the default-directory to the dir of the - ;; superior buffer. - (setq default-directory - (save-excursion - (set-buffer tar-buffer) - default-directory)) - (normal-mode) ; pick a mode. - (rename-buffer bufname) - (make-local-variable 'tar-superior-buffer) - (make-local-variable 'tar-superior-descriptor) - (setq tar-superior-buffer tar-buffer) - (setq tar-superior-descriptor descriptor) - (setq buffer-read-only read-only-p) - (set-buffer-modified-p nil)) + (goto-char (point-min)) + (setq buffer-file-name new-buffer-file-name) + (setq buffer-file-truename + (abbreviate-file-name buffer-file-name)) + ;; Force buffer-file-coding-system to what + ;; decode-coding-region actually used. + (set-buffer-file-coding-system last-coding-system-used t) + ;; Set the default-directory to the dir of the + ;; superior buffer. + (setq default-directory + (save-excursion + (set-buffer tar-buffer) + default-directory)) + (normal-mode) ; pick a mode. + (rename-buffer bufname) + (make-local-variable 'tar-superior-buffer) + (make-local-variable 'tar-superior-descriptor) + (setq tar-superior-buffer tar-buffer) + (setq tar-superior-descriptor descriptor) + (setq buffer-read-only read-only-p) + (set-buffer-modified-p nil) + (setq buffer-undo-list undo-list) (tar-subfile-mode 1)) (set-buffer tar-buffer)) (narrow-to-region (point-min) tar-header-offset) - (set-buffer-multibyte tar-buffer-multibyte))) + (goto-char pos))) (if view-p (view-buffer buffer (and just-created 'kill-buffer)) (if (eq other-window-p 'display) @@ -852,7 +841,6 @@ the current tar-entry." (start (+ (tar-desc-data-start descriptor) (- tar-header-offset (point-min)))) (end (+ start size)) - (multibyte enable-multibyte-characters) (inhibit-file-name-handlers inhibit-file-name-handlers) (inhibit-file-name-operation inhibit-file-name-operation)) (save-restriction @@ -866,11 +854,8 @@ the current tar-entry." (and (eq inhibit-file-name-operation 'write-region) inhibit-file-name-handlers)) inhibit-file-name-operation 'write-region)) - (unwind-protect - (let ((coding-system-for-write 'no-conversion)) - (set-buffer-multibyte nil) - (write-region start end to-file nil nil nil t)) - (set-buffer-multibyte multibyte))) + (let ((coding-system-for-write 'no-conversion)) + (write-region start end to-file nil nil nil t))) (message "Copied tar entry %s to %s" name to-file))) (defun tar-flag-deleted (p &optional unflag) @@ -899,7 +884,6 @@ With a prefix argument, un-mark that many files backward." (tar-flag-deleted (- p) t)) -;; When this function is called, it is sure that the buffer is unibyte. (defun tar-expunge-internal () "Expunge the tar-entry specified by the current line." (let* ((descriptor (tar-current-descriptor)) @@ -949,11 +933,8 @@ for this to be permanent." (interactive) (if (or noconfirm (y-or-n-p "Expunge files marked for deletion? ")) - (let ((n 0) - (multibyte enable-multibyte-characters)) + (let ((n 0)) (save-excursion - (widen) - (set-buffer-multibyte nil) (goto-char (point-min)) (while (not (eobp)) (if (looking-at "D") @@ -962,8 +943,6 @@ for this to be permanent." (forward-line 1))) ;; after doing the deletions, add any padding that may be necessary. (tar-pad-to-blocksize) - (widen) - (set-buffer-multibyte multibyte) (narrow-to-region (point-min) tar-header-offset)) (if (zerop n) (message "Nothing to expunge.") @@ -975,7 +954,7 @@ for this to be permanent." (interactive) (save-excursion (goto-char (point-min)) - (while (< (position-bytes (point)) tar-header-offset) + (while (< (point) tar-header-offset) (if (not (eq (following-char) ?\s)) (progn (delete-char 1) (insert " "))) (forward-line 1)))) @@ -1045,15 +1024,13 @@ for this to be permanent." (list (read-string "New name: " (tar-header-name (tar-desc-tokens (tar-current-descriptor)))))) (if (string= "" new-name) (error "zero length name")) - (if (> (length new-name) 98) (error "name too long")) - (tar-setf (tar-header-name (tar-desc-tokens (tar-current-descriptor))) - new-name) - (if (multibyte-string-p new-name) - (setq new-name (encode-coding-string new-name - (or file-name-coding-system - default-file-name-coding-system)))) - (tar-alter-one-field 0 - (substring (concat new-name (make-string 99 0)) 0 99))) + (let ((encoded-new-name (encode-coding-string new-name + tar-file-name-coding-system))) + (if (> (length encoded-new-name) 98) (error "name too long")) + (tar-setf (tar-header-name (tar-desc-tokens (tar-current-descriptor))) + new-name) + (tar-alter-one-field 0 + (substring (concat encoded-new-name (make-string 99 0)) 0 99)))) (defun tar-chmod-entry (new-mode) @@ -1070,8 +1047,7 @@ for this to be permanent." (defun tar-alter-one-field (data-position new-data-string) (let* ((descriptor (tar-current-descriptor)) - (tokens (tar-desc-tokens descriptor)) - (multibyte enable-multibyte-characters)) + (tokens (tar-desc-tokens descriptor))) (unwind-protect (save-excursion ;; @@ -1081,10 +1057,9 @@ for this to be permanent." (forward-line 1) (delete-region p (point)) (insert (tar-header-block-summarize tokens) "\n") - (setq tar-header-offset (position-bytes (point-max)))) + (setq tar-header-offset (point-max))) (widen) - (set-buffer-multibyte nil) (let* ((start (+ (tar-desc-data-start descriptor) (- tar-header-offset (point-min)) -512))) @@ -1092,7 +1067,13 @@ for this to be permanent." ;; delete the old field and insert a new one. (goto-char (+ start data-position)) (delete-region (point) (+ (point) (length new-data-string))) ; <-- - (insert new-data-string) ; <-- + + ;; As new-data-string is unibyte, just inserting it will + ;; make eight-bit chars to the corresponding multibyte + ;; chars. This avoid that conversion, i.e., eight-bit + ;; chars are converted to multibyte form of eight-bit + ;; chars. + (insert (string-to-multibyte new-data-string)) ;; ;; compute a new checksum and insert it. (let ((chk (tar-header-block-checksum @@ -1110,7 +1091,6 @@ for this to be permanent." chk (tar-header-name tokens)) ))) (narrow-to-region (point-min) tar-header-offset) - (set-buffer-multibyte multibyte) (tar-next-line 0)))) @@ -1135,14 +1115,9 @@ to make your changes permanent." (error "This buffer doesn't have an index into its superior tar file!")) (save-excursion (let ((subfile (current-buffer)) - (subfile-multibyte enable-multibyte-characters) (coding buffer-file-coding-system) (descriptor tar-superior-descriptor) subfile-size) - ;; We must make the current buffer unibyte temporarily to avoid - ;; multibyte->unibyte conversion in `insert-buffer-substring'. - (set-buffer-multibyte nil) - (setq subfile-size (buffer-size)) (set-buffer tar-superior-buffer) (let* ((tokens (tar-desc-tokens descriptor)) (start (tar-desc-data-start descriptor)) @@ -1150,28 +1125,28 @@ to make your changes permanent." (size (tar-header-size tokens)) (size-pad (ash (ash (+ size 511) -9) 9)) (head (memq descriptor tar-parse-info)) - (following-descs (cdr head)) - (tar-buffer-multibyte enable-multibyte-characters)) + (following-descs (cdr head))) (if (not head) (error "Can't find this tar file entry in its parent tar file!")) (unwind-protect (save-excursion - (widen) - (set-buffer-multibyte nil) ;; delete the old data... (let* ((data-start (+ start (- tar-header-offset (point-min)))) (data-end (+ data-start (ash (ash (+ size 511) -9) 9)))) - (delete-region data-start data-end) + (narrow-to-region data-start data-end) + (delete-region (point-min) (point-max)) ;; insert the new data... (goto-char data-start) - (insert-buffer-substring subfile) - (setq subfile-size - (encode-coding-region - data-start (+ data-start subfile-size) coding)) + (save-excursion + (set-buffer subfile) + (save-restriction + (widen) + (encode-coding-region 1 (point-max) coding tar-superior-buffer))) + (setq subfile-size (- (point-max) (point-min))) ;; ;; pad the new data out to a multiple of 512... (let ((subfile-size-pad (ash (ash (+ subfile-size 511) -9) 9))) - (goto-char (+ data-start subfile-size)) + (goto-char (point-max)) (insert (make-string (- subfile-size-pad subfile-size) 0)) ;; ;; update the data pointer of this and all following files... @@ -1182,6 +1157,7 @@ to make your changes permanent." (+ (tar-desc-data-start desc) difference)))) ;; ;; Update the size field in the header block. + (widen) (let ((header-start (- data-start 512))) (goto-char (+ header-start tar-size-offset)) (delete-region (point) (+ (point) 12)) @@ -1220,19 +1196,16 @@ to make your changes permanent." ;; Insert the new text after the old, before deleting, ;; to preserve the window start. (let ((line (tar-header-block-summarize tokens t))) - (insert-before-markers (string-as-unibyte line) "\n")) + (insert-before-markers line "\n")) (delete-region p after) (setq tar-header-offset (marker-position m))) ))) ;; after doing the insertion, add any final padding that may be necessary. (tar-pad-to-blocksize)) - (narrow-to-region (point-min) tar-header-offset) - (set-buffer-multibyte tar-buffer-multibyte))) + (narrow-to-region (point-min) tar-header-offset))) (set-buffer-modified-p t) ; mark the tar file as modified (tar-next-line 0) (set-buffer subfile) - ;; Restore the buffer multibyteness. - (set-buffer-multibyte subfile-multibyte) (set-buffer-modified-p nil) ; mark the tar subfile as unmodified (message "Saved into tar-buffer `%s'. Be sure to save that buffer!" (buffer-name tar-superior-buffer)) @@ -1280,14 +1253,13 @@ Leaves the region wide." ;; tar-header-offset turns out to be null for files fetched with W3, ;; at least. (let ((coding-system-for-write 'no-conversion)) - (write-region (if tar-header-offset - (byte-to-position tar-header-offset) - (point-min)) + (write-region (or tar-header-offset + (point-min)) (point-max) buffer-file-name nil t)) (tar-clear-modification-flags) (set-buffer-modified-p nil)) - (narrow-to-region (point-min) (byte-to-position tar-header-offset))) + (narrow-to-region (point-min) tar-header-offset)) ;; Return t because we've written the file. t) diff --git a/lisp/term.el b/lisp/term.el index c7b5ee249d1..78c384475c1 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -883,8 +883,6 @@ is buffer-local.") (unless (or (eq i ?O) (eq i 91)) (define-key esc-map (make-string 1 i) 'term-send-raw-meta)) (setq i (1+ i))) - (dolist (elm (generic-character-list)) - (define-key map (vector elm) 'term-send-raw)) (define-key map "\e" esc-map) (setq term-raw-map map) (setq term-raw-escape-map diff --git a/lisp/term/mac-win.el b/lisp/term/mac-win.el index 3fb07dd004a..af4c7e29525 100644 --- a/lisp/term/mac-win.el +++ b/lisp/term/mac-win.el @@ -1,4 +1,4 @@ -;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*- +;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: utf-8 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, ;; 2005, 2006, 2007 Free Software Foundation, Inc. @@ -1130,95 +1130,145 @@ correspoinding TextEncodingBase value." (mac-add-charset-info "mac-dingbats" 34) (mac-add-charset-info "iso10646-1" 126) ; for ATSUI -(cp-make-coding-system - mac-centraleurroman - [?\,AD(B ?\$,1 (B ?\$,1 !(B ?\,AI(B ?\$,1 $(B ?\,AV(B ?\,A\(B ?\,Aa(B ?\$,1 %(B ?\$,1 ,(B ?\,Ad(B ?\$,1 -(B ?\$,1 &(B ?\$,1 '(B ?\,Ai(B ?\$,1!9(B - ?\$,1!:(B ?\$,1 .(B ?\,Am(B ?\$,1 /(B ?\$,1 2(B ?\$,1 3(B ?\$,1 6(B ?\,As(B ?\$,1 7(B ?\,At(B ?\,Av(B ?\,Au(B ?\,Az(B ?\$,1 :(B ?\$,1 ;(B ?\,A|(B - ?\$,1s (B ?\,A0(B ?\$,1 8(B ?\,A#(B ?\,A'(B ?\$,1s"(B ?\,A6(B ?\,A_(B ?\,A.(B ?\,A)(B ?\$,1ub(B ?\$,1 9(B ?\,A((B ?\$,1y (B ?\$,1 C(B ?\$,1 N(B - ?\$,1 O(B ?\$,1 J(B ?\$,1y$(B ?\$,1y%(B ?\$,1 K(B ?\$,1 V(B ?\$,1x"(B ?\$,1x1(B ?\$,1 b(B ?\$,1 [(B ?\$,1 \(B ?\$,1 ](B ?\$,1 ^(B ?\$,1 Y(B ?\$,1 Z(B ?\$,1 e(B - ?\$,1 f(B ?\$,1 c(B ?\,A,(B ?\$,1x:(B ?\$,1 d(B ?\$,1 g(B ?\$,1x&(B ?\,A+(B ?\,A;(B ?\$,1s&(B ?\,A (B ?\$,1 h(B ?\$,1 p(B ?\,AU(B ?\$,1 q(B ?\$,1 l(B - ?\$,1rs(B ?\$,1rt(B ?\$,1r|(B ?\$,1r}(B ?\$,1rx(B ?\$,1ry(B ?\,Aw(B ?\$,2"*(B ?\$,1 m(B ?\$,1 t(B ?\$,1 u(B ?\$,1 x(B ?\$,1s9(B ?\$,1s:(B ?\$,1 y(B ?\$,1 v(B - ?\$,1 w(B ?\$,1! (B ?\$,1rz(B ?\$,1r~(B ?\$,1!!(B ?\$,1 z(B ?\$,1 {(B ?\,AA(B ?\$,1!$(B ?\$,1!%(B ?\,AM(B ?\$,1!=(B ?\$,1!>(B ?\$,1!*(B ?\,AS(B ?\,AT(B - ?\$,1!+(B ?\$,1!.(B ?\,AZ(B ?\$,1!/(B ?\$,1!0(B ?\$,1!1(B ?\$,1!2(B ?\$,1!3(B ?\,A](B ?\,A}(B ?\$,1 W(B ?\$,1!;(B ?\$,1 a(B ?\$,1!<(B ?\$,1 B(B ?\$,1$g(B] - "Mac Central European Roman Encoding (MIME:x-mac-centraleurroman).") -(coding-system-put 'mac-centraleurroman 'mime-charset 'x-mac-centraleurroman) - -(cp-make-coding-system - mac-cyrillic - [?\$,1(0(B ?\$,1(1(B ?\$,1(2(B ?\$,1(3(B ?\$,1(4(B ?\$,1(5(B ?\$,1(6(B ?\$,1(7(B ?\$,1(8(B ?\$,1(9(B ?\$,1(:(B ?\$,1(;(B ?\$,1(<(B ?\$,1(=(B ?\$,1(>(B ?\$,1(?(B - ?\$,1(@(B ?\$,1(A(B ?\$,1(B(B ?\$,1(C(B ?\$,1(D(B ?\$,1(E(B ?\$,1(F(B ?\$,1(G(B ?\$,1(H(B ?\$,1(I(B ?\$,1(J(B ?\$,1(K(B ?\$,1(L(B ?\$,1(M(B ?\$,1(N(B ?\$,1(O(B - ?\$,1s (B ?\,A0(B ?\$,1)P(B ?\,A#(B ?\,A'(B ?\$,1s"(B ?\,A6(B ?\$,1(&(B ?\,A.(B ?\,A)(B ?\$,1ub(B ?\$,1("(B ?\$,1(r(B ?\$,1y (B ?\$,1(#(B ?\$,1(s(B - ?\$,1x>(B ?\,A1(B ?\$,1y$(B ?\$,1y%(B ?\$,1(v(B ?\,A5(B ?\$,1)Q(B ?\$,1(((B ?\$,1($(B ?\$,1(t(B ?\$,1('(B ?\$,1(w(B ?\$,1()(B ?\$,1(y(B ?\$,1(*(B ?\$,1(z(B - ?\$,1(x(B ?\$,1(%(B ?\,A,(B ?\$,1x:(B ?\$,1!R(B ?\$,1xh(B ?\$,1x&(B ?\,A+(B ?\,A;(B ?\$,1s&(B ?\,A (B ?\$,1(+(B ?\$,1({(B ?\$,1(,(B ?\$,1(|(B ?\$,1(u(B - ?\$,1rs(B ?\$,1rt(B ?\$,1r|(B ?\$,1r}(B ?\$,1rx(B ?\$,1ry(B ?\,Aw(B ?\$,1r~(B ?\$,1(.(B ?\$,1(~(B ?\$,1(/(B ?\$,1((B ?\$,1uV(B ?\$,1(!(B ?\$,1(q(B ?\$,1(o(B - ?\$,1(P(B ?\$,1(Q(B ?\$,1(R(B ?\$,1(S(B ?\$,1(T(B ?\$,1(U(B ?\$,1(V(B ?\$,1(W(B ?\$,1(X(B ?\$,1(Y(B ?\$,1(Z(B ?\$,1([(B ?\$,1(\(B ?\$,1(](B ?\$,1(^(B ?\$,1(_(B - ?\$,1(`(B ?\$,1(a(B ?\$,1(b(B ?\$,1(c(B ?\$,1(d(B ?\$,1(e(B ?\$,1(f(B ?\$,1(g(B ?\$,1(h(B ?\$,1(i(B ?\$,1(j(B ?\$,1(k(B ?\$,1(l(B ?\$,1(m(B ?\$,1(n(B ?\$,1tL(B] - "Mac Cyrillic Encoding (MIME:x-mac-cyrillic).") -(coding-system-put 'mac-cyrillic 'mime-charset 'x-mac-cyrillic) - -(let - ((encoding-vector - (vconcat - (make-vector 32 nil) - ;; mac-symbol (32..126) -> emacs-mule mapping - [?\ ?\! ?\$,1x (B ?\# ?\$,1x#(B ?\% ?\& ?\$,1x-(B ?\( ?\) ?\$,1x7(B ?\+ ?\, ?\$,1x2(B ?\. ?\/ - ?\0 ?\1 ?\2 ?\3 ?\4 ?\5 ?\6 ?\7 ?\8 ?\9 ?\: ?\; ?\< ?\= ?\> ?\? - ?\$,1xe(B ?\$,1&q(B ?\$,1&r(B ?\$,1''(B ?\$,1&t(B ?\$,1&u(B ?\$,1'&(B ?\$,1&s(B ?\$,1&w(B ?\$,1&y(B ?\$,1'Q(B ?\$,1&z(B ?\$,1&{(B ?\$,1&|(B ?\$,1&}(B ?\$,1&(B - ?\$,1' (B ?\$,1&x(B ?\$,1'!(B ?\$,1'#(B ?\$,1'$(B ?\$,1'%(B ?\$,1'B(B ?\$,1')(B ?\$,1&~(B ?\$,1'((B ?\$,1&v(B ?\[ ?\$,1xT(B ?\] ?\$,1ye(B ?\_ - ?\$,3bE(B ?\$,1'1(B ?\$,1'2(B ?\$,1'G(B ?\$,1'4(B ?\$,1'5(B ?\$,1'F(B ?\$,1'3(B ?\$,1'7(B ?\$,1'9(B ?\$,1'U(B ?\$,1':(B ?\$,1';(B ?\$,1'<(B ?\$,1'=(B ?\$,1'?(B - ?\$,1'@(B ?\$,1'8(B ?\$,1'A(B ?\$,1'C(B ?\$,1'D(B ?\$,1'E(B ?\$,1'V(B ?\$,1'I(B ?\$,1'>(B ?\$,1'H(B ?\$,1'6(B ?\{ ?\| ?\} ?\$,1x\(B] - (make-vector (- 160 127) nil) - ;; mac-symbol (160..254) -> emacs-mule mapping - ;; Mapping of the following characters are changed from the - ;; original one: - ;; 0xE2 0x00AE+0xF87F -> 0x00AE # REGISTERED SIGN, alternate: sans serif - ;; 0xE3 0x00A9+0xF87F -> 0x00A9 # COPYRIGHT SIGN, alternate: sans serif - ;; 0xE4 0x2122+0xF87F -> 0x2122 # TRADE MARK SIGN, alternate: sans serif - [?\$,1tL(B ?\$,1'R(B ?\$,1s2(B ?\$,1y$(B ?\$,1sD(B ?\$,1x>(B ?\$,1!R(B ?\$,2#c(B ?\$,2#f(B ?\$,2#e(B ?\$,2#`(B ?\$,1vt(B ?\$,1vp(B ?\$,1vq(B ?\$,1vr(B ?\$,1vs(B - ?\,A0(B ?\,A1(B ?\$,1s3(B ?\$,1y%(B ?\,AW(B ?\$,1x=(B ?\$,1x"(B ?\$,1s"(B ?\,Aw(B ?\$,1y (B ?\$,1y!(B ?\$,1xh(B ?\$,1s&(B ?\$,1|p(B ?\$,1|O(B ?\$,1w5(B - ?\$,1uu(B ?\$,1uQ(B ?\$,1u\(B ?\$,1uX(B ?\$,1yW(B ?\$,1yU(B ?\$,1x%(B ?\$,1xI(B ?\$,1xJ(B ?\$,1yC(B ?\$,1yG(B ?\$,1yD(B ?\$,1yB(B ?\$,1yF(B ?\$,1x((B ?\$,1x)(B - ?\$,1x@(B ?\$,1x'(B ?\,A.(B ?\,A)(B ?\$,1ub(B ?\$,1x/(B ?\$,1x:(B ?\$,1z%(B ?\,A,(B ?\$,1xG(B ?\$,1xH(B ?\$,1wT(B ?\$,1wP(B ?\$,1wQ(B ?\$,1wR(B ?\$,1wS(B - ?\$,2"*(B ?\$,2=H(B ?\,A.(B ?\,A)(B ?\$,1ub(B ?\$,1x1(B ?\$,1|;(B ?\$,1|<(B ?\$,1|=(B ?\$,1|A(B ?\$,1|B(B ?\$,1|C(B ?\$,1|G(B ?\$,1|H(B ?\$,1|I(B ?\$,1|J(B - ?\$,3b_(B ?\$,2=I(B ?\$,1xK(B ?\$,1{ (B ?\$,1|N(B ?\$,1{!(B ?\$,1|>(B ?\$,1|?(B ?\$,1|@(B ?\$,1|D(B ?\$,1|E(B ?\$,1|F(B ?\$,1|K(B ?\$,1|L(B ?\$,1|M(B - nil])) - translation-table) - (setq translation-table - (make-translation-table-from-vector encoding-vector)) -;; (define-translation-table 'mac-symbol-decoder translation-table) - (define-translation-table 'mac-symbol-encoder - (char-table-extra-slot translation-table 0))) - -(let - ((encoding-vector - (vconcat - (make-vector 32 nil) - ;; mac-dingbats (32..126) -> emacs-mule mapping - [?\ ?\$,2%A(B ?\$,2%B(B ?\$,2%C(B ?\$,2%D(B ?\$,2"n(B ?\$,2%F(B ?\$,2%G(B ?\$,2%H(B ?\$,2%I(B ?\$,2"{(B ?\$,2"~(B ?\$,2%L(B ?\$,2%M(B ?\$,2%N(B ?\$,2%O(B - ?\$,2%P(B ?\$,2%Q(B ?\$,2%R(B ?\$,2%S(B ?\$,2%T(B ?\$,2%U(B ?\$,2%V(B ?\$,2%W(B ?\$,2%X(B ?\$,2%Y(B ?\$,2%Z(B ?\$,2%[(B ?\$,2%\(B ?\$,2%](B ?\$,2%^(B ?\$,2%_(B - ?\$,2%`(B ?\$,2%a(B ?\$,2%b(B ?\$,2%c(B ?\$,2%d(B ?\$,2%e(B ?\$,2%f(B ?\$,2%g(B ?\$,2"e(B ?\$,2%i(B ?\$,2%j(B ?\$,2%k(B ?\$,2%l(B ?\$,2%m(B ?\$,2%n(B ?\$,2%o(B - ?\$,2%p(B ?\$,2%q(B ?\$,2%r(B ?\$,2%s(B ?\$,2%t(B ?\$,2%u(B ?\$,2%v(B ?\$,2%w(B ?\$,2%x(B ?\$,2%y(B ?\$,2%z(B ?\$,2%{(B ?\$,2%|(B ?\$,2%}(B ?\$,2%~(B ?\$,2%(B - ?\$,2& (B ?\$,2&!(B ?\$,2&"(B ?\$,2&#(B ?\$,2&$(B ?\$,2&%(B ?\$,2&&(B ?\$,2&'(B ?\$,2&((B ?\$,2&)(B ?\$,2&*(B ?\$,2&+(B ?\$,2"/(B ?\$,2&-(B ?\$,2!`(B ?\$,2&/(B - ?\$,2&0(B ?\$,2&1(B ?\$,2&2(B ?\$,2!r(B ?\$,2!|(B ?\$,2"&(B ?\$,2&6(B ?\$,2"7(B ?\$,2&8(B ?\$,2&9(B ?\$,2&:(B ?\$,2&;(B ?\$,2&<(B ?\$,2&=(B ?\$,2&>(B - nil - ;; mac-dingbats (128..141) -> emacs-mule mapping - ?\$,2&H(B ?\$,2&I(B ?\$,2&J(B ?\$,2&K(B ?\$,2&L(B ?\$,2&M(B ?\$,2&N(B ?\$,2&O(B ?\$,2&P(B ?\$,2&Q(B ?\$,2&R(B ?\$,2&S(B ?\$,2&T(B ?\$,2&U(B] - (make-vector (- 161 142) nil) - ;; mac-dingbats (161..239) -> emacs-mule mapping - [?\$,2&A(B ?\$,2&B(B ?\$,2&C(B ?\$,2&D(B ?\$,2&E(B ?\$,2&F(B ?\$,2&G(B ?\$,2#c(B ?\$,2#f(B ?\$,2#e(B ?\$,2#`(B ?\$,1~@(B ?\$,1~A(B ?\$,1~B(B ?\$,1~C(B - ?\$,1~D(B ?\$,1~E(B ?\$,1~F(B ?\$,1~G(B ?\$,1~H(B ?\$,1~I(B ?\$,2&V(B ?\$,2&W(B ?\$,2&X(B ?\$,2&Y(B ?\$,2&Z(B ?\$,2&[(B ?\$,2&\(B ?\$,2&](B ?\$,2&^(B ?\$,2&_(B - ?\$,2&`(B ?\$,2&a(B ?\$,2&b(B ?\$,2&c(B ?\$,2&d(B ?\$,2&e(B ?\$,2&f(B ?\$,2&g(B ?\$,2&h(B ?\$,2&i(B ?\$,2&j(B ?\$,2&k(B ?\$,2&l(B ?\$,2&m(B ?\$,2&n(B ?\$,2&o(B - ?\$,2&p(B ?\$,2&q(B ?\$,2&r(B ?\$,2&s(B ?\$,2&t(B ?\$,1vr(B ?\$,1vt(B ?\$,1vu(B ?\$,2&x(B ?\$,2&y(B ?\$,2&z(B ?\$,2&{(B ?\$,2&|(B ?\$,2&}(B ?\$,2&~(B ?\$,2&(B - ?\$,2' (B ?\$,2'!(B ?\$,2'"(B ?\$,2'#(B ?\$,2'$(B ?\$,2'%(B ?\$,2'&(B ?\$,2''(B ?\$,2'((B ?\$,2')(B ?\$,2'*(B ?\$,2'+(B ?\$,2',(B ?\$,2'-(B ?\$,2'.(B ?\$,2'/(B - nil - ;; mac-dingbats (241..254) -> emacs-mule mapping - ?\$,2'1(B ?\$,2'2(B ?\$,2'3(B ?\$,2'4(B ?\$,2'5(B ?\$,2'6(B ?\$,2'7(B ?\$,2'8(B ?\$,2'9(B ?\$,2':(B ?\$,2';(B ?\$,2'<(B ?\$,2'=(B ?\$,2'>(B - nil])) - translation-table) - (setq translation-table - (make-translation-table-from-vector encoding-vector)) -;; (define-translation-table 'mac-dingbats-decoder translation-table) - (define-translation-table 'mac-dingbats-encoder - (char-table-extra-slot translation-table 0))) +(define-charset 'mac-centraleurroman + "Mac Central European Roman" + :short-name "Mac CE" + :ascii-compatible-p t + :code-space [0 255] + :map + (let ((tbl + [?\Ä ?\Ā ?\ā ?\É ?\Ą ?\Ö ?\Ü ?\á ?\ą ?\Č ?\ä ?\č ?\Ć ?\ć ?\é ?\Ź + ?\ź ?\Ď ?\í ?\ď ?\Ē ?\ē ?\Ė ?\ó ?\ė ?\ô ?\ö ?\õ ?\ú ?\Ě ?\ě ?\ü + ?\† ?\° ?\Ę ?\£ ?\§ ?\• ?\¶ ?\ß ?\® ?\© ?\™ ?\ę ?\¨ ?\≠ ?\ģ ?\Į + ?\į ?\Ī ?\≤ ?\≥ ?\ī ?\Ķ ?\∂ ?\∑ ?\ł ?\Ļ ?\ļ ?\Ľ ?\ľ ?\Ĺ ?\ĺ ?\Ņ + ?\ņ ?\Ń ?\¬ ?\√ ?\ń ?\Ň ?\∆ ?\« ?\» ?\… ?\ ?\ň ?\Ő ?\Õ ?\ő ?\Ō + ?\– ?\— ?\“ ?\” ?\‘ ?\’ ?\÷ ?\◊ ?\ō ?\Ŕ ?\ŕ ?\Ř ?\‹ ?\› ?\ř ?\Ŗ + ?\ŗ ?\Š ?\‚ ?\„ ?\š ?\Ś ?\ś ?\Á ?\Ť ?\ť ?\Í ?\Ž ?\ž ?\Ū ?\Ó ?\Ô + ?\ū ?\Ů ?\Ú ?\ů ?\Ű ?\ű ?\Ų ?\ų ?\Ý ?\ý ?\ķ ?\Ż ?\Ł ?\ż ?\Ģ ?\ˇ]) + (map (make-vector 512 nil))) + (or (= (length tbl) 128) + (error "Invalid vector length: %d" (length tbl))) + (dotimes (i 128) + (aset map (* i 2) i) + (aset map (1+ (* i 2)) i)) + (dotimes (i 128) + (aset map (+ 256 (* i 2)) (+ 128 i)) + (aset map (+ 256 (1+ (* i 2))) (aref tbl i))) + map)) + +(define-coding-system 'mac-centraleurroman + "Mac Central European Roman Encoding (MIME:x-mac-centraleurroman)." + :coding-type 'charset + :mnemonic ?* + :charset-list '(mac-centraleurroman) + :mime-charset 'x-mac-centraleurroman) + +(define-charset 'mac-cyrillic + "Mac Cyrillic" + :short-name "Mac CYRILLIC" + :ascii-compatible-p t + :code-space [0 255] + :map + (let ((tbl + [?\А ?\Б ?\В ?\Г ?\Д ?\Е ?\Ж ?\З ?\И ?\Й ?\К ?\Л ?\М ?\Н ?\О ?\П + ?\Р ?\С ?\Т ?\У ?\Ф ?\Х ?\Ц ?\Ч ?\Ш ?\Щ ?\Ъ ?\Ы ?\Ь ?\Э ?\Ю ?\Я + ?\† ?\° ?\Ґ ?\£ ?\§ ?\• ?\¶ ?\І ?\® ?\© ?\™ ?\Ђ ?\ђ ?\≠ ?\Ѓ ?\ѓ + ?\∞ ?\± ?\≤ ?\≥ ?\і ?\µ ?\ґ ?\Ј ?\Є ?\є ?\Ї ?\ї ?\Љ ?\љ ?\Њ ?\њ + ?\ј ?\Ѕ ?\¬ ?\√ ?\ƒ ?\≈ ?\∆ ?\« ?\» ?\… ?\ ?\Ћ ?\ћ ?\Ќ ?\ќ ?\ѕ + ?\– ?\— ?\“ ?\” ?\‘ ?\’ ?\÷ ?\„ ?\Ў ?\ў ?\Џ ?\џ ?\№ ?\Ё ?\ё ?\я + ?\а ?\б ?\в ?\г ?\д ?\е ?\ж ?\з ?\и ?\й ?\к ?\л ?\м ?\н ?\о ?\п + ?\р ?\с ?\т ?\у ?\ф ?\х ?\ц ?\ч ?\ш ?\щ ?\ъ ?\ы ?\ь ?\э ?\ю ?\€]) + (map (make-vector 512 nil))) + (or (= (length tbl) 128) + (error "Invalid vector length: %d" (length tbl))) + (dotimes (i 128) + (aset map (* i 2) i) + (aset map (1+ (* i 2)) i)) + (dotimes (i 128) + (aset map (+ 256 (* i 2)) (+ 128 i)) + (aset map (+ 256 (1+ (* i 2))) (aref tbl i))) + map)) + +(define-coding-system 'mac-cyrillic + "Mac Cyrillic Encoding (MIME:x-mac-cyrillic)." + :coding-type 'charset + :mnemonic ?* + :charset-list '(mac-cyrillic) + :mime-charset 'x-mac-cyrillic) + +(define-charset 'mac-symbol + "Mac Symbol" + :short-name "Mac SYMBOL" + :code-space [32 254] + :map + (let ((tbl-32-126 + [?\ ?\! ?\∀ ?\# ?\∃ ?\% ?\& ?\∍ ?\( ?\) ?\∗ ?\+ ?\, ?\− ?\. ?\/ + ?\0 ?\1 ?\2 ?\3 ?\4 ?\5 ?\6 ?\7 ?\8 ?\9 ?\: ?\; ?\< ?\= ?\> ?\? + ?\≅ ?\Α ?\Β ?\Χ ?\Δ ?\Ε ?\Φ ?\Γ ?\Η ?\Ι ?\ϑ ?\Κ ?\Λ ?\Μ ?\Ν ?\Ο + ?\Π ?\Θ ?\Ρ ?\Σ ?\Τ ?\Υ ?\ς ?\Ω ?\Ξ ?\Ψ ?\Ζ ?\[ ?\∴ ?\] ?\⊥ ?\_ + ?\ ?\α ?\β ?\χ ?\δ ?\ε ?\φ ?\γ ?\η ?\ι ?\ϕ ?\κ ?\λ ?\μ ?\ν ?\ο + ?\π ?\θ ?\ρ ?\σ ?\τ ?\υ ?\ϖ ?\ω ?\ξ ?\ψ ?\ζ ?\{ ?\| ?\} ?\∼]) + (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil)) + (tbl-160-254 + ;; Mapping of the following characters are changed from the + ;; original one: + ;; 0xE2 0x00AE+0xF87F->0x00AE # REGISTERED SIGN, alternate: sans serif + ;; 0xE3 0x00A9+0xF87F->0x00A9 # COPYRIGHT SIGN, alternate: sans serif + ;; 0xE4 0x2122+0xF87F->0x2122 # TRADE MARK SIGN, alternate: sans serif + [?\€ ?\ϒ ?\′ ?\≤ ?\⁄ ?\∞ ?\ƒ ?\♣ ?\♦ ?\♥ ?\♠ ?\↔ ?\← ?\↑ ?\→ ?\↓ + ?\° ?\± ?\″ ?\≥ ?\× ?\∝ ?\∂ ?\• ?\÷ ?\≠ ?\≡ ?\≈ ?\… ?\⏐ ?\⎯ ?\↵ + ?\ℵ ?\ℑ ?\ℜ ?\℘ ?\⊗ ?\⊕ ?\∅ ?\∩ ?\∪ ?\⊃ ?\⊇ ?\⊄ ?\⊂ ?\⊆ ?\∈ ?\∉ + ?\∠ ?\∇ ?\® ?\© ?\™ ?\∏ ?\√ ?\⋅ ?\¬ ?\∧ ?\∨ ?\⇔ ?\⇐ ?\⇑ ?\⇒ ?\⇓ + ?\◊ ?\〈 ?\® ?\© ?\™ ?\∑ ?\⎛ ?\⎜ ?\⎝ ?\⎡ ?\⎢ ?\⎣ ?\⎧ ?\⎨ ?\⎩ ?\⎪ + ?\ ?\〉 ?\∫ ?\⌠ ?\⎮ ?\⌡ ?\⎞ ?\⎟ ?\⎠ ?\⎤ ?\⎥ ?\⎦ ?\⎫ ?\⎬ ?\⎭]) + (map-160-254 (make-vector (* (1+ (- 254 160)) 2) nil))) + (dotimes (i (1+ (- 126 32))) + (aset map-32-126 (* i 2) (+ 32 i)) + (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i))) + (dotimes (i (1+ (- 254 160))) + (aset map-160-254 (* i 2) (+ 160 i)) + (aset map-160-254 (1+ (* i 2)) (aref tbl-160-254 i))) + (vconcat map-32-126 map-160-254))) + +(define-charset 'mac-dingbats + "Mac Dingbats" + :short-name "Mac Dingbats" + :code-space [32 254] + :map + (let ((tbl-32-126 + [?\ ?\✁ ?\✂ ?\✃ ?\✄ ?\☎ ?\✆ ?\✇ ?\✈ ?\✉ ?\☛ ?\☞ ?\✌ ?\✍ ?\✎ ?\✏ + ?\✐ ?\✑ ?\✒ ?\✓ ?\✔ ?\✕ ?\✖ ?\✗ ?\✘ ?\✙ ?\✚ ?\✛ ?\✜ ?\✝ ?\✞ ?\✟ + ?\✠ ?\✡ ?\✢ ?\✣ ?\✤ ?\✥ ?\✦ ?\✧ ?\★ ?\✩ ?\✪ ?\✫ ?\✬ ?\✭ ?\✮ ?\✯ + ?\✰ ?\✱ ?\✲ ?\✳ ?\✴ ?\✵ ?\✶ ?\✷ ?\✸ ?\✹ ?\✺ ?\✻ ?\✼ ?\✽ ?\✾ ?\✿ + ?\❀ ?\❁ ?\❂ ?\❃ ?\❄ ?\❅ ?\❆ ?\❇ ?\❈ ?\❉ ?\❊ ?\❋ ?\● ?\❍ ?\■ ?\❏ + ?\❐ ?\❑ ?\❒ ?\▲ ?\▼ ?\◆ ?\❖ ?\◗ ?\❘ ?\❙ ?\❚ ?\❛ ?\❜ ?\❝ ?\❞]) + (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil)) + (tbl-128-141 + [?\❨ ?\❩ ?\❪ ?\❫ ?\❬ ?\❭ ?\❮ ?\❯ ?\❰ ?\❱ ?\❲ ?\❳ ?\❴ ?\❵]) + (map-128-141 (make-vector (* (1+ (- 141 128)) 2) nil)) + (tbl-161-239 + [?\❡ ?\❢ ?\❣ ?\❤ ?\❥ ?\❦ ?\❧ ?\♣ ?\♦ ?\♥ ?\♠ ?\① ?\② ?\③ ?\④ + ?\⑤ ?\⑥ ?\⑦ ?\⑧ ?\⑨ ?\⑩ ?\❶ ?\❷ ?\❸ ?\❹ ?\❺ ?\❻ ?\❼ ?\❽ ?\❾ ?\❿ + ?\➀ ?\➁ ?\➂ ?\➃ ?\➄ ?\➅ ?\➆ ?\➇ ?\➈ ?\➉ ?\➊ ?\➋ ?\➌ ?\➍ ?\➎ ?\➏ + ?\➐ ?\➑ ?\➒ ?\➓ ?\➔ ?\→ ?\↔ ?\↕ ?\➘ ?\➙ ?\➚ ?\➛ ?\➜ ?\➝ ?\➞ ?\➟ + ?\➠ ?\➡ ?\➢ ?\➣ ?\➤ ?\➥ ?\➦ ?\➧ ?\➨ ?\➩ ?\➪ ?\➫ ?\➬ ?\➭ ?\➮ ?\➯]) + (map-161-239 (make-vector (* (1+ (- 239 161)) 2) nil)) + (tbl-241-254 + [?\➱ ?\➲ ?\➳ ?\➴ ?\➵ ?\➶ ?\➷ ?\➸ ?\➹ ?\➺ ?\➻ ?\➼ ?\➽ ?\➾]) + (map-241-254 (make-vector (* (1+ (- 254 241)) 2) nil))) + (dotimes (i (1+ (- 126 32))) + (aset map-32-126 (* i 2) (+ 32 i)) + (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i))) + (dotimes (i (1+ (- 141 128))) + (aset map-128-141 (* i 2) (+ 128 i)) + (aset map-128-141 (1+ (* i 2)) (aref tbl-128-141 i))) + (dotimes (i (1+ (- 239 161))) + (aset map-161-239 (* i 2) (+ 161 i)) + (aset map-161-239 (1+ (* i 2)) (aref tbl-161-239 i))) + (dotimes (i (1+ (- 254 241))) + (aset map-241-254 (* i 2) (+ 241 i)) + (aset map-241-254 (1+ (* i 2)) (aref tbl-241-254 i))) + (vconcat map-32-126 map-128-141 map-161-239 map-241-254))) (defconst mac-system-coding-system (let ((base (or (cdr (assq mac-system-script-code @@ -1272,7 +1322,7 @@ correspoinding TextEncodingBase value." (setq str nil) ;; ASCII-only? (unless (mac-code-convert-string data nil mac-text-encoding-ascii) - (subst-char-in-string ?\x5c ?\(J\(B str t) + (subst-char-in-string ?\x5c ?\¥ str t) (subst-char-in-string ?\x80 ?\\ str t))))) (or str (decode-coding-string data @@ -1291,7 +1341,7 @@ correspoinding TextEncodingBase value." (eq coding-system 'japanese-shift-jis-mac)) (setq encoding mac-text-encoding-mac-japanese-basic-variant) (setq str (subst-char-in-string ?\\ ?\x80 str)) - (subst-char-in-string ?\(J\(B ?\x5c str t) + (subst-char-in-string ?\¥ ?\x5c str t) ;; ASCII-only? (if (string-match "\\`[\x00-\x7f]*\\'" str) (setq str nil))) @@ -1307,7 +1357,7 @@ correspoinding TextEncodingBase value." (or coding-system (setq coding-system mac-system-coding-system)) (prog1 (setq data (decode-coding-string data coding-system)) (when (eq (coding-system-base coding-system) 'japanese-shift-jis) - ;; (subst-char-in-string ?\x5c ?\(J\(B data t) + ;; (subst-char-in-string ?\x5c ?\¥ data t) (subst-char-in-string ?\x80 ?\\ data t)))) (defun mac-string-to-TEXT (string &optional coding-system) @@ -1323,7 +1373,7 @@ correspoinding TextEncodingBase value." (coding-system-change-eol-conversion coding-system 'mac)) (when (eq coding-system 'japanese-shift-jis-mac) ;; (setq string (subst-char-in-string ?\\ ?\x80 string)) - (setq string (subst-char-in-string ?\(J\(B ?\x5c string))) + (setq string (subst-char-in-string ?\¥ ?\x5c string))) (encode-coding-string string coding-system)) (defun mac-furl-to-string (data) @@ -2309,164 +2359,23 @@ See also `mac-dnd-known-types'." (setq frame-creation-function 'x-create-frame-with-faces) -(defvar mac-font-encoder-list - '(("mac-roman" mac-roman-encoder - ccl-encode-mac-roman-font "%s") - ("mac-centraleurroman" encode-mac-centraleurroman - ccl-encode-mac-centraleurroman-font "%s ce") - ("mac-cyrillic" encode-mac-cyrillic - ccl-encode-mac-cyrillic-font "%s cy") - ("mac-symbol" mac-symbol-encoder - ccl-encode-mac-symbol-font "symbol") - ("mac-dingbats" mac-dingbats-encoder - ccl-encode-mac-dingbats-font "zapf dingbats"))) - -(let ((encoder-list - (mapcar (lambda (lst) (nth 1 lst)) mac-font-encoder-list)) - (charset-list - '(latin-iso8859-2 - latin-iso8859-3 latin-iso8859-4 - cyrillic-iso8859-5 greek-iso8859-7 hebrew-iso8859-8 - latin-iso8859-9 latin-iso8859-14 latin-iso8859-15))) - (dolist (encoder encoder-list) - (let ((table (get encoder 'translation-table))) - (dolist (charset charset-list) - (dotimes (i 96) - (let* ((c (make-char charset (+ i 32))) - (mu (aref ucs-mule-to-mule-unicode c)) - (mac-encoded (and mu (aref table mu)))) - (if mac-encoded - (aset table c mac-encoded)))))))) - -;; We assume none of official dim2 charsets (0x90..0x99) are encoded -;; to these fonts. - -(define-ccl-program ccl-encode-mac-roman-font - `(0 - (if (r0 <= ?\xef) - (translate-character mac-roman-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-roman-encoder r0 r1)))) - "CCL program for Mac Roman font") - -(define-ccl-program ccl-encode-mac-centraleurroman-font - `(0 - (if (r0 <= ?\xef) - (translate-character encode-mac-centraleurroman r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character encode-mac-centraleurroman r0 r1)))) - "CCL program for Mac Central European Roman font") - -(define-ccl-program ccl-encode-mac-cyrillic-font - `(0 - (if (r0 <= ?\xef) - (translate-character encode-mac-cyrillic r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character encode-mac-cyrillic r0 r1)))) - "CCL program for Mac Cyrillic font") - -(define-ccl-program ccl-encode-mac-symbol-font - `(0 - (if (r0 <= ?\xef) - (translate-character mac-symbol-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-symbol-encoder r0 r1)))) - "CCL program for Mac Symbol font") - -(define-ccl-program ccl-encode-mac-dingbats-font - `(0 - (if (r0 <= ?\xef) - (translate-character mac-dingbats-encoder r0 r1) - ((r1 <<= 7) - (r1 |= r2) - (translate-character mac-dingbats-encoder r0 r1)))) - "CCL program for Mac Dingbats font") - - -(setq font-ccl-encoder-alist - (nconc - (mapcar (lambda (lst) (cons (nth 0 lst) (nth 2 lst))) - mac-font-encoder-list) - font-ccl-encoder-alist)) - -(defconst mac-char-fontspec-list - ;; Directly operate on a char-table instead of a fontset so that it - ;; may not create a dummy fontset. - (let ((template (make-char-table 'fontset))) - (dolist - (font-encoder - (nreverse - (mapcar (lambda (lst) - (cons (cons (nth 3 lst) (nth 0 lst)) (nth 1 lst))) - mac-font-encoder-list))) - (let ((font (car font-encoder)) - (encoder (cdr font-encoder))) - (map-char-table - (lambda (key val) - (or (null val) - (generic-char-p key) - (memq (char-charset key) - '(ascii eight-bit-control eight-bit-graphic)) - (aset template key font))) - (get encoder 'translation-table)))) - - ;; Like fontset-info, but extend a range only if its "to" part is - ;; the predecessor of the current char. - (let* ((last '((0 nil))) - (accumulator last) - last-char-or-range last-char last-elt) - (map-char-table - (lambda (char elt) - (when elt - (setq last-char-or-range (car (car last)) - last-char (if (consp last-char-or-range) - (cdr last-char-or-range) - last-char-or-range) - last-elt (cdr (car last))) - (if (and (eq elt last-elt) - (= char (1+ last-char)) - (eq (char-charset char) (char-charset last-char))) - (if (consp last-char-or-range) - (setcdr last-char-or-range char) - (setcar (car last) (cons last-char char))) - (setcdr last (list (cons char elt))) - (setq last (cdr last))))) - template) - (cdr accumulator)))) +(setq font-encoding-alist + (append + '(("mac-roman" . mac-roman) + ("mac-centraleurroman" . mac-centraleurroman) + ("mac-cyrillic" . mac-cyrillic) + ("mac-symbol" . mac-symbol) + ("mac-dingbats" . mac-dingbats)) + font-encoding-alist)) (defun fontset-add-mac-fonts (fontset &optional base-family) - "Add font-specs for Mac fonts to FONTSET. -The added font-specs are determined by BASE-FAMILY and the value -of `mac-char-fontspec-list', which is a list -of (CHARACTER-OR-RANGE . (FAMILY-FORMAT . REGISTRY)). If -BASE-FAMILY is nil, the font family in the added font-specs is -also nil. If BASE-FAMILY is a string, `%s' in FAMILY-FORMAT is -replaced with the string. Otherwise, `%s' in FAMILY-FORMAT is -replaced with the ASCII font family name in FONTSET." - (if base-family - (if (stringp base-family) - (setq base-family (downcase base-family)) - (let ((ascii-font (fontset-font fontset (charset-id 'ascii)))) - (if ascii-font - (setq base-family - (aref (x-decompose-font-name - (downcase (x-resolve-font-name ascii-font))) - xlfd-regexp-family-subnum)))))) - (let (fontspec-cache fontspec) - (dolist (char-fontspec mac-char-fontspec-list) - (setq fontspec (cdr (assq (cdr char-fontspec) fontspec-cache))) - (when (null fontspec) - (setq fontspec - (cons (and base-family - (format (car (cdr char-fontspec)) base-family)) - (cdr (cdr char-fontspec)))) - (setq fontspec-cache (cons (cons (cdr char-fontspec) fontspec) - fontspec-cache))) - (set-fontset-font fontset (car char-fontspec) fontspec)))) + (dolist (elt `((latin . (,(or base-family "Monaco") . "mac-roman")) + (mac-roman . (,base-family . "mac-roman")) + (mac-centraleurroman . (,base-family . "mac-centraleurroman")) + (mac-cyrillic . (,base-family . "mac-cyrillic")) + (mac-symbol . (,base-family . "mac-symbol")) + (mac-dingbats . (,base-family . "mac-dingbats")))) + (set-fontset-font fontset (car elt) (cdr elt)))) (defun create-fontset-from-mac-roman-font (font &optional resolved-font fontset-name) @@ -2481,10 +2390,14 @@ Optional 2nd arg FONTSET-NAME is a string to be used in an appropriate name is generated automatically. It returns a name of the created fontset." - (let ((fontset - (create-fontset-from-ascii-font font resolved-font fontset-name))) - (fontset-add-mac-fonts fontset t) - fontset)) + (or resolved-font + (setq resolved-font (x-resolve-font-name font))) + (let ((base-family (aref (x-decompose-font-name resolved-font) + xlfd-regexp-family-subnum))) + (if (string= base-family "*") + (setq base-family nil)) + (new-fontset fontset-name (list (cons 'ascii resolved-font))) + (fontset-add-mac-fonts fontset-name base-family))) ;; Adjust Courier font specifications in x-fixed-font-alist. (let ((courier-fonts (assoc "Courier" x-fixed-font-alist))) @@ -2504,58 +2417,17 @@ It returns a name of the created fontset." ;; Setup the default fontset. (setup-default-fontset) -(cond ((x-list-fonts "*-iso10646-1" nil nil 1) - ;; Use ATSUI (if available) for the following charsets. - (dolist - (charset '(latin-iso8859-1 - latin-iso8859-2 latin-iso8859-3 latin-iso8859-4 - thai-tis620 greek-iso8859-7 arabic-iso8859-6 - hebrew-iso8859-8 cyrillic-iso8859-5 - latin-iso8859-9 latin-iso8859-15 latin-iso8859-14 - japanese-jisx0212 chinese-sisheng ipa - vietnamese-viscii-lower vietnamese-viscii-upper - lao ethiopic tibetan)) - (set-fontset-font nil charset '(nil . "iso10646-1")))) - ((null (x-list-fonts "*-iso8859-1" nil nil 1)) - ;; Add Mac-encoding fonts unless ETL fonts are installed. - (fontset-add-mac-fonts "fontset-default"))) ;; Create a fontset that uses mac-roman font. With this fontset, -;; characters decoded from mac-roman encoding (ascii, latin-iso8859-1, -;; and mule-unicode-xxxx-yyyy) are displayed by a mac-roman font. -(create-fontset-from-fontset-spec - "-etl-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard, -ascii:-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman") -(fontset-add-mac-fonts "fontset-standard" t) +;; characters belonging to mac-roman charset (that contains ASCII and +;; more Latin characters) are displayed by a mac-roman font. +(create-fontset-from-mac-roman-font + "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil + "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-standard") ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...). (create-fontset-from-x-resource) -;; Try to create a fontset from a font specification which comes -;; from initial-frame-alist, default-frame-alist, or X resource. -;; A font specification in command line argument (i.e. -fn XXXX) -;; should be already in default-frame-alist as a `font' -;; parameter. However, any font specifications in site-start -;; library, user's init file (.emacs), and default.el are not -;; yet handled here. - -(let ((font (or (cdr (assq 'font initial-frame-alist)) - (cdr (assq 'font default-frame-alist)) - (x-get-resource "font" "Font"))) - xlfd-fields resolved-name) - (if (and font - (not (query-fontset font)) - (setq resolved-name (x-resolve-font-name font)) - (setq xlfd-fields (x-decompose-font-name font))) - (if (string= "fontset" (aref xlfd-fields xlfd-regexp-registry-subnum)) - (new-fontset font (x-complement-fontset-spec xlfd-fields nil)) - ;; Create a fontset from FONT. The fontset name is - ;; generated from FONT. - (if (and (string= "mac" (aref xlfd-fields xlfd-regexp-registry-subnum)) - (string= "roman" (aref xlfd-fields xlfd-regexp-encoding-subnum))) - (create-fontset-from-mac-roman-font font resolved-name "startup") - (create-fontset-from-ascii-font font resolved-name "startup"))))) - ;; Apply a geometry resource to the initial frame. Put it at the end ;; of the alist, so that anything specified on the command line takes ;; precedence. diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index dfe94aaf133..3d17fb370c2 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -1104,38 +1104,13 @@ European languages which are distributed with Windows as See the documentation of `create-fontset-from-fontset-spec' for the format.") ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles -(if (fboundp 'new-fontset) - (progn +(when (fboundp 'new-fontset) ;; Setup the default fontset. (setup-default-fontset) ;; Create the standard fontset. (create-fontset-from-fontset-spec w32-standard-fontset-spec t) ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1,...). - (create-fontset-from-x-resource) - ;; Try to create a fontset from a font specification which comes - ;; from initial-frame-alist, default-frame-alist, or X resource. - ;; A font specification in command line argument (i.e. -fn XXXX) - ;; should be already in default-frame-alist as a `font' - ;; parameter. However, any font specifications in site-start - ;; library, user's init file (.emacs), and default.el are not - ;; yet handled here. - - (let ((font (or (cdr (assq 'font initial-frame-alist)) - (cdr (assq 'font default-frame-alist)) - (x-get-resource "font" "Font"))) - xlfd-fields resolved-name) - (if (and font - (not (query-fontset font)) - (setq resolved-name (x-resolve-font-name font)) - (setq xlfd-fields (x-decompose-font-name font))) - (if (string= "fontset" - (aref xlfd-fields xlfd-regexp-registry-subnum)) - (new-fontset font - (x-complement-fontset-spec xlfd-fields nil)) - ;; Create a fontset from FONT. The fontset name is - ;; generated from FONT. - (create-fontset-from-ascii-font font - resolved-name "startup")))))) + (create-fontset-from-x-resource)) ;; Apply a geometry resource to the initial frame. Put it at the end ;; of the alist, so that anything specified on the command line takes @@ -1210,10 +1185,10 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (list face (if (equal value "") nil value)))) ;;; Enable Japanese fonts on Windows to be used by default. -(set-fontset-font nil (make-char 'katakana-jisx0201) '("*" . "JISX0208-SJIS")) -(set-fontset-font nil (make-char 'latin-jisx0201) '("*" . "JISX0208-SJIS")) -(set-fontset-font nil (make-char 'japanese-jisx0208) '("*" . "JISX0208-SJIS")) -(set-fontset-font nil (make-char 'japanese-jisx0208-1978) '("*" . "JISX0208-SJIS")) +;; (set-fontset-font nil (make-char 'katakana-jisx0201) '("*" . "JISX0208-SJIS")) +;; (set-fontset-font nil (make-char 'latin-jisx0201) '("*" . "JISX0208-SJIS")) +;; (set-fontset-font nil (make-char 'japanese-jisx0208) '("*" . "JISX0208-SJIS")) +;; (set-fontset-font nil (make-char 'japanese-jisx0208-1978) '("*" . "JISX0208-SJIS")) (defun mouse-set-font (&rest fonts) "Select an Emacs font from a list of known good fonts and fontsets. diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 43fc37c54b8..dad5a5d17ae 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1270,9 +1270,10 @@ as returned by `x-server-vendor'." ;; This is used by DEC's X server. '((65280 . remove))))) +;; Latin-1 (let ((i 160)) (while (< i 256) - (puthash i (make-char 'latin-iso8859-1 i) x-keysym-table) + (puthash i i x-keysym-table) (setq i (1+ i)))) ;; Table from Kuhn's proposed additions to the `KEYSYM Encoding' @@ -1400,70 +1401,70 @@ as returned by `x-server-vendor'." ;; Kana: Fixme: needs conversion to Japanese charset -- seems ;; to require jisx0213, for which the Unicode translation ;; isn't clear. - (#x47e . ?$,1s>(B) - (#x4a1 . ?$,2=B(B) - (#x4a2 . ?\$,2=L(B) - (#x4a3 . ?\$,2=M(B) - (#x4a4 . ?$,2=A(B) - (#x4a5 . ?$,2?{(B) - (#x4a6 . ?$,2?r(B) - (#x4a7 . ?$,2?!(B) - (#x4a8 . ?$,2?#(B) - (#x4a9 . ?$,2?%(B) - (#x4aa . ?$,2?'(B) - (#x4ab . ?$,2?)(B) - (#x4ac . ?$,2?c(B) - (#x4ad . ?$,2?e(B) - (#x4ae . ?$,2?g(B) - (#x4af . ?$,2?C(B) - (#x4b0 . ?$,2?|(B) - (#x4b1 . ?$,2?"(B) - (#x4b2 . ?$,2?$(B) - (#x4b3 . ?$,2?&(B) - (#x4b4 . ?$,2?((B) - (#x4b5 . ?$,2?*(B) - (#x4b6 . ?$,2?+(B) - (#x4b7 . ?$,2?-(B) - (#x4b8 . ?$,2?/(B) - (#x4b9 . ?$,2?1(B) - (#x4ba . ?$,2?3(B) - (#x4bb . ?$,2?5(B) - (#x4bc . ?$,2?7(B) - (#x4bd . ?$,2?9(B) - (#x4be . ?$,2?;(B) - (#x4bf . ?$,2?=(B) - (#x4c0 . ?$,2??(B) - (#x4c1 . ?$,2?A(B) - (#x4c2 . ?$,2?D(B) - (#x4c3 . ?$,2?F(B) - (#x4c4 . ?$,2?H(B) - (#x4c5 . ?$,2?J(B) - (#x4c6 . ?$,2?K(B) - (#x4c7 . ?$,2?L(B) - (#x4c8 . ?$,2?M(B) - (#x4c9 . ?$,2?N(B) - (#x4ca . ?$,2?O(B) - (#x4cb . ?$,2?R(B) - (#x4cc . ?$,2?U(B) - (#x4cd . ?$,2?X(B) - (#x4ce . ?$,2?[(B) - (#x4cf . ?$,2?^(B) - (#x4d0 . ?$,2?_(B) - (#x4d1 . ?$,2?`(B) - (#x4d2 . ?$,2?a(B) - (#x4d3 . ?$,2?b(B) - (#x4d4 . ?$,2?d(B) - (#x4d5 . ?$,2?f(B) - (#x4d6 . ?$,2?h(B) - (#x4d7 . ?$,2?i(B) - (#x4d8 . ?$,2?j(B) - (#x4d9 . ?$,2?k(B) - (#x4da . ?$,2?l(B) - (#x4db . ?$,2?m(B) - (#x4dc . ?$,2?o(B) - (#x4dd . ?$,2?s(B) - (#x4de . ?$,2>{(B) - (#x4df . ?$,2>|(B) + (#x47e . ?(J~(B) + (#x4a1 . ?$A!#(B) + (#x4a2 . ?\$A!8(B) + (#x4a3 . ?\$A!9(B) + (#x4a4 . ?$A!"(B) + (#x4a5 . ?$A!$(B) + (#x4a6 . ?$A%r(B) + (#x4a7 . ?$A%!(B) + (#x4a8 . ?$A%#(B) + (#x4a9 . ?$A%%(B) + (#x4aa . ?$A%'(B) + (#x4ab . ?$A%)(B) + (#x4ac . ?$A%c(B) + (#x4ad . ?$A%e(B) + (#x4ae . ?$A%g(B) + (#x4af . ?$A%C(B) + (#x4b0 . ?$B!<(B) + (#x4b1 . ?$A%"(B) + (#x4b2 . ?$A%$(B) + (#x4b3 . ?$A%&(B) + (#x4b4 . ?$A%((B) + (#x4b5 . ?$A%*(B) + (#x4b6 . ?$A%+(B) + (#x4b7 . ?$A%-(B) + (#x4b8 . ?$A%/(B) + (#x4b9 . ?$A%1(B) + (#x4ba . ?$A%3(B) + (#x4bb . ?$A%5(B) + (#x4bc . ?$A%7(B) + (#x4bd . ?$A%9(B) + (#x4be . ?$A%;(B) + (#x4bf . ?$A%=(B) + (#x4c0 . ?$A%?(B) + (#x4c1 . ?$A%A(B) + (#x4c2 . ?$A%D(B) + (#x4c3 . ?$A%F(B) + (#x4c4 . ?$A%H(B) + (#x4c5 . ?$A%J(B) + (#x4c6 . ?$A%K(B) + (#x4c7 . ?$A%L(B) + (#x4c8 . ?$A%M(B) + (#x4c9 . ?$A%N(B) + (#x4ca . ?$A%O(B) + (#x4cb . ?$A%R(B) + (#x4cc . ?$A%U(B) + (#x4cd . ?$A%X(B) + (#x4ce . ?$A%[(B) + (#x4cf . ?$A%^(B) + (#x4d0 . ?$A%_(B) + (#x4d1 . ?$A%`(B) + (#x4d2 . ?$A%a(B) + (#x4d3 . ?$A%b(B) + (#x4d4 . ?$A%d(B) + (#x4d5 . ?$A%f(B) + (#x4d6 . ?$A%h(B) + (#x4d7 . ?$A%i(B) + (#x4d8 . ?$A%j(B) + (#x4d9 . ?$A%k(B) + (#x4da . ?$A%l(B) + (#x4db . ?$A%m(B) + (#x4dc . ?$A%o(B) + (#x4dd . ?$A%s(B) + (#x4de . ?$B!+(B) + (#x4df . ?$B!,(B) ;; Arabic (#x5ac . ?,G,(B) (#x5bb . ?,G;(B) @@ -1711,11 +1712,11 @@ as returned by `x-server-vendor'." (#x7f9 . ?,Fy(B) ;; Technical (#x8a1 . ?$,1|W(B) - (#x8a2 . ?$,2 ,(B) - (#x8a3 . ?$,2 (B) + (#x8a2 . ?$A)0(B) + (#x8a3 . ?$A)$(B) (#x8a4 . ?$,1{ (B) (#x8a5 . ?$,1{!(B) - (#x8a6 . ?$,2 "(B) + (#x8a6 . ?$A)&(B) (#x8a7 . ?$,1|A(B) (#x8a8 . ?$,1|C(B) (#x8a9 . ?$,1|D(B) @@ -1726,56 +1727,56 @@ as returned by `x-server-vendor'." (#x8ae . ?$,1|@(B) (#x8af . ?$,1|H(B) (#x8b0 . ?$,1|L(B) - (#x8bc . ?$,1y$(B) - (#x8bd . ?$,1y (B) - (#x8be . ?$,1y%(B) - (#x8bf . ?$,1xK(B) - (#x8c0 . ?$,1xT(B) - (#x8c1 . ?$,1x=(B) - (#x8c2 . ?$,1x>(B) - (#x8c5 . ?$,1x'(B) - (#x8c8 . ?$,1x\(B) - (#x8c9 . ?$,1xc(B) - (#x8cd . ?$,1wT(B) - (#x8ce . ?$,1wR(B) - (#x8cf . ?$,1y!(B) - (#x8d6 . ?$,1x:(B) - (#x8da . ?$,1yB(B) - (#x8db . ?$,1yC(B) - (#x8dc . ?$,1xI(B) - (#x8dd . ?$,1xJ(B) - (#x8de . ?$,1xG(B) - (#x8df . ?$,1xH(B) - (#x8ef . ?$,1x"(B) + (#x8bc . ?$A!\(B) + (#x8bd . ?$A!Y(B) + (#x8be . ?$A!](B) + (#x8bf . ?$A!R(B) + (#x8c0 . ?$A!`(B) + (#x8c1 . ?$A!X(B) + (#x8c2 . ?$A!^(B) + (#x8c5 . ?$B"`(B) + (#x8c8 . ?$(G"D(B) + (#x8c9 . ?$(O"l(B) + (#x8cd . ?$B"N(B) + (#x8ce . ?$B"M(B) + (#x8cf . ?$A!T(B) + (#x8d6 . ?$A!L(B) + (#x8da . ?$B">(B) + (#x8db . ?$B"?(B) + (#x8dc . ?$A!I(B) + (#x8dd . ?$A!H(B) + (#x8de . ?$A!D(B) + (#x8df . ?$A!E(B) + (#x8ef . ?$B"_(B) (#x8f6 . ?$,1!R(B) - (#x8fb . ?$,1vp(B) - (#x8fc . ?$,1vq(B) - (#x8fd . ?$,1vr(B) - (#x8fe . ?$,1vs(B) + (#x8fb . ?$A!{(B) + (#x8fc . ?$A!|(B) + (#x8fd . ?$A!z(B) + (#x8fe . ?$A!}(B) ;; Special - (#x9e0 . ?$,2"&(B) - (#x9e1 . ?$,2!R(B) - (#x9e2 . ?$,1}I(B) - (#x9e3 . ?$,1}L(B) - (#x9e4 . ?$,1}M(B) - (#x9e5 . ?$,1}J(B) + (#x9e0 . ?$A!t(B) + (#x9e1 . ?$(C"F(B) + (#x9e2 . ?$(GB*(B) + (#x9e3 . ?$(GB-(B) + (#x9e4 . ?$(GB.(B) + (#x9e5 . ?$(GB+(B) (#x9e8 . ?$,1}d(B) - (#x9e9 . ?$,1}K(B) - (#x9ea . ?$,2 8(B) - (#x9eb . ?$,2 0(B) - (#x9ec . ?$,2 ,(B) - (#x9ed . ?$,2 4(B) - (#x9ee . ?$,2 \(B) + (#x9e9 . ?$(GB,(B) + (#x9ea . ?$A)<(B) + (#x9eb . ?$A)4(B) + (#x9ec . ?$A)0(B) + (#x9ed . ?$A)8(B) + (#x9ee . ?$A)`(B) (#x9ef . ?$,1|Z(B) (#x9f0 . ?$,1|[(B) - (#x9f1 . ?$,2 (B) + (#x9f1 . ?$A)$(B) (#x9f2 . ?$,1|\(B) (#x9f3 . ?$,1|](B) - (#x9f4 . ?$,2 <(B) - (#x9f5 . ?$,2 D(B) - (#x9f6 . ?$,2 T(B) - (#x9f7 . ?$,2 L(B) - (#x9f8 . ?$,2 "(B) + (#x9f4 . ?$A)@(B) + (#x9f5 . ?$A)H(B) + (#x9f6 . ?$A)X(B) + (#x9f7 . ?$A)P(B) + (#x9f8 . ?$A)&(B) ;; Publishing (#xaa1 . ?$,1rc(B) (#xaa2 . ?$,1rb(B) @@ -1785,93 +1786,93 @@ as returned by `x-server-vendor'." (#xaa6 . ?$,1rh(B) (#xaa7 . ?$,1ri(B) (#xaa8 . ?$,1rj(B) - (#xaa9 . ?$,1rt(B) - (#xaaa . ?$,1rs(B) - (#xaae . ?$,1s&(B) - (#xaaf . ?$,1s%(B) - (#xab0 . ?$,1v3(B) - (#xab1 . ?$,1v4(B) - (#xab2 . ?$,1v5(B) + (#xaa9 . ?$(G!7(B) + (#xaaa . ?$(G!9(B) + (#xaae . ?$A!-(B) + (#xaaf . ?$(G!-(B) + (#xab0 . ?$(O'x(B) + (#xab1 . ?$(O'y(B) + (#xab2 . ?$(O'z(B) (#xab3 . ?$,1v6(B) (#xab4 . ?$,1v7(B) (#xab5 . ?$,1v8(B) (#xab6 . ?$,1v9(B) (#xab7 . ?$,1v:(B) - (#xab8 . ?$,1uE(B) + (#xab8 . ?$(G""(B) (#xabb . ?$,1rr(B) (#xabc . ?$,1{)(B) (#xabe . ?$,1{*(B) - (#xac3 . ?$,1v;(B) - (#xac4 . ?$,1v<(B) - (#xac5 . ?$,1v=(B) - (#xac6 . ?$,1v>(B) - (#xac9 . ?$,1ub(B) + (#xac3 . ?$(C({(B) + (#xac4 . ?$(C(|(B) + (#xac5 . ?$(C(}(B) + (#xac6 . ?$(C(~(B) + (#xac9 . ?$(D"o(B) (#xaca . ?$,2"s(B) - (#xacc . ?$,2"!(B) - (#xacd . ?$,2!w(B) - (#xace . ?$,2"+(B) + (#xacc . ?$(O##(B) + (#xacd . ?$(O#!(B) + (#xace . ?$A!p(B) (#xacf . ?$,2!o(B) - (#xad0 . ?$,1rx(B) - (#xad1 . ?$,1ry(B) - (#xad2 . ?$,1r|(B) - (#xad3 . ?$,1r}(B) + (#xad0 . ?,F!(B) + (#xad1 . ?,F"(B) + (#xad2 . ?,Y4(B) + (#xad3 . ?,Y!(B) (#xad4 . ?$,1u^(B) - (#xad6 . ?$,1s2(B) - (#xad7 . ?$,1s3(B) + (#xad6 . ?$A!d(B) + (#xad7 . ?$A!e(B) (#xad9 . ?$,2%](B) (#xadb . ?$,2!l(B) - (#xadc . ?$,2" (B) - (#xadd . ?$,2!v(B) - (#xade . ?$,2"/(B) + (#xadc . ?$(O#$(B) + (#xadd . ?$(O#"(B) + (#xade . ?$A!q(B) (#xadf . ?$,2!n(B) - (#xae0 . ?$,2"F(B) + (#xae0 . ?$(O#?(B) (#xae1 . ?$,2!k(B) (#xae2 . ?$,2!m(B) - (#xae3 . ?$,2!s(B) - (#xae4 . ?$,2!}(B) - (#xae5 . ?$,2"f(B) - (#xae6 . ?$,1s"(B) + (#xae3 . ?$A!w(B) + (#xae4 . ?$(G!}(B) + (#xae5 . ?$A!n(B) + (#xae6 . ?$(O#@(B) (#xae7 . ?$,2!j(B) - (#xae8 . ?$,2!r(B) - (#xae9 . ?$,2!|(B) - (#xaea . ?$,2"|(B) - (#xaeb . ?$,2"~(B) - (#xaec . ?$,2#c(B) - (#xaed . ?$,2#f(B) - (#xaee . ?$,2#e(B) + (#xae8 . ?$A!x(B) + (#xae9 . ?$(G!~(B) + (#xaea . ?$(C"P(B) + (#xaeb . ?$(O-~(B) + (#xaec . ?$(O&@(B) + (#xaed . ?$(O&<(B) + (#xaee . ?$(O&>(B) (#xaf0 . ?$,2%`(B) - (#xaf1 . ?$,1s (B) - (#xaf2 . ?$,1s!(B) - (#xaf3 . ?$,2%S(B) + (#xaf1 . ?$B"w(B) + (#xaf2 . ?$B"x(B) + (#xaf3 . ?$(O'{(B) (#xaf4 . ?$,2%W(B) - (#xaf5 . ?$,2#o(B) - (#xaf6 . ?$,2#m(B) - (#xaf7 . ?$,2#B(B) - (#xaf8 . ?$,2#@(B) - (#xaf9 . ?$,2"n(B) + (#xaf5 . ?$B"t(B) + (#xaf6 . ?$B"u(B) + (#xaf7 . ?$A!a(B) + (#xaf8 . ?$A!b(B) + (#xaf9 . ?$(O&g(B) (#xafa . ?$,1zu(B) (#xafb . ?$,1uW(B) (#xafc . ?$,1s8(B) (#xafd . ?$,1rz(B) - (#xafe . ?$,1r~(B) + (#xafe . ?,Y%(B) ;; APL (#xba3 . ?<) (#xba6 . ?>) - (#xba8 . ?$,1xH(B) - (#xba9 . ?$,1xG(B) + (#xba8 . ?$A!E(B) + (#xba9 . ?$A!D(B) (#xbc0 . ?,A/(B) - (#xbc2 . ?$,1ye(B) - (#xbc3 . ?$,1xI(B) + (#xbc2 . ?$A!M(B) + (#xbc3 . ?$A!I(B) (#xbc4 . ?$,1zj(B) (#xbc6 . ?_) (#xbca . ?$,1x8(B) (#xbcc . ?$,1|5(B) (#xbce . ?$,1yd(B) - (#xbcf . ?$,2"+(B) + (#xbcf . ?$A!p(B) (#xbd3 . ?$,1zh(B) - (#xbd6 . ?$,1xJ(B) - (#xbd8 . ?$,1yC(B) - (#xbda . ?$,1yB(B) + (#xbd6 . ?$A!H(B) + (#xbd8 . ?$B"?(B) + (#xbda . ?$B">(B) (#xbdc . ?$,1yb(B) (#xbfc . ?$,1yc(B) ;; Hebrew @@ -2086,7 +2087,7 @@ as returned by `x-server-vendor'." ;; Latin-9 (#x13bc . ?,b<(B) (#x13bd . ?,b=(B) - (#x13be . ?,b>(B) + (#x13be . ?,_/(B) ;; Currency (#x20a0 . ?$,1t@(B) (#x20a1 . ?$,1tA(B) @@ -2429,28 +2430,6 @@ order until succeed.") ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...). (create-fontset-from-x-resource) -;; Try to create a fontset from a font specification which comes -;; from initial-frame-alist, default-frame-alist, or X resource. -;; A font specification in command line argument (i.e. -fn XXXX) -;; should be already in default-frame-alist as a `font' -;; parameter. However, any font specifications in site-start -;; library, user's init file (.emacs), and default.el are not -;; yet handled here. - -(let ((font (or (cdr (assq 'font initial-frame-alist)) - (cdr (assq 'font default-frame-alist)) - (x-get-resource "font" "Font"))) - xlfd-fields resolved-name) - (if (and font - (not (query-fontset font)) - (setq resolved-name (x-resolve-font-name font)) - (setq xlfd-fields (x-decompose-font-name font))) - (if (string= "fontset" (aref xlfd-fields xlfd-regexp-registry-subnum)) - (new-fontset font (x-complement-fontset-spec xlfd-fields nil)) - ;; Create a fontset from FONT. The fontset name is - ;; generated from FONT. - (create-fontset-from-ascii-font font resolved-name "startup")))) - ;; Apply a geometry resource to the initial frame. Put it at the end ;; of the alist, so that anything specified on the command line takes ;; precedence. diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 88a4286aad2..48bb176e44c 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -374,15 +374,29 @@ and `fill-nobreak-invisible'." (looking-at paragraph-start)))) (run-hook-with-args-until-success 'fill-nobreak-predicate))))) -;; Put `fill-find-break-point-function' property to charsets which -;; require special functions to find line breaking point. -(dolist (pair '((katakana-jisx0201 . kinsoku) - (chinese-gb2312 . kinsoku) - (japanese-jisx0208 . kinsoku) - (japanese-jisx0212 . kinsoku) - (chinese-big5-1 . kinsoku) - (chinese-big5-2 . kinsoku))) - (put-charset-property (car pair) 'fill-find-break-point-function (cdr pair))) +(defvar fill-find-break-point-function-table (make-char-table nil) + "Char-table of special functions to find line breaking point.") + +(defvar fill-nospace-between-words-table (make-char-table nil) + "Char-table of characters that don't use space between words.") + +(progn + ;; Register `kinsoku' for scripts HAN, KANA, BOPOMPFO, and CJK-MISS. + ;; Also tell that they don't use space between words. + (map-char-table + #'(lambda (key val) + (when (memq val '(han kana bopomofo cjk-misc)) + (set-char-table-range fill-find-break-point-function-table + key 'kinsoku) + (set-char-table-range fill-nospace-between-words-table + key t))) + char-script-table) + ;; Do the same thing also for full width characters and half + ;; width kana variants. + (set-char-table-range fill-find-break-point-function-table + '(#xFF01 . #xFFE6) 'kinsoku) + (set-char-table-range fill-nospace-between-words-table + '(#xFF01 . #xFFE6) 'kinsoku)) (defun fill-find-break-point (limit) "Move point to a proper line breaking position of the current line. @@ -393,15 +407,9 @@ after or before a non-ASCII character. If the charset of the character has the property `fill-find-break-point-function', this function calls the property value as a function with one arg LINEBEG. If the charset has no such property, do nothing." - (let* ((ch (following-char)) - (charset (char-charset ch)) - func) - (if (eq charset 'ascii) - (setq ch (preceding-char) - charset (char-charset ch))) - (if (charsetp charset) - (setq func - (get-charset-property charset 'fill-find-break-point-function))) + (let ((func (or + (aref fill-find-break-point-function-table (following-char)) + (aref fill-find-break-point-function-table (preceding-char))))) (if (and func (fboundp func)) (funcall func limit)))) @@ -460,14 +468,13 @@ Point is moved to just past the fill prefix on the first line." (goto-char from) (if enable-multibyte-characters ;; Delete unnecessay newlines surrounded by words. The - ;; character category `|' means that we can break a line - ;; at the character. And, charset property - ;; `nospace-between-words' tells how to concatenate - ;; words. If the value is non-nil, never put spaces - ;; between words, thus delete a newline between them. - ;; If the value is nil, delete a newline only when a - ;; character preceding a newline has text property - ;; `nospace-between-words'. + ;; character category `|' means that we can break a line at the + ;; character. And, char-table + ;; `fill-nospace-between-words-table' tells how to concatenate + ;; words. If a character has non-nil value in the table, never + ;; put spaces between words, thus delete a newline between them. + ;; Otherwise, delete a newline only when a character preceding a + ;; newline has non-nil value in that table. (while (search-forward "\n" to t) (if (get-text-property (match-beginning 0) 'fill-space) (replace-match (get-text-property (match-beginning 0) 'fill-space)) @@ -475,10 +482,8 @@ Point is moved to just past the fill prefix on the first line." (next (following-char))) (if (and (or (aref (char-category-set next) ?|) (aref (char-category-set prev) ?|)) - (or (get-charset-property (char-charset prev) - 'nospace-between-words) - (get-text-property (1- (match-beginning 0)) - 'nospace-between-words))) + (or (aref fill-nospace-between-words-table next) + (aref fill-nospace-between-words-table prev))) (delete-char -1)))))) (goto-char from) diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 047fb141331..f23940d480f 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -1197,28 +1197,7 @@ Protects against bogus binding of `enable-multibyte-characters' in XEmacs." (decode-coding-string str (ispell-get-coding-system)) str)) -(put 'ispell-unified-chars-table 'char-table-extra-slots 0) - -;; Char-table that maps an Unicode character (charset: -;; latin-iso8859-1, mule-unicode-0100-24ff, mule-unicode-2500-34ff) to -;; a string in which all equivalent characters are listed. - -(defconst ispell-unified-chars-table - (let ((table (make-char-table 'ispell-unified-chars-table))) - (map-char-table - #'(lambda (c v) - (if (and v (/= c v)) - (let ((unified (or (aref table v) (string v)))) - (aset table v (concat unified (string c)))))) - ucs-mule-8859-to-mule-unicode) - table)) - -;; Return a string decoded from Nth element of the current dictionary -;; while splicing equivalent characters into the string. This splicing -;; is done only if the string is a regular expression of the form -;; "[...]" because, otherwise, splicing will result in incorrect -;; regular expression matching. - +;; Return a string decoded from Nth element of the current dictionary. (defun ispell-get-decoded-string (n) (let* ((slot (or (assoc ispell-current-dictionary ispell-local-dictionary-alist) @@ -1227,17 +1206,8 @@ Protects against bogus binding of `enable-multibyte-characters' in XEmacs." (when (and (> (length str) 0) (not (multibyte-string-p str))) (setq str (ispell-decode-string str)) - (if (and (= (aref str 0) ?\[) - (eq (string-match "\\]" str) (1- (length str)))) - (setq str - (string-as-multibyte - (mapconcat - #'(lambda (c) - (let ((unichar (aref ucs-mule-8859-to-mule-unicode c))) - (if unichar - (aref ispell-unified-chars-table unichar) - (string c)))) - str "")))) + (or (multibyte-string-p str) + (setq str (string-to-multibyte str))) (setcar (nthcdr n slot) str)) str)) diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el index 6e262ee00d2..b5d734bc19a 100644 --- a/lisp/textmodes/sgml-mode.el +++ b/lisp/textmodes/sgml-mode.el @@ -114,8 +114,6 @@ This takes effect when first loading the `sgml-mode' library.") (define-key map "\"" 'sgml-name-self)) (when (memq ?' sgml-specials) (define-key map "'" 'sgml-name-self))) - (define-key map (vector (make-char 'latin-iso8859-1)) - 'sgml-maybe-name-self) (let ((c 127) (map (nth 1 map))) (while (< (setq c (1+ c)) 256) @@ -211,7 +209,7 @@ This takes effect when first loading the `sgml-mode' library.") (let ((table (make-char-table 'sgml-table)) (i 32) elt) - (while (< i 256) + (while (< i 128) (setq elt (aref sgml-char-names i)) (if elt (aset table (make-char 'latin-iso8859-1 i) elt)) (setq i (1+ i))) diff --git a/lisp/time-stamp.el b/lisp/time-stamp.el index 7316e6db75a..06a984ba6a5 100644 --- a/lisp/time-stamp.el +++ b/lisp/time-stamp.el @@ -710,7 +710,7 @@ around literals." ;;; Some functions used in time-stamp-format ;;; These functions have been obsolete since 1995 -;;; and will be removed in a future Emacs release. +;;; and will be removed in Emacs 23. ;;; Meanwhile, discourage other packages from using them. (dolist (function '(time-stamp-month-dd-yyyy time-stamp-dd/mm/yyyy time-stamp-mon-dd-yyyy time-stamp-dd-mon-yy diff --git a/lisp/url/.gitignore b/lisp/url/.gitignore deleted file mode 100644 index 362a9c89b75..00000000000 --- a/lisp/url/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -Makefile -auto-autoloads.el -custom-load.el -url-auto.el diff --git a/lisp/version.el b/lisp/version.el index 9b6f06f2eff..3722a14065d 100644 --- a/lisp/version.el +++ b/lisp/version.el @@ -30,7 +30,7 @@ (defconst emacs-copyright "Copyright (C) 2007 Free Software Foundation, Inc." "Short copyright string for this version of Emacs.") -(defconst emacs-version "22.1.50" "\ +(defconst emacs-version "23.0.0" "\ Version numbers of this version of Emacs.") (defconst emacs-major-version diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index f37b4dcb789..4a8947f7c22 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -57,7 +57,7 @@ numbers, and the build number." (x-server-version)) (defun w32-using-nt () - "Return non-nil if running on a 32-bit Windows system. + "Return non-nil if running on a Windows NT descendant. That includes all Windows systems except for 9X/Me." (and (eq system-type 'windows-nt) (getenv "SystemRoot"))) @@ -376,9 +376,11 @@ bit output with no translation." ;; value from w32-select-font etc, so list the most important charsets last. (w32-add-charset-info "iso8859-14" 'w32-charset-ansi 28604) (w32-add-charset-info "iso8859-15" 'w32-charset-ansi 28605) +;; The following two are included for pattern matching. +(w32-add-charset-info "jisx0201" 'w32-charset-shiftjis 932) +(w32-add-charset-info "jisx0208" 'w32-charset-shiftjis 932) (w32-add-charset-info "jisx0201-latin" 'w32-charset-shiftjis 932) (w32-add-charset-info "jisx0201-katakana" 'w32-charset-shiftjis 932) -(w32-add-charset-info "jisx0208-sjis" 'w32-charset-shiftjis 932) (w32-add-charset-info "ksc5601.1987" 'w32-charset-hangeul 949) (w32-add-charset-info "big5" 'w32-charset-chinesebig5 950) (w32-add-charset-info "gb2312" 'w32-charset-gb2312 936) @@ -399,13 +401,21 @@ bit output with no translation." (w32-add-charset-info "iso8859-5" 'w32-charset-russian 28595) (w32-add-charset-info "tis620" 'w32-charset-thai 874) (w32-add-charset-info "ksc5601.1992" 'w32-charset-johab 1361) - (w32-add-charset-info "mac" 'w32-charset-mac nil))) + (w32-add-charset-info "mac-roman" 'w32-charset-mac 10000))) (if (boundp 'w32-unicode-charset-defined) (progn (w32-add-charset-info "unicode" 'w32-charset-unicode t) (w32-add-charset-info "iso10646-1" 'w32-charset-unicode t)) - ;; If unicode windows charset is not defined, use ansi fonts. - (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t)) + (w32-add-charset-info "iso10646-1" 'w32-charset-default t)) +;; ;; If unicode windows charset is not defined, use ansi fonts. +;; (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t)) + +;; Prefered names +(w32-add-charset-info "big5-0" 'w32-charset-chinesebig5 950) +(w32-add-charset-info "gb2312.1980-0" 'w32-charset-gb2312 936) +(w32-add-charset-info "jisx0208-sjis" 'w32-charset-shiftjis 932) +(w32-add-charset-info "ksc5601.1987-0" 'w32-charset-hangeul 949) +(w32-add-charset-info "tis620-0" 'w32-charset-thai 874) (w32-add-charset-info "iso8859-1" 'w32-charset-ansi 1252) (make-obsolete-variable 'w32-enable-italics diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index c46c041d64d..5e5dbd48ad6 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -3012,6 +3012,43 @@ as the value." :complete-function 'ispell-complete-word :prompt-history 'widget-string-prompt-value-history) +(eval-when-compile (defvar widget)) + +(defun widget-string-complete () + "Complete contents of string field. +Completions are taken from the :completion-alist property of the +widget. If that isn't a list, it's evalled and expected to yield a list." + (interactive) + (let* ((prefix (buffer-substring-no-properties (widget-field-start widget) + (point))) + (completion-ignore-case (widget-get widget :completion-ignore-case)) + (alist (widget-get widget :completion-alist)) + (_ (unless (listp alist) + (setq alist (eval alist)))) + (completion (try-completion prefix alist))) + (cond ((eq completion t) + (when completion-ignore-case + ;; Replace field with completion in case its case is different. + (delete-region (widget-field-start widget) + (widget-field-end widget)) + (insert-and-inherit (car (assoc-ignore-case prefix alist)))) + (message "Only match")) + ((null completion) + (error "No match")) + ((not (eq t (compare-strings prefix nil nil completion nil nil + completion-ignore-case))) + (when completion-ignore-case + ;; Replace field with completion in case its case is different. + (delete-region (widget-field-start widget) + (widget-field-end widget)) + (insert-and-inherit completion))) + (t + (message "Making completion list...") + (with-output-to-temp-buffer "*Completions*" + (display-completion-list + (all-completions prefix alist nil))) + (message "Making completion list...done"))))) + (define-widget 'regexp 'string "A regular expression." :match 'widget-regexp-match @@ -3168,16 +3205,13 @@ It reads a directory name from an editable text field." (interactive) (lisp-complete-symbol 'boundp)) :tag "Variable") - -(defvar widget-coding-system-prompt-value-history nil - "History of input to `widget-coding-system-prompt-value'.") (define-widget 'coding-system 'symbol "A MULE coding-system." :format "%{%t%}: %v" :tag "Coding system" :base-only nil - :prompt-history 'widget-coding-system-prompt-value-history + :prompt-history 'coding-system-value-history :prompt-value 'widget-coding-system-prompt-value :action 'widget-coding-system-action :complete-function (lambda () @@ -3417,7 +3451,7 @@ To use this type, you must define :match or :match-alternatives." (aref value 0) value)) :match (lambda (widget value) - (char-valid-p value))) + (characterp value))) (define-widget 'list 'group "A Lisp list." |