mule-conf.el 43 KB
Newer Older
Karl Heuer's avatar
Karl Heuer committed
1 2
;;; mule-conf.el --- configure multilingual environment

Glenn Morris's avatar
Glenn Morris committed
3
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003,
Glenn Morris's avatar
Glenn Morris committed
4 5
;;   2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
Kenichi Handa's avatar
Kenichi Handa committed
6 7
;;   National Institute of Advanced Industrial Science and Technology (AIST)
;;   Registration Number H14PRO021
Kenichi Handa's avatar
Kenichi Handa committed
8
;; Copyright (C) 2003
Kenichi Handa's avatar
Kenichi Handa committed
9 10
;;   National Institute of Advanced Industrial Science and Technology (AIST)
;;   Registration Number H13PRO009
Karl Heuer's avatar
Karl Heuer committed
11

Dave Love's avatar
Dave Love committed
12
;; Keywords: i18n, mule, multilingual, character set, coding system
Karl Heuer's avatar
Karl Heuer committed
13 14 15

;; This file is part of GNU Emacs.

16
;; GNU Emacs is free software: you can redistribute it and/or modify
Karl Heuer's avatar
Karl Heuer committed
17
;; it under the terms of the GNU General Public License as published by
18 19
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
Karl Heuer's avatar
Karl Heuer committed
20 21 22 23 24 25 26

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
27
;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
Karl Heuer's avatar
Karl Heuer committed
28 29 30

;;; Commentary:

Dave Love's avatar
Dave Love committed
31 32 33
;; This file defines the Emacs charsets and some basic coding systems.
;; Other coding systems are defined in the files in directory
;; lisp/language.
Karl Heuer's avatar
Karl Heuer committed
34 35 36

;;; Code:

Dave Love's avatar
Dave Love committed
37 38
;;; Remarks

Dave Love's avatar
Dave Love committed
39 40 41 42
;; The ISO-IR registry is at http://www.itscj.ipsj.or.jp/ISO-IR/.
;; Standards docs equivalent to iso-2022 and iso-8859 are at
;; http://www.ecma.ch/.

Dave Love's avatar
Dave Love committed
43 44 45
;; FWIW, http://www.microsoft.com/globaldev/ lists the following for
;; MS Windows, which are presumably the only charsets we really need
;; to worry about on such systems:
Dave Love's avatar
Dave Love committed
46 47 48 49
;; `OEM codepages': 437, 720, 737, 775, 850, 852, 855, 857, 858, 862, 866
;; `Windows codepages': 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
;;                      1258, 874, 932, 936, 949, 950

Karl Heuer's avatar
Karl Heuer committed
50 51
;;; Definitions of character sets.

Dave Love's avatar
Dave Love committed
52 53
;; The charsets `ascii', `unicode' and `eight-bit' are already defined
;; in charset.c as below:
Kenichi Handa's avatar
Kenichi Handa committed
54 55 56 57 58
;;
;; (define-charset 'ascii
;;   ""
;;   :dimension 1
;;   :code-space [0 127]
Dave Love's avatar
Dave Love committed
59
;;   :iso-final-char ?B
Kenichi Handa's avatar
Kenichi Handa committed
60 61 62 63 64 65 66 67 68 69 70
;;   :ascii-compatible-p t
;;   :emacs-mule-id 0
;;   :code-offset 0)
;;
;; (define-charset 'unicode
;;   ""
;;   :dimension 3
;;   :code-space [0 255 0 255 0 16]
;;   :ascii-compatible-p t
;;   :code-offset 0)
;;
71 72 73 74 75 76 77 78
;; (define-charset 'emacs
;;   ""
;;   :dimension 3
;;   :code-space [0 255 0 255 0 63]
;;   :ascii-compatible-p t
;;   :supplementary-p t
;;   :code-offset 0)
;;
Dave Love's avatar
Dave Love committed
79 80 81 82 83 84
;; (define-charset 'eight-bit
;;   ""
;;   :dimension 1
;;   :code-space [128 255]
;;   :code-offset #x3FFF80)
;;
Kenichi Handa's avatar
Kenichi Handa committed
85 86 87 88 89 90 91 92
;; We now set :docstring, :short-name, and :long-name properties.

(put-charset-property
 'ascii :docstring "ASCII (ISO646 IRV)")
(put-charset-property
 'ascii :short-name "ASCII")
(put-charset-property
 'ascii :long-name "ASCII (ISO646 IRV)")
93 94 95 96 97 98
(put-charset-property
 'iso-8859-1 :docstring "Latin-1 (ISO/IEC 8859-1)")
(put-charset-property
 'iso-8859-1 :short-name "Latin-1")
(put-charset-property
 'iso-8859-1 :long-name "Latin-1")
Kenichi Handa's avatar
Kenichi Handa committed
99 100 101 102 103 104
(put-charset-property
 'unicode :docstring "Unicode (ISO10646)")
(put-charset-property
 'unicode :short-name "Unicode")
(put-charset-property
 'unicode :long-name "Unicode (ISO10646)")
105 106 107 108 109 110 111
(put-charset-property
 'emacs :docstring "Full Emacs charset (excluding eight bit chars)")
(put-charset-property
 'emacs :short-name "Emacs")
(put-charset-property
 'emacs :long-name "Emacs")

Dave Love's avatar
Dave Love committed
112 113
(put-charset-property 'eight-bit :docstring "Raw bytes 0-255")
(put-charset-property 'eight-bit :short-name "Raw bytes")
Kenichi Handa's avatar
Kenichi Handa committed
114 115 116 117 118 119 120 121 122 123 124 125

(define-charset-alias 'ucs 'unicode)

(define-charset 'latin-iso8859-1
  "Right-Hand Part of ISO/IEC 8859/1 (Latin-1): ISO-IR-100"
  :short-name "RHP of Latin-1"
  :long-name "RHP of ISO/IEC 8859/1 (Latin-1): ISO-IR-100"
  :iso-final-char ?A
  :emacs-mule-id 129
  :code-space [32 127]
  :code-offset 160)

Dave Love's avatar
Dave Love committed
126 127
;; Name perhaps not ideal, but is XEmacs-compatible.
(define-charset 'control-1
Kenichi Handa's avatar
Kenichi Handa committed
128 129 130 131 132
  "8-bit control code (0x80..0x9F)"
  :short-name "8-bit control code"
  :code-space [128 159]
  :code-offset 128)

Dave Love's avatar
Dave Love committed
133 134 135
(define-charset 'eight-bit-control
  "Raw bytes in the range 0x80..0x9F (usually produced from invalid encodings)"
  :short-name "Raw bytes 0x80..0x9F"
136
  :supplementary-p t
Dave Love's avatar
Dave Love committed
137 138 139
  :code-space [128 159]
  :code-offset #x3FFF80)		; see character.h

Kenichi Handa's avatar
Kenichi Handa committed
140
(define-charset 'eight-bit-graphic
Dave Love's avatar
Dave Love committed
141 142
  "Raw bytes in the range 0xA0..0xFF (usually produced from invalid encodings)"
  :short-name "Raw bytes 0xA0..0xFF"
143
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
144
  :code-space [160 255]
Dave Love's avatar
Dave Love committed
145
  :code-offset #x3FFFA0)		; see character.h
Kenichi Handa's avatar
Kenichi Handa committed
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

(defmacro define-iso-single-byte-charset (symbol iso-symbol name nickname
						 iso-ir iso-final
						 emacs-mule-id map)
  `(progn
     (define-charset ,symbol
       ,name
       :short-name ,nickname
       :long-name ,name
       :ascii-compatible-p t
       :code-space [0 255]
       :map ,map)
     (if ,iso-symbol
	 (define-charset ,iso-symbol
	   (if ,iso-ir
	       (format "Right-Hand Part of %s (%s): ISO-IR-%d"
		       ,name ,nickname ,iso-ir)
	     (format "Right-Hand Part of %s (%s)" ,name ,nickname))
	   :short-name (format "RHP of %s" ,name)
	   :long-name (format "RHP of %s (%s)" ,name ,nickname)
	   :iso-final-char ,iso-final
Dave Love's avatar
Dave Love committed
167
	   :emacs-mule-id ,emacs-mule-id
Kenichi Handa's avatar
Kenichi Handa committed
168
	   :code-space [32 127]
169
	   :subset (list ,symbol 160 255 -128)))))
Kenichi Handa's avatar
Kenichi Handa committed
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194

(define-iso-single-byte-charset 'iso-8859-2 'latin-iso8859-2
  "ISO/IEC 8859/2" "Latin-2" 101 ?B 130 "8859-2")

(define-iso-single-byte-charset 'iso-8859-3 'latin-iso8859-3
  "ISO/IEC 8859/3" "Latin-3" 109 ?C 131 "8859-3")

(define-iso-single-byte-charset 'iso-8859-4 'latin-iso8859-4
  "ISO/IEC 8859/4" "Latin-4" 110 ?D 132 "8859-4")

(define-iso-single-byte-charset 'iso-8859-5 'cyrillic-iso8859-5
  "ISO/IEC 8859/5" "Latin/Cyrillic" 144 ?L 140 "8859-5")

(define-iso-single-byte-charset 'iso-8859-6 'arabic-iso8859-6
  "ISO/IEC 8859/6" "Latin/Arabic" 127 ?G 135 "8859-6")

(define-iso-single-byte-charset 'iso-8859-7 'greek-iso8859-7
  "ISO/IEC 8859/7" "Latin/Greek" 126 ?F 134 "8859-7")

(define-iso-single-byte-charset 'iso-8859-8 'hebrew-iso8859-8
  "ISO/IEC 8859/8" "Latin/Hebrew" 138 ?H 136 "8859-8")

(define-iso-single-byte-charset 'iso-8859-9 'latin-iso8859-9
  "ISO/IEC 8859/9" "Latin-5" 148 ?M 141 "8859-9")

Dave Love's avatar
Dave Love committed
195
(define-iso-single-byte-charset 'iso-8859-10 'latin-iso8859-10
Dave Love's avatar
Dave Love committed
196
  "ISO/IEC 8859/10" "Latin-6" 157 ?V nil "8859-10")
Dave Love's avatar
Dave Love committed
197

Dave Love's avatar
Dave Love committed
198 199 200 201 202 203 204
;; http://www.nectec.or.th/it-standards/iso8859-11/
;; http://www.cwi.nl/~dik/english/codes/8859.html says this is tis-620
;; plus nbsp
(define-iso-single-byte-charset 'iso-8859-11 'thai-iso8859-11
  "ISO/IEC 8859/11" "Latin/Thai" 166 ?T nil "8859-11")

;; 8859-12 doesn't (yet?) exist.
Dave Love's avatar
Dave Love committed
205

Kenichi Handa's avatar
Kenichi Handa committed
206
(define-iso-single-byte-charset 'iso-8859-13 'latin-iso8859-13
Dave Love's avatar
Dave Love committed
207
  "ISO/IEC 8859/13" "Latin-7" 179 ?Y nil "8859-13")
Kenichi Handa's avatar
Kenichi Handa committed
208 209 210 211 212 213 214

(define-iso-single-byte-charset 'iso-8859-14 'latin-iso8859-14
  "ISO/IEC 8859/14" "Latin-8" 199 ?_ 143 "8859-14")

(define-iso-single-byte-charset 'iso-8859-15 'latin-iso8859-15
  "ISO/IEC 8859/15" "Latin-9" 203 ?b 142 "8859-15")

Dave Love's avatar
Dave Love committed
215
(define-iso-single-byte-charset 'iso-8859-16 'latin-iso8859-16
Dave Love's avatar
Dave Love committed
216
  "ISO/IEC 8859/16" "Latin-10" 226 ?f nil "8859-16")
Dave Love's avatar
Dave Love committed
217

Dave Love's avatar
Dave Love committed
218 219 220
;; No point in keeping it around.
(fmakunbound 'define-iso-single-byte-charset)

Dave Love's avatar
Dave Love committed
221
;; Can this be shared with 8859-11?
Dave Love's avatar
Dave Love committed
222
;; N.b. not all of these are defined unicodes.
Kenichi Handa's avatar
Kenichi Handa committed
223 224 225 226 227 228 229 230
(define-charset 'thai-tis620
  "TIS620.2533"
  :short-name "TIS620.2533"
  :iso-final-char ?T
  :emacs-mule-id 133
  :code-space [32 127]
  :code-offset #x0E00)

Dave Love's avatar
Dave Love committed
231
;; Fixme: doc for this, c.f. above
Kenichi Handa's avatar
Kenichi Handa committed
232 233 234 235 236
(define-charset 'tis620-2533
  "TIS620.2533"
  :short-name "TIS620.2533"
  :ascii-compatible-p t
  :code-space [0 255]
237
  :superset '(ascii eight-bit-control (thai-tis620 . 128)))
Kenichi Handa's avatar
Kenichi Handa committed
238 239 240 241

(define-charset 'jisx0201
  "JISX0201"
  :short-name "JISX0201"
Kenichi Handa's avatar
Kenichi Handa committed
242 243
  :code-space [0 #xDF]
  :map "JISX0201")
Kenichi Handa's avatar
Kenichi Handa committed
244 245 246 247 248 249 250

(define-charset 'latin-jisx0201
  "Roman Part of JISX0201.1976"
  :short-name "JISX0201 Roman"
  :long-name "Japanese Roman (JISX0201.1976)"
  :iso-final-char ?J
  :emacs-mule-id  138
251
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
252
  :code-space [33 126]
253
  :subset '(jisx0201 33 126 0))
Kenichi Handa's avatar
Kenichi Handa committed
254 255 256 257 258 259 260

(define-charset 'katakana-jisx0201
  "Katakana Part of JISX0201.1976"
  :short-name "JISX0201 Katakana"
  :long-name "Japanese Katakana (JISX0201.1976)"
  :iso-final-char ?I
  :emacs-mule-id  137
261
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
262
  :code-space [33 126]
263
  :subset '(jisx0201 161 254 -128))
Kenichi Handa's avatar
Kenichi Handa committed
264 265 266 267 268 269 270 271 272

(define-charset 'chinese-gb2312
  "GB2312 Chinese simplified: ISO-IR-58"
  :short-name "GB2312"
  :long-name "GB2312: ISO-IR-58"
  :iso-final-char ?A
  :emacs-mule-id 145
  :code-space [33 126 33 126]
  :code-offset #x110000
Kenichi Handa's avatar
Kenichi Handa committed
273
  :unify-map "GB2312")
Kenichi Handa's avatar
Kenichi Handa committed
274

Kenichi Handa's avatar
Kenichi Handa committed
275
(define-charset 'chinese-gbk
Dave Love's avatar
Dave Love committed
276
  "GBK Chinese simplified."
Kenichi Handa's avatar
Kenichi Handa committed
277 278
  :short-name "GBK"
  :code-space [#x40 #xFE #x81 #xFE]
279
  :code-offset #x160000
Kenichi Handa's avatar
Kenichi Handa committed
280
  :unify-map "GBK")
Dave Love's avatar
Dave Love committed
281
(define-charset-alias 'cp936 'chinese-gbk)
Dave Love's avatar
Dave Love committed
282
(define-charset-alias 'windows-936 'chinese-gbk)
Kenichi Handa's avatar
Kenichi Handa committed
283

Kenichi Handa's avatar
Kenichi Handa committed
284 285 286 287 288 289 290 291
(define-charset 'chinese-cns11643-1
  "CNS11643 Plane 1 Chinese traditional: ISO-IR-171"
  :short-name "CNS11643-1"
  :long-name "CNS11643-1 (Chinese traditional): ISO-IR-171"
  :iso-final-char ?G
  :emacs-mule-id  149
  :code-space [33 126 33 126]
  :code-offset #x114000
Kenichi Handa's avatar
Kenichi Handa committed
292
  :unify-map "CNS-1")
Kenichi Handa's avatar
Kenichi Handa committed
293 294 295 296 297 298 299 300 301

(define-charset 'chinese-cns11643-2
  "CNS11643 Plane 2 Chinese traditional: ISO-IR-172"
  :short-name "CNS11643-2"
  :long-name "CNS11643-2 (Chinese traditional): ISO-IR-172"
  :iso-final-char ?H
  :emacs-mule-id  150
  :code-space [33 126 33 126]
  :code-offset #x118000
Kenichi Handa's avatar
Kenichi Handa committed
302
  :unify-map "CNS-2")
Kenichi Handa's avatar
Kenichi Handa committed
303 304 305 306 307 308 309 310

(define-charset 'chinese-cns11643-3
  "CNS11643 Plane 3 Chinese Traditional: ISO-IR-183"
  :short-name  "CNS11643-3"
  :long-name "CNS11643-3 (Chinese traditional): ISO-IR-183"
  :iso-final-char ?I
  :code-space [33 126 33 126]
  :emacs-mule-id  246
Kenichi Handa's avatar
Kenichi Handa committed
311 312
  :code-offset #x11C000
  :unify-map "CNS-3")
Kenichi Handa's avatar
Kenichi Handa committed
313 314 315 316 317 318 319 320

(define-charset 'chinese-cns11643-4
  "CNS11643 Plane 4 Chinese Traditional: ISO-IR-184"
  :short-name  "CNS11643-4"
  :long-name "CNS11643-4 (Chinese traditional): ISO-IR-184"
  :iso-final-char ?J
  :emacs-mule-id  247
  :code-space [33 126 33 126]
Kenichi Handa's avatar
Kenichi Handa committed
321 322
  :code-offset #x120000
  :unify-map "CNS-4")
Kenichi Handa's avatar
Kenichi Handa committed
323 324 325 326 327 328 329 330

(define-charset 'chinese-cns11643-5
  "CNS11643 Plane 5 Chinese Traditional: ISO-IR-185"
  :short-name  "CNS11643-5"
  :long-name "CNS11643-5 (Chinese traditional): ISO-IR-185"
  :iso-final-char ?K
  :emacs-mule-id  248
  :code-space [33 126 33 126]
Kenichi Handa's avatar
Kenichi Handa committed
331 332
  :code-offset #x124000
  :unify-map "CNS-5")
Kenichi Handa's avatar
Kenichi Handa committed
333 334 335 336 337 338 339 340

(define-charset 'chinese-cns11643-6
  "CNS11643 Plane 6 Chinese Traditional: ISO-IR-186"
  :short-name  "CNS11643-6"
  :long-name "CNS11643-6 (Chinese traditional): ISO-IR-186"
  :iso-final-char ?L
  :emacs-mule-id 249
  :code-space [33 126 33 126]
Kenichi Handa's avatar
Kenichi Handa committed
341 342
  :code-offset #x128000
  :unify-map "CNS-6")
Kenichi Handa's avatar
Kenichi Handa committed
343 344 345 346 347 348 349 350

(define-charset 'chinese-cns11643-7
  "CNS11643 Plane 7 Chinese Traditional: ISO-IR-187"
  :short-name  "CNS11643-7"
  :long-name "CNS11643-7 (Chinese traditional): ISO-IR-187"
  :iso-final-char ?M
  :emacs-mule-id 250
  :code-space [33 126 33 126]
Kenichi Handa's avatar
Kenichi Handa committed
351 352
  :code-offset #x12C000
  :unify-map "CNS-7")
Kenichi Handa's avatar
Kenichi Handa committed
353 354 355 356 357 358

(define-charset 'big5
  "Big5 (Chinese traditional)"
  :short-name "Big5"
  :code-space [#x40 #xFE #xA1 #xFE]
  :code-offset #x130000
Kenichi Handa's avatar
Kenichi Handa committed
359
  :unify-map "BIG5")
Dave Love's avatar
Dave Love committed
360 361 362
;; Fixme: AKA cp950 according to
;; <URL:http://www.microsoft.com/globaldev/reference/WinCP.asp>.  Is
;; that correct?
Kenichi Handa's avatar
Kenichi Handa committed
363 364

(define-charset 'chinese-big5-1
Dave Love's avatar
Dave Love committed
365
  "Frequently used part (A141-C67E) of Big5 (Chinese traditional)"
Kenichi Handa's avatar
Kenichi Handa committed
366 367 368 369
  :short-name "Big5 (Level-1)"
  :long-name "Big5 (Level-1) A141-C67F"
  :iso-final-char ?0
  :emacs-mule-id 152
370
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
371
  :code-space [#x21 #x7E #x21 #x7E]
Kenichi Handa's avatar
Kenichi Handa committed
372
  :code-offset #x135000
Kenichi Handa's avatar
Kenichi Handa committed
373
  :unify-map "BIG5-1")
Kenichi Handa's avatar
Kenichi Handa committed
374 375

(define-charset 'chinese-big5-2
Dave Love's avatar
Dave Love committed
376
  "Less frequently used part (C940-FEFE) of Big5 (Chinese traditional)"
Kenichi Handa's avatar
Kenichi Handa committed
377 378 379 380
  :short-name "Big5 (Level-2)"
  :long-name "Big5 (Level-2) C940-FEFE"
  :iso-final-char ?1
  :emacs-mule-id  153
381
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
382
  :code-space [#x21 #x7E #x21 #x7E]
Kenichi Handa's avatar
Kenichi Handa committed
383
  :code-offset #x137800
Kenichi Handa's avatar
Kenichi Handa committed
384
  :unify-map "BIG5-2")
Kenichi Handa's avatar
Kenichi Handa committed
385 386 387 388 389 390 391 392 393

(define-charset 'japanese-jisx0208
  "JISX0208.1983/1990 Japanese Kanji: ISO-IR-87"
  :short-name "JISX0208"
  :long-name "JISX0208.1983/1990 (Japanese): ISO-IR-87"
  :iso-final-char ?B
  :emacs-mule-id 146
  :code-space [33 126 33 126]
  :code-offset #x140000
Kenichi Handa's avatar
Kenichi Handa committed
394
  :unify-map "JISX0208")
Kenichi Handa's avatar
Kenichi Handa committed
395 396 397 398

(define-charset 'japanese-jisx0208-1978
  "JISX0208.1978 Japanese Kanji (so called \"old JIS\"): ISO-IR-42"
  :short-name "JISX0208.1978"
Kenichi Handa's avatar
Kenichi Handa committed
399
  :long-name  "JISX0208.1978 (JISC6226.1978): ISO-IR-42"
Kenichi Handa's avatar
Kenichi Handa committed
400 401 402 403
  :iso-final-char ?@
  :emacs-mule-id  144
  :code-space [33 126 33 126]
  :code-offset #x144000
Kenichi Handa's avatar
Kenichi Handa committed
404
  :unify-map "JISC6226")
Kenichi Handa's avatar
Kenichi Handa committed
405 406 407 408 409 410 411 412 413

(define-charset 'japanese-jisx0212
  "JISX0212 Japanese supplement: ISO-IR-159"
  :short-name "JISX0212"
  :long-name "JISX0212 (Japanese): ISO-IR-159"
  :iso-final-char ?D
  :emacs-mule-id 148
  :code-space [33 126 33 126]
  :code-offset #x148000
Kenichi Handa's avatar
Kenichi Handa committed
414
  :unify-map "JISX0212")
Kenichi Handa's avatar
Kenichi Handa committed
415

Dave Love's avatar
Dave Love committed
416 417
;; Note that jisx0213 contains characters not in Unicode (3.2?).  It's
;; arguable whether it should have a unify-map.
Kenichi Handa's avatar
Kenichi Handa committed
418
(define-charset 'japanese-jisx0213-1
419
  "JISX0213.2000 Plane 1 (Japanese)"
Kenichi Handa's avatar
Kenichi Handa committed
420 421 422
  :short-name "JISX0213-1"
  :iso-final-char ?O
  :emacs-mule-id  151
Kenichi Handa's avatar
Kenichi Handa committed
423
  :unify-map "JISX2131"
Kenichi Handa's avatar
Kenichi Handa committed
424 425 426 427
  :code-space [33 126 33 126]
  :code-offset #x14C000)

(define-charset 'japanese-jisx0213-2
428
  "JISX0213.2000 Plane 2 (Japanese)"
Kenichi Handa's avatar
Kenichi Handa committed
429 430 431
  :short-name "JISX0213-2"
  :iso-final-char ?P
  :emacs-mule-id 254
Kenichi Handa's avatar
Kenichi Handa committed
432
  :unify-map "JISX2132"
Kenichi Handa's avatar
Kenichi Handa committed
433 434 435
  :code-space [33 126 33 126]
  :code-offset #x150000)

436 437 438 439 440 441 442 443 444 445 446
(define-charset 'japanese-jisx0213-a
  "JISX0213.2004 adds these characters to JISX0213.2000."
  :short-name "JISX0213A"
  :dimension 2
  :code-space [33 126 33 126]
  :supplementary-p t
  :map "JISX213A")

(define-charset 'japanese-jisx0213.2004-1
  "JISX0213.2004 Plane1 (Japanese)"
  :short-name "JISX0213.2004-1"
447
  :dimension 2
448
  :code-space [33 126 33 126]
449 450 451
  :iso-final-char ?Q
  :superset '(japanese-jisx0213-a japanese-jisx0213-1))

452 453 454
(define-charset 'katakana-sjis
  "Katakana part of Shift-JIS"
  :dimension 1
455 456
  :code-space [#xA1 #xDF]
  :subset '(jisx0201 #xA1 #xDF 0)
457 458 459 460
  :supplementary-p t)

(define-charset 'cp932-2-byte
  "2-byte part of CP932"
461
  :dimension 2
462
  :map "CP932-2BYTE"
463
  :code-space [#x40 #xFC #x81 #xFC]
464 465 466 467 468 469 470 471
  :supplementary-p t)

(define-charset 'cp932
  "CP932 (Microsoft shift-jis)"
  :code-space [#x00 #xFF #x00 #xFE]
  :short-name "CP932"
  :superset '(ascii katakana-sjis cp932-2-byte))

Kenichi Handa's avatar
Kenichi Handa committed
472 473 474 475 476 477 478
(define-charset 'korean-ksc5601
  "KSC5601 Korean Hangul and Hanja: ISO-IR-149"
  :short-name "KSC5601"
  :long-name "KSC5601 (Korean): ISO-IR-149"
  :iso-final-char ?C
  :emacs-mule-id 147
  :code-space [33 126 33 126]
479
  :code-offset #x279f94			; ... #x27c217
Kenichi Handa's avatar
Kenichi Handa committed
480
  :unify-map "KSC5601")
Kenichi Handa's avatar
Kenichi Handa committed
481

482 483 484 485 486
(define-charset 'big5-hkscs
  "Big5-HKSCS (Chinese traditional, Hong Kong supplement)"
  :short-name "Big5"
  :code-space [#x40 #xFE #xA1 #xFE]
  :code-offset #x27c218			; ... #x280839
Kenichi Handa's avatar
Kenichi Handa committed
487
  :unify-map "BIG5-HKSCS")
488

Dave Love's avatar
Dave Love committed
489 490
;; Fixme: Korean cp949/UHC

Kenichi Handa's avatar
Kenichi Handa committed
491 492 493 494 495 496 497
(define-charset 'chinese-sisheng
  "SiSheng characters for PinYin/ZhuYin"
  :short-name "SiSheng"
  :long-name "SiSheng (PinYin/ZhuYin)"
  :iso-final-char ?0
  :emacs-mule-id 160
  :code-space [33 126]
Kenichi Handa's avatar
Kenichi Handa committed
498
  :unify-map "MULE-sisheng"
499
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
500 501
  :code-offset #x200000)

Dave Love's avatar
Dave Love committed
502 503 504
;; A subset of the 1989 version of IPA.  It consists of the consonant
;; signs used in English, French, German and Italian, and all vowels
;; signs in the table.  [says old MULE doc]
Kenichi Handa's avatar
Kenichi Handa committed
505 506 507 508 509
(define-charset 'ipa
  "IPA (International Phonetic Association)"
  :short-name "IPA"
  :iso-final-char ?0
  :emacs-mule-id  161
Kenichi Handa's avatar
Kenichi Handa committed
510
  :unify-map "MULE-ipa"
Kenichi Handa's avatar
Kenichi Handa committed
511
  :code-space [32 127]
512
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
513 514 515 516 517 518 519
  :code-offset #x200080)

(define-charset 'viscii
  "VISCII1.1"
  :short-name "VISCII"
  :long-name "VISCII 1.1"
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
520
  :map "VISCII")
Kenichi Handa's avatar
Kenichi Handa committed
521 522 523 524 525 526 527 528

(define-charset 'vietnamese-viscii-lower
  "VISCII1.1 lower-case"
  :short-name "VISCII lower"
  :long-name "VISCII lower-case"
  :iso-final-char ?1
  :emacs-mule-id  162
  :code-space [32 127]
529
  :code-offset #x200200
530
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
531
  :unify-map "MULE-lviscii")
Kenichi Handa's avatar
Kenichi Handa committed
532 533 534 535 536 537 538 539

(define-charset 'vietnamese-viscii-upper
  "VISCII1.1 upper-case"
  :short-name "VISCII upper"
  :long-name "VISCII upper-case"
  :iso-final-char ?2
  :emacs-mule-id  163
  :code-space [32 127]
540
  :code-offset #x200280
541
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
542
  :unify-map "MULE-uviscii")
Kenichi Handa's avatar
Kenichi Handa committed
543 544

(define-charset 'vscii
Kenichi Handa's avatar
Kenichi Handa committed
545
  "VSCII1.1 (TCVN-5712 VN1)"
Kenichi Handa's avatar
Kenichi Handa committed
546 547
  :short-name "VSCII"
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
548 549 550
  :map "VSCII")

(define-charset-alias 'tcvn-5712 'vscii)
Kenichi Handa's avatar
Kenichi Handa committed
551

Dave Love's avatar
Dave Love committed
552
;; Fixme: see note in tcvn.map about combining characters
Kenichi Handa's avatar
Kenichi Handa committed
553 554
(define-charset 'vscii-2
  "VSCII-2 (TCVN-5712 VN2)"
Dave Love's avatar
Dave Love committed
555
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
556
  :map "VSCII-2")
Dave Love's avatar
Dave Love committed
557

Kenichi Handa's avatar
Kenichi Handa committed
558 559 560 561 562
(define-charset 'koi8-r
  "KOI8-R"
  :short-name "KOI8-R"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
563
  :map "KOI8-R")
Kenichi Handa's avatar
Kenichi Handa committed
564 565 566 567 568 569 570 571

(define-charset-alias 'koi8 'koi8-r)

(define-charset 'alternativnyj
  "ALTERNATIVNYJ"
  :short-name "alternativnyj"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
572
  :map "ALTERNATIVNYJ")
Dave Love's avatar
Dave Love committed
573 574 575 576 577 578

(define-charset 'cp866
  "CP866"
  :short-name "cp866"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
579
  :map "IBM866")
Dave Love's avatar
Dave Love committed
580
(define-charset-alias 'ibm866 'cp866)
Karl Heuer's avatar
Karl Heuer committed
581

Dave Love's avatar
Dave Love committed
582 583 584 585 586
(define-charset 'koi8-u
  "KOI8-U"
  :short-name "KOI8-U"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
587
  :map "KOI8-U")
Dave Love's avatar
Dave Love committed
588 589 590 591 592 593

(define-charset 'koi8-t
  "KOI8-T"
  :short-name "KOI8-T"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
594
  :map "KOI8-T")
Dave Love's avatar
Dave Love committed
595 596 597 598 599 600

(define-charset 'georgian-ps
  "GEORGIAN-PS"
  :short-name "GEORGIAN-PS"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
601
  :map "KA-PS")
Dave Love's avatar
Dave Love committed
602

603 604 605 606 607
(define-charset 'georgian-academy
  "GEORGIAN-ACADEMY"
  :short-name "GEORGIAN-ACADEMY"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
608
  :map "KA-ACADEMY")
609

Dave Love's avatar
Dave Love committed
610
(define-charset 'windows-1250
Dave Love's avatar
Dave Love committed
611
  "WINDOWS-1250 (Central Europe)"
Dave Love's avatar
Dave Love committed
612 613 614
  :short-name "WINDOWS-1250"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
615
  :map "CP1250")
Dave Love's avatar
Dave Love committed
616 617 618
(define-charset-alias 'cp1250 'windows-1250)

(define-charset 'windows-1251
Dave Love's avatar
Dave Love committed
619
  "WINDOWS-1251 (Cyrillic)"
Dave Love's avatar
Dave Love committed
620 621 622
  :short-name "WINDOWS-1251"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
623
  :map "CP1251")
Dave Love's avatar
Dave Love committed
624 625 626
(define-charset-alias 'cp1251 'windows-1251)

(define-charset 'windows-1252
Dave Love's avatar
Dave Love committed
627
  "WINDOWS-1252 (Latin I)"
Dave Love's avatar
Dave Love committed
628 629 630
  :short-name "WINDOWS-1252"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
631
  :map "CP1252")
Dave Love's avatar
Dave Love committed
632 633
(define-charset-alias 'cp1252 'windows-1252)

Dave Love's avatar
Dave Love committed
634
(define-charset 'windows-1253
Dave Love's avatar
Dave Love committed
635
  "WINDOWS-1253 (Greek)"
Dave Love's avatar
Dave Love committed
636 637 638
  :short-name "WINDOWS-1253"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
639
  :map "CP1253")
Dave Love's avatar
Dave Love committed
640 641 642
(define-charset-alias 'cp1253 'windows-1253)

(define-charset 'windows-1254
Dave Love's avatar
Dave Love committed
643
  "WINDOWS-1254 (Turkish)"
Dave Love's avatar
Dave Love committed
644 645 646
  :short-name "WINDOWS-1254"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
647
  :map "CP1254")
Dave Love's avatar
Dave Love committed
648 649 650 651 652 653 654
(define-charset-alias 'cp1254 'windows-1254)

(define-charset 'windows-1255
  "WINDOWS-1255 (Hebrew)"
  :short-name "WINDOWS-1255"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
655
  :map "CP1255")
Dave Love's avatar
Dave Love committed
656 657 658 659 660 661 662
(define-charset-alias 'cp1255 'windows-1255)

(define-charset 'windows-1256
  "WINDOWS-1256 (Arabic)"
  :short-name "WINDOWS-1256"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
663
  :map "CP1256")
Dave Love's avatar
Dave Love committed
664 665 666 667 668 669 670
(define-charset-alias 'cp1256 'windows-1256)

(define-charset 'windows-1257
  "WINDOWS-1257 (Baltic)"
  :short-name "WINDOWS-1257"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
671
  :map "CP1257")
Dave Love's avatar
Dave Love committed
672 673 674
(define-charset-alias 'cp1257 'windows-1257)

(define-charset 'windows-1258
Dave Love's avatar
Dave Love committed
675
  "WINDOWS-1258 (Viet Nam)"
Dave Love's avatar
Dave Love committed
676 677 678
  :short-name "WINDOWS-1258"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
679
  :map "CP1258")
Dave Love's avatar
Dave Love committed
680 681 682 683 684 685 686
(define-charset-alias 'cp1258 'windows-1258)

(define-charset 'next
  "NEXT"
  :short-name "NEXT"
  :ascii-compatible-p t
  :code-space [0 255]
Kenichi Handa's avatar
Kenichi Handa committed
687
  :map "NEXTSTEP")
Dave Love's avatar
Dave Love committed
688

Dave Love's avatar
Dave Love committed
689 690 691 692
(define-charset 'cp1125
  "CP1125"
  :short-name "CP1125"
  :code-space [0 255]
693
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
694
  :map "CP1125")
Dave Love's avatar
Dave Love committed
695 696 697 698
(define-charset-alias 'ruscii 'cp1125)
;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
(define-charset-alias 'cp866u 'cp1125)

Dave Love's avatar
Dave Love committed
699 700 701
;; Fixme: C.f. iconv, http://czyborra.com/charsets/codepages.html
;; shows this as not ASCII comptaible, with various graphics in
;; 0x01-0x1F.
702
(define-charset 'cp437
Dave Love's avatar
Dave Love committed
703
  "CP437 (MS-DOS United States, Australia, New Zealand, South Africa)"
704 705 706
  :short-name "CP437"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
707
  :map "IBM437")
708

Dave Love's avatar
Dave Love committed
709 710 711 712 713
(define-charset 'cp720
  "CP720 (Arabic)"
  :short-name "CP720"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
714
  :map "CP720")
Dave Love's avatar
Dave Love committed
715

716
(define-charset 'cp737
Dave Love's avatar
Dave Love committed
717
  "CP737 (PC Greek)"
718 719 720
  :short-name "CP737"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
721
  :map "CP737")
722 723

(define-charset 'cp775
Dave Love's avatar
Dave Love committed
724
  "CP775 (PC Baltic)"
725 726 727
  :short-name "CP775"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
728
  :map "CP775")
729 730

(define-charset 'cp851
Dave Love's avatar
Dave Love committed
731
  "CP851 (Greek)"
732 733 734
  :short-name "CP851"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
735
  :map "IBM851")
736 737

(define-charset 'cp852
Dave Love's avatar
Dave Love committed
738
  "CP852 (MS-DOS Latin-2)"
739 740 741
  :short-name "CP852"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
742
  :map "IBM852")
743 744

(define-charset 'cp855
Dave Love's avatar
Dave Love committed
745
  "CP855 (IBM Cyrillic)"
746 747 748
  :short-name "CP855"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
749
  :map "IBM855")
750 751

(define-charset 'cp857
Dave Love's avatar
Dave Love committed
752
  "CP857 (IBM Turkish)"
753 754 755
  :short-name "CP857"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
756
  :map "IBM857")
757

Dave Love's avatar
Dave Love committed
758 759 760 761 762
(define-charset 'cp858
  "CP858 (Multilingual Latin I + Euro)"
  :short-name "CP858"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
763
  :map "CP858")
Dave Love's avatar
Dave Love committed
764
(define-charset-alias 'cp00858 'cp858)	; IANA has IBM00858/CP00858
Dave Love's avatar
Dave Love committed
765

766
(define-charset 'cp860
Dave Love's avatar
Dave Love committed
767
  "CP860 (MS-DOS Portuguese)"
768 769 770
  :short-name "CP860"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
771
  :map "IBM860")
772 773

(define-charset 'cp861
Dave Love's avatar
Dave Love committed
774
  "CP861 (MS-DOS Icelandic)"
775 776 777
  :short-name "CP861"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
778
  :map "IBM861")
779 780

(define-charset 'cp862
Dave Love's avatar
Dave Love committed
781
  "CP862 (PC Hebrew)"
782 783 784
  :short-name "CP862"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
785
  :map "IBM862")
786 787

(define-charset 'cp863
Dave Love's avatar
Dave Love committed
788
  "CP863 (MS-DOS Canadian French)"
789 790 791
  :short-name "CP863"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
792
  :map "IBM863")
793 794

(define-charset 'cp864
Dave Love's avatar
Dave Love committed
795
  "CP864 (PC Arabic)"
796 797 798
  :short-name "CP864"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
799
  :map "IBM864")
800 801

(define-charset 'cp865
Dave Love's avatar
Dave Love committed
802
  "CP865 (MS-DOS Nordic)"
803 804 805
  :short-name "CP865"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
806
  :map "IBM865")
807 808

(define-charset 'cp869
Dave Love's avatar
Dave Love committed
809
  "CP869 (IBM Modern Greek)"
810 811 812
  :short-name "CP869"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
813
  :map "IBM869")
814 815

(define-charset 'cp874
Dave Love's avatar
Dave Love committed
816
  "CP874 (IBM Thai)"
817 818 819
  :short-name "CP874"
  :code-space [0 255]
  :ascii-compatible-p t
Kenichi Handa's avatar
Kenichi Handa committed
820
  :map "IBM874")
Karl Heuer's avatar
Karl Heuer committed
821 822 823 824 825

;; For Arabic, we need three different types of character sets.
;; Digits are of direction left-to-right and of width 1-column.
;; Others are of direction right-to-left and of width 1-column or
;; 2-column.
Kenichi Handa's avatar
Kenichi Handa committed
826 827 828 829 830
(define-charset 'arabic-digit
  "Arabic digit"
  :short-name "Arabic digit"
  :iso-final-char ?2
  :emacs-mule-id 164
831
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
832 833 834 835 836 837 838 839 840
  :code-space [34 42]
  :code-offset #x0600)

(define-charset 'arabic-1-column
  "Arabic 1-column"
  :short-name "Arabic 1-col"
  :long-name "Arabic 1-column"
  :iso-final-char ?3
  :emacs-mule-id 165
841
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
842 843 844 845 846 847 848 849 850
  :code-space [33 126]
  :code-offset #x200100)

(define-charset 'arabic-2-column
  "Arabic 2-column"
  :short-name "Arabic 2-col"
  :long-name "Arabic 2-column"
  :iso-final-char ?4
  :emacs-mule-id 224
851
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
852 853
  :code-space [33 126]
  :code-offset #x200180)
854 855

;; Lao script.
Kenichi Handa's avatar
Kenichi Handa committed
856
;; Codes 0x21..0x7E are mapped to Unicode U+0E81..U+0EDF.
Dave Love's avatar
Dave Love committed
857
;; Not all of them are defined unicodes.
Kenichi Handa's avatar
Kenichi Handa committed
858 859 860 861 862
(define-charset 'lao
  "Lao characters (ISO10646 0E81..0EDF)"
  :short-name "Lao"
  :iso-final-char ?1
  :emacs-mule-id 167
863
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
864 865 866 867 868 869 870
  :code-space [33 126]
  :code-offset #x0E81)

(define-charset 'mule-lao
  "Lao characters (ISO10646 0E81..0EDF)"
  :short-name "Lao"
  :code-space [0 255]
871
  :supplementary-p t
872
  :superset '(ascii eight-bit-control (lao . 128)))
873

Karl Heuer's avatar
Karl Heuer committed
874

875 876 877 878
;; Indian scripts.  Symbolic charset for data exchange.  Glyphs are
;; not assigned.  They are automatically converted to each Indian
;; script which IS-13194 supports.

Kenichi Handa's avatar
Kenichi Handa committed
879 880 881 882 883 884
(define-charset 'indian-is13194
  "Generic Indian charset for data exchange with IS 13194"
  :short-name "IS 13194"
  :long-name "Indian IS 13194"
  :iso-final-char ?5
  :emacs-mule-id 225
885
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
886 887 888
  :code-space [33 126]
  :code-offset #x180000)

Kenichi Handa's avatar
Kenichi Handa committed
889 890 891 892 893 894 895
(let ((code-offset #x180100))
  (dolist (script '(devanagari sanskrit bengali tamil telugu assamese
			       oriya kannada malayalam gujarati punjabi))
    (define-charset (intern (format "%s-cdac" script))
      (format "Glyphs of %s script for CDAC font.  Subset of `indian-glyph'."
	      (capitalize (symbol-name script)))
      :short-name (format "CDAC %s glyphs" (capitalize (symbol-name script)))
896
      :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
897 898 899 900 901 902 903 904 905 906
      :code-space [0 255]
      :code-offset code-offset)
    (setq code-offset (+ code-offset #x100)))

  (dolist (script '(devanagari bengali punjabi gujarati
			       oriya tamil telugu kannada malayalam))
    (define-charset (intern (format "%s-akruti" script))
      (format "Glyphs of %s script for AKRUTI font.  Subset of `indian-glyph'."
	      (capitalize (symbol-name script)))
      :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name script)))
907
      :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
908 909 910
      :code-space [0 255]
      :code-offset code-offset)
    (setq code-offset (+ code-offset #x100))))
Dave Love's avatar
Dave Love committed
911

912
(define-charset 'indian-glyph
Kenichi Handa's avatar
Kenichi Handa committed
913 914 915 916
  "Glyphs for Indian characters."
  :short-name "Indian glyph"
  :iso-final-char ?4
  :emacs-mule-id 240
917
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
918 919
  :code-space [32 127 32 127]
  :code-offset #x180100)
920 921

;; Actual Glyph for 1-column width.
Kenichi Handa's avatar
Kenichi Handa committed
922
(define-charset 'indian-1-column
923
  "Indian charset for 1-column width glyphs."
Kenichi Handa's avatar
Kenichi Handa committed
924 925 926
  :short-name "Indian 1-col"
  :long-name "Indian 1 Column"
  :iso-final-char ?6
927
  :emacs-mule-id  251
928
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
929 930
  :code-space [33 126 33 126]
  :code-offset #x184000)
Karl Heuer's avatar
Karl Heuer committed
931 932

;; Actual Glyph for 2-column width.
Kenichi Handa's avatar
Kenichi Handa committed
933
(define-charset 'indian-2-column
934
  "Indian charset for 2-column width glyphs."
Kenichi Handa's avatar
Kenichi Handa committed
935 936 937 938
  :short-name "Indian 2-col"
  :long-name "Indian 2 Column"
  :iso-final-char ?5
  :emacs-mule-id  251
939
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
940
  :code-space [33 126 33 126]
941
  :code-offset #x184000)
Kenichi Handa's avatar
Kenichi Handa committed
942 943 944 945 946

(define-charset 'tibetan
  "Tibetan characters"
  :iso-final-char ?7
  :short-name "Tibetan 2-col"
Dave Love's avatar
Dave Love committed
947
  :long-name "Tibetan 2 column"
Kenichi Handa's avatar
Kenichi Handa committed
948 949
  :iso-final-char ?7
  :emacs-mule-id 252
Kenichi Handa's avatar
Kenichi Handa committed
950
  :unify-map "MULE-tibetan"
951
  :supplementary-p t
952
  :code-space [33 126 33 37]
Kenichi Handa's avatar
Kenichi Handa committed
953 954 955 956 957 958 959 960
  :code-offset #x190000)

(define-charset 'tibetan-1-column
  "Tibetan 1 column glyph"
  :short-name "Tibetan 1-col"
  :long-name "Tibetan 1 column"
  :iso-final-char ?8
  :emacs-mule-id 241
961
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
962
  :code-space [33 126 33 37]
963
  :code-offset #x190000)
964

Kenichi Handa's avatar
Kenichi Handa committed
965 966 967 968 969 970 971
;; Subsets of Unicode.
(define-charset 'mule-unicode-2500-33ff
  "Unicode characters of the range U+2500..U+33FF."
  :short-name "Unicode subset 2"
  :long-name "Unicode subset (U+2500..U+33FF)"
  :iso-final-char ?2
  :emacs-mule-id 242
972
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
973 974 975 976 977 978 979 980 981
  :code-space [#x20 #x7f #x20 #x47]
  :code-offset #x2500)

(define-charset 'mule-unicode-e000-ffff
  "Unicode characters of the range U+E000..U+FFFF."
  :short-name "Unicode subset 3"
  :long-name "Unicode subset (U+E000+FFFF)"
  :iso-final-char ?3
  :emacs-mule-id 243
982
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
983
  :code-space [#x20 #x7F #x20 #x75]
Dave Love's avatar
Dave Love committed
984 985
  :code-offset #xE000
  :max-code 30015)			; U+FFFF
Kenichi Handa's avatar
Kenichi Handa committed
986 987 988 989 990 991 992

(define-charset 'mule-unicode-0100-24ff
  "Unicode characters of the range U+0100..U+24FF."
  :short-name "Unicode subset"
  :long-name "Unicode subset (U+0100..U+24FF)"
  :iso-final-char ?1
  :emacs-mule-id 244
993
  :supplementary-p t
Kenichi Handa's avatar
Kenichi Handa committed
994 995 996
  :code-space [#x20 #x7F #x20 #x7F]
  :code-offset #x100)

Dave Love's avatar
Dave Love committed
997
(define-charset 'unicode-bmp
998
  "Unicode Basic Multilingual Plane (U+0000..U+FFFF)"
Dave Love's avatar
Dave Love committed
999 1000
  :short-name "Unicode BMP"
  :code-space [0 255 0 255]
1001
  :code-offset 0)
Dave Love's avatar
Dave Love committed
1002

1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 <