/[emacs]/emacs/lisp/international/ucs-tables.el
ViewVC logotype

Diff of /emacs/lisp/international/ucs-tables.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2.2.2 by fx, Tue Jun 5 19:55:19 2001 UTC revision 1.2.2.3 by fx, Tue Nov 20 16:57:43 2001 UTC
# Line 23  Line 23 
23  ;;; Commentary:  ;;; Commentary:
24    
25  ;; This file provides tables mapping between Unicode numbers and  ;; This file provides tables mapping between Unicode numbers and
26  ;; emacs-mule characters from the iso8859 charsets, and some auxiliary  ;; emacs-mule characters from the iso-8859 charsets (and others).  It
27  ;; functions.  ;; also provides some auxiliary functions.
28    
29  ;; These tables are used to construct other mappings between the Mule  ;; These tables are used to construct other mappings between the Mule
30  ;; iso8859 charsets and the emacs-unicode charsets and a table that  ;; iso8859 charsets and the emacs-unicode charsets and a table that
# Line 37  Line 37 
37  ;; mule-unicode-0100-24ff on decoding, with the corresponding  ;; mule-unicode-0100-24ff on decoding, with the corresponding
38  ;; adjustments on encoding; see `ucs-unify-8859'.  Be wary of using  ;; adjustments on encoding; see `ucs-unify-8859'.  Be wary of using
39  ;; unification when, for instance, editing Lisp files such as this one  ;; unification when, for instance, editing Lisp files such as this one
40  ;; which are supposed to contain distinct 8859 charsets.  ALso, it can  ;; which are supposed to contain distinct 8859 charsets.  Also, it can
41  ;; make reading and writing of emacs-mule and iso-2022-based encodings  ;; make reading and writing of emacs-mule and iso-2022-based encodings
42  ;; not idempotent.  ;; not idempotent.
43    
44    ;; Global minor modes are provided to unify on encoding and decoding.
45    
46    ;; The translation table `ucs-mule-to-mule-unicode' is populated.
47    ;; This is used by the `mule-utf-8' coding system to encode extra
48    ;; characters.
49    
50  ;; Command `ucs-insert' is convenient for inserting a given Unicode.  ;; Command `ucs-insert' is convenient for inserting a given Unicode.
51  ;; Probably something like that should be available as an input  ;; (See also the `ucs' input method.)
 ;; method.  
52    
53  ;;; Code:  ;;; Code:
54    
# Line 118  Translates from the iso8859 charsets and Line 123  Translates from the iso8859 charsets and
123    "Used as `translation-table-for-encode' for iso-8859-15.    "Used as `translation-table-for-encode' for iso-8859-15.
124  Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")  Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
125    
126    ;; Probably defined by utf-8.el.
127    (defvar ucs-mule-to-mule-unicode (make-translation-table))
128    (unless (get 'ucs-mule-to-mule-unicode 'translation-table)
129      (define-translation-table 'ucs-mule-to-mule-unicode ucs-mule-to-mule-unicode))
130  ;;; Set up the tables.  ;;; Set up the tables.
131    
132    ;; Most of these tables were derived from ones in Mule-UCS.
133    
134  ;; There doesn't seem to be a need to make these let bindings into  ;; There doesn't seem to be a need to make these let bindings into
135  ;; defvars, so we'll let the data get GC'ed.  ;; defvars, so we'll let the data get GC'ed.
136  (let ((ucs-8859-2-alist  (let ((ucs-8859-2-alist
# Line 518  Translates from the iso8859 charsets and Line 529  Translates from the iso8859 charsets and
529           (?,G$(B . ?\x00A4)   ;; CURRENCY SIGN           (?,G$(B . ?\x00A4)   ;; CURRENCY SIGN
530           (?,G,(B . ?\x060C)   ;; ARABIC COMMA           (?,G,(B . ?\x060C)   ;; ARABIC COMMA
531           (?,G-(B . ?\x00AD)   ;; SOFT HYPHEN           (?,G-(B . ?\x00AD)   ;; SOFT HYPHEN
532           (?,G;(B . ?\x061B) ;; ARABIC SEMICOLON           (?,G;(B . ?\x061B)   ;; ARABIC SEMICOLON
533           (?,G?(B . ?\x061F) ;; ARABIC QUESTION MARK           (?,G?(B . ?\x061F)   ;; ARABIC QUESTION MARK
534           (?,GA(B . ?\x0621) ;; ARABIC LETTER HAMZA           (?,GA(B . ?\x0621)   ;; ARABIC LETTER HAMZA
535           (?,GB(B . ?\x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE           (?,GB(B . ?\x0622)   ;; ARABIC LETTER ALEF WITH MADDA ABOVE
536           (?,GC(B . ?\x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE           (?,GC(B . ?\x0623)   ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
537           (?,GD(B . ?\x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE           (?,GD(B . ?\x0624)   ;; ARABIC LETTER WAW WITH HAMZA ABOVE
538           (?,GE(B . ?\x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW           (?,GE(B . ?\x0625)   ;; ARABIC LETTER ALEF WITH HAMZA BELOW
539           (?,GF(B . ?\x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE           (?,GF(B . ?\x0626)   ;; ARABIC LETTER YEH WITH HAMZA ABOVE
540           (?,GG(B . ?\x0627) ;; ARABIC LETTER ALEF           (?,GG(B . ?\x0627)   ;; ARABIC LETTER ALEF
541           (?,GH(B . ?\x0628) ;; ARABIC LETTER BEH           (?,GH(B . ?\x0628)   ;; ARABIC LETTER BEH
542           (?,GI(B . ?\x0629) ;; ARABIC LETTER TEH MARBUTA           (?,GI(B . ?\x0629)   ;; ARABIC LETTER TEH MARBUTA
543           (?,GJ(B . ?\x062A) ;; ARABIC LETTER TEH           (?,GJ(B . ?\x062A)   ;; ARABIC LETTER TEH
544           (?,GK(B . ?\x062B) ;; ARABIC LETTER THEH           (?,GK(B . ?\x062B)   ;; ARABIC LETTER THEH
545           (?,GL(B . ?\x062C) ;; ARABIC LETTER JEEM           (?,GL(B . ?\x062C)   ;; ARABIC LETTER JEEM
546           (?,GM(B . ?\x062D) ;; ARABIC LETTER HAH           (?,GM(B . ?\x062D)   ;; ARABIC LETTER HAH
547           (?,GN(B . ?\x062E) ;; ARABIC LETTER KHAH           (?,GN(B . ?\x062E)   ;; ARABIC LETTER KHAH
548           (?,GO(B . ?\x062F) ;; ARABIC LETTER DAL           (?,GO(B . ?\x062F)   ;; ARABIC LETTER DAL
549           (?,GP(B . ?\x0630) ;; ARABIC LETTER THAL           (?,GP(B . ?\x0630)   ;; ARABIC LETTER THAL
550           (?,GQ(B . ?\x0631) ;; ARABIC LETTER REH           (?,GQ(B . ?\x0631)   ;; ARABIC LETTER REH
551           (?,GR(B . ?\x0632) ;; ARABIC LETTER ZAIN           (?,GR(B . ?\x0632)   ;; ARABIC LETTER ZAIN
552           (?,GS(B . ?\x0633) ;; ARABIC LETTER SEEN           (?,GS(B . ?\x0633)   ;; ARABIC LETTER SEEN
553           (?,GT(B . ?\x0634) ;; ARABIC LETTER SHEEN           (?,GT(B . ?\x0634)   ;; ARABIC LETTER SHEEN
554           (?,GU(B . ?\x0635) ;; ARABIC LETTER SAD           (?,GU(B . ?\x0635)   ;; ARABIC LETTER SAD
555           (?,GV(B . ?\x0636) ;; ARABIC LETTER DAD           (?,GV(B . ?\x0636)   ;; ARABIC LETTER DAD
556           (?,GW(B . ?\x0637) ;; ARABIC LETTER TAH           (?,GW(B . ?\x0637)   ;; ARABIC LETTER TAH
557           (?,GX(B . ?\x0638) ;; ARABIC LETTER ZAH           (?,GX(B . ?\x0638)   ;; ARABIC LETTER ZAH
558           (?,GY(B . ?\x0639) ;; ARABIC LETTER AIN           (?,GY(B . ?\x0639)   ;; ARABIC LETTER AIN
559           (?,GZ(B . ?\x063A) ;; ARABIC LETTER GHAIN           (?,GZ(B . ?\x063A)   ;; ARABIC LETTER GHAIN
560           (?,G`(B . ?\x0640) ;; ARABIC TATWEEL           (?,G`(B . ?\x0640)   ;; ARABIC TATWEEL
561           (?,Ga(B . ?\x0641) ;; ARABIC LETTER FEH           (?,Ga(B . ?\x0641)   ;; ARABIC LETTER FEH
562           (?,Gb(B . ?\x0642) ;; ARABIC LETTER QAF           (?,Gb(B . ?\x0642)   ;; ARABIC LETTER QAF
563           (?,Gc(B . ?\x0643) ;; ARABIC LETTER KAF           (?,Gc(B . ?\x0643)   ;; ARABIC LETTER KAF
564           (?,Gd(B . ?\x0644) ;; ARABIC LETTER LAM           (?,Gd(B . ?\x0644)   ;; ARABIC LETTER LAM
565           (?,Ge(B . ?\x0645) ;; ARABIC LETTER MEEM           (?,Ge(B . ?\x0645)   ;; ARABIC LETTER MEEM
566           (?,Gf(B . ?\x0646) ;; ARABIC LETTER NOON           (?,Gf(B . ?\x0646)   ;; ARABIC LETTER NOON
567           (?,Gg(B . ?\x0647) ;; ARABIC LETTER HEH           (?,Gg(B . ?\x0647)   ;; ARABIC LETTER HEH
568           (?,Gh(B . ?\x0648) ;; ARABIC LETTER WAW           (?,Gh(B . ?\x0648)   ;; ARABIC LETTER WAW
569           (?,Gi(B . ?\x0649) ;; ARABIC LETTER ALEF MAKSURA           (?,Gi(B . ?\x0649)   ;; ARABIC LETTER ALEF MAKSURA
570           (?,Gj(B . ?\x064A) ;; ARABIC LETTER YEH           (?,Gj(B . ?\x064A)   ;; ARABIC LETTER YEH
571           (?,Gk(B . ?\x064B) ;; ARABIC FATHATAN           (?,Gk(B . ?\x064B)   ;; ARABIC FATHATAN
572           (?,Gl(B . ?\x064C) ;; ARABIC DAMMATAN           (?,Gl(B . ?\x064C)   ;; ARABIC DAMMATAN
573           (?,Gm(B . ?\x064D) ;; ARABIC KASRATAN           (?,Gm(B . ?\x064D)   ;; ARABIC KASRATAN
574           (?,Gn(B . ?\x064E) ;; ARABIC FATHA           (?,Gn(B . ?\x064E)   ;; ARABIC FATHA
575           (?,Go(B . ?\x064F) ;; ARABIC DAMMA           (?,Go(B . ?\x064F)   ;; ARABIC DAMMA
576           (?,Gp(B . ?\x0650) ;; ARABIC KASRA           (?,Gp(B . ?\x0650)   ;; ARABIC KASRA
577           (?,Gq(B . ?\x0651) ;; ARABIC SHADDA           (?,Gq(B . ?\x0651)   ;; ARABIC SHADDA
578           (?,Gr(B . ?\x0652) ;; ARABIC SUKUN           (?,Gr(B . ?\x0652)   ;; ARABIC SUKUN
579           ))           ))
580    
581        (ucs-8859-7-alist        (ucs-8859-7-alist
# Line 1029  Translates from the iso8859 charsets and Line 1040  Translates from the iso8859 charsets and
1040             (setq i (1+ i)))             (setq i (1+ i)))
1041           (nreverse l)))           (nreverse l)))
1042                
1043        ;;(case-table (standard-case-table))  ;;       (case-table (standard-case-table))
1044        ;;(syntax-table (standard-syntax-table))  ;;       (syntax-table (standard-syntax-table))
1045        )        )
1046    
1047    ;; Convert the lists to the basic char tables.    ;; Convert the lists to the basic char tables.
# Line 1043  Translates from the iso8859 charsets and Line 1054  Translates from the iso8859 charsets and
1054            (aset ucs-mule-8859-to-ucs-table mule uc)            (aset ucs-mule-8859-to-ucs-table mule uc)
1055            ;;      (aset ucs-ucs-to-mule-8859-table uc mule)            ;;      (aset ucs-ucs-to-mule-8859-table uc mule)
1056            ;;      (aset ucs-mule-unicode-to-mule-8859 mu mule)            ;;      (aset ucs-mule-unicode-to-mule-8859 mu mule)
1057            (aset ucs-mule-8859-to-mule-unicode mule mu)))            (aset ucs-mule-8859-to-mule-unicode mule mu)
1058              (aset ucs-mule-to-mule-unicode mule mu)))
1059  ;; I think this is actually done OK in characters.el.  ;; I think this is actually done OK in characters.el.
1060  ;; Probably things like accents shouldn't have word syntax, but the  ;; Probably things like accents shouldn't have word syntax, but the
1061  ;; Latin-N syntax tables currently aren't consistent for such  ;; Latin-N syntax tables currently aren't consistent for such
# Line 1082  Translates from the iso8859 charsets and Line 1094  Translates from the iso8859 charsets and
1094    ;; `translation-table-for-encode's.    ;; `translation-table-for-encode's.
1095    (dolist (n (list 15 14 9 8 7 5 4 3 2 1))    (dolist (n (list 15 14 9 8 7 5 4 3 2 1))
1096      (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))      (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))
1097             (encode-translator             (encode-translator (set (intern (format "ucs-8859-%d-encode-table"
1098              (set (intern (format "ucs-8859-%d-encode-table" n))                                                     n))
1099                   (make-translation-table)))                                     (make-translation-table)))
1100             elt)             elt)
1101        ;; Start with the mule-unicode component.        ;; Start with the mule-unicode component.
1102        (dolist (pair alist)        (dolist (pair alist)
# Line 1093  Translates from the iso8859 charsets and Line 1105  Translates from the iso8859 charsets and
1105            (aset encode-translator mu mule)))            (aset encode-translator mu mule)))
1106        ;; Find characters from other 8859 sets which map to the same        ;; Find characters from other 8859 sets which map to the same
1107        ;; unicode as some character in this set.        ;; unicode as some character in this set.
1108        (map-char-table        (map-char-table (lambda (k v)
1109         (lambda (k v)                          (if (and (setq elt (rassq v alist))
1110           (if (and (setq elt (rassq v alist))                                   (not (assq k alist)))
1111                    (not (assq k alist)))                              (aset encode-translator k (car elt))))
1112               (aset encode-translator k (car elt))))                        ucs-mule-8859-to-ucs-table))))
        ucs-mule-8859-to-ucs-table))))  
1113    
1114  ;; Register for use in CCL.  ;; Register for use in CCL.
1115  (define-translation-table 'ucs-mule-8859-to-mule-unicode  (define-translation-table 'ucs-mule-8859-to-mule-unicode
1116    ucs-mule-8859-to-mule-unicode)    ucs-mule-8859-to-mule-unicode)
1117    
1118  ;; Fixme: Make this reversible, which means frobbing  ;; Fixme: Make this reversible, which means frobbing
1119  ;; `char-coding-system-table' directly to remove what we added.  ;; `char-coding-system-table' directly to remove what we added -- see
1120  (defun ucs-unify-8859 ()  ;; codepages.el.  Also make it a user option.
1121    (defun ucs-unify-8859 (&optional encode-only)
1122    "Set up translation tables for unifying characters from ISO 8859.    "Set up translation tables for unifying characters from ISO 8859.
 The non-8859 Cyrillic character sets are also covered.  
1123    
1124  On decoding, non-ASCII characters are mapped into the `iso-latin-1'  On decoding, non-ASCII characters are mapped into the `iso-latin-1'
1125  and `mule-unicode-0100-24ff' charsets.  On encoding, these are mapped  and `mule-unicode-0100-24ff' charsets.  On encoding, these are mapped
1126  back appropriate for the coding system."  back appropriate for the coding system.
1127    ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)  
1128    (set-char-table-parent standard-translation-table-for-decode  With prefix arg, do unification on encoding only, i.e. don't unify
1129                           ucs-mule-8859-to-mule-unicode)  everything on input operations."
1130      (interactive "P")
1131      (unless encode-only
1132        ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)
1133        (set-char-table-parent standard-translation-table-for-decode
1134                               ucs-mule-8859-to-mule-unicode))
1135    ;; Adjust the 8859 coding systems to fragment the unified characters    ;; Adjust the 8859 coding systems to fragment the unified characters
1136    ;; on encoding.    ;; on encoding.
1137    (dolist (n '(1 2 3 4 5 7 8 9 14 15))    (dolist (n '(1 2 3 4 5 7 8 9 14 15))
# Line 1132  back appropriate for the coding system." Line 1148  back appropriate for the coding system."
1148        (register-char-codings coding-system table)        (register-char-codings coding-system table)
1149        (coding-system-put coding-system 'translation-table-for-encode table)))        (coding-system-put coding-system 'translation-table-for-encode table)))
1150    
1151    ;; Update the Cyrillic special cases.  ;;; The following works for the bundled coding systems, but it's
1152    ;; `translation-table-for-encode' doesn't work for CCL coding  ;;; better to use the Unicode-based ones and make it irrelevant.
1153    ;; systems, and `standard-translation-table-for-decode' isn't  
1154    ;; applied.  ;;;   ;; Update the Cyrillic special cases.
1155    (let ((table (get 'cyrillic-koi8-r-encode-table 'translation-table)))  ;;;   ;; `translation-table-for-encode' doesn't work for CCL coding
1156      (map-char-table  ;;;   ;; systems, and `standard-translation-table-for-decode' isn't
1157       (lambda (k v)  ;;;   ;; applied.
1158         (aset table  ;;;   (let ((table (get 'cyrillic-koi8-r-encode-table 'translation-table)))
1159               (or (aref ucs-8859-5-encode-table k)  ;;;     (map-char-table
1160                   k)  ;;;      (lambda (k v)
1161               v))  ;;;        (aset table
1162       table)  ;;;          (or (aref ucs-8859-5-encode-table k)
1163      (register-char-codings 'cyrillic-koi8 table))  ;;;              k)
1164    (let ((table (get 'cyrillic-koi8-r-nonascii-translation-table  ;;;          v))
1165                      'translation-table)))  ;;;      table)
1166      (map-char-table  ;;;     (register-char-codings 'cyrillic-koi8 table))
1167       (lambda (k v)  ;;;   (let ((table (get 'cyrillic-koi8-r-nonascii-translation-table
1168         (if v (aset table k (or (aref ucs-mule-8859-to-mule-unicode v)  ;;;                 'translation-table)))
1169                                 v))))  ;;;     (map-char-table
1170       table))  ;;;      (lambda (k v)
1171    ;; Redefine this, since the orginal only translated 8859-5.  ;;;        (if v (aset table k (or (aref ucs-mule-8859-to-mule-unicode v)
1172    (define-ccl-program ccl-encode-koi8  ;;;                            v))))
1173      `(1  ;;;      table))
1174        ((loop  ;;;   ;; Redefine this, since the orginal only translated 8859-5.
1175          (read-multibyte-character r0 r1)  ;;;   (define-ccl-program ccl-encode-koi8
1176          (translate-character cyrillic-koi8-r-encode-table r0 r1)  ;;;     `(1
1177          (write-repeat r1))))  ;;;       ((loop
1178      "CCL program to encode KOI8.")  ;;;     (read-multibyte-character r0 r1)
1179    (let ((table (get 'cyrillic-alternativnyj-encode-table 'translation-table)))  ;;;     (translate-character cyrillic-koi8-r-encode-table r0 r1)
1180      (map-char-table  ;;;     (write-repeat r1))))
1181       (lambda (k v)  ;;;     "CCL program to encode KOI8.")
1182         (aset table  ;;;   (let ((table (get 'cyrillic-alternativnyj-encode-table 'translation-table)))
1183               (or (aref ucs-8859-5-encode-table k)  ;;;     (map-char-table
1184                   k)  ;;;      (lambda (k v)
1185               v))  ;;;        (aset table
1186       table)  ;;;          (or (aref ucs-8859-5-encode-table k)
1187      (register-char-codings 'cyrillic-alternativnyj table))  ;;;              k)
1188    (let ((table (get 'cyrillic-alternativnyj-nonascii-translation-table  ;;;          v))
1189                      'translation-table)))  ;;;      table)
1190      (map-char-table  ;;;     (register-char-codings 'cyrillic-alternativnyj table))
1191       (lambda (k v)  ;;;   (let ((table (get 'cyrillic-alternativnyj-nonascii-translation-table
1192         (if v (aset table  ;;;                 'translation-table)))
1193                     k  ;;;     (map-char-table
1194                     (or (aref ucs-mule-8859-to-mule-unicode v)  ;;;      (lambda (k v)
1195                         v))))  ;;;        (if v (aset table
1196       table)))  ;;;                k
1197    ;;;                (or (aref ucs-mule-8859-to-mule-unicode v)
1198    ;;;                    v))))
1199    ;;;      table))
1200      )
1201    
1202    (defun ucs-fragment-8859 (&optional encode-only)
1203      "Undo the unification done by `ucs-unify-8859'.
1204    With prefix arg, undo unification on encoding only, i.e. don't undo
1205    unification on input operations."
1206      (interactive "P")
1207      ;; Maybe fix decoding.
1208      (unless encode-only
1209        ;; Unify 8859 on decoding.  (Non-CCL coding systems only.)
1210        (set-char-table-parent standard-translation-table-for-decode nil))
1211      ;; Fix encoding.  For each charset, remove the entries in
1212      ;; `char-coding-system-table' added to its safe-chars table (as its
1213      ;; parent).
1214      (dolist (n '(1 2 3 4 5 7 8 9 14 15))
1215        (let* ((coding-system
1216                (coding-system-base (intern (format "iso-8859-%d" n))))
1217               (table (symbol-value
1218                       (intern (format "ucs-8859-%d-encode-table" n))))
1219               (safe (coding-system-get coding-system 'safe-chars)))
1220          (map-char-table
1221           (lambda (key val)
1222             (if (and (>= key 128) val)
1223                 (let ((codings (aref char-coding-system-table key)))
1224                   (aset char-coding-system-table key
1225                         (delq coding-system codings)))))
1226           (char-table-parent safe))
1227          (set-char-table-parent safe nil)
1228          (coding-system-put coding-system 'translation-table-for-encode nil))))
1229    
1230    ;;;###autoload
1231    (define-minor-mode unify-8859-on-encoding-mode
1232      "Set up translation tables for unifying ISO 8859 characters on encoding.
1233    
1234    The ISO 8859 characters sets overlap, e.g. 8859-1 (Latin-1) and
1235    8859-15 (Latin-9) differ only in a few characters.  Emacs normally
1236    distinguishes equivalent characters from those ISO-8859 character sets
1237    which are built in to Emacs.  This behaviour is essentially inherited
1238    from the European-originated international standards.  Treating them
1239    equivalently, by translating to and from a single representation is
1240    called `unification'.  (The `utf-8' coding system treats the
1241    characters of European scripts in a unified manner.)
1242    
1243    In this mode, on encoding -- i.e. output operations -- non-ASCII
1244    characters from the built-in ISO 8859 and `mule-unicode-0100-24ff'
1245    charsets are handled automatically by the coding system used if it can
1246    represent them.  Thus, say, an e-acute from the Latin-1 charset (the
1247    unified representation) in a buffer saved as Latin-9 will be encoded
1248    directly to a byte value 233.  By default, in contrast, you would be
1249    promtped for a general coding system to use for saving the file, which
1250    can cope with separate Latin-1 and Latin-9 representations of e-acute.
1251    
1252    See also command `unify-8859-on-decoding-mode'."
1253      :group 'mule
1254      :global t
1255      :init-value nil
1256      (if unify-8859-on-encoding-mode
1257          (set-char-table-parent standard-translation-table-for-decode
1258                             ucs-mule-8859-to-mule-unicode)
1259        (set-char-table-parent standard-translation-table-for-decode nil)))
1260    
1261    ;;;###autoload
1262    (define-minor-mode unify-8859-on-decoding-mode
1263      "Set up translation tables for unifying ISO 8859 characters on decoding.
1264    On decoding, i.e. input operations, non-ASCII characters from the
1265    built-in ISO 8859 charsets are unified by mapping them into the
1266    `iso-latin-1' and `mule-unicode-0100-24ff' charsets.
1267    
1268    See also command `unify-8859-on-encoding-mode'."
1269      :group 'mule
1270      :global t
1271      :init-value nil
1272      (if unify-8859-on-decoding-mode
1273          (ucs-unify-8859 t)
1274        (ucs-fragment-8859 t)))
1275    
1276  (defun ucs-insert (arg)  (defun ucs-insert (arg)
1277    "Insert the Emacs character representation of the given Unicode.    "Insert the Emacs character representation of the given Unicode.
# Line 1187  Interactively, prompts for a hex string Line 1281  Interactively, prompts for a hex string
1281                                  arg                                  arg
1282                                (string-to-number arg 16)))))                                (string-to-number arg 16)))))
1283    
1284    ;;; Dealing with non-8859 character sets.
1285    
1286    ;; We only set up translation on encoding to utf-8.  Also translation
1287    ;; tables ucs-CS-encode-table are constructed for some coding systems
1288    ;; CS which could be used as `translation-table-for-encode', currently
1289    ;; for in-is13194-devanagari, lao, thai, tibetan-iso-8bit and
1290    ;; vietnamese-viscii.
1291    
1292    ;; The alists here cover both coding systems (external charsets), like
1293    ;; VISCII, and individual Emacs charsets, like `ipa'.
1294    (let ((vietnamese-viscii
1295           '((?,1!(B . ?$,1o/(B)
1296             (?,1"(B . ?$,1o1(B)
1297             (?,1#(B . ?$,1o7(B)
1298             (?,1$(B . ?$,1o%(B)
1299             (?,1%(B . ?$,1o'(B)
1300             (?,1&(B . ?$,1o)(B)
1301             (?,1'(B . ?$,1o-(B)
1302             (?,1((B . ?$,1o=(B)
1303             (?,1)(B . ?$,1o9(B)
1304             (?,1*(B . ?$,1o?(B)
1305             (?,1+(B . ?$,1oA(B)
1306             (?,1,(B . ?$,1oC(B)
1307             (?,1-(B . ?$,1oE(B)
1308             (?,1.(B . ?$,1oG(B)
1309             (?,1/(B . ?$,1oQ(B)
1310             (?,10(B . ?$,1oS(B)
1311             (?,11(B . ?$,1oU(B)
1312             (?,12(B . ?$,1oW(B)
1313             (?,15(B . ?$,1oY(B)
1314             (?,16(B . ?$,1o](B)
1315             (?,17(B . ?$,1o_(B)
1316             (?,18(B . ?$,1oK(B)
1317             (?,1=(B . ?$,1!a(B)
1318             (?,1>(B . ?$,1o[(B)
1319             (?,1F(B . ?$,1o3(B)
1320             (?,1G(B . ?$,1o5(B)
1321             (?,1O(B . ?$,1os(B)
1322             (?,1Q(B . ?$,1oi(B)
1323             (?,1U(B . ?$,1o!(B)
1324             (?,1V(B . ?$,1ow(B)
1325             (?,1W(B . ?$,1ok(B)
1326             (?,1X(B . ?$,1om(B)
1327             (?,1[(B . ?$,1oy(B)
1328             (?,1\(B . ?$,1ou(B)
1329             (?,1^(B . ?$,1oa(B)
1330             (?,1_(B . ?$,1!p(B)
1331             (?,1`(B . ?,A`(B)
1332             (?,1a(B . ?,Aa(B)
1333             (?,1b(B . ?,Ab(B)
1334             (?,1c(B . ?,Ac(B)
1335             (?,1d(B . ?$,1o#(B)
1336             (?,1e(B . ?$,1 #(B)
1337             (?,1f(B . ?$,1oo(B)
1338             (?,1g(B . ?$,1o+(B)
1339             (?,1h(B . ?,Ah(B)
1340             (?,1i(B . ?,Ai(B)
1341             (?,1j(B . ?,Aj(B)
1342             (?,1k(B . ?$,1o;(B)
1343             (?,1l(B . ?,Al(B)
1344             (?,1m(B . ?,Am(B)
1345             (?,1n(B . ?$,1 I(B)
1346             (?,1o(B . ?$,1oI(B)
1347             (?,1p(B . ?$,1 1(B)
1348             (?,1q(B . ?$,1oq(B)
1349             (?,1r(B . ?,Ar(B)
1350             (?,1s(B . ?,As(B)
1351             (?,1t(B . ?,At(B)
1352             (?,1u(B . ?,Au(B)
1353             (?,1v(B . ?$,1oO(B)
1354             (?,1w(B . ?$,1oM(B)
1355             (?,1x(B . ?$,1oe(B)
1356             (?,1y(B . ?,Ay(B)
1357             (?,1z(B . ?,Az(B)
1358             (?,1{(B . ?$,1!)(B)
1359             (?,1|(B . ?$,1og(B)
1360             (?,1}(B . ?,A}(B)
1361             (?,1~(B . ?$,1oc(B)
1362    
1363             (?,2!(B . ?$,1o.(B)
1364             (?,2"(B . ?$,1o0(B)
1365             (?,2#(B . ?$,1o6(B)
1366             (?,2$(B . ?$,1o$(B)
1367             (?,2%(B . ?$,1o&(B)
1368             (?,2&(B . ?$,1o((B)
1369             (?,2'(B . ?$,1o,(B)
1370             (?,2((B . ?$,1o<(B)
1371             (?,2)(B . ?$,1o8(B)
1372             (?,2*(B . ?$,1o>(B)
1373             (?,2+(B . ?$,1o@(B)
1374             (?,2,(B . ?$,1oB(B)
1375             (?,2-(B . ?$,1oD(B)
1376             (?,2.(B . ?$,1oF(B)
1377             (?,2/(B . ?$,1oP(B)
1378             (?,20(B . ?$,1oR(B)
1379             (?,21(B . ?$,1oT(B)
1380             (?,22(B . ?$,1oV(B)
1381             (?,25(B . ?$,1oX(B)
1382             (?,26(B . ?$,1o\(B)
1383             (?,27(B . ?$,1o^(B)
1384             (?,28(B . ?$,1oJ(B)
1385             (?,2=(B . ?$,1!`(B)
1386             (?,2>(B . ?$,1oZ(B)
1387             (?,2F(B . ?$,1o2(B)
1388             (?,2G(B . ?$,1o4(B)
1389             (?,2O(B . ?$,1or(B)
1390             (?,2Q(B . ?$,1oh(B)
1391             (?,2U(B . ?$,1o (B)
1392             (?,2V(B . ?$,1ov(B)
1393             (?,2W(B . ?$,1oj(B)
1394             (?,2X(B . ?$,1ol(B)
1395             (?,2[(B . ?$,1ox(B)
1396             (?,2\(B . ?$,1ot(B)
1397             (?,2^(B . ?$,1o`(B)
1398             (?,2_(B . ?$,1!o(B)
1399             (?,2`(B . ?,A@(B)
1400             (?,2a(B . ?,AA(B)
1401             (?,2b(B . ?,AB(B)
1402             (?,2c(B . ?,AC(B)
1403             (?,2d(B . ?$,1o"(B)
1404             (?,2e(B . ?$,1 "(B)
1405             (?,2f(B . ?$,1on(B)
1406             (?,2g(B . ?$,1o*(B)
1407             (?,2h(B . ?,AH(B)
1408             (?,2i(B . ?,AI(B)
1409             (?,2j(B . ?,AJ(B)
1410             (?,2k(B . ?$,1o:(B)
1411             (?,2l(B . ?,AL(B)
1412             (?,2m(B . ?,AM(B)
1413             (?,2n(B . ?$,1 H(B)
1414             (?,2o(B . ?$,1oH(B)
1415             (?,2p(B . ?$,1 0(B)
1416             (?,2q(B . ?$,1op(B)
1417             (?,2r(B . ?,AR(B)
1418             (?,2s(B . ?,AS(B)
1419             (?,2t(B . ?,AT(B)
1420             (?,2u(B . ?,AU(B)
1421             (?,2v(B . ?$,1oN(B)
1422             (?,2w(B . ?$,1oL(B)
1423             (?,2x(B . ?$,1od(B)
1424             (?,2y(B . ?,AY(B)
1425             (?,2z(B . ?,AZ(B)
1426             (?,2{(B . ?$,1!((B)
1427             (?,2|(B . ?$,1of(B)
1428             (?,2}(B . ?,A](B)
1429             (?,2~(B . ?$,1ob(B)))
1430    
1431          (thai-tis620
1432           '((?,T!(B . ?$,1Ba(B)
1433             (?,T"(B . ?$,1Bb(B)
1434             (?,T#(B . ?$,1Bc(B)
1435             (?,T$(B . ?$,1Bd(B)
1436             (?,T%(B . ?$,1Be(B)
1437             (?,T&(B . ?$,1Bf(B)
1438             (?,T'(B . ?$,1Bg(B)
1439             (?,T((B . ?$,1Bh(B)
1440             (?,T)(B . ?$,1Bi(B)
1441             (?,T*(B . ?$,1Bj(B)
1442             (?,T+(B . ?$,1Bk(B)
1443             (?,T,(B . ?$,1Bl(B)
1444             (?,T-(B . ?$,1Bm(B)
1445             (?,T.(B . ?$,1Bn(B)
1446             (?,T/(B . ?$,1Bo(B)
1447             (?,T0(B . ?$,1Bp(B)
1448             (?,T1(B . ?$,1Bq(B)
1449             (?,T2(B . ?$,1Br(B)
1450             (?,T3(B . ?$,1Bs(B)
1451             (?,T4(B . ?$,1Bt(B)
1452             (?,T5(B . ?$,1Bu(B)
1453             (?,T6(B . ?$,1Bv(B)
1454             (?,T7(B . ?$,1Bw(B)
1455             (?,T8(B . ?$,1Bx(B)
1456             (?,T9(B . ?$,1By(B)
1457             (?,T:(B . ?$,1Bz(B)
1458             (?,T;(B . ?$,1B{(B)
1459             (?,T<(B . ?$,1B|(B)
1460             (?,T=(B . ?$,1B}(B)
1461             (?,T>(B . ?$,1B~(B)
1462             (?,T?(B . ?$,1B(B)
1463             (?,T@(B . ?$,1C (B)
1464             (?,TA(B . ?$,1C!(B)
1465             (?,TB(B . ?$,1C"(B)
1466             (?,TC(B . ?$,1C#(B)
1467             (?,TD(B . ?$,1C$(B)
1468             (?,TE(B . ?$,1C%(B)
1469             (?,TF(B . ?$,1C&(B)
1470             (?,TG(B . ?$,1C'(B)
1471             (?,TH(B . ?$,1C((B)
1472             (?,TI(B . ?$,1C)(B)
1473             (?,TJ(B . ?$,1C*(B)
1474             (?,TK(B . ?$,1C+(B)
1475             (?,TL(B . ?$,1C,(B)
1476             (?,TM(B . ?$,1C-(B)
1477             (?,TN(B . ?$,1C.(B)
1478             (?,TO(B . ?$,1C/(B)
1479             (?,TP(B . ?$,1C0(B)
1480             (?,TQ(B . ?$,1C1(B)
1481             (?,TR(B . ?$,1C2(B)
1482             (?,TS(B . ?$,1C3(B)
1483             (?,TT(B . ?$,1C4(B)
1484             (?,TU(B . ?$,1C5(B)
1485             (?,TV(B . ?$,1C6(B)
1486             (?,TW(B . ?$,1C7(B)
1487             (?,TX(B . ?$,1C8(B)
1488             (?,TY(B . ?$,1C9(B)
1489             (?,TZ(B . ?$,1C:(B)
1490             (?,T_(B . ?$,1C?(B)
1491             (?,T`(B . ?$,1C@(B)
1492             (?,Ta(B . ?$,1CA(B)
1493             (?,Tb(B . ?$,1CB(B)
1494             (?,Tc(B . ?$,1CC(B)
1495             (?,Td(B . ?$,1CD(B)
1496             (?,Te(B . ?$,1CE(B)
1497             (?,Tf(B . ?$,1CF(B)
1498             (?,Tg(B . ?$,1CG(B)
1499             (?,Th(B . ?$,1CH(B)
1500             (?,Ti(B . ?$,1CI(B)
1501             (?,Tj(B . ?$,1CJ(B)
1502             (?,Tk(B . ?$,1CK(B)
1503             (?,Tl(B . ?$,1CL(B)
1504             (?,Tm(B . ?$,1CM(B)
1505             (?,Tn(B . ?$,1CN(B)
1506             (?,To(B . ?$,1CO(B)
1507             (?,Tp(B . ?$,1CP(B)
1508             (?,Tq(B . ?$,1CQ(B)
1509             (?,Tr(B . ?$,1CR(B)
1510             (?,Ts(B . ?$,1CS(B)
1511             (?,Tt(B . ?$,1CT(B)
1512             (?,Tu(B . ?$,1CU(B)
1513             (?,Tv(B . ?$,1CV(B)
1514             (?,Tw(B . ?$,1CW(B)
1515             (?,Tx(B . ?$,1CX(B)
1516             (?,Ty(B . ?$,1CY(B)
1517             (?,Tz(B . ?$,1CZ(B)
1518             (?,T{(B . ?$,1C[(B)))
1519    
1520          (tibetan-iso-8bit
1521           '((?$(7!0(B . ?$,1E@(B)
1522             (?$(7!1(B . ?$,1EA(B)
1523             (?$(7!2(B . ?$,1EB(B)
1524             (?$(7!3(B . ?$,1EC(B)
1525             (?$(7!4(B . ?$,1ED(B)
1526             (?$(7!5(B . ?$,1EE(B)
1527             (?$(7!6(B . ?$,1EF(B)
1528             (?$(7!7(B . ?$,1EG(B)
1529             (?$(7!8(B . ?$,1EH(B)
1530             (?$(7!9(B . ?$,1EI(B)
1531             (?$(7!:(B . ?$,1EJ(B)
1532             (?$(7!;(B . ?$,1EK(B)
1533             (?$(7!<(B . ?$,1EL(B)
1534             (?$(7!=(B . ?$,1EM(B)
1535             (?$(7!>(B . ?$,1EN(B)
1536             (?$(7!?(B . ?$,1EO(B)
1537             (?$(7!@(B . ?$,1EP(B)
1538             (?$(7!A(B . ?$,1EQ(B)
1539             (?$(7!B(B . ?$,1ER(B)
1540             (?$(7!C(B . ?$,1ES(B)
1541             (?$(7!D(B . ?$,1ET(B)
1542             (?$(7!E(B . ?$,1EU(B)
1543             (?$(7!F(B . ?$,1EV(B)
1544             (?$(7!G(B . ?$,1EW(B)
1545             (?$(7!H(B . ?$,1EX(B)
1546             (?$(7!I(B . ?$,1EY(B)
1547             (?$(7!J(B . ?$,1EZ(B)
1548             (?$(7!K(B . ?$,1E[(B)
1549             (?$(7!L(B . ?$,1E\(B)
1550             (?$(7!M(B . ?$,1E](B)
1551             (?$(7!N(B . ?$,1E^(B)
1552             (?$(7!O(B . ?$,1E_(B)
1553             (?$(7!P(B . ?$,1E`(B)
1554             (?$(7!Q(B . ?$,1Ea(B)
1555             (?$(7!R(B . ?$,1Eb(B)
1556             (?$(7!S(B . ?$,1Ec(B)
1557             (?$(7!T(B . ?$,1Ed(B)
1558             (?$(7!U(B . ?$,1Ee(B)
1559             (?$(7!V(B . ?$,1Ef(B)
1560             (?$(7!W(B . ?$,1Eg(B)
1561             (?$(7!X(B . ?$,1Eh(B)
1562             (?$(7!Y(B . ?$,1Ei(B)
1563             (?$(7!Z(B . ?$,1Ej(B)
1564             (?$(7![(B . ?$,1Ek(B)
1565             (?$(7!\(B . ?$,1El(B)
1566             (?$(7!](B . ?$,1Em(B)
1567             (?$(7!^(B . ?$,1En(B)
1568             (?$(7!_(B . ?$,1Eo(B)
1569             (?$(7!`(B . ?$,1Ep(B)
1570             (?$(7!a(B . ?$,1Eq(B)
1571             (?$(7!b(B . ?$,1Er(B)
1572             (?$(7!c(B . ?$,1Es(B)
1573             (?$(7!d(B . ?$,1Et(B)
1574             (?$(7!e(B . ?$,1Eu(B)
1575             (?$(7!f(B . ?$,1Ev(B)
1576             (?$(7!g(B . ?$,1Ew(B)
1577             (?$(7!h(B . ?$,1Ex(B)
1578             (?$(7!i(B . ?$,1Ey(B)
1579             (?$(7!j(B . ?$,1Ez(B)
1580             (?$(7!k(B . ?$,1E{(B)
1581             (?$(7!l(B . ?$,1E|(B)
1582             (?$(7!m(B . ?$,1E}(B)
1583             (?$(7!n(B . ?$,1E~(B)
1584             (?$(7!o(B . ?$,1E(B)
1585             (?$(7"!(B . ?$,1F (B)
1586             (?$(7""(B . ?$,1F!(B)
1587             (?$(7"#(B . ?$,1F"(B)
1588             (?$(7"$(B . ?$,1F#(B)
1589             (?$(7"%(B . ?$,1F$(B)
1590             (?$(7"&(B . ?$,1F%(B)
1591             (?$(7"'(B . ?$,1F&(B)
1592             (?$(7"((B . ?$,1F'(B)
1593             (?$(7"*(B . ?$,1F)(B)
1594             (?$(7"+(B . ?$,1F*(B)
1595             (?$(7",(B . ?$,1F+(B)
1596             (?$(7"-(B . ?$,1F,(B)
1597             (?$(7".(B . ?$,1F-(B)
1598             (?$(7"/(B . ?$,1F.(B)
1599             (?$(7"0(B . ?$,1F/(B)
1600             (?$(7"1(B . ?$,1F0(B)
1601             (?$(7"2(B . ?$,1F1(B)
1602             (?$(7"3(B . ?$,1F2(B)
1603             (?$(7"4(B . ?$,1F3(B)
1604             (?$(7"5(B . ?$,1F4(B)
1605             (?$(7"6(B . ?$,1F5(B)
1606             (?$(7"7(B . ?$,1F6(B)
1607             (?$(7"8(B . ?$,1F7(B)
1608             (?$(7"9(B . ?$,1F8(B)
1609             (?$(7":(B . ?$,1F9(B)
1610             (?$(7";(B . ?$,1F:(B)
1611             (?$(7"<(B . ?$,1F;(B)
1612             (?$(7"=(B . ?$,1F<(B)
1613             (?$(7">(B . ?$,1F=(B)
1614             (?$(7"?(B . ?$,1F>(B)
1615             (?$(7"@(B . ?$,1F?(B)
1616             (?$(7"A(B . ?$,1F@(B)
1617             (?$(7"B(B . ?$,1FA(B)
1618             (?$(7"C(B . ?$,1FB(B)
1619             (?$(7"D(B . ?$,1FC(B)
1620             (?$(7"E(B . ?$,1FD(B)
1621             (?$(7"F(B . ?$,1FE(B)
1622             (?$(7"G(B . ?$,1FF(B)
1623             (?$(7"H(B . ?$,1FG(B)
1624             (?$(7"I(B . ?$,1FH(B)
1625             (?$(7"J(B . ?$,1FI(B)
1626             (?$(7"K(B . ?$,1FJ(B)
1627             (?$(7"R(B . ?$,1FQ(B)
1628             (?$(7"S(B . ?$,1FR(B)
1629             (?$(7"T(B . ?$,1FS(B)
1630             (?$(7"U(B . ?$,1FT(B)
1631             (?$(7"V(B . ?$,1FU(B)
1632             (?$(7"W(B . ?$,1FV(B)
1633             (?$(7"X(B . ?$,1FW(B)
1634             (?$(7"Y(B . ?$,1FX(B)
1635             (?$(7"Z(B . ?$,1FY(B)
1636             (?$(7"[(B . ?$,1FZ(B)
1637             (?$(7"\(B . ?$,1F[(B)
1638             (?$(7"](B . ?$,1F\(B)
1639             (?$(7"^(B . ?$,1F](B)
1640             (?$(7"_(B . ?$,1F^(B)
1641             (?$(7"`(B . ?$,1F_(B)
1642             (?$(7"a(B . ?$,1F`(B)
1643             (?$(7"b(B . ?$,1Fa(B)
1644             (?$(7"c(B . ?$,1Fb(B)
1645             (?$(7"d(B . ?$,1Fc(B)
1646             (?$(7"e(B . ?$,1Fd(B)
1647             (?$(7"f(B . ?$,1Fe(B)
1648             (?$(7"g(B . ?$,1Ff(B)
1649             (?$(7"h(B . ?$,1Fg(B)
1650             (?$(7"i(B . ?$,1Fh(B)
1651             (?$(7"j(B . ?$,1Fi(B)
1652             (?$(7"k(B . ?$,1Fj(B)
1653             (?$(7"l(B . ?$,1Fk(B)
1654             (?$(7#!(B . ?$,1Fp(B)
1655             (?$(7#"(B . ?$,1Fq(B)
1656             (?$(7##(B . ?$,1Fr(B)
1657             (?$(7#$(B . ?$,1Fs(B)
1658             (?$(7#%(B . ?$,1Ft(B)
1659             (?$(7#&(B . ?$,1Fu(B)
1660             (?$(7#'(B . ?$,1Fv(B)
1661             (?$(7#((B . ?$,1Fw(B)
1662             (?$(7#*(B . ?$,1Fy(B)
1663             (?$(7#+(B . ?$,1Fz(B)
1664             (?$(7#,(B . ?$,1F{(B)
1665             (?$(7#-(B . ?$,1F|(B)
1666             (?$(7#.(B . ?$,1F}(B)
1667             (?$(7#/(B . ?$,1F~(B)
1668             (?$(7#0(B . ?$,1F(B)
1669             (?$(7#1(B . ?$,1G (B)
1670             (?$(7#2(B . ?$,1G!(B)
1671             (?$(7#3(B . ?$,1G"(B)
1672             (?$(7#4(B . ?$,1G#(B)
1673             (?$(7#5(B . ?$,1G$(B)
1674             (?$(7#6(B . ?$,1G%(B)
1675             (?$(7#7(B . ?$,1G&(B)
1676             (?$(7#8(B . ?$,1G'(B)
1677             (?$(7#9(B . ?$,1G((B)
1678             (?$(7#:(B . ?$,1G)(B)
1679             (?$(7#;(B . ?$,1G*(B)
1680             (?$(7#<(B . ?$,1G+(B)
1681             (?$(7#=(B . ?$,1G,(B)
1682             (?$(7#>(B . ?$,1G-(B)
1683             (?$(7#?(B . ?$,1G.(B)
1684             (?$(7#@(B . ?$,1G/(B)
1685             (?$(7#A(B . ?$,1G0(B)
1686             (?$(7#B(B . ?$,1G1(B)
1687             (?$(7#C(B . ?$,1G2(B)
1688             (?$(7#D(B . ?$,1G3(B)
1689             (?$(7#E(B . ?$,1G4(B)
1690             (?$(7#F(B . ?$,1G5(B)
1691             (?$(7#G(B . ?$,1G6(B)
1692             (?$(7#H(B . ?$,1G7(B)
1693             (?$(7#I(B . ?$,1G8(B)
1694             (?$(7#J(B . ?$,1G9(B)
1695             (?$(7#K(B . ?$,1G:(B)
1696             (?$(7#L(B . ?$,1G;(B)
1697             (?$(7#M(B . ?$,1G<(B)
1698             (?$(7#O(B . ?$,1G>(B)
1699             (?$(7#P(B . ?$,1G?(B)
1700             (?$(7#Q(B . ?$,1G@(B)
1701             (?$(7#R(B . ?$,1GA(B)
1702             (?$(7#S(B . ?$,1GB(B)
1703             (?$(7#T(B . ?$,1GC(B)
1704             (?$(7#U(B . ?$,1GD(B)
1705             (?$(7#V(B . ?$,1GE(B)
1706             (?$(7#W(B . ?$,1GF(B)
1707             (?$(7#X(B . ?$,1GG(B)
1708             (?$(7#Y(B . ?$,1GH(B)
1709             (?$(7#Z(B . ?$,1GI(B)
1710             (?$(7#[(B . ?$,1GJ(B)
1711             (?$(7#\(B . ?$,1GK(B)
1712             (?$(7#](B . ?$,1GL(B)
1713             (?$(7#`(B . ?$,1GO(B)))
1714    
1715          (ipa
1716           '((?,0 (B . ?i)
1717             (?,0!(B . ?$,1#j(B)
1718             (?,0"(B . ?e)
1719             (?,0#(B . ?$,1#[(B)
1720             (?,0$(B . ?,Af(B)
1721             (?,0%(B . ?a)
1722             (?,0&(B . ?$,1#h(B)
1723             (?,0'(B . ?$,1#Y(B)
1724             (?,0((B . ?$,1#P(B)
1725             (?,0)(B . ?$,1#o(B)
1726             (?,0*(B . ?$,1#d(B)
1727             (?,0+(B . ?$,1$,(B)
1728             (?,0,(B . ?$,1#Q(B)
1729             (?,0-(B . ?y)
1730             (?,0.(B . ?$,1$/(B)
1731             (?,0/(B . ?,Ax(B)
1732             (?,00(B . ?$,1 s(B)
1733             (?,01(B . ?$,1#v(B)
1734             (?,02(B . ?$,1$)(B)
1735             (?,03(B . ?$,1#u(B)
1736             (?,04(B . ?u)
1737             (?,05(B . ?$,1$*(B)
1738             (?,06(B . ?o)
1739             (?,07(B . ?$,1#T(B)
1740             (?,08(B . ?$,1#R(B)
1741             (?,0:(B . ?$,1#Z(B)
1742             (?,0@(B . ?p)
1743             (?,0A(B . ?b)
1744             (?,0B(B . ?t)
1745             (?,0C(B . ?d)
1746             (?,0D(B . ?k)
1747             (?,0E(B . ?g)
1748             (?,0F(B . ?f)
1749             (?,0G(B . ?v)
1750             (?,0H(B . ?$,1'8(B)
1751             (?,0I(B . ?,Ap(B)
1752             (?,0J(B . ?s)
1753             (?,0K(B . ?z)
1754             (?,0L(B . ?$,1$#(B)
1755             (?,0M(B . ?$,1$2(B)
1756             (?,0N(B . ?,Ag(B)
1757             (?,0O(B . ?x)
1758             (?,0P(B . ?$,1$!(B)
1759             (?,0Q(B . ?h)
1760             (?,0R(B . ?m)
1761             (?,0S(B . ?n)
1762             (?,0T(B . ?$,1#r(B)
1763             (?,0U(B . ?$,1 k(B)
1764             (?,0V(B . ?r)
1765             (?,0W(B . ?$,1$ (B)
1766             (?,0X(B . ?$,1#y(B)
1767             (?,0Y(B . ?j)
1768             (?,0Z(B . ?l)
1769             (?,0[(B . ?$,1$.(B)
1770             (?,0\(B . ?$,1$?(B)
1771             (?,0](B . ?$,1#e(B)
1772             (?,0^(B . ?w)
1773             (?,0_(B . ?$,1$-(B)
1774             (?,0p(B . ?$,1$h(B)
1775             (?,0q(B . ?$,1$l(B)
1776             (?,0r(B . ?$,1$p(B)))
1777    
1778          (ethiopic
1779           '((?$(3!!(B . ?$,1M@(B)
1780             (?$(3!"(B . ?$,1MA(B)
1781             (?$(3!#(B . ?$,1MB(B)
1782             (?$(3!$(B . ?$,1MC(B)
1783             (?$(3!%(B . ?$,1MD(B)
1784             (?$(3!&(B . ?$,1ME(B)
1785             (?$(3!'(B . ?$,1MF(B)
1786             (?$(3!)(B . ?$,1MH(B)
1787             (?$(3!*(B . ?$,1MI(B)
1788             (?$(3!+(B . ?$,1MJ(B)
1789             (?$(3!,(B . ?$,1MK(B)
1790             (?$(3!-(B . ?$,1ML(B)
1791             (?$(3!.(B . ?$,1MM(B)
1792             (?$(3!/(B . ?$,1MN(B)
1793             (?$(3!0(B . ?$,1MO(B)
1794             (?$(3!1(B . ?$,1MP(B)
1795             (?$(3!2(B . ?$,1MQ(B)
1796             (?$(3!3(B . ?$,1MR(B)
1797             (?$(3!4(B . ?$,1MS(B)
1798             (?$(3!5(B . ?$,1MT(B)
1799             (?$(3!6(B . ?$,1MU(B)
1800             (?$(3!7(B . ?$,1MV(B)
1801             (?$(3!8(B . ?$,1MW(B)
1802             (?$(3!9(B . ?$,1MX(B)
1803             (?$(3!:(B . ?$,1MY(B)
1804             (?$(3!;(B . ?$,1MZ(B)
1805             (?$(3!<(B . ?$,1M[(B)
1806             (?$(3!=(B . ?$,1M\(B)
1807             (?$(3!>(B . ?$,1M](B)
1808             (?$(3!?(B . ?$,1M^(B)
1809             (?$(3!@(B . ?$,1M_(B)
1810             (?$(3!A(B . ?$,1M`(B)
1811             (?$(3!B(B . ?$,1Ma(B)
1812             (?$(3!C(B . ?$,1Mb(B)
1813             (?$(3!D(B . ?$,1Mc(B)
1814             (?$(3!E(B . ?$,1Md(B)
1815             (?$(3!F(B . ?$,1Me(B)
1816             (?$(3!G(B . ?$,1Mf(B)
1817             (?$(3!H(B . ?$,1Mg(B)
1818             (?$(3!I(B . ?$,1Mh(B)
1819             (?$(3!J(B . ?$,1Mi(B)
1820             (?$(3!K(B . ?$,1Mj(B)
1821             (?$(3!L(B . ?$,1Mk(B)
1822             (?$(3!M(B . ?$,1Ml(B)
1823             (?$(3!N(B . ?$,1Mm(B)
1824             (?$(3!O(B . ?$,1Mn(B)
1825             (?$(3!P(B . ?$,1Mo(B)
1826             (?$(3!Q(B . ?$,1Mp(B)
1827             (?$(3!R(B . ?$,1Mq(B)
1828             (?$(3!S(B . ?$,1Mr(B)
1829             (?$(3!T(B . ?$,1Ms(B)
1830             (?$(3!U(B . ?$,1Mt(B)
1831             (?$(3!V(B . ?$,1Mu(B)
1832             (?$(3!W(B . ?$,1Mv(B)
1833             (?$(3!X(B . ?$,1Mw(B)
1834             (?$(3!Y(B . ?$,1Mx(B)
1835             (?$(3!Z(B . ?$,1My(B)
1836             (?$(3![(B . ?$,1Mz(B)
1837             (?$(3!\(B . ?$,1M{(B)
1838             (?$(3!](B . ?$,1M|(B)
1839             (?$(3!^(B . ?$,1M}(B)
1840             (?$(3!_(B . ?$,1M~(B)
1841             (?$(3!`(B . ?$,1M(B)
1842             (?$(3!a(B . ?$,1N (B)
1843             (?$(3!b(B . ?$,1N!(B)
1844             (?$(3!c(B . ?$,1N"(B)
1845             (?$(3!d(B . ?$,1N#(B)
1846             (?$(3!e(B . ?$,1N$(B)
1847             (?$(3!f(B . ?$,1N%(B)
1848             (?$(3!g(B . ?$,1N&(B)
1849             (?$(3!i(B . ?$,1N((B)
1850             (?$(3!k(B . ?$,1N*(B)
1851             (?$(3!l(B . ?$,1N+(B)
1852             (?$(3!m(B . ?$,1N,(B)
1853             (?$(3!n(B . ?$,1N-(B)
1854             (?$(3!q(B . ?$,1N0(B)
1855             (?$(3!r(B . ?$,1N1(B)
1856             (?$(3!s(B . ?$,1N2(B)
1857             (?$(3!t(B . ?$,1N3(B)
1858             (?$(3!u(B . ?$,1N4(B)
1859             (?$(3!v(B . ?$,1N5(B)
1860             (?$(3!w(B . ?$,1N6(B)
1861             (?$(3!y(B . ?$,1N8(B)
1862             (?$(3!{(B . ?$,1N:(B)
1863             (?$(3!|(B . ?$,1N;(B)
1864             (?$(3!}(B . ?$,1N<(B)
1865             (?$(3!~(B . ?$,1N=(B)
1866             (?$(3"#(B . ?$,1N@(B)
1867             (?$(3"$(B . ?$,1NA(B)
1868             (?$(3"%(B . ?$,1NB(B)
1869             (?$(3"&(B . ?$,1NC(B)
1870             (?$(3"'(B . ?$,1ND(B)
1871             (?$(3"((B . ?$,1NE(B)
1872             (?$(3")(B . ?$,1NF(B)
1873             (?$(3"*(B . ?$,1NG(B)
1874             (?$(3"+(B . ?$,1NH(B)
1875             (?$(3",(B . ?$,1NI(B)
1876             (?$(3"-(B . ?$,1NJ(B)
1877             (?$(3".(B . ?$,1NK(B)
1878             (?$(3"/(B . ?$,1NL(B)
1879             (?$(3"0(B . ?$,1NM(B)
1880             (?$(3"1(B . ?$,1NN(B)
1881             (?$(3"2(B . ?$,1NO(B)
1882             (?$(3"3(B . ?$,1NP(B)
1883             (?$(3"4(B . ?$,1NQ(B)
1884             (?$(3"5(B . ?$,1NR(B)
1885             (?$(3"6(B . ?$,1NS(B)
1886             (?$(3"7(B . ?$,1NT(B)
1887             (?$(3"8(B . ?$,1NU(B)
1888             (?$(3"9(B . ?$,1NV(B)
1889             (?$(3":(B . ?$,1NW(B)
1890             (?$(3";(B . ?$,1NX(B)
1891             (?$(3"<(B . ?$,1NY(B)
1892             (?$(3"=(B . ?$,1NZ(B)
1893             (?$(3">(B . ?$,1N[(B)
1894             (?$(3"?(B . ?$,1N\(B)
1895             (?$(3"@(B . ?$,1N](B)
1896             (?$(3"A(B . ?$,1N^(B)
1897             (?$(3"B(B . ?$,1N_(B)
1898             (?$(3"C(B . ?$,1N`(B)
1899             (?$(3"D(B . ?$,1Na(B)
1900             (?$(3"E(B . ?$,1Nb(B)
1901             (?$(3"F(B . ?$,1Nc(B)
1902             (?$(3"G(B . ?$,1Nd(B)
1903             (?$(3"H(B . ?$,1Ne(B)
1904             (?$(3"I(B . ?$,1Nf(B)
1905             (?$(3"K(B . ?$,1Nh(B)
1906             (?$(3"M(B . ?$,1Nj(B)
1907             (?$(3"N(B . ?$,1Nk(B)
1908             (?$(3"O(B . ?$,1Nl(B)
1909             (?$(3"P(B . ?$,1Nm(B)
1910             (?$(3"S(B . ?$,1Np(B)
1911             (?$(3"T(B . ?$,1Nq(B)
1912             (?$(3"U(B . ?$,1Nr(B)
1913             (?$(3"V(B . ?$,1Ns(B)
1914             (?$(3"W(B . ?$,1Nt(B)
1915             (?$(3"X(B . ?$,1Nu(B)
1916             (?$(3"Y(B . ?$,1Nv(B)
1917             (?$(3"Z(B . ?$,1Nw(B)
1918             (?$(3"[(B . ?$,1Nx(B)
1919             (?$(3"\(B . ?$,1Ny(B)
1920             (?$(3"](B . ?$,1Nz(B)
1921             (?$(3"^(B . ?$,1N{(B)
1922             (?$(3"_(B . ?$,1N|(B)
1923             (?$(3"`(B . ?$,1N}(B)
1924             (?$(3"a(B . ?$,1N~(B)
1925             (?$(3"b(B . ?$,1N(B)
1926             (?$(3"c(B . ?$,1O (B)
1927             (?$(3"d(B . ?$,1O!(B)
1928             (?$(3"e(B . ?$,1O"(B)
1929             (?$(3"f(B . ?$,1O#(B)
1930             (?$(3"g(B . ?$,1O$(B)
1931             (?$(3"h(B . ?$,1O%(B)
1932             (?$(3"i(B . ?$,1O&(B)
1933             (?$(3"j(B . ?$,1O'(B)
1934             (?$(3"k(B . ?$,1O((B)
1935             (?$(3"l(B . ?$,1O)(B)
1936             (?$(3"m(B . ?$,1O*(B)
1937             (?$(3"n(B . ?$,1O+(B)
1938             (?$(3"o(B . ?$,1O,(B)
1939             (?$(3"p(B . ?$,1O-(B)
1940             (?$(3"q(B . ?$,1O.(B)
1941             (?$(3"s(B . ?$,1O0(B)
1942             (?$(3"u(B . ?$,1O2(B)
1943             (?$(3"v(B . ?$,1O3(B)
1944             (?$(3"w(B . ?$,1O4(B)
1945             (?$(3"x(B . ?$,1O5(B)
1946             (?$(3"{(B . ?$,1O8(B)
1947             (?$(3"|(B . ?$,1O9(B)
1948             (?$(3"}(B . ?$,1O:(B)
1949             (?$(3"~(B . ?$,1O;(B)
1950             (?$(3#!(B . ?$,1O<(B)
1951             (?$(3#"(B . ?$,1O=(B)
1952             (?$(3##(B . ?$,1O>(B)
1953             (?$(3#%(B . ?$,1O@(B)
1954             (?$(3#'(B . ?$,1OB(B)
1955             (?$(3#((B . ?$,1OC(B)
1956             (?$(3#)(B . ?$,1OD(B)
1957             (?$(3#*(B . ?$,1OE(B)
1958             (?$(3#-(B . ?$,1OH(B)
1959             (?$(3#.(B . ?$,1OI(B)
1960             (?$(3#/(B . ?$,1OJ(B)
1961             (?$(3#0(B . ?$,1OK(B)
1962             (?$(3#1(B . ?$,1OL(B)
1963             (?$(3#2(B . ?$,1OM(B)
1964             (?$(3#3(B . ?$,1ON(B)
1965             (?$(3#5(B . ?$,1OP(B)
1966             (?$(3#6(B . ?$,1OQ(B)
1967             (?$(3#7(B . ?$,1OR(B)
1968             (?$(3#8(B . ?$,1OS(B)
1969             (?$(3#9(B . ?$,1OT(B)
1970             (?$(3#:(B . ?$,1OU(B)
1971             (?$(3#;(B . ?$,1OV(B)
1972             (?$(3#=(B . ?$,1OX(B)
1973             (?$(3#>(B . ?$,1OY(B)
1974             (?$(3#?(B . ?$,1OZ(B)
1975             (?$(3#@(B . ?$,1O[(B)
1976             (?$(3#A(B . ?$,1O\(B)
1977             (?$(3#B(B . ?$,1O](B)
1978             (?$(3#C(B . ?$,1O^(B)
1979             (?$(3#D(B . ?$,1O_(B)
1980             (?$(3#E(B . ?$,1O`(B)
1981             (?$(3#F(B . ?$,1Oa(B)
1982             (?$(3#G(B . ?$,1Ob(B)
1983             (?$(3#H(B . ?$,1Oc(B)
1984             (?$(3#I(B . ?$,1Od(B)
1985             (?$(3#J(B . ?$,1Oe(B)
1986             (?$(3#K(B . ?$,1Of(B)
1987             (?$(3#L(B . ?$,1Og(B)
1988             (?$(3#M(B . ?$,1Oh(B)
1989             (?$(3#N(B . ?$,1Oi(B)
1990             (?$(3#O(B . ?$,1Oj(B)
1991             (?$(3#P(B . ?$,1Ok(B)
1992             (?$(3#Q(B . ?$,1Ol(B)
1993             (?$(3#R(B . ?$,1Om(B)
1994             (?$(3#S(B . ?$,1On(B)
1995             (?$(3#U(B . ?$,1Op(B)
1996             (?$(3#V(B . ?$,1Oq(B)
1997             (?$(3#W(B . ?$,1Or(B)
1998             (?$(3#X(B . ?$,1Os(B)
1999             (?$(3#Y(B . ?$,1Ot(B)
2000             (?$(3#Z(B . ?$,1Ou(B)
2001             (?$(3#[(B . ?$,1Ov(B)
2002             (?$(3#\(B . ?$,1Ow(B)
2003             (?$(3#](B . ?$,1Ox(B)
2004             (?$(3#^(B . ?$,1Oy(B)
2005             (?$(3#_(B . ?$,1Oz(B)
2006             (?$(3#`(B . ?$,1O{(B)
2007             (?$(3#a(B . ?$,1O|(B)
2008             (?$(3#b(B . ?$,1O}(B)
2009             (?$(3#c(B . ?$,1O~(B)
2010             (?$(3#d(B . ?$,1O(B)
2011             (?$(3#e(B . ?$,1P (B)
2012             (?$(3#f(B . ?$,1P!(B)
2013             (?$(3#g(B . ?$,1P"(B)
2014             (?$(3#h(B . ?$,1P#(B)
2015             (?$(3#i(B . ?$,1P$(B)
2016             (?$(3#j(B . ?$,1P%(B)
2017             (?$(3#k(B . ?$,1P&(B)
2018             (?$(3#l(B . ?$,1P'(B)
2019             (?$(3#m(B . ?$,1P((B)
2020             (?$(3#n(B . ?$,1P)(B)
2021             (?$(3#o(B . ?$,1P*(B)
2022             (?$(3#p(B . ?$,1P+(B)
2023             (?$(3#q(B . ?$,1P,(B)
2024             (?$(3#r(B . ?$,1P-(B)
2025             (?$(3#s(B . ?$,1P.(B)
2026             (?$(3#u(B . ?$,1P0(B)
2027             (?$(3#w(B . ?$,1P2(B)
2028             (?$(3#x(B . ?$,1P3(B)
2029             (?$(3#y(B . ?$,1P4(B)
2030             (?$(3#z(B . ?$,1P5(B)
2031             (?$(3#}(B . ?$,1P8(B)
2032             (?$(3#~(B . ?$,1P9(B)
2033             (?$(3$!(B . ?$,1P:(B)
2034             (?$(3$"(B . ?$,1P;(B)
2035             (?$(3$#(B . ?$,1P<(B)
2036             (?$(3$$(B . ?$,1P=(B)
2037             (?$(3$%(B . ?$,1P>(B)
2038             (?$(3$'(B . ?$,1P@(B)
2039             (?$(3$((B . ?$,1PA(B)
2040             (?$(3$)(B . ?$,1PB(B)
2041             (?$(3$*(B . ?$,1PC(B)
2042             (?$(3$+(B . ?$,1PD(B)
2043             (?$(3$,(B . ?$,1PE(B)
2044             (?$(3$-(B . ?$,1PF(B)
2045             (?$(3$.(B . ?$,1PG(B)
2046             (?$(3$/(B . ?$,1PH(B)
2047             (?$(3$0(B . ?$,1PI(B)
2048             (?$(3$1(B . ?$,1PJ(B)
2049             (?$(3$2(B . ?$,1PK(B)
2050             (?$(3$3(B . ?$,1PL(B)
2051             (?$(3$4(B . ?$,1PM(B)
2052             (?$(3$5(B . ?$,1PN(B)
2053             (?$(3$6(B . ?$,1PO(B)
2054             (?$(3$7(B . ?$,1PP(B)
2055             (?$(3$8(B . ?$,1PQ(B)
2056             (?$(3$9(B . ?$,1PR(B)
2057             (?$(3$:(B . ?$,1PS(B)
2058             (?$(3$;(B . ?$,1PT(B)
2059             (?$(3$<(B . ?$,1PU(B)
2060             (?$(3$=(B . ?$,1PV(B)
2061             (?$(3$>(B . ?$,1PW(B)
2062             (?$(3$?(B . ?$,1PX(B)
2063             (?$(3$@(B . ?$,1PY(B)
2064             (?$(3$A(B . ?$,1PZ(B)
2065             (?$(3$B(B . ?$,1P[(B)
2066             (?$(3$C(B . ?$,1P\(B)
2067             (?$(3$D(B . ?$,1P](B)
2068             (?$(3$E(B . ?$,1P^(B)
2069             (?$(3$F(B . ?$,1P_(B)
2070             (?$(3$G(B . ?$,1P`(B)
2071             (?$(3$H(B . ?$,1Pa(B)
2072             (?$(3$I(B . ?$,1Pb(B)
2073             (?$(3$J(B . ?$,1Pc(B)
2074             (?$(3$K(B . ?$,1Pd(B)
2075             (?$(3$L(B . ?$,1Pe(B)
2076             (?$(3$M(B . ?$,1Pf(B)
2077             (?$(3$O(B . ?$,1Ph(B)
2078             (?$(3$P(B . ?$,1Pi(B)
2079             (?$(3$Q(B . ?$,1Pj(B)
2080             (?$(3$R(B . ?$,1Pk(B)
2081             (?$(3$S(B . ?$,1Pl(B)
2082             (?$(3$T(B . ?$,1Pm(B)
2083             (?$(3$U(B . ?$,1Pn(B)
2084             (?$(3$V(B . ?$,1Po(B)
2085             (?$(3$W(B . ?$,1Pp(B)
2086             (?$(3$X(B . ?$,1Pq(B)
2087             (?$(3$Y(B . ?$,1Pr(B)
2088             (?$(3$Z(B . ?$,1Ps(B)
2089             (?$(3$[(B . ?$,1Pt(B)
2090             (?$(3$\(B . ?$,1Pu(B)
2091             (?$(3$](B . ?$,1Pv(B)
2092             (?$(3$^(B . ?$,1Pw(B)
2093             (?$(3$_(B . ?$,1Px(B)
2094             (?$(3$`(B . ?$,1Py(B)
2095             (?$(3$a(B . ?$,1Pz(B)
2096             (?$(3$h(B . ?$,1Q!(B)
2097             (?$(3$i(B . ?$,1Q"(B)
2098             (?$(3$j(B . ?$,1Q#(B)
2099             (?$(3$k(B . ?$,1Q$(B)
2100             (?$(3$l(B . ?$,1Q%(B)
2101             (?$(3$m(B . ?$,1Q&(B)
2102             (?$(3$n(B . ?$,1Q'(B)
2103             (?$(3$o(B . ?$,1Q((B)
2104             (?$(3$p(B . ?$,1Q)(B)
2105             (?$(3$q(B . ?$,1Q*(B)
2106             (?$(3$r(B . ?$,1Q+(B)
2107             (?$(3$s(B . ?$,1Q,(B)
2108             (?$(3$t(B . ?$,1Q-(B)
2109             (?$(3$u(B . ?$,1Q.(B)
2110             (?$(3$v(B . ?$,1Q/(B)
2111             (?$(3$w(B . ?$,1Q0(B)
2112             (?$(3$x(B . ?$,1Q1(B)
2113             (?$(3$y(B . ?$,1Q2(B)
2114             (?$(3$z(B . ?$,1Q3(B)
2115             (?$(3${(B . ?$,1Q4(B)
2116             (?$(3$|(B . ?$,1Q5(B)
2117             (?$(3$}(B . ?$,1Q6(B)
2118             (?$(3$~(B . ?$,1Q7(B)
2119             (?$(3%!(B . ?$,1Q8(B)
2120             (?$(3%"(B . ?$,1Q9(B)
2121             (?$(3%#(B . ?$,1Q:(B)
2122             (?$(3%$(B . ?$,1Q;(B)
2123             (?$(3%%(B . ?$,1Q<(B)))
2124    
2125          (in-is13194-devanagari
2126           '((?(5!(B . ?$,15A(B)
2127             (?(5"(B . ?$,15B(B)
2128             (?(5#(B . ?$,15C(B)
2129             (?(5$(B . ?$,15E(B)
2130             (?(5%(B . ?$,15F(B)
2131             (?(5&(B . ?$,15G(B)
2132             (?(5'(B . ?$,15H(B)
2133             (?(5((B . ?$,15I(B)
2134             (?(5)(B . ?$,15J(B)
2135             (?(5*(B . ?$,15K(B)
2136             (?(5+(B . ?$,15N(B)
2137             (?(5,(B . ?$,15O(B)
2138             (?(5-(B . ?$,15P(B)
2139             (?(5.(B . ?$,15M(B)
2140             (?(5/(B . ?$,15R(B)
2141             (?(50(B . ?$,15S(B)
2142             (?(51(B . ?$,15T(B)
2143             (?(52(B . ?$,15M(B)
2144             (?(53(B . ?$,15U(B)
2145             (?(54(B . ?$,15V(B)
2146             (?(55(B . ?$,15W(B)
2147             (?(56(B . ?$,15X(B)
2148             (?(57(B . ?$,15Y(B)
2149             (?(58(B . ?$,15Z(B)
2150             (?(59(B . ?$,15[(B)
2151             (?(5:(B . ?$,15\(B)
2152             (?(5;(B . ?$,15](B)
2153             (?(5<(B . ?$,15^(B)
2154             (?(5=(B . ?$,15_(B)
2155             (?(5>(B . ?$,15`(B)
2156             (?(5?(B . ?$,15a(B)
2157             (?(5@(B . ?$,15b(B)
2158             (?(5A(B . ?$,15c(B)
2159             (?(5B(B . ?$,15d(B)
2160             (?(5C(B . ?$,15e(B)
2161             (?(5D(B . ?$,15f(B)
2162             (?(5E(B . ?$,15g(B)
2163             (?(5F(B . ?$,15h(B)
2164             (?(5G(B . ?$,15i(B)
2165             (?(5H(B . ?$,15j(B)
2166             (?(5I(B . ?$,15k(B)
2167             (?(5J(B . ?$,15l(B)
2168             (?(5K(B . ?$,15m(B)
2169             (?(5L(B . ?$,15n(B)
2170             (?(5M(B . ?$,15o(B)
2171             (?(5N(B . ?$,16?(B)
2172             (?(5O(B . ?$,15p(B)
2173             (?(5P(B . ?$,15q(B)
2174             (?(5Q(B . ?$,15r(B)
2175             (?(5R(B . ?$,15s(B)
2176             (?(5S(B . ?$,15t(B)
2177             (?(5T(B . ?$,15u(B)
2178             (?(5U(B . ?$,15v(B)
2179             (?(5V(B . ?$,15w(B)
2180             (?(5W(B . ?$,15x(B)
2181             (?(5X(B . ?$,15y(B)
2182             (?(5Z(B . ?$,15~(B)
2183             (?(5[(B . ?$,15(B)
2184             (?(5\(B . ?$,16 (B)
2185             (?(5](B . ?$,16!(B)
2186             (?(5^(B . ?$,16"(B)
2187             (?(5_(B . ?$,16#(B)
2188             (?(5`(B . ?$,16&(B)
2189             (?(5a(B . ?$,16'(B)
2190             (?(5b(B . ?$,16((B)
2191             (?(5c(B . ?$,16%(B)
2192             (?(5d(B . ?$,16*(B)
2193             (?(5e(B . ?$,16+(B)
2194             (?(5f(B . ?$,16,(B)
2195             (?(5g(B . ?$,16)(B)
2196             (?(5h(B . ?$,16-(B)
2197             (?(5i(B . ?$,15|(B)
2198             (?(5j(B . ?$,16D(B)
2199             (?(5q(B . ?$,16F(B)
2200             (?(5r(B . ?$,16G(B)
2201             (?(5s(B . ?$,16H(B)
2202             (?(5t(B . ?$,16I(B)
2203             (?(5u(B . ?$,16J(B)
2204             (?(5v(B . ?$,16K(B)
2205             (?(5w(B . ?$,16L(B)
2206             (?(5x(B . ?$,16M(B)
2207             (?(5y(B . ?$,16N(B)
2208             (?(5z(B . ?$,16O(B)))
2209    
2210          (katakana-jisx0201
2211           '((?(I!(B . ?$,3sa(B)
2212             (?\(I"(B . ?\$,3sb(B)
2213             (?\(I#(B . ?\$,3sc(B)
2214             (?(I$(B . ?$,3sd(B)
2215             (?(I%(B . ?$,3se(B)
2216             (?(I&(B . ?$,3sf(B)
2217             (?(I'(B . ?$,3sg(B)
2218             (?(I((B . ?$,3sh(B)
2219             (?(I)(B . ?$,3si(B)
2220             (?(I*(B . ?$,3sj(B)
2221             (?(I+(B . ?$,3sk(B)
2222             (?(I,(B . ?$,3sl(B)
2223             (?(I-(B . ?$,3sm(B)
2224             (?(I.(B . ?$,3sn(B)
2225             (?(I/(B . ?$,3so(B)
2226             (?(I0(B . ?$,3sp(B)
2227             (?(I1(B . ?$,3sq(B)
2228             (?(I2(B . ?$,3sr(B)
2229             (?(I3(B . ?$,3ss(B)
2230             (?(I4(B . ?$,3st(B)
2231             (?(I5(B . ?$,3su(B)
2232             (?(I6(B . ?$,3sv(B)
2233             (?(I7(B . ?$,3sw(B)
2234             (?(I8(B . ?$,3sx(B)
2235             (?(I9(B . ?$,3sy(B)
2236             (?(I:(B . ?$,3sz(B)
2237             (?(I;(B . ?$,3s{(B)
2238             (?(I<(B . ?$,3s|(B)
2239             (?(I=(B . ?$,3s}(B)
2240             (?(I>(B . ?$,3s~(B)
2241             (?(I?(B . ?$,3s(B)
2242             (?(I@(B . ?$,3t (B)
2243             (?(IA(B . ?$,3t!(B)
2244             (?(IB(B . ?$,3t"(B)
2245             (?(IC(B . ?$,3t#(B)
2246             (?(ID(B . ?$,3t$(B)
2247             (?(IE(B . ?$,3t%(B)
2248             (?(IF(B . ?$,3t&(B)
2249             (?(IG(B . ?$,3t'(B)
2250             (?(IH(B . ?$,3t((B)
2251             (?(II(B . ?$,3t)(B)
2252             (?(IJ(B . ?$,3t*(B)
2253             (?(IK(B . ?$,3t+(B)
2254             (?(IL(B . ?$,3t,(B)
2255             (?(IM(B . ?$,3t-(B)
2256             (?(IN(B . ?$,3t.(B)
2257             (?(IO(B . ?$,3t/(B)
2258             (?(IP(B . ?$,3t0(B)
2259             (?(IQ(B . ?$,3t1(B)
2260             (?(IR(B . ?$,3t2(B)
2261             (?(IS(B . ?$,3t3(B)
2262             (?(IT(B . ?$,3t4(B)
2263             (?(IU(B . ?$,3t5(B)
2264             (?(IV(B . ?$,3t6(B)
2265             (?(IW(B . ?$,3t7(B)
2266             (?(IX(B . ?$,3t8(B)
2267             (?(IY(B . ?$,3t9(B)
2268             (?(IZ(B . ?$,3t:(B)
2269             (?(I[(B . ?$,3t;(B)
2270             (?(I\(B . ?$,3t<(B)
2271             (?(I](B . ?$,3t=(B)
2272             (?(I^(B . ?$,3t>(B)
2273             (?(I_(B . ?$,3t?(B)))
2274    
2275          (chinese-sisheng
2276           '((?(0!(B . ?$,1 !(B)
2277             (?(0"(B . ?,Aa(B)
2278             (?(0#(B . ?$,1".(B)
2279             (?(0$(B . ?,A`(B)
2280             (?(0%(B . ?$,1 3(B)
2281             (?(0&(B . ?,Ai(B)
2282             (?(0'(B . ?$,1 ;(B)
2283             (?(0((B . ?,Ah(B)
2284             (?(0)(B . ?$,1 K(B)
2285             (?(0*(B . ?,Am(B)
2286             (?(0+(B . ?$,1"0(B)
2287             (?(0,(B . ?,Al(B)
2288             (?(0-(B . ?$,1 m(B)
2289             (?(0.(B . ?,As(B)
2290             (?(0/(B . ?$,1"2(B)
2291             (?(00(B . ?,Ar(B)
2292             (?(01(B . ?$,1!+(B)
2293             (?(02(B . ?,Az(B)
2294             (?(03(B . ?$,1"4(B)
2295             (?(04(B . ?,Ay(B)
2296             (?(05(B . ?$,1"6(B)
2297             (?(06(B . ?$,1"8(B)
2298             (?(07(B . ?$,1":(B)
2299             (?(08(B . ?$,1"<(B)
2300             (?(09(B . ?,A|(B)
2301             (?(0:(B . ?,Aj(B)
2302             (?(0<(B . ?$,1m(B)
2303             (?(0=(B . ?$,1 d(B)
2304             (?(0>(B . ?$,1 h(B)
2305             (?(0?(B . ?$,1"Y(B)
2306             (?(0A(B . ?$,1$i(B)
2307             (?(0B(B . ?$,1$j(B)
2308             (?(0C(B . ?$,1$g(B)
2309             (?(0D(B . ?$,1$k(B)
2310             (?(0E(B . ?$,2@%(B)
2311             (?(0F(B . ?$,2@&(B)
2312             (?(0G(B . ?$,2@'(B)
2313             (?(0H(B . ?$,2@((B)
2314             (?(0I(B . ?$,2@)(B)
2315             (?(0J(B . ?$,2@*(B)
2316             (?(0K(B . ?$,2@+(B)
2317             (?(0L(B . ?$,2@,(B)
2318             (?(0M(B . ?$,2@-(B)
2319             (?(0N(B . ?$,2@.(B)
2320             (?(0O(B . ?$,2@/(B)
2321             (?(0P(B . ?$,2@0(B)
2322             (?(0Q(B . ?$,2@1(B)
2323             (?(0R(B . ?$,2@2(B)
2324             (?(0S(B . ?$,2@3(B)
2325             (?(0T(B . ?$,2@4(B)
2326             (?(0U(B . ?$,2@5(B)
2327             (?(0V(B . ?$,2@6(B)
2328             (?(0W(B . ?$,2@7(B)
2329             (?(0X(B . ?$,2@8(B)
2330             (?(0Y(B . ?$,2@9(B)
2331             (?(0Z(B . ?$,2@:(B)
2332             (?(0[(B . ?$,2@;(B)
2333             (?(0\(B . ?$,2@<(B)
2334             (?(0](B . ?$,2@=(B)
2335             (?(0^(B . ?$,2@>(B)
2336             (?(0_(B . ?$,2@?(B)
2337             (?(0`(B . ?$,2@@(B)
2338             (?(0a(B . ?$,2@A(B)
2339             (?(0b(B . ?$,2@B(B)
2340             (?(0c(B . ?$,2@C(B)
2341             (?(0d(B . ?$,2@D(B)
2342             (?(0e(B . ?$,2@E(B)
2343             (?(0f(B . ?$,2@F(B)
2344             (?(0g(B . ?$,2@G(B)
2345             (?(0h(B . ?$,2@H(B)
2346             (?(0i(B . ?$,2@I(B)))
2347    
2348          (lao
2349           '((?(1!(B . ?$,1D!(B)
2350             (?(1"(B . ?$,1D"(B)
2351             (?(1$(B . ?$,1D$(B)
2352             (?(1'(B . ?$,1D'(B)
2353             (?(1((B . ?$,1D((B)
2354             (?(1*(B . ?$,1D*(B)
2355             (?(1-(B . ?$,1D-(B)
2356             (?(14(B . ?$,1D4(B)
2357             (?(15(B . ?$,1D5(B)
2358             (?(16(B . ?$,1D6(B)
2359             (?(17(B . ?$,1D7(B)
2360             (?(19(B . ?$,1D9(B)
2361             (?(1:(B . ?$,1D:(B)
2362             (?(1;(B . ?$,1D;(B)
2363             (?(1<(B . ?$,1D<(B)
2364             (?(1=(B . ?$,1D=(B)
2365             (?(1>(B . ?$,1D>(B)
2366             (?(1?(B . ?$,1D?(B)
2367             (?(1A(B . ?$,1DA(B)
2368             (?(1B(B . ?$,1DB(B)
2369             (?(1C(B . ?$,1DC(B)
2370             (?(1E(B . ?$,1DE(B)
2371             (?(1G(B . ?$,1DG(B)
2372             (?(1J(B . ?$,1DJ(B)
2373             (?(1K(B . ?$,1DK(B)
2374             (?(1M(B . ?$,1DM(B)
2375             (?(1N(B . ?$,1DN(B)
2376             (?(1O(B . ?$,1DO(B)
2377             (?(1P(B . ?$,1DP(B)
2378             (?(1Q(B . ?$,1DQ(B)
2379             (?(1R(B . ?$,1DR(B)
2380             (?(1S(B . ?$,1DS(B)
2381             (?(1T(B . ?$,1DT(B)
2382             (?(1U(B . ?$,1DU(B)
2383             (?(1V(B . ?$,1DV(B)
2384             (?(1W(B . ?$,1DW(B)
2385             (?(1X(B . ?$,1DX(B)
2386             (?(1Y(B . ?$,1DY(B)
2387             (?(1[(B . ?$,1D[(B)
2388             (?(1\(B . ?$,1D\(B)
2389             (?(1](B . ?$,1D](B)
2390             (?(1`(B . ?$,1D`(B)
2391             (?(1a(B . ?$,1Da(B)
2392             (?(1b(B . ?$,1Db(B)
2393             (?(1c(B . ?$,1Dc(B)
2394             (?(1d(B . ?$,1Dd(B)
2395             (?(1f(B . ?$,1Df(B)
2396             (?(1h(B . ?$,1Dh(B)
2397             (?(1i(B . ?$,1Di(B)
2398             (?(1j(B . ?$,1Dj(B)
2399             (?(1k(B . ?$,1Dk(B)
2400             (?(1l(B . ?$,1Dl(B)
2401             (?(1m(B . ?$,1Dm(B)
2402             (?(1p(B . ?$,1Dp(B)
2403             (?(1q(B . ?$,1Dq(B)
2404             (?(1r(B . ?$,1Dr(B)
2405             (?(1s(B . ?$,1Ds(B)
2406             (?(1t(B . ?$,1Dt(B)
2407             (?(1u(B . ?$,1Du(B)
2408             (?(1v(B . ?$,1Dv(B)
2409             (?(1w(B . ?$,1Dw(B)
2410             (?(1x(B . ?$,1Dx(B)
2411             (?(1y(B . ?$,1Dy(B)
2412             (?(1|(B . ?$,1D|(B)
2413             (?(1}(B . ?$,1D}(B))))
2414      (let ((table (make-char-table 'safe-chars))
2415            safe-charsets)
2416        (dolist (cs '(vietnamese-viscii lao chinese-sisheng ipa
2417                      katakana-jisx0201 thai-tis620 tibetan-iso-8bit
2418                      in-is13194-devanagari ethiopic))
2419          ;; These tables could be used as translation-table-for-encode by
2420          ;; the relevant coding systems.
2421          (let ((encode-translator
2422                 (if (coding-system-p cs)
2423                     (set (intern (format "ucs-%s-encode-table" cs))
2424                          (make-translation-table)))))
2425            (dolist (pair (symbol-value cs))
2426              (aset ucs-mule-to-mule-unicode (car pair) (cdr pair))
2427              (if encode-translator
2428                  (aset encode-translator (cdr pair) (car pair))))
2429            (if (charsetp cs)
2430                (push cs safe-charsets)
2431              (setq safe-charsets
2432                    (append (delq 'ascii (coding-system-get cs 'safe-charsets))
2433                            safe-charsets)))))
2434        (dolist (c safe-charsets)
2435          (aset table (make-char c) t))
2436        (coding-system-put 'mule-utf-8 'safe-charsets
2437                           (append (coding-system-get 'mule-utf-8 'safe-charsets)
2438                                   safe-charsets))
2439        (register-char-codings 'mule-utf-8 table)))
2440    
2441  (provide 'ucs-tables)  (provide 'ucs-tables)
2442    
2443  ;;; ucs-tables.el ends here  ;;; ucs-tables.el ends here

Legend:
Removed from v.1.2.2.2  
changed lines
  Added in v.1.2.2.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26