(g2-UU+5B73): Add `=decomposition@hanyo-denshi'.
[chise/xemacs-chise.git.1] / lisp / utf-2000 / isolated-char.el
1 ;;; isolated-char.el --- Set up isolated-characters.
2
3 ;; Copyright (C) 2001,2002,2003,2005,2011 MORIOKA Tomohiko
4
5 ;; Author: MORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
6 ;; Keywords: UTF-2000, UCS-4, character, CCS, multiscript, multilingual
7
8 ;; This file is part of XEmacs CHISE.
9
10 ;; XEmacs CHISE is free software; you can redistribute it and/or
11 ;; modify it under the terms of the GNU General Public License as
12 ;; published by the Free Software Foundation; either version 2, or (at
13 ;; your option) any later version.
14
15 ;; XEmacs CHISE is distributed in the hope that it will be useful, but
16 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 ;; General Public License for more details.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with XEmacs CHISE; see the file COPYING.  If not, write to
22 ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 ;; Boston, MA 02111-1307, USA.
24
25 ;;; Code:
26
27 ;; MULE-VISCII
28
29 (let ((i #xA0)
30       v)
31   (while (<= i #xFF)
32     (put-char-attribute (decode-builtin-char 'latin-viscii-lower i)
33                         'latin-viscii i)
34     (setq i (1+ i))))
35
36 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA1)
37                     'latin-viscii #x81)
38 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA2)
39                     'latin-viscii #x82)
40 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA3)
41                     'latin-viscii #x83)
42 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA4)
43                     'latin-viscii #x84)
44 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA5)
45                     'latin-viscii #x85)
46 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA6)
47                     'latin-viscii #x86)
48 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA7)
49                     'latin-viscii #x87)
50 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA8)
51                     'latin-viscii #x88)
52 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xA9)
53                     'latin-viscii #x89)
54 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAA)
55                     'latin-viscii #x8A)
56 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAB)
57                     'latin-viscii #x8B)
58 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAC)
59                     'latin-viscii #x8C)
60 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAD)
61                     'latin-viscii #x8D)
62 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAE)
63                     'latin-viscii #x8E)
64 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xAF)
65                     'latin-viscii #x8F)
66 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB0)
67                     'latin-viscii #x90)
68 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB1)
69                     'latin-viscii #x91)
70 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB2)
71                     'latin-viscii #x92)
72 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB5)
73                     'latin-viscii #x93)
74 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB6)
75                     'latin-viscii #x96)
76 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB7)
77                     'latin-viscii #x97)
78 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xB8)
79                     'latin-viscii #x98)
80 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xBD)
81                     'latin-viscii #xB4)
82 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xBE)
83                     'latin-viscii #x95)
84 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xC6)
85                     'latin-viscii #x02)
86 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xC7)
87                     'latin-viscii #x05)
88 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xCF)
89                     'latin-viscii #x9F)
90 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xD1)
91                     'latin-viscii #xBA)
92 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xD5)
93                     'latin-viscii #x80)
94 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xD6)
95                     'latin-viscii #x14)
96 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xD7)
97                     'latin-viscii #xBB)
98 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xD8)
99                     'latin-viscii #xBC)
100 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xDB)
101                     'latin-viscii #x19)
102 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xDC)
103                     'latin-viscii #x1E)
104 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xDE)
105                     'latin-viscii #xB3)
106 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xDF)
107                     'latin-viscii #xBF)
108 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE0)
109                     'latin-viscii #xC0)
110 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE1)
111                     'latin-viscii #xC1)
112 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE2)
113                     'latin-viscii #xC2)
114 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE3)
115                     'latin-viscii #xC3)
116 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE4)
117                     'latin-viscii #xC4)
118 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE5)
119                     'latin-viscii #xC5)
120 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE6)
121                     'latin-viscii #xFF)
122 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE7)
123                     'latin-viscii #x06)
124 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE8)
125                     'latin-viscii #xC8)
126 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xE9)
127                     'latin-viscii #xC9)
128 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xEA)
129                     'latin-viscii #xCA)
130 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xEB)
131                     'latin-viscii #xCB)
132 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xEC)
133                     'latin-viscii #xCC)
134 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xED)
135                     'latin-viscii #xCD)
136 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xEE)
137                     'latin-viscii #xCE)
138 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xEF)
139                     'latin-viscii #x9B)
140 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF0)
141                     'latin-viscii #xD0)
142 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF1)
143                     'latin-viscii #xB9)
144 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF2)
145                     'latin-viscii #xD2)
146 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF3)
147                     'latin-viscii #xD3)
148 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF4)
149                     'latin-viscii #xD4)
150 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF5)
151                     'latin-viscii #xA0)
152 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF6)
153                     'latin-viscii #x99)
154 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF7)
155                     'latin-viscii #x9A)
156 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF8)
157                     'latin-viscii #x9E)
158 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xF9)
159                     'latin-viscii #xD9)
160 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xFA)
161                     'latin-viscii #xDA)
162 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xFB)
163                     'latin-viscii #x9D)
164 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xFC)
165                     'latin-viscii #x9C)
166 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xFD)
167                     'latin-viscii #xDD)
168 (put-char-attribute (decode-builtin-char 'latin-viscii-upper #xFE)
169                     'latin-viscii #x94)
170
171
172 ;; GT 2000
173
174 (with-temp-buffer
175   (buffer-disable-undo)
176   (insert-file-contents "../etc/char-data/GT-RS.txt")
177     (goto-char (point-min))
178     (let (gt-code radical strokes plane code)
179       (while (re-search-forward "\\([0-9]+\\),\\([0-9]+\\|---\\)?,\\([0-9]+\\)?,GT\\([0-9]+\\),....,\\([0-9A-F][0-9A-F][0-9A-F][0-9A-F]\\)" nil t)
180         (setq gt-code (string-to-int (match-string 1))
181               plane (string-to-int (match-string 4))
182               code (string-to-int (match-string 5) 16))
183         ;; (put-char-attribute (decode-builtin-char '=gt gt-code)
184         ;;                     '=gt gt-code)
185         (put-char-attribute (decode-builtin-char '=gt gt-code)
186                             (intern (format "=gt-pj-%d" plane))
187                             code)
188         )))
189
190 (with-temp-buffer
191   (buffer-disable-undo)
192   (insert-file-contents "../etc/char-data/GT-fmap-K1.txt")
193   (insert-file-contents "../etc/char-data/GT-fmap-K2.txt")
194   (insert-file-contents "../etc/char-data/GT-fmap-K3.txt")
195   (insert-file-contents "../etc/char-data/GT-fmap-K4.txt")
196   (goto-char (point-min))
197   (let (plane code gt-code)
198     (while (re-search-forward "^GTps-\\([0-9k][0-9]\\)-\\([0-9A-F][0-9A-F][0-9A-F][0-9A-F]\\)\tGT-K\\([0-9]+\\)" nil t)
199       (setq plane (match-string 1)
200             code (string-to-int (match-string 2) 16)
201             gt-code (string-to-int (match-string 3)))
202       (if (eq (aref plane 0) ?0)
203           (setq plane (substring plane 1)))
204       (put-char-attribute (decode-builtin-char '=gt-k gt-code)
205                           (intern (format "=gt-pj-%s" plane))
206                           (encode-char
207                            (decode-shift-jis-char (cons (/ code 256)
208                                                         (% code 256)))
209                            'japanese-jisx0208))
210       )))
211
212 ;; (define-char
213 ;;   '((=gt-pj-4   . #x3844)
214 ;;     (=gt        . 19655)
215 ;;     ))
216 ;; (define-char
217 ;;   '((=gt-pj-4   . #x3845)
218 ;;     (=gt        . 19656)
219 ;;     ))
220 ;; (define-char
221 ;;   '((=gt-pj-9   . #x4D7B)
222 ;;     (=gt        . 19861)
223 ;;     ))
224 ;; (define-char
225 ;;   '((=gt-pj-4   . #x493C)
226 ;;     (=gt        . 21862)
227 ;;     ))
228 ;; (define-char
229 ;;   '((=gt-pj-4   . #x6D51)
230 ;;     (=gt        . 26606)
231 ;;     ))
232 ;; (define-char
233 ;;   '((=gt-pj-5   . #x4579)
234 ;;     (=gt        . 30254)
235 ;;     ))
236 ;; (define-char
237 ;;   '((=gt-pj-11 . #x5277)
238 ;;     (=gt        . 40268)
239 ;;     ))
240 ;; (define-char
241 ;;   '((=gt-pj-1   . #x3F6B)
242 ;;     (=gt        . 52230)
243 ;;     ))
244 ;; (define-char
245 ;;   '((=gt-pj-7   . #x5821)
246 ;;     (=gt        . 52349)
247 ;;     ))
248 ;; (define-char
249 ;;   '((=gt-pj-9   . #x4C4B)
250 ;;     (=gt        . 56364)
251 ;;     ))
252 ;; (define-char
253 ;;   '((=gt-pj-11  . #x5A40)
254 ;;     (=gt        . 67403)
255 ;;     ))
256
257 ;;; isolated-char.el ends here