502
|
1 ;;; mule-charset.el --- Charset functions for Mule. -*- coding: iso-2022-7bit; -*-
|
428
|
2
|
788
|
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
|
|
4 ;; Copyright (C) 1992, 2001 Free Software Foundation, Inc.
|
|
5 ;; Licensed to the Free Software Foundation.
|
428
|
6 ;; Copyright (C) 1995 Amdahl Corporation.
|
|
7 ;; Copyright (C) 1996 Sun Microsystems.
|
777
|
8 ;; Copyright (C) 2002 Ben Wing.
|
428
|
9
|
|
10 ;; Author: Unknown
|
|
11 ;; Keywords: i18n, mule, internal
|
|
12
|
|
13 ;; This file is part of XEmacs.
|
|
14
|
|
15 ;; XEmacs is free software; you can redistribute it and/or modify it
|
|
16 ;; under the terms of the GNU General Public License as published by
|
|
17 ;; the Free Software Foundation; either version 2, or (at your option)
|
|
18 ;; any later version.
|
|
19
|
|
20 ;; XEmacs is distributed in the hope that it will be useful, but
|
|
21 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
23 ;; General Public License for more details.
|
|
24
|
|
25 ;; You should have received a copy of the GNU General Public License
|
|
26 ;; along with XEmacs; see the file COPYING. If not, write to the
|
|
27 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
28 ;; Boston, MA 02111-1307, USA.
|
|
29
|
|
30 ;;; Synched up with: Not synched. API at source level synched with FSF 20.3.9.
|
|
31
|
|
32 ;;; Commentary:
|
|
33
|
|
34 ;; These functions are not compatible at the bytecode level with Emacs/Mule,
|
|
35 ;; and they never will be. -sb [1999-05-26]
|
|
36
|
|
37 ;;; Code:
|
|
38
|
|
39 ;;;; Classifying text according to charsets
|
|
40
|
1309
|
41 ;; the old version was broken in a couple of ways
|
|
42 ;; this is one of several versions, I tried a hash as well as the
|
|
43 ;; `prev-charset' cache used in the old version, but this was definitely
|
|
44 ;; faster than the hash version and marginally faster than the prev-charset
|
|
45 ;; version
|
|
46 ;; #### this really needs to be moved into C
|
428
|
47 (defun charsets-in-region (start end &optional buffer)
|
|
48 "Return a list of the charsets in the region between START and END.
|
|
49 BUFFER defaults to the current buffer if omitted."
|
|
50 (let (list)
|
|
51 (save-excursion
|
|
52 (if buffer
|
|
53 (set-buffer buffer))
|
|
54 (save-restriction
|
|
55 (narrow-to-region start end)
|
|
56 (goto-char (point-min))
|
|
57 (while (not (eobp))
|
1309
|
58 ;; the first test will usually succeed on testing the
|
|
59 ;; car of the list; don't waste time let-binding.
|
|
60 (or (memq (char-charset (char-after (point))) list)
|
|
61 (setq list (cons (char-charset (char-after (point))) list)))
|
428
|
62 (forward-char))))
|
|
63 list))
|
|
64
|
3162
|
65 (defun fixed-charsets-in-region (start end &optional buffer)
|
|
66 "Return a list of the charsets in the region between START and END.
|
|
67 BUFFER defaults to the current buffer if omitted."
|
|
68 (let (list)
|
|
69 (save-excursion
|
|
70 (if buffer
|
|
71 (set-buffer buffer))
|
|
72 (save-restriction
|
|
73 (narrow-to-region start end)
|
|
74 (goto-char (point-min))
|
|
75 (let ((prev-charset nil))
|
|
76 (while (not (eobp))
|
|
77 (let* ((charset (char-charset (char-after (point)))))
|
|
78 (if (not (eq prev-charset charset))
|
|
79 (progn
|
|
80 (setq prev-charset charset)
|
|
81 (or (memq charset list)
|
|
82 (setq list (cons charset list))))))
|
|
83 (forward-char)))))
|
|
84 list))
|
|
85
|
|
86 (defun list-charsets-in-region (start end &optional buffer)
|
|
87 "Return a list of the charsets in the region between START and END.
|
|
88 BUFFER defaults to the current buffer if omitted."
|
|
89 (let (list)
|
|
90 (save-excursion
|
|
91 (if buffer
|
|
92 (set-buffer buffer))
|
|
93 (save-restriction
|
|
94 (narrow-to-region start end)
|
|
95 (goto-char (point-min))
|
|
96 ;; this could be optimized by maintaining prev-charset and checking
|
|
97 ;; for equality, but memq is not that slow for a short list.
|
|
98 (while (not (eobp))
|
|
99 (let* ((charset (char-charset (char-after (point)))))
|
|
100 (or (memq charset list)
|
|
101 (setq list (cons charset list))))
|
|
102 (forward-char))))
|
|
103 list))
|
|
104
|
|
105 (defun hash-charsets-in-region (start end &optional buffer)
|
|
106 "Return a list of the charsets in the region between START and END.
|
|
107 BUFFER defaults to the current buffer if omitted."
|
|
108 (let ((ht (make-hash-table :size 10)))
|
|
109 (save-excursion
|
|
110 (if buffer
|
|
111 (set-buffer buffer))
|
|
112 (save-restriction
|
|
113 (narrow-to-region start end)
|
|
114 (goto-char (point-min))
|
|
115 (while (not (eobp))
|
|
116 (puthash (char-charset (char-after (point))) t ht)
|
|
117 (forward-char))))
|
|
118 (hash-table-key-list ht)))
|
|
119
|
|
120 (defun c-charsets-in-region (start end &optional buffer)
|
|
121 "Return a list of the charsets in the region between START and END.
|
|
122 BUFFER defaults to the current buffer if omitted."
|
|
123 (setq buffer (or buffer (current-buffer)))
|
|
124 (charsets-in-region-internal buffer start end))
|
|
125
|
428
|
126 (defun charsets-in-string (string)
|
|
127 "Return a list of the charsets in STRING."
|
1309
|
128 (let (list)
|
|
129 (mapc (lambda (ch)
|
|
130 ;; the first test will usually succeed on testing the
|
|
131 ;; car of the list; don't waste time let-binding.
|
|
132 (or (memq (char-charset ch) list)
|
|
133 (setq list (cons (char-charset ch) list))))
|
|
134 string)
|
428
|
135 list))
|
|
136
|
3162
|
137 (defun c-charsets-in-string (string)
|
|
138 "Return a list of the charsets in STRING."
|
|
139 (charsets-in-string-internal string nil nil))
|
|
140
|
|
141 (or (fboundp 'charsets-in-string)
|
|
142 (defalias 'charsets-in-string 'c-charsets-in-string))
|
771
|
143 (defalias 'find-charset-string 'charsets-in-string)
|
3162
|
144 (or (fboundp 'charsets-in-region)
|
|
145 (defalias 'charsets-in-region 'c-charsets-in-region))
|
771
|
146 (defalias 'find-charset-region 'charsets-in-region)
|
818
|
147
|
428
|
148
|
|
149 ;;;; Charset accessors
|
|
150
|
|
151 (defun charset-iso-graphic-plane (charset)
|
|
152 "Return the `graphic' property of CHARSET.
|
|
153 See `make-charset'."
|
|
154 (charset-property charset 'graphic))
|
|
155
|
|
156 (defun charset-iso-final-char (charset)
|
|
157 "Return the final byte of the ISO 2022 escape sequence designating CHARSET."
|
|
158 (charset-property charset 'final))
|
|
159
|
|
160 (defun charset-chars (charset)
|
|
161 "Return the number of characters per dimension of CHARSET."
|
|
162 (charset-property charset 'chars))
|
|
163
|
|
164 (defun charset-width (charset)
|
|
165 "Return the number of display columns per character of CHARSET.
|
|
166 This only applies to TTY mode (under X, the actual display width can
|
|
167 be automatically determined)."
|
|
168 (charset-property charset 'columns))
|
|
169
|
|
170 ;; #### FSFmacs returns 0
|
|
171 (defun charset-direction (charset)
|
|
172 "Return the display direction (0 for `l2r' or 1 for `r2l') of CHARSET.
|
|
173 Only left-to-right is currently implemented."
|
|
174 (if (eq (charset-property charset 'direction) 'l2r)
|
|
175 0
|
|
176 1))
|
|
177
|
|
178 ;; Not in Emacs/Mule
|
|
179 (defun charset-registry (charset)
|
|
180 "Return the registry of CHARSET.
|
|
181 This is a regular expression matching the registry field of fonts
|
|
182 that can display the characters in CHARSET."
|
|
183 (charset-property charset 'registry))
|
|
184
|
|
185 (defun charset-ccl-program (charset)
|
|
186 "Return the CCL program of CHARSET.
|
|
187 See `make-charset'."
|
|
188 (charset-property charset 'ccl-program))
|
|
189
|
|
190 (defun charset-bytes (charset)
|
|
191 "Useless in XEmacs, returns 1."
|
|
192 1)
|
|
193
|
|
194 (define-obsolete-function-alias 'charset-columns 'charset-width) ;; 19990409
|
|
195 (define-obsolete-function-alias 'charset-final 'charset-iso-final-char) ;; 19990409
|
|
196 (define-obsolete-function-alias 'charset-graphic 'charset-iso-graphic-plane) ;; 19990409
|
|
197 (define-obsolete-function-alias 'charset-doc-string 'charset-description) ;; 19990409
|
|
198
|
|
199 ;;;; Define setf methods for all settable Charset properties
|
|
200
|
|
201 (defsetf charset-registry set-charset-registry)
|
|
202 (defsetf charset-ccl-program set-charset-ccl-program)
|
|
203
|
|
204 ;;; FSF compatibility functions
|
|
205 (defun charset-after (&optional pos)
|
|
206 "Return charset of a character in current buffer at position POS.
|
|
207 If POS is nil, it defauls to the current point.
|
|
208 If POS is out of range, the value is nil."
|
|
209 (when (null pos)
|
|
210 (setq pos (point)))
|
|
211 (check-argument-type 'integerp pos)
|
|
212 (unless (or (< pos (point-min))
|
|
213 (> pos (point-max)))
|
|
214 (char-charset (char-after pos))))
|
|
215
|
|
216 ;; Yuck!
|
771
|
217 ;; We're not going to support these.
|
|
218 ;(defun charset-info (charset) [incredibly broken function with random vectors]
|
|
219 ;(defun define-charset (...) [incredibly broken function with random vectors]
|
428
|
220
|
|
221 ;;; Charset property
|
|
222
|
|
223 (defalias 'get-charset-property 'get)
|
|
224 (defalias 'put-charset-property 'put)
|
|
225 (defalias 'charset-plist 'object-plist)
|
|
226 (defalias 'set-charset-plist 'setplist)
|
|
227
|
771
|
228
|
788
|
229 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
230 ; translation tables ;
|
|
231 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
232
|
|
233 (defstruct (translation-table (:constructor internal-make-translation-table))
|
|
234 forward
|
|
235 reverse)
|
|
236
|
|
237 (defun make-translation-table (&rest args)
|
|
238 "Make a translation table from arguments.
|
2116
|
239 A translation table is a char table intended for character translation
|
|
240 in CCL programs.
|
788
|
241
|
|
242 Each argument is a list of elemnts of the form (FROM . TO), where FROM
|
|
243 is a character to be translated to TO.
|
|
244
|
|
245 FROM can be a generic character (see `make-char'). In this case, TO is
|
|
246 a generic character containing the same number of characters, or a
|
|
247 ordinary character. If FROM and TO are both generic characters, all
|
|
248 characters belonging to FROM are translated to characters belonging to TO
|
|
249 without changing their position code(s).
|
|
250
|
|
251 The arguments and forms in each argument are processed in the given
|
|
252 order, and if a previous form already translates TO to some other
|
|
253 character, say TO-ALT, FROM is also translated to TO-ALT."
|
|
254 (let ((table (internal-make-translation-table
|
|
255 :forward (make-char-table 'generic)))
|
|
256 revlist)
|
|
257 (while args
|
|
258 (let ((elts (car args)))
|
|
259 (while elts
|
|
260 (let* ((from (car (car elts)))
|
|
261 (from-i 0) ; degree of freedom of FROM
|
|
262 (from-rev (nreverse (split-char from)))
|
|
263 (to (cdr (car elts)))
|
|
264 (to-i 0) ; degree of freedom of TO
|
|
265 (to-rev (nreverse (split-char to))))
|
|
266 ;; Check numbers of heading 0s in FROM-REV and TO-REV.
|
|
267 (while (eq (car from-rev) 0)
|
|
268 (setq from-i (1+ from-i) from-rev (cdr from-rev)))
|
|
269 (while (eq (car to-rev) 0)
|
|
270 (setq to-i (1+ to-i) to-rev (cdr to-rev)))
|
|
271 (if (and (/= from-i to-i) (/= to-i 0))
|
|
272 (error "Invalid character pair (%d . %d)" from to))
|
|
273 ;; If we have already translated TO to TO-ALT, FROM should
|
|
274 ;; also be translated to TO-ALT. But, this is only if TO
|
|
275 ;; is a generic character or TO-ALT is not a generic
|
|
276 ;; character.
|
|
277 (let ((to-alt (get-char-table to table)))
|
|
278 (if (and to-alt
|
|
279 (or (> to-i 0) (not (find-charset to-alt))))
|
|
280 (setq to to-alt)))
|
|
281 (if (> from-i 0)
|
|
282 (set-char-table-default table from to)
|
|
283 (put-char-table from to table))
|
|
284 ;; If we have already translated some chars to FROM, they
|
|
285 ;; should also be translated to TO.
|
|
286 (let ((l (assq from revlist)))
|
|
287 (if l
|
|
288 (let ((ch (car l)))
|
|
289 (setcar l to)
|
|
290 (setq l (cdr l))
|
|
291 (while l
|
|
292 (put-char-table ch to table)
|
|
293 (setq l (cdr l)) ))))
|
|
294 ;; Now update REVLIST.
|
|
295 (let ((l (assq to revlist)))
|
|
296 (if l
|
|
297 (setcdr l (cons from (cdr l)))
|
|
298 (setq revlist (cons (list to from) revlist)))))
|
|
299 (setq elts (cdr elts))))
|
|
300 (setq args (cdr args)))
|
|
301 ;; Return TABLE just created.
|
|
302 table))
|
|
303
|
|
304 ;; Do we really need this?
|
|
305 ; (defun make-translation-table-from-vector (vec)
|
|
306 ; "Make translation table from decoding vector VEC.
|
|
307 ; VEC is an array of 256 elements to map unibyte codes to multibyte characters.
|
|
308 ; See also the variable `nonascii-translation-table'."
|
|
309 ; (let ((table (make-char-table 'translation-table))
|
|
310 ; (rev-table (make-char-table 'translation-table))
|
|
311 ; (i 0)
|
|
312 ; ch)
|
|
313 ; (while (< i 256)
|
|
314 ; (setq ch (aref vec i))
|
|
315 ; (aset table i ch)
|
|
316 ; (if (>= ch 256)
|
|
317 ; (aset rev-table ch i))
|
|
318 ; (setq i (1+ i)))
|
|
319 ; (set-char-table-extra-slot table 0 rev-table)
|
|
320 ; table))
|
|
321
|
|
322 (defvar named-translation-table-hash-table (make-hash-table))
|
|
323
|
|
324 (defun define-translation-table (symbol &rest args)
|
|
325 "Define SYMBOL as the name of translation table made by ARGS.
|
|
326 This sets up information so that the table can be used for
|
|
327 translations in a CCL program.
|
|
328
|
|
329 If the first element of ARGS is a translation table, just define SYMBOL to
|
|
330 name it. (Note that this function does not bind SYMBOL.)
|
|
331
|
|
332 Any other ARGS should be suitable as arguments of the function
|
|
333 `make-translation-table' (which see).
|
|
334
|
|
335 Look up a named translation table using `find-translation-table' or
|
|
336 `get-translation-table'."
|
|
337 (let ((table (if (translation-table-p (car args))
|
|
338 (car args)
|
|
339 (apply 'make-translation-table args))))
|
|
340 (puthash symbol table named-translation-table-hash-table)))
|
|
341
|
|
342 (defun find-translation-table (table-or-name)
|
|
343 "Retrieve the translation table of the given name.
|
|
344 If TABLE-OR-NAME is a translation table object, it is simply returned.
|
|
345 Otherwise, TABLE-OR-NAME should be a symbol. If there is no such
|
|
346 translation table, nil is returned. Otherwise the associated translation
|
|
347 table object is returned."
|
|
348 (if (translation-table-p table-or-name)
|
|
349 table-or-name
|
|
350 (check-argument-type 'symbolp table-or-name)
|
|
351 (gethash table-or-name named-translation-table-hash-table)))
|
|
352
|
|
353 (defun get-translation-table (table-or-name)
|
|
354 "Retrieve the translation table of the given name.
|
|
355 Same as `find-translation-table' except an error is signalled if there is
|
|
356 no such translation table instead of returning nil."
|
|
357 (or (find-translation-table table-or-name)
|
|
358 (error 'invalid-argument "No such translation table" table-or-name)))
|
|
359
|
|
360
|
442
|
361 ;; Setup auto-fill-chars for charsets that should invoke auto-filling.
|
777
|
362 ;; SPACE and NEWLINE are already set.
|
442
|
363 (let ((l '(katakana-jisx0201
|
|
364 japanese-jisx0208 japanese-jisx0212
|
|
365 chinese-gb2312 chinese-big5-1 chinese-big5-2)))
|
|
366 (while l
|
|
367 (put-char-table (car l) t auto-fill-chars)
|
|
368 (setq l (cdr l))))
|
|
369
|
778
|
370
|
|
371 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
372 ; charsets ;
|
|
373 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
374
|
|
375 ;; Synched up with: FSF 21.1.
|
|
376
|
|
377 ;; All FSF charset definitions are in mule-conf.el. I copied the relevant
|
|
378 ;; part of that file below, then converted all charset definitions using
|
|
379 ;; the macro below, then globally replaced 'direction 0' with 'direction
|
|
380 ;; l2r' and 'direction 1' with 'direction r2l', then commented everything
|
|
381 ;; out. Copy the definitions as necessary to individual files.
|
|
382
|
|
383 ;; Kbd macro to convert from FSF-style define-charset to our make-charset.
|
|
384
|
|
385 ; (setq last-kbd-macro (read-kbd-macro
|
|
386 ; "<right> M-d make <M-right> M-d <home> <down> TAB '[dimension DEL SPC <M-right> RET TAB chars SPC <M-right> RET TAB columns SPC <M-right> RET TAB direction SPC <M-right> RET TAB final SPC <M-right> RET TAB graphic SPC <M-right> RET TAB short- name SPC <M-right> RET TAB long- name SPC <M-right> RET TAB <S-M-right> <f2> DEL TAB <end> ] <M-left> <end> SPC <f4> 3*<M-left> <left> <M-right> RET <down>"))
|
|
387
|
|
388 ;; Kbd macro to take one registry entry from the list of registry entries,
|
|
389 ;; find the appropriate make-charset call, and add the appropriate registry
|
|
390 ;; property.
|
|
391
|
|
392 ; (setq last-kbd-macro (read-kbd-macro
|
|
393 ; "3*<right> <S-M-right> C-x x 1 <right> <S-M-right> C-x x 2 <home> C-x r m foo RET <M-down> M-x sear TAB for TAB RET C-x g 1 RET C-s dimen RET <end> RET TAB 3*<backspace> registry SPC C-x g 2 C-x r b RET <down>"))
|
|
394
|
|
395 ;; List from FSF international/fontset.el of registries for charsets.
|
|
396
|
|
397 ;; latin-iso8859-1 "ISO8859-1"
|
|
398 ;; latin-iso8859-2 "ISO8859-2"
|
|
399 ;; latin-iso8859-3 "ISO8859-3"
|
|
400 ;; latin-iso8859-4 "ISO8859-4"
|
|
401 ;; thai-tis620 "TIS620"
|
|
402 ;; greek-iso8859-7 "ISO8859-7"
|
|
403 ;; arabic-iso8859-6 "ISO8859-6"
|
|
404 ;; hebrew-iso8859-8 "ISO8859-8"
|
|
405 ;; katakana-jisx0201 "JISX0201"
|
|
406 ;; latin-jisx0201 "JISX0201"
|
|
407 ;; cyrillic-iso8859-5 "ISO8859-5"
|
|
408 ;; latin-iso8859-9 "ISO8859-9"
|
|
409 ;; japanese-jisx0208-1978 "JISX0208.1978"
|
|
410 ;; chinese-gb2312 "GB2312.1980"
|
|
411 ;; japanese-jisx0208 "JISX0208.1990"
|
|
412 ;; korean-ksc5601 "KSC5601.1989"
|
|
413 ;; japanese-jisx0212 "JISX0212"
|
|
414 ;; chinese-cns11643-1 "CNS11643.1992-1"
|
|
415 ;; chinese-cns11643-2 "CNS11643.1992-2"
|
|
416 ;; chinese-cns11643-3 "CNS11643.1992-3"
|
|
417 ;; chinese-cns11643-4 "CNS11643.1992-4"
|
|
418 ;; chinese-cns11643-5 "CNS11643.1992-5"
|
|
419 ;; chinese-cns11643-6 "CNS11643.1992-6"
|
|
420 ;; chinese-cns11643-7 "CNS11643.1992-7"
|
|
421 ;; chinese-big5-1 "Big5"
|
|
422 ;; chinese-big5-2 "Big5"
|
|
423 ;; chinese-sisheng "sisheng_cwnn"
|
|
424 ;; vietnamese-viscii-lower "VISCII1.1"
|
|
425 ;; vietnamese-viscii-upper "VISCII1.1"
|
|
426 ;; arabic-digit "MuleArabic-0"
|
|
427 ;; arabic-1-column "MuleArabic-1"
|
|
428 ;; arabic-2-column "MuleArabic-2"
|
|
429 ;; ipa "MuleIPA"
|
|
430 ;; ethiopic "Ethiopic-Unicode"
|
|
431 ;; ascii-right-to-left "ISO8859-1"
|
|
432 ;; indian-is13194 "IS13194-Devanagari"
|
|
433 ;; indian-2-column "MuleIndian-2"
|
|
434 ;; indian-1-column "MuleIndian-1"
|
|
435 ;; lao "MuleLao-1"
|
|
436 ;; tibetan "MuleTibetan-2"
|
|
437 ;; tibetan-1-column "MuleTibetan-1"
|
|
438 ;; latin-iso8859-14 "ISO8859-14"
|
|
439 ;; latin-iso8859-15 "ISO8859-15"
|
|
440 ;; mule-unicode-0100-24ff "ISO10646-1"
|
|
441 ;; mule-unicode-2500-33ff "ISO10646-1"
|
|
442 ;; mule-unicode-e000-ffff "ISO10646-1"
|
|
443 ;; japanese-jisx0213-1 "JISX0213.2000-1"
|
|
444 ;; japanese-jisx0213-2 "JISX0213.2000-2"
|
|
445
|
|
446 ;;; Begin stuff from international/mule-conf.el.
|
|
447
|
|
448 ; ;;; Definitions of character sets.
|
|
449
|
|
450 ; ;; Basic (official) character sets. These character sets are treated
|
|
451 ; ;; efficiently with respect to buffer memory.
|
|
452
|
|
453 ; ;; Syntax:
|
|
454 ; ;; (define-charset CHARSET-ID CHARSET
|
|
455 ; ;; [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
|
|
456 ; ;; SHORT-NAME LONG-NAME DESCRIPTION ])
|
|
457 ; ;; ASCII charset is defined in src/charset.c as below.
|
|
458 ; ;; (define-charset 0 ascii
|
|
459 ; ;; [1 94 1 0 ?B 0 "ASCII" "ASCII" "ASCII (ISO646 IRV)"])
|
|
460
|
|
461 ; ;; 1-byte charsets. Valid range of CHARSET-ID is 128..143.
|
|
462
|
|
463 ; ;; CHARSET-ID 128 is not used.
|
|
464
|
|
465 ; ; An extra level of commenting means an official (done in C) charset.
|
|
466 ; ; (make-charset 'latin-iso8859-1
|
|
467 ; ; "Right-Hand Part of Latin Alphabet 1 (ISO/IEC 8859-1): ISO-IR-100"
|
|
468 ; ; '(dimension
|
|
469 ; ; 1
|
|
470 ; ; registry "ISO8859-1"
|
|
471 ; ; chars 96
|
|
472 ; ; columns 1
|
|
473 ; ; direction l2r
|
|
474 ; ; final ?A
|
|
475 ; ; graphic 1
|
|
476 ; ; short-name "RHP of Latin-1"
|
|
477 ; ; long-name "RHP of Latin-1 (ISO 8859-1): ISO-IR-100"
|
|
478 ; ; ))
|
|
479
|
|
480 ; ; (make-charset 'latin-iso8859-2
|
|
481 ; ; "Right-Hand Part of Latin Alphabet 2 (ISO/IEC 8859-2): ISO-IR-101"
|
|
482 ; ; '(dimension
|
|
483 ; ; 1
|
|
484 ; ; registry "ISO8859-2"
|
|
485 ; ; chars 96
|
|
486 ; ; columns 1
|
|
487 ; ; direction l2r
|
|
488 ; ; final ?B
|
|
489 ; ; graphic 1
|
|
490 ; ; short-name "RHP of Latin-2"
|
|
491 ; ; long-name "RHP of Latin-2 (ISO 8859-2): ISO-IR-101"
|
|
492 ; ; ))
|
|
493
|
|
494 ; ; (make-charset 'latin-iso8859-3
|
|
495 ; ; "Right-Hand Part of Latin Alphabet 3 (ISO/IEC 8859-3): ISO-IR-109"
|
|
496 ; ; '(dimension
|
|
497 ; ; 1
|
|
498 ; ; registry "ISO8859-3"
|
|
499 ; ; chars 96
|
|
500 ; ; columns 1
|
|
501 ; ; direction l2r
|
|
502 ; ; final ?C
|
|
503 ; ; graphic 1
|
|
504 ; ; short-name "RHP of Latin-3"
|
|
505 ; ; long-name "RHP of Latin-3 (ISO 8859-3): ISO-IR-109"
|
|
506 ; ; ))
|
|
507
|
|
508 ; ; (make-charset 'latin-iso8859-4
|
|
509 ; ; "Right-Hand Part of Latin Alphabet 4 (ISO/IEC 8859-4): ISO-IR-110"
|
|
510 ; ; '(dimension
|
|
511 ; ; 1
|
|
512 ; ; registry "ISO8859-4"
|
|
513 ; ; chars 96
|
|
514 ; ; columns 1
|
|
515 ; ; direction l2r
|
|
516 ; ; final ?D
|
|
517 ; ; graphic 1
|
|
518 ; ; short-name "RHP of Latin-4"
|
|
519 ; ; long-name "RHP of Latin-4 (ISO 8859-4): ISO-IR-110"
|
|
520 ; ; ))
|
|
521
|
|
522 ; ; (make-charset 'thai-tis620
|
|
523 ; ; "Right-Hand Part of TIS620.2533 (Thai): ISO-IR-166"
|
|
524 ; ; '(dimension
|
|
525 ; ; 1
|
|
526 ; ; registry "TIS620"
|
|
527 ; ; chars 96
|
|
528 ; ; columns 1
|
|
529 ; ; direction l2r
|
|
530 ; ; final ?T
|
|
531 ; ; graphic 1
|
|
532 ; ; short-name "RHP of TIS620"
|
|
533 ; ; long-name "RHP of Thai (TIS620): ISO-IR-166"
|
|
534 ; ; ))
|
|
535
|
|
536 ; ; (make-charset 'greek-iso8859-7
|
|
537 ; ; "Right-Hand Part of Latin/Greek Alphabet (ISO/IEC 8859-7): ISO-IR-126"
|
|
538 ; ; '(dimension
|
|
539 ; ; 1
|
|
540 ; ; registry "ISO8859-7"
|
|
541 ; ; chars 96
|
|
542 ; ; columns 1
|
|
543 ; ; direction l2r
|
|
544 ; ; final ?F
|
|
545 ; ; graphic 1
|
|
546 ; ; short-name "RHP of ISO8859/7"
|
|
547 ; ; long-name "RHP of Greek (ISO 8859-7): ISO-IR-126"
|
|
548 ; ; ))
|
|
549
|
|
550 ; ; (make-charset 'arabic-iso8859-6
|
|
551 ; ; "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
|
|
552 ; ; '(dimension
|
|
553 ; ; 1
|
|
554 ; ; registry "ISO8859-6"
|
|
555 ; ; chars 96
|
|
556 ; ; columns 1
|
|
557 ; ; direction r2l
|
|
558 ; ; final ?G
|
|
559 ; ; graphic 1
|
|
560 ; ; short-name "RHP of ISO8859/6"
|
|
561 ; ; long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"
|
|
562 ; ; ))
|
|
563
|
|
564 ; ; (make-charset 'hebrew-iso8859-8
|
|
565 ; ; "Right-Hand Part of Latin/Hebrew Alphabet (ISO/IEC 8859-8): ISO-IR-138"
|
|
566 ; ; '(dimension
|
|
567 ; ; 1
|
|
568 ; ; registry "ISO8859-8"
|
|
569 ; ; chars 96
|
|
570 ; ; columns 1
|
|
571 ; ; direction r2l
|
|
572 ; ; final ?H
|
|
573 ; ; graphic 1
|
|
574 ; ; short-name "RHP of ISO8859/8"
|
|
575 ; ; long-name "RHP of Hebrew (ISO 8859-8): ISO-IR-138"
|
|
576 ; ; ))
|
|
577
|
|
578 ; ; (make-charset 'katakana-jisx0201
|
|
579 ; ; "Katakana Part of JISX0201.1976"
|
|
580 ; ; '(dimension
|
|
581 ; ; 1
|
|
582 ; ; registry "JISX0201"
|
|
583 ; ; chars 94
|
|
584 ; ; columns 1
|
|
585 ; ; direction l2r
|
|
586 ; ; final ?I
|
|
587 ; ; graphic 1
|
|
588 ; ; short-name "JISX0201 Katakana"
|
|
589 ; ; long-name "Japanese Katakana (JISX0201.1976)"
|
|
590 ; ; ))
|
|
591
|
|
592 ; ; (make-charset 'latin-jisx0201
|
|
593 ; ; "Roman Part of JISX0201.1976"
|
|
594 ; ; '(dimension
|
|
595 ; ; 1
|
|
596 ; ; registry "JISX0201"
|
|
597 ; ; chars 94
|
|
598 ; ; columns 1
|
|
599 ; ; direction l2r
|
|
600 ; ; final ?J
|
|
601 ; ; graphic 0
|
|
602 ; ; short-name "JISX0201 Roman"
|
|
603 ; ; long-name "Japanese Roman (JISX0201.1976)"
|
|
604 ; ; ))
|
|
605
|
|
606
|
|
607 ; ;; CHARSET-ID is not used 139.
|
|
608
|
|
609 ; ; (make-charset 'cyrillic-iso8859-5
|
|
610 ; ; "Right-Hand Part of Latin/Cyrillic Alphabet (ISO/IEC 8859-5): ISO-IR-144"
|
|
611 ; ; '(dimension
|
|
612 ; ; 1
|
|
613 ; ; registry "ISO8859-5"
|
|
614 ; ; chars 96
|
|
615 ; ; columns 1
|
|
616 ; ; direction l2r
|
|
617 ; ; final ?L
|
|
618 ; ; graphic 1
|
|
619 ; ; short-name "RHP of ISO8859/5"
|
|
620 ; ; long-name "RHP of Cyrillic (ISO 8859-5): ISO-IR-144"
|
|
621 ; ; ))
|
|
622
|
|
623 ; ; (make-charset 'latin-iso8859-9
|
|
624 ; ; "Right-Hand Part of Latin Alphabet 5 (ISO/IEC 8859-9): ISO-IR-148"
|
|
625 ; ; '(dimension
|
|
626 ; ; 1
|
|
627 ; ; registry "ISO8859-9"
|
|
628 ; ; chars 96
|
|
629 ; ; columns 1
|
|
630 ; ; direction l2r
|
|
631 ; ; final ?M
|
|
632 ; ; graphic 1
|
|
633 ; ; short-name "RHP of Latin-5"
|
|
634 ; ; long-name "RHP of Latin-5 (ISO 8859-9): ISO-IR-148"
|
|
635 ; ; ))
|
|
636
|
|
637 ; ; (make-charset 'latin-iso8859-15
|
|
638 ; ; "Right-Hand Part of Latin Alphabet 9 (ISO/IEC 8859-15): ISO-IR-203"
|
|
639 ; ; '(dimension
|
|
640 ; ; 1
|
|
641 ; ; registry "ISO8859-15"
|
|
642 ; ; chars 96
|
|
643 ; ; columns 1
|
|
644 ; ; direction l2r
|
|
645 ; ; final ?b
|
|
646 ; ; graphic 1
|
|
647 ; ; short-name "RHP of Latin-9"
|
|
648 ; ; long-name "RHP of Latin-9 (ISO 8859-15): ISO-IR-203"
|
|
649 ; ; ))
|
|
650
|
|
651 ; (make-charset 'latin-iso8859-14
|
|
652 ; "Right-Hand Part of Latin Alphabet 8 (ISO/IEC 8859-14)"
|
|
653 ; '(dimension
|
|
654 ; 1
|
|
655 ; registry "ISO8859-14"
|
|
656 ; chars 96
|
|
657 ; columns 1
|
|
658 ; direction l2r
|
|
659 ; final ?_
|
|
660 ; graphic 1
|
|
661 ; short-name "RHP of Latin-8"
|
|
662 ; long-name "RHP of Latin-8 (ISO 8859-14)"
|
|
663 ; ))
|
|
664
|
|
665
|
|
666 ; ;; 2-byte charsets. Valid range of CHARSET-ID is 144..153.
|
|
667
|
|
668 ; ; (make-charset 'japanese-jisx0208-1978
|
|
669 ; ; "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42"
|
|
670 ; ; '(dimension
|
|
671 ; ; 2
|
|
672 ; ; registry "JISX0208.1990"
|
|
673 ; ; registry "JISX0208.1978"
|
|
674 ; ; chars 94
|
|
675 ; ; columns 2
|
|
676 ; ; direction l2r
|
|
677 ; ; final ?@
|
|
678 ; ; graphic 0
|
|
679 ; ; short-name "JISX0208.1978"
|
|
680 ; ; long-name "JISX0208.1978 (Japanese): ISO-IR-42"
|
|
681 ; ; ))
|
|
682
|
|
683 ; ; (make-charset 'chinese-gb2312
|
|
684 ; ; "GB2312 Chinese simplified: ISO-IR-58"
|
|
685 ; ; '(dimension
|
|
686 ; ; 2
|
|
687 ; ; registry "GB2312.1980"
|
|
688 ; ; chars 94
|
|
689 ; ; columns 2
|
|
690 ; ; direction l2r
|
|
691 ; ; final ?A
|
|
692 ; ; graphic 0
|
|
693 ; ; short-name "GB2312"
|
|
694 ; ; long-name "GB2312: ISO-IR-58"
|
|
695 ; ; ))
|
|
696
|
|
697 ; ; (make-charset 'japanese-jisx0208
|
|
698 ; ; "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87"
|
|
699 ; ; '(dimension
|
|
700 ; ; 2
|
|
701 ; ; chars 94
|
|
702 ; ; columns 2
|
|
703 ; ; direction l2r
|
|
704 ; ; final ?B
|
|
705 ; ; graphic 0
|
|
706 ; ; short-name "JISX0208"
|
|
707 ; ; long-name "JISX0208.1983/1990 (Japanese): ISO-IR-87"
|
|
708 ; ; ))
|
|
709
|
|
710 ; ; (make-charset 'korean-ksc5601
|
|
711 ; ; "KSC5601 Korean Hangul and Hanja: ISO-IR-149"
|
|
712 ; ; '(dimension
|
|
713 ; ; 2
|
|
714 ; ; registry "KSC5601.1989"
|
|
715 ; ; chars 94
|
|
716 ; ; columns 2
|
|
717 ; ; direction l2r
|
|
718 ; ; final ?C
|
|
719 ; ; graphic 0
|
|
720 ; ; short-name "KSC5601"
|
|
721 ; ; long-name "KSC5601 (Korean): ISO-IR-149"
|
|
722 ; ; ))
|
|
723
|
|
724 ; ; (make-charset 'japanese-jisx0212
|
|
725 ; ; "JISX0212 Japanese supplement: ISO-IR-159"
|
|
726 ; ; '(dimension
|
|
727 ; ; 2
|
|
728 ; ; registry "JISX0212"
|
|
729 ; ; chars 94
|
|
730 ; ; columns 2
|
|
731 ; ; direction l2r
|
|
732 ; ; final ?D
|
|
733 ; ; graphic 0
|
|
734 ; ; short-name "JISX0212"
|
|
735 ; ; long-name "JISX0212 (Japanese): ISO-IR-159"
|
|
736 ; ; ))
|
|
737
|
|
738 ; ; (make-charset 'chinese-cns11643-1
|
|
739 ; ; "CNS11643 Plane 1 Chinese traditional: ISO-IR-171"
|
|
740 ; ; '(dimension
|
|
741 ; ; 2
|
|
742 ; ; registry "CNS11643.1992-1"
|
|
743 ; ; chars 94
|
|
744 ; ; columns 2
|
|
745 ; ; direction l2r
|
|
746 ; ; final ?G
|
|
747 ; ; graphic 0
|
|
748 ; ; short-name "CNS11643-1"
|
|
749 ; ; long-name "CNS11643-1 (Chinese traditional): ISO-IR-171"
|
|
750 ; ; ))
|
|
751
|
|
752 ; ; (make-charset 'chinese-cns11643-2
|
|
753 ; ; "CNS11643 Plane 2 Chinese traditional: ISO-IR-172"
|
|
754 ; ; '(dimension
|
|
755 ; ; 2
|
|
756 ; ; registry "CNS11643.1992-2"
|
|
757 ; ; chars 94
|
|
758 ; ; columns 2
|
|
759 ; ; direction l2r
|
|
760 ; ; final ?H
|
|
761 ; ; graphic 0
|
|
762 ; ; short-name "CNS11643-2"
|
|
763 ; ; long-name "CNS11643-2 (Chinese traditional): ISO-IR-172"
|
|
764 ; ; ))
|
|
765
|
|
766 ; (make-charset 'japanese-jisx0213-1 "JISX0213 Plane 1 (Japanese)"
|
|
767 ; '(dimension
|
|
768 ; 2
|
|
769 ; registry "JISX0213.2000-1"
|
|
770 ; chars 94
|
|
771 ; columns 2
|
|
772 ; direction l2r
|
|
773 ; final ?O
|
|
774 ; graphic 0
|
|
775 ; short-name "JISX0213-1"
|
|
776 ; long-name "JISX0213-1"
|
|
777 ; ))
|
|
778
|
|
779 ; ; (make-charset 'chinese-big5-1
|
|
780 ; ; "Frequently used part (A141-C67F) of Big5 (Chinese traditional)"
|
|
781 ; ; '(dimension
|
|
782 ; ; 2
|
|
783 ; ; registry "Big5"
|
|
784 ; ; chars 94
|
|
785 ; ; columns 2
|
|
786 ; ; direction l2r
|
|
787 ; ; final ?0
|
|
788 ; ; graphic 0
|
|
789 ; ; short-name "Big5 (Level-1)"
|
|
790 ; ; long-name "Big5 (Level-1) A141-C67F"
|
|
791 ; ; ))
|
|
792
|
|
793 ; ; (make-charset 'chinese-big5-2
|
|
794 ; ; "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)"
|
|
795 ; ; '(dimension
|
|
796 ; ; 2
|
|
797 ; ; registry "Big5"
|
|
798 ; ; chars 94
|
|
799 ; ; columns 2
|
|
800 ; ; direction l2r
|
|
801 ; ; final ?1
|
|
802 ; ; graphic 0
|
|
803 ; ; short-name "Big5 (Level-2)"
|
|
804 ; ; long-name "Big5 (Level-2) C940-FEFE"
|
|
805 ; ; ))
|
|
806
|
|
807
|
|
808 ; ;; Additional (private) character sets. These character sets are
|
|
809 ; ;; treated less space-efficiently in the buffer.
|
|
810
|
|
811 ; ;; Syntax:
|
|
812 ; ;; (define-charset CHARSET-ID CHARSET
|
|
813 ; ;; [ DIMENSION CHARS WIDTH DIRECTION ISO-FINAL-CHAR ISO-GRAPHIC-PLANE
|
|
814 ; ;; SHORT-NAME LONG-NAME DESCRIPTION ])
|
|
815
|
|
816 ; ;; ISO-2022 allows a use of character sets not registered in ISO with
|
|
817 ; ;; final characters `0' (0x30) through `?' (0x3F). Among them, Emacs
|
|
818 ; ;; reserves `0' through `9' to support several private character sets.
|
|
819 ; ;; The remaining final characters `:' through `?' are for users.
|
|
820
|
|
821 ; ;; 1-byte 1-column charsets. Valid range of CHARSET-ID is 160..223.
|
|
822
|
|
823 ; (make-charset 'chinese-sisheng
|
|
824 ; "SiSheng characters for PinYin/ZhuYin"
|
|
825 ; '(dimension
|
|
826 ; 1
|
|
827 ; registry "sisheng_cwnn"
|
|
828 ; chars 94
|
|
829 ; columns 1
|
|
830 ; direction l2r
|
|
831 ; final ?0
|
|
832 ; graphic 0
|
|
833 ; short-name "SiSheng"
|
|
834 ; long-name "SiSheng (PinYin/ZhuYin)"
|
|
835 ; ))
|
|
836
|
|
837
|
|
838 ; ;; IPA characters for phonetic symbols.
|
|
839 ; (make-charset 'ipa "IPA (International Phonetic Association)"
|
|
840 ; '(dimension
|
|
841 ; 1
|
|
842 ; registry "MuleIPA"
|
|
843 ; chars 96
|
|
844 ; columns 1
|
|
845 ; direction l2r
|
|
846 ; final ?0
|
|
847 ; graphic 1
|
|
848 ; short-name "IPA"
|
|
849 ; long-name "IPA"
|
|
850 ; ))
|
|
851
|
|
852
|
|
853 ; ;; Vietnamese VISCII. VISCII is 1-byte character set which contains
|
|
854 ; ;; more than 96 characters. Since Emacs can't handle it as one
|
|
855 ; ;; character set, it is divided into two: lower case letters and upper
|
|
856 ; ;; case letters.
|
|
857 ; (make-charset 'vietnamese-viscii-lower "VISCII1.1 lower-case"
|
|
858 ; '(dimension
|
|
859 ; 1
|
|
860 ; registry "VISCII1.1"
|
|
861 ; chars 96
|
|
862 ; columns 1
|
|
863 ; direction l2r
|
|
864 ; final ?1
|
|
865 ; graphic 1
|
|
866 ; short-name "VISCII lower"
|
|
867 ; long-name "VISCII lower-case"
|
|
868 ; ))
|
|
869
|
|
870 ; (make-charset 'vietnamese-viscii-upper "VISCII1.1 upper-case"
|
|
871 ; '(dimension
|
|
872 ; 1
|
|
873 ; registry "VISCII1.1"
|
|
874 ; chars 96
|
|
875 ; columns 1
|
|
876 ; direction l2r
|
|
877 ; final ?2
|
|
878 ; graphic 1
|
|
879 ; short-name "VISCII upper"
|
|
880 ; long-name "VISCII upper-case"
|
|
881 ; ))
|
|
882
|
|
883
|
|
884 ; ;; For Arabic, we need three different types of character sets.
|
|
885 ; ;; Digits are of direction left-to-right and of width 1-column.
|
|
886 ; ;; Others are of direction right-to-left and of width 1-column or
|
|
887 ; ;; 2-column.
|
|
888 ; (make-charset 'arabic-digit "Arabic digit"
|
|
889 ; '(dimension
|
|
890 ; 1
|
|
891 ; registry "MuleArabic-0"
|
|
892 ; chars 94
|
|
893 ; columns 1
|
|
894 ; direction l2r
|
|
895 ; final ?2
|
|
896 ; graphic 0
|
|
897 ; short-name "Arabic digit"
|
|
898 ; long-name "Arabic digit"
|
|
899 ; ))
|
|
900
|
|
901 ; (make-charset 'arabic-1-column "Arabic 1-column"
|
|
902 ; '(dimension
|
|
903 ; 1
|
|
904 ; registry "MuleArabic-1"
|
|
905 ; chars 94
|
|
906 ; columns 1
|
|
907 ; direction r2l
|
|
908 ; final ?3
|
|
909 ; graphic 0
|
|
910 ; short-name "Arabic 1-col"
|
|
911 ; long-name "Arabic 1-column"
|
|
912 ; ))
|
|
913
|
|
914
|
|
915 ; ;; ASCII with right-to-left direction.
|
|
916 ; (make-charset 'ascii-right-to-left
|
|
917 ; "ASCII (left half of ISO 8859-1) with right-to-left direction"
|
|
918 ; '(dimension
|
|
919 ; 1
|
|
920 ; registry "ISO8859-1"
|
|
921 ; chars 94
|
|
922 ; columns 1
|
|
923 ; direction r2l
|
|
924 ; final ?B
|
|
925 ; graphic 0
|
|
926 ; short-name "rev ASCII"
|
|
927 ; long-name "ASCII with right-to-left direction"
|
|
928 ; ))
|
|
929
|
|
930
|
|
931 ; ;; Lao script.
|
|
932 ; ;; ISO10646's 0x0E80..0x0EDF are mapped to 0x20..0x7F.
|
|
933 ; (make-charset 'lao "Lao characters (ISO10646 0E80..0EDF)"
|
|
934 ; '(dimension
|
|
935 ; 1
|
|
936 ; registry "MuleLao-1"
|
|
937 ; chars 94
|
|
938 ; columns 1
|
|
939 ; direction l2r
|
|
940 ; final ?1
|
|
941 ; graphic 0
|
|
942 ; short-name "Lao"
|
|
943 ; long-name "Lao"
|
|
944 ; ))
|
|
945
|
|
946
|
|
947 ; ;; CHARSET-IDs 168..223 are not used.
|
|
948
|
|
949 ; ;; 1-byte 2-column charsets. Valid range of CHARSET-ID is 224..239.
|
|
950
|
|
951 ; (make-charset 'arabic-2-column "Arabic 2-column"
|
|
952 ; '(dimension
|
|
953 ; 1
|
|
954 ; registry "MuleArabic-2"
|
|
955 ; chars 94
|
|
956 ; columns 2
|
|
957 ; direction r2l
|
|
958 ; final ?4
|
|
959 ; graphic 0
|
|
960 ; short-name "Arabic 2-col"
|
|
961 ; long-name "Arabic 2-column"
|
|
962 ; ))
|
|
963
|
|
964
|
|
965 ; ;; Indian scripts. Symbolic charset for data exchange. Glyphs are
|
|
966 ; ;; not assigned. They are automatically converted to each Indian
|
|
967 ; ;; script which IS-13194 supports.
|
|
968
|
|
969 ; (make-charset 'indian-is13194
|
|
970 ; "Generic Indian charset for data exchange with IS 13194"
|
|
971 ; '(dimension
|
|
972 ; 1
|
|
973 ; registry "IS13194-Devanagari"
|
|
974 ; chars 94
|
|
975 ; columns 2
|
|
976 ; direction l2r
|
|
977 ; final ?5
|
|
978 ; graphic 1
|
|
979 ; short-name "IS 13194"
|
|
980 ; long-name "Indian IS 13194"
|
|
981 ; ))
|
|
982
|
|
983
|
|
984 ; ;; CHARSET-IDs 226..239 are not used.
|
|
985
|
|
986 ; ;; 2-byte 1-column charsets. Valid range of CHARSET-ID is 240..244.
|
|
987
|
|
988 ; ;; Actual Glyph for 1-column width.
|
|
989 ; (make-charset 'indian-1-column
|
|
990 ; "Indian charset for 2-column width glyphs"
|
|
991 ; '(dimension
|
|
992 ; 2
|
|
993 ; registry "MuleIndian-1"
|
|
994 ; chars 94
|
|
995 ; columns 1
|
|
996 ; direction l2r
|
|
997 ; final ?6
|
|
998 ; graphic 0
|
|
999 ; short-name "Indian 1-col"
|
|
1000 ; long-name "Indian 1 Column"
|
|
1001 ; ))
|
|
1002
|
|
1003
|
|
1004 ; (make-charset 'tibetan-1-column "Tibetan 1 column glyph"
|
|
1005 ; '(dimension
|
|
1006 ; 2
|
|
1007 ; registry "MuleTibetan-1"
|
|
1008 ; chars 94
|
|
1009 ; columns 1
|
|
1010 ; direction l2r
|
|
1011 ; final ?8
|
|
1012 ; graphic 0
|
|
1013 ; short-name "Tibetan 1-col"
|
|
1014 ; long-name "Tibetan 1 column"
|
|
1015 ; ))
|
|
1016
|
|
1017
|
|
1018 ; ;; Subsets of Unicode.
|
|
1019
|
|
1020 ; (make-charset 'mule-unicode-2500-33ff
|
|
1021 ; "Unicode characters of the range U+2500..U+33FF."
|
|
1022 ; '(dimension
|
|
1023 ; 2
|
|
1024 ; registry "ISO10646-1"
|
|
1025 ; chars 96
|
|
1026 ; columns 1
|
|
1027 ; direction l2r
|
|
1028 ; final ?2
|
|
1029 ; graphic 0
|
|
1030 ; short-name "Unicode subset 2"
|
|
1031 ; long-name "Unicode subset (U+2500..U+33FF)"
|
|
1032 ; ))
|
|
1033
|
|
1034
|
|
1035 ; (make-charset 'mule-unicode-e000-ffff
|
|
1036 ; "Unicode characters of the range U+E000..U+FFFF."
|
|
1037 ; '(dimension
|
|
1038 ; 2
|
|
1039 ; registry "ISO10646-1"
|
|
1040 ; chars 96
|
|
1041 ; columns 1
|
|
1042 ; direction l2r
|
|
1043 ; final ?3
|
|
1044 ; graphic 0
|
|
1045 ; short-name "Unicode subset 3"
|
|
1046 ; long-name "Unicode subset (U+E000+FFFF)"
|
|
1047 ; ))
|
|
1048
|
|
1049
|
|
1050 ; (make-charset 'mule-unicode-0100-24ff
|
|
1051 ; "Unicode characters of the range U+0100..U+24FF."
|
|
1052 ; '(dimension
|
|
1053 ; 2
|
|
1054 ; registry "ISO10646-1"
|
|
1055 ; chars 96
|
|
1056 ; columns 1
|
|
1057 ; direction l2r
|
|
1058 ; final ?1
|
|
1059 ; graphic 0
|
|
1060 ; short-name "Unicode subset"
|
|
1061 ; long-name "Unicode subset (U+0100..U+24FF)"
|
|
1062 ; ))
|
|
1063
|
|
1064
|
|
1065 ; ;; 2-byte 2-column charsets. Valid range of CHARSET-ID is 245..254.
|
|
1066
|
|
1067 ; ;; Ethiopic characters (Amahric and Tigrigna).
|
|
1068 ; (make-charset 'ethiopic "Ethiopic characters"
|
|
1069 ; '(dimension
|
|
1070 ; 2
|
|
1071 ; registry "Ethiopic-Unicode"
|
|
1072 ; chars 94
|
|
1073 ; columns 2
|
|
1074 ; direction l2r
|
|
1075 ; final ?3
|
|
1076 ; graphic 0
|
|
1077 ; short-name "Ethiopic"
|
|
1078 ; long-name "Ethiopic characters"
|
|
1079 ; ))
|
|
1080
|
|
1081
|
|
1082 ; ;; Chinese CNS11643 Plane3 thru Plane7. Although these are official
|
|
1083 ; ;; character sets, the use is rare and don't have to be treated
|
|
1084 ; ;; space-efficiently in the buffer.
|
|
1085 ; (make-charset 'chinese-cns11643-3
|
|
1086 ; "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183"
|
|
1087 ; '(dimension
|
|
1088 ; 2
|
|
1089 ; registry "CNS11643.1992-3"
|
|
1090 ; chars 94
|
|
1091 ; columns 2
|
|
1092 ; direction l2r
|
|
1093 ; final ?I
|
|
1094 ; graphic 0
|
|
1095 ; short-name "CNS11643-3"
|
|
1096 ; long-name "CNS11643-3 (Chinese traditional): ISO-IR-183"
|
|
1097 ; ))
|
|
1098
|
|
1099 ; (make-charset 'chinese-cns11643-4
|
|
1100 ; "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184"
|
|
1101 ; '(dimension
|
|
1102 ; 2
|
|
1103 ; registry "CNS11643.1992-4"
|
|
1104 ; chars 94
|
|
1105 ; columns 2
|
|
1106 ; direction l2r
|
|
1107 ; final ?J
|
|
1108 ; graphic 0
|
|
1109 ; short-name "CNS11643-4"
|
|
1110 ; long-name "CNS11643-4 (Chinese traditional): ISO-IR-184"
|
|
1111 ; ))
|
|
1112
|
|
1113 ; (make-charset 'chinese-cns11643-5
|
|
1114 ; "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185"
|
|
1115 ; '(dimension
|
|
1116 ; 2
|
|
1117 ; registry "CNS11643.1992-5"
|
|
1118 ; chars 94
|
|
1119 ; columns 2
|
|
1120 ; direction l2r
|
|
1121 ; final ?K
|
|
1122 ; graphic 0
|
|
1123 ; short-name "CNS11643-5"
|
|
1124 ; long-name "CNS11643-5 (Chinese traditional): ISO-IR-185"
|
|
1125 ; ))
|
|
1126
|
|
1127 ; (make-charset 'chinese-cns11643-6
|
|
1128 ; "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186"
|
|
1129 ; '(dimension
|
|
1130 ; 2
|
|
1131 ; registry "CNS11643.1992-6"
|
|
1132 ; chars 94
|
|
1133 ; columns 2
|
|
1134 ; direction l2r
|
|
1135 ; final ?L
|
|
1136 ; graphic 0
|
|
1137 ; short-name "CNS11643-6"
|
|
1138 ; long-name "CNS11643-6 (Chinese traditional): ISO-IR-186"
|
|
1139 ; ))
|
|
1140
|
|
1141 ; (make-charset 'chinese-cns11643-7
|
|
1142 ; "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187"
|
|
1143 ; '(dimension
|
|
1144 ; 2
|
|
1145 ; registry "CNS11643.1992-7"
|
|
1146 ; chars 94
|
|
1147 ; columns 2
|
|
1148 ; direction l2r
|
|
1149 ; final ?M
|
|
1150 ; graphic 0
|
|
1151 ; short-name "CNS11643-7"
|
|
1152 ; long-name "CNS11643-7 (Chinese traditional): ISO-IR-187"
|
|
1153 ; ))
|
|
1154
|
|
1155
|
|
1156 ; ;; Actual Glyph for 2-column width.
|
|
1157 ; (make-charset 'indian-2-column
|
|
1158 ; "Indian charset for 2-column width glyphs"
|
|
1159 ; '(dimension
|
|
1160 ; 2
|
|
1161 ; registry "MuleIndian-2"
|
|
1162 ; chars 94
|
|
1163 ; columns 2
|
|
1164 ; direction l2r
|
|
1165 ; final ?5
|
|
1166 ; graphic 0
|
|
1167 ; short-name "Indian 2-col"
|
|
1168 ; long-name "Indian 2 Column"
|
|
1169 ; ))
|
|
1170
|
|
1171
|
|
1172 ; ;; Tibetan script.
|
|
1173 ; (make-charset 'tibetan "Tibetan characters"
|
|
1174 ; '(dimension
|
|
1175 ; 2
|
|
1176 ; registry "MuleTibetan-2"
|
|
1177 ; chars 94
|
|
1178 ; columns 2
|
|
1179 ; direction l2r
|
|
1180 ; final ?7
|
|
1181 ; graphic 0
|
|
1182 ; short-name "Tibetan 2-col"
|
|
1183 ; long-name "Tibetan 2 column"
|
|
1184 ; ))
|
|
1185
|
|
1186
|
|
1187 ; ;; CHARSET-ID 253 is not used.
|
|
1188
|
|
1189 ; ;; JISX0213 Plane 2
|
|
1190 ; (make-charset 'japanese-jisx0213-2 "JISX0213 Plane 2 (Japanese)"
|
|
1191 ; '(dimension
|
|
1192 ; 2
|
|
1193 ; registry "JISX0213.2000-2"
|
|
1194 ; chars 94
|
|
1195 ; columns 2
|
|
1196 ; direction l2r
|
|
1197 ; final ?P
|
|
1198 ; graphic 0
|
|
1199 ; short-name "JISX0213-2"
|
|
1200 ; long-name "JISX0213-2"
|
|
1201 ; ))
|
|
1202
|
428
|
1203 ;;; mule-charset.el ends here
|
778
|
1204
|