1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-22 10:26:20 +00:00
emacs/lisp/international/code-pages.el
Kenichi Handa ea561de5e5 (windows-1256, cp1125): Fix tables
for several characters.
2004-06-14 00:35:11 +00:00

4501 lines
45 KiB
EmacsLisp
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*-
;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
;; Author: Dave Love <fx@gnu.org>
;; Keywords: i18n
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; 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
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Commentary:
;; Definitions of miscellaneous 8-bit coding systems based on ASCII
;; (we can't cope properly with EBCDIC, for instance), mainly for PC
;; `code pages'. They are decoded into Latin-1 and mule-unicode
;; charsets rather than (lossily) into single iso8859 charsets à la
;; codepage.el. The utility `cp-make-coding-system' derives them from
;; simple tables.
;; Those covered are: cp437, cp737, cp720, cp775, cp850, cp851, cp852,
;; cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866,
;; cp869, cp874, cp1125, windows-1250, windows-1253, windows-1254,
;; windows-1255, windows-1256, windows-1257, windows-1258, next,
;; iso-8859-6, iso-8859-10, iso-8859-11, iso-8859-16, koi8-t,
;; georgian-ps. This is meant to include all the single-byte ones
;; relevant to GNU (used in glibc-defined locales); we don't yet get
;; all the multibyte ones in base Emacs.
;; Note that various of these can clash with definitions in
;; codepage.el; we try to avoid damage from that. A few CPs from
;; codepage.el (770, 773, 774) aren't covered (in the absence of
;; translation tables to Unicode).
;; Compile this, to avoid loading `ccl' at runtime.
;; Although the tables used here aren't very big, it might be worth
;; splitting the file and autoloading the coding systems if/when my
;; (or similar) autoloading code is installed.
;;; Code:
;; The defsubsts here are just so that language files can use
;; `cp-make-coding-system' and not require functions from this file
;; at runtime.
(defsubst cp-make-translation-table (v)
"Return a translation table made from 128-long vector V.
V comprises characters encodable by mule-utf-8."
(let ((encoding-vector (make-vector 256 0)))
(dotimes (i 128)
(aset encoding-vector i i))
(dotimes (i 128)
(aset encoding-vector (+ i 128) (aref v i)))
;; Add equivalent characters to the encoder so that we can unify
;; on encoding.
(let* ((tab (make-translation-table-from-vector encoding-vector))
;; Translation table used for encoding:
(encode-table (char-table-extra-slot tab 0)))
(map-char-table (lambda (c v)
(if v
(let ((c1 (aref encode-table v)))
(if c1 ; we encode that unicode
(aset encode-table c c1)))))
ucs-mule-to-mule-unicode)
tab)))
(defsubst cp-valid-codes (v)
"Derive a valid-codes list for translation vector V.
See `make-coding-system'."
(let (pairs
(i 128) ; index into v
(start 0) ; start of a valid range
(end 127)) ; end of a valid range
(while (< i 256)
(if (aref v (- i 128)) ; start or extend range
(progn
(setq end i)
(unless start (setq start i)))
(if start
(push (cons start end) pairs))
(setq start nil))
(setq i (1+ i)))
(if start (push (cons start end) pairs))
(nreverse pairs)))
;; Fix things that have been, or might be, done by codepage.el.
(eval-after-load "codepage"
'(progn
;; Semi-dummy version for the stuff in codepage.el which we don't
;; define here. (Used by mule-diag.)
(defun cp-supported-codepages ()
"Return an alist of supported codepages.
Each association in the alist has the form (NNN . CHARSET), where NNN is the
codepage number, and CHARSET is the MULE charset which is the closest match
for the character set supported by that codepage.
A codepage NNN is supported if a variable called `cpNNN-decode-table' exists,
is a vector, and has a charset property."
'(("774" . latin-iso8859-4) ("770" . latin-iso8859-4)
("773" . latin-iso8859-4)))
;; A version which doesn't override the coding systems set up by this
;; file. It could still be used for the few missing ones from
;; codepage.el.
(defun codepage-setup (codepage)
"Create a coding system cpCODEPAGE to support the IBM codepage CODEPAGE.
These coding systems are meant for encoding and decoding 8-bit non-ASCII
characters used by the IBM codepages, typically in conjunction with files
read/written by MS-DOS software, or for display on the MS-DOS terminal."
(interactive
(let ((completion-ignore-case t)
(candidates (cp-supported-codepages)))
(list (completing-read "Setup DOS Codepage: (default 437) " candidates
nil t nil nil "437"))))
(let ((cp (format "cp%s" codepage)))
(unless (coding-system-p (intern cp))
(cp-make-coding-systems-for-codepage
cp (cp-charset-for-codepage cp) (cp-offset-for-codepage cp))))))
) ; eval-after-load
;; Macro to allow ccl compilation at byte-compile time, avoiding
;; loading ccl.
;;;###autoload
(defmacro cp-make-coding-system (name v &optional doc-string mnemonic)
"Make coding system NAME for and 8-bit, extended-ASCII character set.
V is a 128-long vector of characters to translate the upper half of
the character set. DOC-STRING and MNEMONIC are used as the
corresponding args of `make-coding-system'. If MNEMONIC isn't given,
?* is used.
Return an updated `non-iso-charset-alist'."
(let* ((encoder (intern (format "encode-%s" name)))
(decoder (intern (format "decode-%s" name)))
(ccl-decoder
(ccl-compile
`(4
((loop
(read r1)
(if (r1 < 128) ;; ASCII
(r0 = ,(charset-id 'ascii))
(if (r1 < 160)
(r0 = ,(charset-id 'eight-bit-control))
(r0 = ,(charset-id 'eight-bit-graphic))))
(translate-character ,decoder r0 r1)
;; Allow fragmentation on decoding -- relevant for
;; Cyrillic, Greek and, possibly Arabic and Hebrew.
(translate-character utf-translation-table-for-decode r0 r1)
(write-multibyte-character r0 r1)
(repeat))))))
(ccl-encoder
(ccl-compile
`(1
((loop
(read-multibyte-character r0 r1)
(translate-character ,encoder r0 r1)
(if (r0 != ,(charset-id 'ascii))
(if (r0 != ,(charset-id 'eight-bit-graphic))
(if (r0 != ,(charset-id 'eight-bit-control))
(r1 = ??))))
(write-repeat r1)))))))
`(let ((translation-table (cp-make-translation-table ,v))
(codes (cp-valid-codes ,v)))
(define-translation-table ',decoder translation-table)
(define-translation-table ',encoder
(char-table-extra-slot translation-table 0))
(make-coding-system
',name 4 ,(or mnemonic ?*)
(or ,doc-string (format "%s encoding" ',name))
(cons ,ccl-decoder ,ccl-encoder)
(list (cons 'safe-chars (get ',encoder 'translation-table))
(cons 'valid-codes codes)
(cons 'mime-charset ',name)
;; For Quail translation. Fixme: this should really be
;; a separate table that only translates the coding
;; system's safe-chars.
(cons 'translation-table-for-input ,ucs-mule-to-mule-unicode)))
(push (list ',name
nil ; charset list
',decoder
(let (l) ; code range
(dolist (elt (reverse codes))
(push (cdr elt) l)
(push (car elt) l))
(list l)))
non-iso-charset-alist))))
(eval-when-compile (defvar non-iso-charset-alist))
;; These tables were mostly derived by running somthing like
;; `recode -f cpxxx/..utf-8' on a binary file filled by
;; `(dotimes (i 128) (insert ?? ?\\ (+ 128 i) ?\n))' and then
;; exchanging the ?\<5C> entries for nil. iconv was used instead in some
;; cases.
;; Fixme: Do better for mode-line mnemonics?
(cp-make-coding-system
cp437
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\å
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\ì
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ô
?\ö
?\ò
?\û
?\ù
?\ÿ
?\Ö
?\Ü
?\¢
?\£
?\¥
?\₧
?\ƒ
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\ª
?\º
?\¿
?\⌐
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\φ
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\°
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp737
[?\Α
?\Β
?\Γ
?\Δ
?\Ε
?\Ζ
?\Η
?\Θ
?\Ι
?\Κ
?\Λ
?\Μ
?\Ν
?\Ξ
?\Ο
?\Π
?\Ρ
?\Σ
?\Τ
?\Υ
?\Φ
?\Χ
?\Ψ
?\Ω
?\α
?\β
?\γ
?\δ
?\ε
?\ζ
?\η
?\θ
?\ι
?\κ
?\λ
?\μ
?\ν
?\ξ
?\ο
?\π
?\ρ
?\σ
?\ς
?\τ
?\υ
?\φ
?\χ
?\ψ
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\ω
?\ά
?\έ
?\ή
?\ϊ
?\ί
?\ό
?\ύ
?\ϋ
?\ώ
?\Ά
?\Έ
?\Ή
?\Ί
?\Ό
?\Ύ
?\Ώ
?\±
?\≥
?\≤
?\Ϊ
?\Ϋ
?\÷
?\≈
?\°
?\∙
?\·
?\√
?\ⁿ
?\²
?\■
?\ ])
(coding-system-put 'cp737 'mime-charset nil) ; not in IANA list
(cp-make-coding-system
cp775
[?\Ć
?\ü
?\é
?\ā
?\ä
?\ģ
?\å
?\ć
?\ł
?\ē
?\Ŗ
?\ŗ
?\ī
?\Ź
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ō
?\ö
?\Ģ
?\¢
?\Ś
?\ś
?\Ö
?\Ü
?\ø
?\£
?\Ø
?\×
?\¤
?\Ā
?\Ī
?\ó
?\Ż
?\ż
?\ź
?\”
?\¦
?\©
?\®
?\¬
?\½
?\¼
?\Ł
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Ą
?\Č
?\Ę
?\Ė
?\╣
?\║
?\╗
?\╝
?\Į
?\Š
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\Ų
?\Ū
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\Ž
?\ą
?\č
?\ę
?\ė
?\į
?\š
?\ų
?\ū
?\ž
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\Ó
?\ß
?\Ō
?\Ń
?\õ
?\Õ
?\µ
?\ń
?\Ķ
?\ķ
?\Ļ
?\ļ
?\ņ
?\Ē
?\Ņ
?\
?\­
?\±
?\“
?\¾
?\¶
?\§
?\÷
?\„
?\°
?\∙
?\·
?\¹
?\³
?\²
?\■
?\ ])
(cp-make-coding-system
cp850
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\å
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\ì
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ô
?\ö
?\ò
?\û
?\ù
?\ÿ
?\Ö
?\Ü
?\ø
?\£
?\Ø
?\×
?\ƒ
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\ª
?\º
?\¿
?\®
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Á
?\Â
?\À
?\©
?\╣
?\║
?\╗
?\╝
?\¢
?\¥
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\ã
?\Ã
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\¤
?\ð
?\Ð
?\Ê
?\Ë
?\È
?\ı
?\Í
?\Î
?\Ï
?\┘
?\┌
?\█
?\▄
?\¦
?\Ì
?\▀
?\Ó
?\ß
?\Ô
?\Ò
?\õ
?\Õ
?\µ
?\þ
?\Þ
?\Ú
?\Û
?\Ù
?\ý
?\Ý
?\¯
?\´
?\­
?\±
?\‗
?\¾
?\¶
?\§
?\÷
?\¸
?\°
?\¨
?\·
?\¹
?\³
?\²
?\■
?\ ])
(cp-make-coding-system
cp851
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\Ά
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\Έ
?\Ä
?\Ή
?\Ί
nil
?\Ό
?\ô
?\ö
?\Ύ
?\û
?\ù
?\Ώ
?\Ö
?\Ü
?\ά
?\£
?\έ
?\ή
?\ί
?\ϊ
?\ΐ
?\ό
?\ύ
?\Α
?\Β
?\Γ
?\Δ
?\Ε
?\Ζ
?\Η
?\½
?\Θ
?\Ι
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Κ
?\Λ
?\Ν
?\Μ
?\╣
?\║
?\╗
?\╝
?\Ξ
?\Ο
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\Π
?\Ρ
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\Σ
?\Τ
?\Υ
?\Φ
?\Χ
?\Ψ
?\Ω
?\α
?\β
?\γ
?\┘
?\┌
?\█
?\▄
?\δ
?\ε
?\▀
?\ζ
?\η
?\θ
?\ι
?\κ
?\λ
?\μ
?\ν
?\ξ
?\ο
?\π
?\ρ
?\σ
?\ς
?\τ
?\´
?\­
?\±
?\υ
?\φ
?\χ
?\§
?\ψ
?\˛
?\°
?\¨
?\ω
?\ϋ
?\ΰ
?\ώ
?\■
?\ ])
(cp-make-coding-system
cp852
[?\Ç
?\ü
?\é
?\â
?\ä
?\ů
?\ć
?\ç
?\ł
?\ë
?\Ő
?\ő
?\î
?\Ź
?\Ä
?\Ć
?\É
?\Ĺ
?\ĺ
?\ô
?\ö
?\Ľ
?\ľ
?\Ś
?\ś
?\Ö
?\Ü
?\Ť
?\ť
?\Ł
?\×
?\č
?\á
?\í
?\ó
?\ú
?\Ą
?\ą
?\Ž
?\ž
?\Ę
?\ę
?\¬
?\ź
?\Č
?\ş
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Á
?\Â
?\Ě
?\Ş
?\╣
?\║
?\╗
?\╝
?\Ż
?\ż
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\Ă
?\ă
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\¤
?\đ
?\Đ
?\Ď
?\Ë
?\ď
?\Ň
?\Í
?\Î
?\ě
?\┘
?\┌
?\█
?\▄
?\Ţ
?\Ů
?\▀
?\Ó
?\ß
?\Ô
?\Ń
?\ń
?\ň
?\Š
?\š
?\Ŕ
?\Ú
?\ŕ
?\Ű
?\ý
?\Ý
?\ţ
?\´
?\­
?\˝
?\˛
?\ˇ
?\˘
?\§
?\÷
?\¸
?\°
?\¨
?\˙
?\ű
?\Ř
?\ř
?\■
?\ ])
(cp-make-coding-system
cp855
[?\ђ
?\Ђ
?\ѓ
?\Ѓ
?\ё
?\Ё
?\є
?\Є
?\ѕ
?\Ѕ
?\і
?\І
?\ї
?\Ї
?\ј
?\Ј
?\љ
?\Љ
?\њ
?\Њ
?\ћ
?\Ћ
?\ќ
?\Ќ
?\ў
?\Ў
?\џ
?\Џ
?\ю
?\Ю
?\ъ
?\Ъ
?\а
?\А
?\б
?\Б
?\ц
?\Ц
?\д
?\Д
?\е
?\Е
?\ф
?\Ф
?\г
?\Г
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\х
?\Х
?\и
?\И
?\╣
?\║
?\╗
?\╝
?\й
?\Й
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\к
?\К
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\¤
?\л
?\Л
?\м
?\М
?\н
?\Н
?\о
?\О
?\п
?\┘
?\┌
?\█
?\▄
?\П
?\я
?\▀
?\Я
?\р
?\Р
?\с
?\С
?\т
?\Т
?\у
?\У
?\ж
?\Ж
?\в
?\В
?\ь
?\Ь
?\´
?\­
?\ы
?\Ы
?\з
?\З
?\ш
?\Ш
?\э
?\Э
?\щ
?\Щ
?\ч
?\Ч
nil
?\■
?\ ])
(cp-make-coding-system
cp857
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\å
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\ı
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ô
?\ö
?\ò
?\û
?\ù
?\İ
?\Ö
?\Ü
?\ø
?\£
?\Ø
?\Ş
?\ş
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\Ğ
?\ğ
?\¿
?\®
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Á
?\Â
?\À
?\©
?\╣
?\║
?\╗
?\╝
?\¢
?\¥
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\ã
?\Ã
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\¤
?\º
?\ª
?\Ê
?\Ë
?\È
nil
?\Í
?\Î
?\Ï
?\┘
?\┌
?\█
?\▄
?\¦
?\Ì
?\▀
?\Ó
?\ß
?\Ô
?\Ò
?\õ
?\Õ
?\µ
nil
?\×
?\Ú
?\Û
?\Ù
?\ì
?\ÿ
?\—
?\´
?\­
?\±
nil
?\¾
?\¶
?\§
?\÷
?\˛
?\°
?\¨
?\˙
?\¹
?\³
?\²
?\■
?\ ])
(cp-make-coding-system
cp860
[?\Ç
?\ü
?\é
?\â
?\ã
?\à
?\Á
?\ç
?\ê
?\Ê
?\è
?\Î
?\Ô
?\ì
?\Ã
?\Â
?\É
?\À
?\È
?\ô
?\õ
?\ò
?\Ú
?\ù
?\Ì
?\Õ
?\Ü
?\¢
?\£
?\Ù
?\₧
?\Ò
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\ª
?\º
?\¿
?\Ó
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\φ
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\°
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp861
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\å
?\ç
?\ê
?\ë
?\è
?\Ð
?\ð
?\Þ
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ô
?\ö
?\þ
?\û
?\Ý
?\ý
?\Ö
?\Ü
?\ø
?\£
?\Ø
?\₧
?\Ò
?\á
?\í
?\ó
?\ú
?\Á
?\Í
?\Ó
?\Ú
?\¿
nil
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\φ
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\°
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp862
[?\א
?\ב
?\ג
?\ד
?\ה
?\ו
?\ז
?\ח
?\ט
?\י
?\ך
?\כ
?\ל
?\ם
?\מ
?\ן
?\נ
?\ס
?\ע
?\ף
?\פ
?\ץ
?\צ
?\ק
?\ר
?\ש
?\ת
?\¢
?\£
?\Ù
?\₧
?\Ò
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\ª
?\º
?\¿
nil
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\φ
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\°
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp863
[?\Ç
?\ü
?\é
?\â
?\Â
?\à
?\¶
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\ì
?\À
?\§
?\É
?\È
?\Ê
?\ô
?\Ë
?\Ï
?\û
?\ù
?\¤
?\Ô
?\Ü
?\¢
?\£
?\Ù
?\Û
?\ƒ
?\¦
?\´
?\ó
?\ú
?\¨
?\¸
?\³
?\¯
?\Î
?\⌐
?\¬
?\½
?\¼
?\¾
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\∅
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\∘
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp864
[?\°
?\·
?\∘
?\√
?\▒
?\─
?\│
?\┼
?\┤
?\┬
?\├
?\┴
?\┐
?\┌
?\└
?\┘
?\ß
?\∞
?\ø
?\±
?\½
?\¼
?\≈
?\«
?\»
?\ﻷ
?\ﻸ
nil
nil
?\ﻻ
?\ﻼ
?\
nil
?\­
?\ﺂ
?\£
?\¤
?\ﺄ
nil
nil
?\
?\ب
?\ت
?\ث
?\،
?\ج
?\ح
?\خ
?\٠
?\١
?\٢
?\٣
?\٤
?\٥
?\٦
?\٧
?\٨
?\٩
?\ڤ
?\؛
?\س
?\ش
?\ص
?\؟
?\¢
?\ء
?\آ
?\أ
?\ؤ
?\ﻊ
?\ئ
?\ا
?\ﺑ
?\ة
?\ﺗ
?\ﺛ
?\ﺟ
?\ﺣ
?\ﺧ
?\د
?\ذ
?\ر
?\ز
?\ﺳ
?\ﺷ
?\ﺻ
?\ﺿ
?\ط
?\ظ
?\ﻋ
?\ﻏ
?\¦
?\¬
?\÷
?\×
?\ع
?\ـ
?\ﻒ
?\ﻖ
?\ﻛ
?\ﻞ
?\ﻣ
?\ﻦ
?\
?\و
?\ى
?\ﻳ
?\ض
?\ﻢ
?\ﻎ
?\غ
?\م
?\ﹽ
?\ّ
?\ن
?\ه
?\
?\ﻰ
?\ﻲ
?\ف
?\ق
?\ﻵ
?\ﻶ
?\ل
?\ك
?\ي
?\■
?\ ])
(cp-make-coding-system
cp865
[?\Ç
?\ü
?\é
?\â
?\ä
?\à
?\å
?\ç
?\ê
?\ë
?\è
?\ï
?\î
?\ì
?\Ä
?\Å
?\É
?\æ
?\Æ
?\ô
?\ö
?\ò
?\û
?\ù
?\ÿ
?\Ö
?\Ü
?\ø
?\£
?\Ø
?\₧
?\ƒ
?\á
?\í
?\ó
?\ú
?\ñ
?\Ñ
?\ª
?\º
?\¿
?\⌐
?\¬
?\½
?\¼
?\¡
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\α
?\ß
?\Γ
?\π
?\Σ
?\σ
?\µ
?\τ
?\Φ
?\Θ
?\Ω
?\δ
?\∞
?\∅
?\ε
?\∩
?\≡
?\±
?\≥
?\≤
?\⌠
?\⌡
?\÷
?\≈
?\∘
?\·
?\•
?\√
?\ⁿ
?\²
?\■
?\ ])
(cp-make-coding-system
cp866
[?\А
?\Б
?\В
?\Г
?\Д
?\Е
?\Ж
?\З
?\И
?\Й
?\К
?\Л
?\М
?\Н
?\О
?\П
?\Р
?\С
?\Т
?\У
?\Ф
?\Х
?\Ц
?\Ч
?\Ш
?\Щ
?\Ъ
?\Ы
?\Ь
?\Э
?\Ю
?\Я
?\а
?\б
?\в
?\г
?\д
?\е
?\ж
?\з
?\и
?\й
?\к
?\л
?\м
?\н
?\о
?\п
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\р
?\с
?\т
?\у
?\ф
?\х
?\ц
?\ч
?\ш
?\щ
?\ъ
?\ы
?\ь
?\э
?\ю
?\я
?\Ё
?\ё
?\Є
?\є
?\Ї
?\ї
?\Ў
?\ў
?\°
?\∙
?\·
?\√
?\№
?\¤
?\■
?\ ]
"CP866 (Cyrillic)."
?A)
(cp-make-coding-system
cp869
[nil
nil
nil
nil
nil
nil
?\Ά
nil
?\·
?\¬
?\¦
?\
?\
?\Έ
?\—
?\Ή
?\Ί
?\Ϊ
?\Ό
nil
nil
?\Ύ
?\Ϋ
?\©
?\Ώ
?\²
?\³
?\ά
?\£
?\έ
?\ή
?\ί
?\ϊ
?\ΐ
?\ό
?\ύ
?\Α
?\Β
?\Γ
?\Δ
?\Ε
?\Ζ
?\Η
?\½
?\Θ
?\Ι
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\Κ
?\Λ
?\Μ
?\Ν
?\╣
?\║
?\╗
?\╝
?\Ξ
?\Ο
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\Π
?\Ρ
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\Σ
?\Τ
?\Υ
?\Φ
?\Χ
?\Ψ
?\Ω
?\α
?\β
?\γ
?\┘
?\┌
?\█
?\▄
?\δ
?\ε
?\▀
?\ζ
?\η
?\θ
?\ι
?\κ
?\λ
?\μ
?\ν
?\ξ
?\ο
?\π
?\ρ
?\σ
?\ς
?\τ
?\´
?\­
?\±
?\υ
?\φ
?\χ
?\§
?\ψ
?\΅
?\°
?\¨
?\ω
?\ϋ
?\ΰ
?\ώ
?\■
?\ ])
(cp-make-coding-system
cp874
[?\€
nil
nil
nil
nil
?\…
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
nil
nil
nil
nil
nil
nil
nil
nil
?\ 
?\ก
?\ข
?\ฃ
?\ค
?\ฅ
?\ฆ
?\ง
?\จ
?\ฉ
?\ช
?\ซ
?\ฌ
?\ญ
?\ฎ
?\ฏ
?\ฐ
?\ฑ
?\ฒ
?\ณ
?\ด
?\ต
?\ถ
?\ท
?\ธ
?\น
?\บ
?\ป
?\ผ
?\ฝ
?\พ
?\ฟ
?\ภ
?\ม
?\ย
?\ร
?\ฤ
?\ล
?\ฦ
?\ว
?\ศ
?\ษ
?\ส
?\ห
?\ฬ
?\อ
?\ฮ
?\ฯ
?\ะ
?\ั
?\า
?\ำ
?\ิ
?\ี
?\ึ
?\ื
?\ุ
?\ู
?\ฺ
nil
nil
nil
nil
?\฿
?\เ
?\แ
?\โ
?\ใ
?\ไ
?\ๅ
?\ๆ
?\็
?\่
?\้
?\๊
?\๋
?\์
?\ํ
?\๎
?\๏
?\
?\๑
?\๒
?\๓
?\๔
?\๕
?\๖
?\๗
?\๘
?\๙
?\๚
?\๛
nil
nil
nil
nil])
(cp-make-coding-system
windows-1250
[?\€
nil
?\
nil
?\„
?\…
?\†
?\‡
nil
?\‰
?\Š
?\
?\Ś
?\Ť
?\Ž
?\Ź
nil
?\
?\
?\“
?\”
?\•
?\
?\—
nil
?\™
?\š
?\
?\ś
?\ť
?\ž
?\ź
?\ 
?\ˇ
?\˘
?\Ł
?\¤
?\Ą
?\¦
?\§
?\¨
?\©
?\Ş
?\«
?\¬
?\­
?\®
?\Ż
?\°
?\±
?\˛
?\ł
?\´
?\µ
?\¶
?\·
?\¸
?\ą
?\ş
?\»
?\Ľ
?\˝
?\ľ
?\ż
?\Ŕ
?\Á
?\Â
?\Ă
?\Ä
?\Ĺ
?\Ć
?\Ç
?\Č
?\É
?\Ę
?\Ë
?\Ě
?\Í
?\Î
?\Ď
?\Đ
?\Ń
?\Ň
?\Ó
?\Ô
?\Ő
?\Ö
?\×
?\Ř
?\Ů
?\Ú
?\Ű
?\Ü
?\Ý
?\Ţ
?\ß
?\ŕ
?\á
?\â
?\ă
?\ä
?\ĺ
?\ć
?\ç
?\č
?\é
?\ę
?\ë
?\ě
?\í
?\î
?\ď
?\đ
?\ń
?\ň
?\ó
?\ô
?\ő
?\ö
?\÷
?\ř
?\ů
?\ú
?\ű
?\ü
?\ý
?\ţ
?\˙])
(cp-make-coding-system
windows-1253
[?\€
nil
?\
?\ƒ
?\„
?\…
?\†
?\‡
nil
?\‰
nil
?\
nil
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
nil
?\™
nil
?\
nil
nil
nil
nil
?\ 
?\΅
?\Ά
?\£
?\¤
?\¥
?\¦
?\§
?\¨
?\©
nil
?\«
?\¬
?\­
?\®
?\―
?\°
?\±
?\²
?\³
?\΄
?\µ
?\¶
?\·
?\Έ
?\Ή
?\Ί
?\»
?\Ό
?\½
?\Ύ
?\Ώ
?\ΐ
?\Α
?\Β
?\Γ
?\Δ
?\Ε
?\Ζ
?\Η
?\Θ
?\Ι
?\Κ
?\Λ
?\Μ
?\Ν
?\Ξ
?\Ο
?\Π
?\Ρ
nil
?\Σ
?\Τ
?\Υ
?\Φ
?\Χ
?\Ψ
?\Ω
?\Ϊ
?\Ϋ
?\ά
?\έ
?\ή
?\ί
?\ΰ
?\α
?\β
?\γ
?\δ
?\ε
?\ζ
?\η
?\θ
?\ι
?\κ
?\λ
?\μ
?\ν
?\ξ
?\ο
?\π
?\ρ
?\ς
?\σ
?\τ
?\υ
?\φ
?\χ
?\ψ
?\ω
?\ϊ
?\ϋ
?\ό
?\ύ
?\ώ
nil]
nil ?g) ;; Greek
(cp-make-coding-system
windows-1254
[?\€
nil
?\
?\ƒ
?\„
?\…
?\†
?\‡
?\ˆ
?\‰
?\Š
?\
?\Œ
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
?\˜
?\™
?\š
?\
?\œ
nil
nil
?\Ÿ
?\ 
?\¡
?\¢
?\£
?\¤
?\¥
?\¦
?\§
?\¨
?\©
?\ª
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\´
?\µ
?\¶
?\·
?\¸
?\¹
?\º
?\»
?\¼
?\½
?\¾
?\¿
?\À
?\Á
?\Â
?\Ã
?\Ä
?\Å
?\Æ
?\Ç
?\È
?\É
?\Ê
?\Ë
?\Ì
?\Í
?\Î
?\Ï
?\Ğ
?\Ñ
?\Ò
?\Ó
?\Ô
?\Õ
?\Ö
?\×
?\Ø
?\Ù
?\Ú
?\Û
?\Ü
?\İ
?\Ş
?\ß
?\à
?\á
?\â
?\ã
?\ä
?\å
?\æ
?\ç
?\è
?\é
?\ę
?\ë
?\ė
?\í
?\î
?\ī
?\ğ
?\ñ
?\ò
?\ó
?\ô
?\õ
?\ö
?\÷
?\ø
?\ù
?\ú
?\û
?\ü
?\ı
?\ş
?\ÿ])
;; yi_US
(cp-make-coding-system
windows-1255
[?\€
nil
?\
?\ƒ
?\„
?\…
?\†
?\‡
?\ˆ
?\‰
nil
?\
nil
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
?\˜
?\™
nil
?\
nil
nil
nil
nil
?\ 
?\¡
?\¢
?\£
?\₪
?\¥
?\¦
?\§
?\¨
?\©
?\×
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\´
?\µ
?\¶
?\·
?\¸
?\¹
?\÷
?\»
?\¼
?\½
?\¾
?\¿
?\ְ
?\ֱ
?\ֲ
?\ֳ
?\ִ
?\ֵ
?\ֶ
?\ַ
?\ָ
?\ֹ
nil
?\ֻ
?\ּ
?\ֽ
?\־
?\ֿ
?\׀
?\ׁ
?\ׂ
?\׃
?\װ
?\ױ
?\ײ
?\׳
?\״
nil
nil
nil
nil
nil
nil
nil
?\א
?\ב
?\ג
?\ד
?\ה
?\ו
?\ז
?\ח
?\ט
?\י
?\ך
?\כ
?\ל
?\ם
?\מ
?\ן
?\נ
?\ס
?\ע
?\ף
?\פ
?\ץ
?\צ
?\ק
?\ר
?\ש
?\ת
nil
nil
?\
?\
nil]
nil ?h) ;; Hebrew
(cp-make-coding-system
windows-1256
[?\€
?\پ
?\
?\ƒ
?\„
?\…
?\†
?\‡
?\ˆ
?\‰
?\ٹ
?\
?\Œ
?\چ
?\ژ
?\ڈ
?\گ
?\
?\
?\“
?\”
?\•
?\
?\—
?\ک
?\™
?\ڑ
?\
?\œ
?\
?\
?\ں
?\ 
?\،
?\¢
?\£
?\¤
?\¥
?\¦
?\§
?\¨
?\©
?\ھ
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\´
?\µ
?\¶
?\·
?\¸
?\¹
?\؛
?\»
?\¼
?\½
?\¾
?\؟
?\ہ
?\ء
?\آ
?\أ
?\ؤ
?\إ
?\ئ
?\ا
?\ب
?\ة
?\ت
?\ث
?\ج
?\ح
?\خ
?\د
?\ذ
?\ر
?\ز
?\س
?\ش
?\ص
?\ض
?\×
?\ط
?\ظ
?\ع
?\غ
?\ـ
?\ف
?\ق
?\ك
?\à
?\ل
?\â
?\م
?\ن
?\ه
?\و
?\ç
?\è
?\é
?\ê
?\ë
?\ى
?\ي
?\î
?\ï
?\ً
?\ٌ
?\ٍ
?\َ
?\ô
?\ُ
?\ِ
?\÷
?\ّ
?\ù
?\ْ
?\û
?\ü
?\
?\
?\ے]
nil ?a) ;; Arabic
(cp-make-coding-system
windows-1257
[?\€
nil
?\
nil
?\„
?\…
?\†
?\‡
nil
?\‰
nil
?\
nil
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
nil
?\™
nil
?\
nil
nil
nil
nil
?\ 
nil
?\¢
?\£
?\¤
nil
?\¦
?\§
?\Ø
?\©
?\Ŗ
?\«
?\¬
?\­
?\®
?\Æ
?\°
?\±
?\²
?\³
nil
?\µ
?\¶
?\·
?\ø
?\¹
?\ŗ
?\»
?\¼
?\½
?\¾
?\æ
?\Ą
?\Į
?\Ā
?\Ć
?\Ä
?\Å
?\Ę
?\Ē
?\Č
?\É
?\Ź
?\Ė
?\Ģ
?\Ķ
?\Ī
?\Ļ
?\Š
?\Ń
?\Ņ
?\Ó
?\Ō
?\Õ
?\Ö
?\×
?\Ų
?\Ł
?\Ś
?\Ū
?\Ü
?\Ż
?\Ž
?\ß
?\ą
?\į
?\ā
?\ć
?\ä
?\å
?\ę
?\ē
?\č
?\é
?\ź
?\ė
?\ģ
?\ķ
?\ī
?\ļ
?\š
?\ń
?\ņ
?\ó
?\ō
?\õ
?\ö
?\÷
?\ų
?\ł
?\ś
?\ū
?\ü
?\ż
?\ž
nil])
(cp-make-coding-system
windows-1258
[?\€
nil
?\
?\ƒ
?\„
?\…
?\†
?\‡
?\ˆ
?\‰
nil
?\
?\Œ
nil
nil
nil
nil
?\
?\
?\“
?\”
?\•
?\
?\—
?\˜
?\™
nil
?\
?\œ
nil
nil
?\Ÿ
?\ 
?\¡
?\¢
?\£
?\¤
?\¥
?\¦
?\§
?\¨
?\©
?\ª
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\´
?\µ
?\¶
?\·
?\¸
?\¹
?\º
?\»
?\¼
?\½
?\¾
?\¿
?\À
?\Á
?\Â
?\Ă
?\Ä
?\Å
?\Æ
?\Ç
?\È
?\É
?\Ê
?\Ë
?\̀
?\Í
?\Î
?\Ï
?\Đ
?\Ñ
?\̉
?\Ó
?\Ô
?\Ơ
?\Ö
?\×
?\Ø
?\Ù
?\Ú
?\Û
?\Ü
?\Ư
?\̃
?\ß
?\à
?\á
?\â
?\ă
?\ä
?\å
?\æ
?\ç
?\è
?\é
?\ê
?\ë
?\́
?\í
?\î
?\ï
?\đ
?\ñ
?\̣
?\ó
?\ô
?\ơ
?\ö
?\÷
?\ø
?\ù
?\ú
?\û
?\ü
?\ư
?\₫
?\ÿ])
(cp-make-coding-system
next
[?\ 
?\À
?\Á
?\Â
?\Ã
?\Ä
?\Å
?\Ç
?\È
?\É
?\Ê
?\Ë
?\Ì
?\Í
?\Î
?\Ï
?\Ð
?\Ñ
?\Ò
?\Ó
?\Ô
?\Õ
?\Ö
?\Ù
?\Ú
?\Û
?\Ü
?\Ý
?\Þ
?\µ
?\×
?\÷
?\©
?\¡
?\¢
?\£
?\
?\¥
?\ƒ
?\§
?\¤
nil
?\“
?\«
nil
nil
?\fi
?\fl
?\®
?\
?\†
?\‡
?\·
?\¦
?\¶
?\•
nil
nil
?\”
?\»
?\…
?\‰
?\¬
?\¿
?\¹
?\ˋ
?\´
?\ˆ
?\˜
?\¯
?\˘
?\˙
?\¨
?\²
?\˚
?\¸
?\³
?\˝
?\˛
?\ˇ
?\—
?\±
?\¼
?\½
?\¾
?\à
?\á
?\â
?\ã
?\ä
?\å
?\ç
?\è
?\é
?\ê
?\ë
?\ì
?\Æ
?\í
?\ª
?\î
?\ï
?\ð
?\ñ
?\Ł
?\Ø
?\Œ
?\º
?\ò
?\ó
?\ô
?\õ
?\ö
?\æ
?\ù
?\ú
?\û
?\ı
?\ü
?\ý
?\ł
?\ø
?\œ
?\ß
?\þ
?\ÿ
nil
nil]
"NeXTstep encoding." ?N)
(cp-make-coding-system
koi8-t ; used by glibc for tg_TJ
[?\қ
?\ғ
?\
?\Ғ
?\„
?\…
?\†
?\‡
nil
?\‰
?\ҳ
?\
?\Ҳ
?\ҷ
?\Ҷ
nil
?\Қ
?\
?\
?\“
?\”
?\•
?\
?\—
nil
?\™
nil
?\
nil
nil
nil
nil
nil
?\ӯ
?\Ӯ
?\ё
?\¤
?\ӣ
?\¦
?\§
nil
nil
nil
?\«
?\¬
?\­
?\®
nil
?\°
?\±
?\²
?\Ё
nil
?\Ӣ
?\¶
?\·
nil
?\№
nil
?\»
nil
nil
nil
?\©
?\ю
?\а
?\б
?\ц
?\д
?\е
?\ф
?\г
?\х
?\и
?\й
?\к
?\л
?\м
?\н
?\о
?\п
?\я
?\р
?\с
?\т
?\у
?\ж
?\в
?\ь
?\ы
?\з
?\ш
?\э
?\щ
?\ч
?\ъ
?\Ю
?\А
?\Б
?\Ц
?\Д
?\Е
?\Ф
?\Г
?\Х
?\И
?\Й
?\К
?\Л
?\М
?\Н
?\О
?\П
?\Я
?\Р
?\С
?\Т
?\У
?\Ж
?\В
?\Ь
?\Ы
?\З
?\Ш
?\Э
?\Щ
?\Ч
?\Ъ]
"Unicode-based KOI8-T encoding for Cyrillic")
(coding-system-put 'koi8-t 'mime-charset nil) ; not in the IANA list
(define-coding-system-alias 'cyrillic-koi8-t 'koi8-t)
;; Online final ISO draft:
;; http://www.evertype.com/standards/iso8859/fdis8859-16-en.pdf
;; Equivalent National Standard:
;; Romanian Standard SR 14111:1998, Romanian Standards Institution
;; (ASRO).
;; Intended usage:
;; "This set of coded graphic characters is intended for use in data and
;; text processing applications and also for information interchange. The
;; set contains graphic characters used for general purpose applications in
;; typical office environments in at least the following languages:
;; Albanian, Croatian, English, Finnish, French, German, Hungarian, Irish
;; Gaelic (new orthography), Italian, Latin, Polish, Romanian, and
;; Slovenian. This set of coded graphic characters may be regarded as a
;; version of an 8-bit code according to ISO/IEC 2022 or ISO/IEC 4873 at
;; level 1." [ISO 8859-16:2001(E), p. 1]
;; This charset is suitable for use in MIME text body parts.
;; ISO 8859-16 was primarily designed for single-byte encoding the Romanian
;; language. The UTF-8 charset is the preferred and in today's MIME software
;; more widely implemented encoding suitable for Romanian.
(cp-make-coding-system
iso-latin-10 ; consistent with, e.g. Latin-1
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
?\ 
?\Ą
?\ą
?\Ł
?\€
?\„
?\Š
?\§
?\š
?\©
?\Ș
?\«
?\Ź
?\­
?\ź
?\Ż
?\°
?\±
?\Č
?\ł
?\Ž
?\”
?\¶
?\·
?\ž
?\č
?\ș
?\»
?\Œ
?\œ
?\Ÿ
?\ż
?\À
?\Á
?\Â
?\Ă
?\Ä
?\Ć
?\Æ
?\Ç
?\È
?\É
?\Ê
?\Ë
?\Ì
?\Í
?\Î
?\Ï
?\Đ
?\Ń
?\Ò
?\Ó
?\Ô
?\Ő
?\Ö
?\Ś
?\Ű
?\Ù
?\Ú
?\Û
?\Ü
?\Ę
?\Ț
?\ß
?\à
?\á
?\â
?\ă
?\ä
?\ć
?\æ
?\ç
?\è
?\é
?\ê
?\ë
?\ì
?\í
?\î
?\ï
?\đ
?\ń
?\ò
?\ó
?\ô
?\ő
?\ö
?\ś
?\ű
?\ù
?\ú
?\û
?\ü
?\ę
?\ț
?\ÿ]
"Unicode-based encoding for Latin-10 (MIME: ISO-8859-16)"
?r) ;; Romanian
(coding-system-put 'iso-latin-10 'mime-charset 'iso-8859-16)
(define-coding-system-alias 'iso-8859-16 'iso-latin-10)
(define-coding-system-alias 'latin-10 'iso-latin-10)
;; Unicode-based alternative which has the possible advantage of
;; having its relative sparseness specified.
(cp-make-coding-system
;; The base system uses arabic-iso-8bit, but that's not a MIME charset.
iso-8859-6
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
?\ 
?\¤
?\،
?\­
?\؛
?\؟
?\ء
?\آ
?\أ
?\ؤ
?\إ
?\ئ
?\ا
?\ب
?\ة
?\ت
?\ث
?\ج
?\ح
?\خ
?\د
?\ذ
?\ر
?\ز
?\س
?\ش
?\ص
?\ض
?\ط
?\ظ
?\ع
?\غ
?\ـ
?\ف
?\ق
?\ك
?\ل
?\م
?\ن
?\ه
?\و
?\ى
?\ي
?\ً
?\ٌ
?\ٍ
?\َ
?\ُ
?\ِ
?\ّ
?\ْ
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil]
"Unicode-based Arabic ISO/IEC 8859-6 (MIME: ISO-8859-6)"
?6)
(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6)
(cp-make-coding-system
iso-latin-6
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
?\ 
?\Ą
?\Ē
?\Ģ
?\Ī
?\Ĩ
?\Ķ
?\§
?\Ļ
?\Đ
?\Š
?\Ŧ
?\Ž
?\­
?\Ū
?\Ŋ
?\°
?\ą
?\ē
?\ģ
?\ī
?\ĩ
?\ķ
?\·
?\ļ
?\đ
?\š
?\ŧ
?\ž
?\―
?\ū
?\ŋ
?\Ā
?\Á
?\Â
?\Ã
?\Ä
?\Å
?\Æ
?\Į
?\Č
?\É
?\Ę
?\Ë
?\Ė
?\Í
?\Î
?\Ï
?\Ð
?\Ņ
?\Ō
?\Ó
?\Ô
?\Õ
?\Ö
?\Ũ
?\Ø
?\Ų
?\Ú
?\Û
?\Ü
?\Ý
?\Þ
?\ß
?\ā
?\á
?\â
?\ã
?\ä
?\å
?\æ
?\į
?\č
?\é
?\ę
?\ë
?\ė
?\í
?\î
?\ï
?\ð
?\ņ
?\ō
?\ó
?\ô
?\õ
?\ö
?\ũ
?\ø
?\ų
?\ú
?\û
?\ü
?\ý
?\þ
?\ĸ]
"Unicode-based encoding for Latin-6 (MIME: ISO-8859-10)")
(coding-system-put 'iso-latin-6 'mime-charset 'iso-8859-10)
(define-coding-system-alias 'iso-8859-10 'iso-latin-6)
(define-coding-system-alias 'latin-6 'iso-latin-6)
;; used by lt_LT, lv_LV, mi_NZ
(cp-make-coding-system
iso-latin-7
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
?\ 
?\¡
?\¢
?\£
?\¤
?\„
?\¦
?\§
?\¨
?\©
?\ª
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\“
?\µ
?\¶
?\·
?\¸
?\¹
?\º
?\»
?\¼
?\½
?\¾
?\¿
?\Ą
?\Į
?\Ā
?\Ć
?\Ä
?\Å
?\Ę
?\Ē
?\Č
?\É
?\Ź
?\Ė
?\Ģ
?\Ķ
?\Ī
?\Ļ
?\Š
?\Ń
?\Ņ
?\Ó
?\Ō
?\Õ
?\Ö
?\×
?\Ų
?\Ł
?\Ś
?\Ū
?\Ü
?\Ż
?\Ž
?\ß
?\ą
?\į
?\ā
?\ć
?\ä
?\å
?\ę
?\ē
?\č
?\é
?\ź
?\ė
?\ģ
?\ķ
?\ī
?\ļ
?\š
?\ń
?\ņ
?\ó
?\ō
?\õ
?\ö
?\÷
?\ų
?\ł
?\ś
?\ū
?\ü
?\ż
?\ž
?\
]
"Unicode-based encoding for Latin-7 (MIME: ISO-8859-13)"
?l) ;; Lithuanian/Latvian
(coding-system-put 'iso-latin-7 'mime-charset 'iso-8859-13)
(define-coding-system-alias 'iso-8859-13 'iso-latin-7)
(define-coding-system-alias 'latin-7 'iso-latin-7)
;; Fixme: check on the C1 characters which libiconv includes. They
;; are reproduced below, but are probably wrong. I can't find an
;; official definition of georgian-ps.
(cp-make-coding-system
georgian-ps ; used by glibc for ka_GE
[?\€
?\
?\
?\ƒ
?\„
?\…
?\†
?\‡
?\ˆ
?\‰
?\Š
?\
?\Œ
?\
?\Ž
?\
?\
?\
?\
?\“
?\”
?\•
?\
?\—
?\˜
?\™
?\š
?\
?\œ
?\
?\ž
?\Ÿ
?\ 
?\¡
?\¢
?\£
?\¤
?\¥
?\¦
?\§
?\¨
?\©
?\ª
?\«
?\¬
?\­
?\®
?\¯
?\°
?\±
?\²
?\³
?\´
?\µ
?\¶
?\·
?\¸
?\¹
?\º
?\»
?\¼
?\½
?\¾
?\¿
?\ა
?\ბ
?\გ
?\დ
?\ე
?\ვ
?\ზ
?\ჱ
?\თ
?\ი
?\კ
?\ლ
?\მ
?\ნ
?\ჲ
?\ო
?\პ
?\ჟ
?\რ
?\ს
?\ტ
?\ჳ
?\უ
?\ფ
?\ქ
?\ღ
?\
?\შ
?\ჩ
?\ც
?\ძ
?\წ
?\ჭ
?\ხ
?\ჴ
?\ჯ
?\ჰ
?\ჵ
?\æ
?\ç
?\è
?\é
?\ê
?\ë
?\ì
?\í
?\î
?\ï
?\ð
?\ñ
?\ò
?\ó
?\ô
?\õ
?\ö
?\÷
?\ø
?\ù
?\ú
?\û
?\ü
?\ý
?\þ
?\ÿ]
nil ?G)
(coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list
;; From http://www.microsoft.com/globaldev/reference/oem/720.htm
(cp-make-coding-system
cp720
[nil
nil
?\é
?\â
nil
?\à
nil
?\ç
?\ê
?\ë
?\è
?\ï
?\î
nil
nil
nil
nil
?\ّ
?\ْ
?\ô
?\¤
?\ـ
?\û
?\ù
?\ء
?\آ
?\أ
?\ؤ
?\£
?\إ
?\ئ
?\ا
?\ب
?\ة
?\ت
?\ث
?\ج
?\ح
?\خ
?\د
?\ذ
?\ر
?\ز
?\س
?\ش
?\ص
?\«
?\»
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\ض
?\ط
?\ظ
?\ع
?\غ
?\ف
?\µ
?\ق
?\ك
?\ل
?\م
?\ن
?\ه
?\و
?\ى
?\ي
?\≡
?\ً
?\ٌ
?\ٍ
?\َ
?\ُ
?\ِ
?\≈
?\°
?\∙
?\·
?\√
?\ⁿ
?\²
?\■
?\ ])
(coding-system-put 'cp720 'mime-charset nil) ; not in IANA list
;; http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ibm-1125_P100-2000.ucm
(cp-make-coding-system
cp1125
[?\А
?\Б
?\В
?\Г
?\Д
?\Е
?\Ж
?\З
?\И
?\Й
?\К
?\Л
?\М
?\Н
?\О
?\П
?\Р
?\С
?\Т
?\У
?\Ф
?\Х
?\Ц
?\Ч
?\Ш
?\Щ
?\Ъ
?\Ы
?\Ь
?\Э
?\Ю
?\Я
?\а
?\б
?\в
?\г
?\д
?\е
?\ж
?\з
?\и
?\й
?\к
?\л
?\м
?\н
?\о
?\п
?\░
?\▒
?\▓
?\│
?\┤
?\╡
?\╢
?\╖
?\╕
?\╣
?\║
?\╗
?\╝
?\╜
?\╛
?\┐
?\└
?\┴
?\┬
?\├
?\─
?\┼
?\╞
?\╟
?\╚
?\╔
?\╩
?\╦
?\╠
?\═
?\╬
?\╧
?\╨
?\╤
?\╥
?\╙
?\╘
?\╒
?\╓
?\╫
?\╪
?\┘
?\┌
?\█
?\▄
?\▌
?\▐
?\▀
?\р
?\с
?\т
?\у
?\ф
?\х
?\ц
?\ч
?\ш
?\щ
?\ъ
?\ы
?\ь
?\э
?\ю
?\я
?\Ё
?\ё
?\Ґ
?\ґ
?\Є
?\є
?\І
?\і
?\Ї
?\ї
?\·
?\√
?\№
?\¤
?\■
?\ ])
(define-coding-system-alias 'ruscii 'cp1125)
;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
(define-coding-system-alias 'cp866u 'cp1125)
(coding-system-put 'cp1125 'mime-charset nil)
;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS
;; codepage. Table at
;; <URL:http://czyborra.com/charsets/bulgarian-mik.txt.gz>.
(cp-make-coding-system
mik
[?А ?В ?Е ?З ?К ?М ?Н ?О ?Р ?С ?Т ?У ?Х
?Ь ?а ?б ?г ?е
?о ?п ?р ?с ?у ?х ?└ ?┴ ?┬ ?├ ?─
?┼ ?╣ ?║ ?╚ ?╔ ?╩ ?╦ ?╠ ?═ ?╬ ?┐ ?░ ?▒ ?▓ ?│ ?┤ ?№ ?╗ ?╝ ?┘ ?┌ ?█
?▄ ?▌ ?▐ ?▀ ?α ?σ ?∞ ?∅ ?∈ ?∩ ?≡ ?≥
?≤ ?⌠ ?⌡ ?≈ ?∙ ?√ ?ⁿ ?■ ? ])
(coding-system-put 'mik 'mime-charset nil)
;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: similar to CP1251
;; and used for some non-Slavic Cyrillic languages. Table found at
;; <URL:ftp://ftp.logic.ru/pub/logic/linux/cyr-asian/PT154>. See also
;; <URL:http://lists.w3.org/Archives/Public/ietf-charsets/2002AprJun/0092.html,
;; which suggests it's used in an Asian Cyrillic context.
;;;###autoload(autoload-coding-system 'pt154 '(require 'code-pages))
(cp-make-coding-system
pt154
[ ?„ ?… ?Ү ?ү ? ? ?“ ?” ?• ?
?— ?һ ?  ?Ј ?\«
?І ?і ?№ ?ј ?А ?В
?Е ?З ?К ?М ?Н ?О ?Р ?С ?Т ?У ?Х
?Ь ?а ?б ?г ?е ?о ?п ?р ?с
?у ?х ])
;;;###autoload(autoload-coding-system 'iso-8859-11 '(require 'code-pages))
(cp-make-coding-system
iso-8859-11
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
?  ?ก ?ข ?ฃ ?ค ?ฅ ?ฆ ?ง ?จ ?ฉ ?ช ?ซ ?ฌ ?ญ ?ฎ ?ฏ
?ฐ ?ฑ ?ฒ ?ณ ?ด ?ต ?ถ ?ท ?ธ ?น ?บ ?ป ?ผ ?ฝ ?พ ?ฟ
?ภ ?ม ?ย ?ร ?ฤ ?ล ?ฦ ?ว ?ศ ?ษ ?ส ?ห ?ฬ ?อ ?ฮ ?ฯ
?ะ ?ั ?า ?ำ ?ิ ?ี ?ึ ?ื ?ุ ?ู ?ฺ nil nil nil nil ?฿
?เ ?แ ?โ ?ใ ?ไ ?ๅ ?ๆ ?็ ?่ ?้ ?๊ ?๋ ?์ ?ํ ?๎ ?๏
? ?๑ ?๒ ?๓ ?๔ ?๕ ?๖ ?๗ ?๘ ?๙ ?๚ ?๛ nil nil nil nil]
"ISO-8859-11. This is `thai-tis620' with the addition of no-break-space.")
(dotimes (i 9)
(let ((w (intern (format "windows-125%d" i)))
(c (intern (format "cp125%d" i))))
;; Define cp125* as aliases for all windows-125*, so on Windows
;; we can just concat "cp" to the ANSI codepage we get from the system
;; and not have to worry about whether it should be "cp" or "windows-".
(if (coding-system-p w)
(define-coding-system-alias c w))
;; Compatibility with codepage.el, though cp... are not the
;; canonical names.
(push (assoc w non-iso-charset-alist) non-iso-charset-alist)))
(provide 'code-pages)
;;; arch-tag: 8b6e3c73-b271-4198-866d-ea6d0ceff1b2
;;; code-pages.el ends here