Merge r21-4-11-chise-0_20-=ucs.
[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 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 UTF-2000.
9
10 ;; XEmacs UTF-2000 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 UTF-2000 is distributed in the hope that it will be useful,
16 ;; but 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 UTF-2000; 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                             (intern (format "=gt-pj-%d" plane))
185                             code)
186         )))
187
188 (with-temp-buffer
189   (buffer-disable-undo)
190   (insert-file-contents "../etc/char-data/GT-fmap-K1.txt")
191   (insert-file-contents "../etc/char-data/GT-fmap-K2.txt")
192   (insert-file-contents "../etc/char-data/GT-fmap-K3.txt")
193   (insert-file-contents "../etc/char-data/GT-fmap-K4.txt")
194   (goto-char (point-min))
195   (let (plane code gt-code)
196     (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)
197       (setq plane (match-string 1)
198             code (string-to-int (match-string 2) 16)
199             gt-code (string-to-int (match-string 3)))
200       (if (eq (aref plane 0) ?0)
201           (setq plane (substring plane 1)))
202       (put-char-attribute (decode-builtin-char '=gt-k gt-code)
203                           (intern (format "=gt-pj-%s" plane))
204                           (encode-char
205                            (decode-shift-jis-char (cons (/ code 256)
206                                                         (% code 256)))
207                            'japanese-jisx0208))
208       )))
209
210 (define-char
211   '((=gt-pj-4   . #x3844)
212     (=gt        . 19655)
213     ))
214 (define-char
215   '((=gt-pj-4   . #x3845)
216     (=gt        . 19656)
217     ))
218 (define-char
219   '((=gt-pj-9   . #x4D7B)
220     (=gt        . 19861)
221     ))
222 (define-char
223   '((=gt-pj-4   . #x493C)
224     (=gt        . 21862)
225     ))
226 (define-char
227   '((=gt-pj-4   . #x6D51)
228     (=gt        . 26606)
229     ))
230 (define-char
231   '((=gt-pj-5   . #x4579)
232     (=gt        . 30254)
233     ))
234 (define-char
235   '((=gt-pj-11 . #x5277)
236     (=gt        . 40268)
237     ))
238 (define-char
239   '((=gt-pj-1   . #x3F6B)
240     (=gt        . 52230)
241     ))
242 (define-char
243   '((=gt-pj-7   . #x5821)
244     (=gt        . 52349)
245     ))
246 (define-char
247   '((=gt-pj-9   . #x4C4B)
248     (=gt        . 56364)
249     ))
250 (define-char
251   '((=gt-pj-11  . #x5A40)
252     (=gt        . 60403)
253     ))
254
255 ;;; isolated-char.el ends here