;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*-
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
+;; Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005, 2006, 2007
+;; National Institute of Advanced Industrial Science and Technology (AIST)
+;; Registration Number H14PRO021
;; Author: Dave Love <fx@gnu.org>
;; Keywords: i18n
;; 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.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; 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-1251, windows-1252,
-;; windows-1253, windows-1254, windows-1255, windows-1256,
-;; windows-1257, windows-1258, next, koi8-u, 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.
+;; 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
;;; Code:
-(defun cp-make-translation-table (v)
+;; 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)))
ucs-mule-to-mule-unicode)
tab)))
-(defun cp-valid-codes (v)
+(defsubst cp-valid-codes (v)
"Derive a valid-codes list for translation vector V.
See `make-coding-system'."
(let (pairs
(if start (push (cons start end) pairs))
(nreverse pairs)))
-(defun cp-fix-safe-chars (cs)
- "This is an obsolete function.
-It exists just for backward compatibility, and it does nothing.")
-(make-obsolete 'cp-fix-safe-chars
- "Unnecessary function. Calling it has no effect."
- "21.3")
-
;; Fix things that have been, or might be, done by codepage.el.
(eval-after-load "codepage"
'(progn
(interactive
(let ((completion-ignore-case t)
(candidates (cp-supported-codepages)))
- (list (completing-read "Setup DOS Codepage: (default 437) " candidates
+ (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))
(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 charactert set. DOC-STRING and MNEMONIC are used as the
+the character set. DOC-STRING and MNEMONIC are used as the
corresponding args of `make-coding-system'. If MNEMONIC isn't given,
-?* is used."
+?* is used.
+Return an updated `non-iso-charset-alist'."
(let* ((encoder (intern (format "encode-%s" name)))
(decoder (intern (format "decode-%s" name)))
(ccl-decoder
;; 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))))
+ (cons 'translation-table-for-input 'ucs-mule-to-mule-unicode)))
+ (let ((slot (assq ',name non-iso-charset-alist))
+ (elt (list nil ; charset list
+ ',decoder
+ (let (l) ; code range
+ (dolist (elt (reverse codes))
+ (push (cdr elt) l)
+ (push (car elt) l))
+ (list l)))))
+ (if (not slot)
+ (push (cons ',name elt) non-iso-charset-alist)
+ (setcdr slot elt)
+ 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
;; Fixme: Do better for mode-line mnemonics?
+;;;###autoload(autoload-coding-system 'cp437 '(require 'code-pages))
(cp-make-coding-system
cp437
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp737 '(require 'code-pages))
(cp-make-coding-system
cp737
[?\Α
?\ ])
(coding-system-put 'cp737 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp775 '(require 'code-pages))
(cp-make-coding-system
cp775
[?\Ć
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp850 '(require 'code-pages))
(cp-make-coding-system
cp850
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp851 '(require 'code-pages))
(cp-make-coding-system
cp851
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp852 '(require 'code-pages))
(cp-make-coding-system
cp852
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp855 '(require 'code-pages))
(cp-make-coding-system
cp855
[?\ђ
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp857 '(require 'code-pages))
(cp-make-coding-system
cp857
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp858 '(require 'code-pages))
+(cp-make-coding-system
+ cp858
+ [?\Ç
+ ?\ü
+ ?\é
+ ?\â
+ ?\ä
+ ?\à
+ ?\å
+ ?\ç
+ ?\ê
+ ?\ë
+ ?\è
+ ?\ï
+ ?\î
+ ?\ì
+ ?\Ä
+ ?\Å
+ ?\É
+ ?\æ
+ ?\Æ
+ ?\ô
+ ?\ö
+ ?\ò
+ ?\û
+ ?\ù
+ ?\ÿ
+ ?\Ö
+ ?\Ü
+ ?\ø
+ ?\£
+ ?\Ø
+ ?\×
+ ?\ƒ
+ ?\á
+ ?\í
+ ?\ó
+ ?\ú
+ ?\ñ
+ ?\Ñ
+ ?\ª
+ ?\º
+ ?\¿
+ ?\®
+ ?\¬
+ ?\½
+ ?\¼
+ ?\¡
+ ?\«
+ ?\»
+ ?\░
+ ?\▒
+ ?\▓
+ ?\│
+ ?\┤
+ ?\Á
+ ?\Â
+ ?\À
+ ?\©
+ ?\╣
+ ?\║
+ ?\╗
+ ?\╝
+ ?\¢
+ ?\¥
+ ?\┐
+ ?\└
+ ?\┴
+ ?\┬
+ ?\├
+ ?\─
+ ?\┼
+ ?\ã
+ ?\Ã
+ ?\╚
+ ?\╔
+ ?\╩
+ ?\╦
+ ?\╠
+ ?\═
+ ?\╬
+ ?\¤
+ ?\ð
+ ?\Ð
+ ?\Ê
+ ?\Ë
+ ?\È
+ ?\€
+ ?\Í
+ ?\Î
+ ?\Ï
+ ?\┘
+ ?\┌
+ ?\█
+ ?\▄
+ ?\¦
+ ?\Ì
+ ?\▀
+ ?\Ó
+ ?\ß
+ ?\Ô
+ ?\Ò
+ ?\õ
+ ?\Õ
+ ?\µ
+ ?\þ
+ ?\Þ
+ ?\Ú
+ ?\Û
+ ?\Ù
+ ?\ý
+ ?\Ý
+ ?\¯
+ ?\´
+ ?\
+ ?\±
+ ?\‗
+ ?\¾
+ ?\¶
+ ?\§
+ ?\÷
+ ?\¸
+ ?\°
+ ?\¨
+ ?\·
+ ?\¹
+ ?\³
+ ?\²
+ ?\■
+ ?\ ])
+
+;;;###autoload(autoload-coding-system 'cp860 '(require 'code-pages))
(cp-make-coding-system
cp860
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp861 '(require 'code-pages))
(cp-make-coding-system
cp861
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp862 '(require 'code-pages))
(cp-make-coding-system
cp862
[?\א
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp863 '(require 'code-pages))
(cp-make-coding-system
cp863
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp864 '(require 'code-pages))
(cp-make-coding-system
cp864
[?\°
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp865 '(require 'code-pages))
(cp-make-coding-system
cp865
[?\Ç
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp866 '(require 'code-pages))
(cp-make-coding-system
cp866
[?\А
"CP866 (Cyrillic)."
?A)
+;;;###autoload(autoload-coding-system 'cp869 '(require 'code-pages))
(cp-make-coding-system
cp869
[nil
?\■
?\ ])
+;;;###autoload(autoload-coding-system 'cp874 '(require 'code-pages))
(cp-make-coding-system
cp874
[?\€
nil
nil])
+;;;###autoload(autoload-coding-system 'windows-1250 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1250 '(require 'code-pages))
(cp-make-coding-system
windows-1250
[?\€
?\ţ
?\˙])
-;; be_BY, bg_BG
+;;;###autoload(autoload-coding-system 'windows-1253 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1253 '(require 'code-pages))
(cp-make-coding-system
- windows-1251
- [?\Ђ
- ?\Ѓ
+ windows-1253
+ [?\€
+ nil
?\‚
- ?\ѓ
+ ?\ƒ
?\„
?\…
?\†
?\‡
- ?\€
+ nil
?\‰
- ?\Љ
+ nil
?\‹
- ?\Њ
- ?\Ќ
- ?\Ћ
- ?\Џ
- ?\ђ
+ nil
+ nil
+ nil
+ nil
+ nil
?\‘
?\’
?\“
?\—
nil
?\™
- ?\љ
+ nil
?\›
- ?\њ
- ?\ќ
- ?\ћ
- ?\џ
+ nil
+ nil
+ nil
+ nil
?\
- ?\Ў
- ?\ў
- ?\Ј
+ ?\΅
+ ?\Ά
+ ?\£
?\¤
- ?\Ґ
+ ?\¥
?\¦
?\§
- ?\Ё
+ ?\¨
?\©
- ?\Є
+ nil
?\«
?\¬
?\
?\®
- ?\Ї
+ ?\―
?\°
?\±
- ?\І
- ?\і
- ?\ґ
+ ?\²
+ ?\³
+ ?\΄
?\µ
?\¶
?\·
- ?\ё
- ?\№
- ?\є
- ?\»
- ?\ј
- ?\Ѕ
- ?\ѕ
- ?\ї
- ?\А
- ?\Б
- ?\В
- ?\Г
- ?\Д
- ?\Е
- ?\Ж
- ?\З
- ?\И
- ?\Й
- ?\К
- ?\Л
- ?\М
- ?\Н
- ?\О
- ?\П
- ?\Р
- ?\С
- ?\Т
- ?\У
- ?\Ф
- ?\Х
- ?\Ц
- ?\Ч
- ?\Ш
- ?\Щ
- ?\Ъ
- ?\Ы
- ?\Ь
- ?\Э
- ?\Ю
- ?\Я
- ?\а
- ?\б
- ?\в
- ?\г
- ?\д
- ?\е
- ?\ж
- ?\з
- ?\и
- ?\й
- ?\к
- ?\л
- ?\м
- ?\н
- ?\о
- ?\п
- ?\р
- ?\с
- ?\т
- ?\у
- ?\ф
- ?\х
- ?\ц
- ?\ч
- ?\ш
- ?\щ
- ?\ъ
- ?\ы
- ?\ь
- ?\э
- ?\ю
- ?\я]
- nil ?b)
-
-(cp-make-coding-system
- windows-1252
- [?\€
- 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 ?g) ;; Greek
+;;;###autoload(autoload-coding-system 'windows-1254 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1254 '(require 'code-pages))
(cp-make-coding-system
windows-1254
[?\€
?\ÿ])
;; yi_US
+;;;###autoload(autoload-coding-system 'windows-1255 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1255 '(require 'code-pages))
(cp-make-coding-system
windows-1255
[?\€
nil]
nil ?h) ;; Hebrew
+;;;###autoload(autoload-coding-system 'windows-1256 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1256 '(require 'code-pages))
(cp-make-coding-system
windows-1256
[?\€
- ?\Ù
+ ?\Ù¾
?\‚
- ?\١
+ ?\ƒ
?\„
?\…
?\†
?\‡
- ?\٢
- ?\٣
- ?\Ù¤
+ ?\ˆ
+ ?\‰
+ ?\Ù¹
?\‹
- ?\٥
- ?\٦
- ?\٧
- ?\٨
- ?\٩
+ ?\Œ
+ ?\چ
+ ?\ژ
+ ?\ڈ
+ ?\گ
?\‘
?\’
?\“
?\•
?\–
?\—
- ?\؛
+ ?\ک
?\™
- ?\؟
+ ?\ڑ
?\›
- ?\ء
- ?\آ
- ?\أ
- ?\Ÿ
+ ?\œ
+ ?\
+ ?\
+ ?\ں
?\
- ?\ؤ
- ?\إ
+ ?\Ø\8c
+ ?\¢
?\£
?\¤
- ?\ئ
+ ?\¥
?\¦
?\§
- ?\ا
+ ?\¨
?\©
- ?\ب
+ ?\ھ
?\«
?\¬
?\
?\®
- ?\پ
+ ?\¯
?\°
?\±
- ?\ة
- ?\ت
- ?\ث
+ ?\²
+ ?\³
+ ?\´
?\µ
?\¶
?\·
+ ?\¸
+ ?\¹
+ ?\؛
+ ?\»
+ ?\¼
+ ?\½
+ ?\¾
+ ?\؟
+ ?\ہ
+ ?\ء
+ ?\آ
+ ?\أ
+ ?\ؤ
+ ?\إ
+ ?\ئ
+ ?\ا
+ ?\ب
+ ?\ة
+ ?\ت
+ ?\ث
?\ج
- ?\چ
?\ح
- ?\»
?\خ
?\د
?\ذ
?\ر
- ?\À
?\ز
- ?\Â
- ?\ژ
?\س
?\ش
?\ص
- ?\Ç
- ?\È
- ?\É
- ?\Ê
- ?\Ë
?\ض
+ ?\×
?\ط
- ?\Î
- ?\Ï
- ?\ㄓ
+ ?\ظ
?\ع
?\غ
?\ـ
- ?\Ô
?\ف
?\ق
- ?\×
?\ك
- ?\Ù
- ?\گ
- ?\Û
- ?\Ü
+ ?\à
?\ل
+ ?\â
?\م
?\ن
- ?\à
?\ه
- ?\â
- ?\ځ
?\و
- ?\ى
- ?\ي
?\ç
?\è
?\é
?\ê
?\ë
- ?\Ù\8b
- ?\Ù\8c
+ ?\Ù\89
+ ?\Ù\8a
?\î
?\ï
+ ?\ً
+ ?\ٌ
?\ٍ
?\َ
+ ?\ô
?\ُ
?\ِ
- ?\ô
- ?\ّ
- ?\ْ
?\÷
- nil
+ ?\ّ
?\ù
- nil
+ ?\ْ
?\û
?\ü
?\
?\
- ?\ÿ]
+ ?\ے]
nil ?a) ;; Arabic
+;;;###autoload(autoload-coding-system 'windows-1257 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1257 '(require 'code-pages))
(cp-make-coding-system
windows-1257
[?\€
?\ž
nil])
+;;;###autoload(autoload-coding-system 'windows-1258 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1258 '(require 'code-pages))
(cp-make-coding-system
windows-1258
[?\€
?\₫
?\ÿ])
+;;;###autoload(autoload-coding-system 'next '(require 'code-pages))
(cp-make-coding-system
next
[?\
?\ƒ
?\§
?\¤
- nil
+ ?\’
?\“
?\«
- nil
- nil
+ ?\‹
+ ?\›
?\fi
?\fl
?\®
?\¦
?\¶
?\•
- nil
- nil
+ ?\‚
+ ?\„
?\”
?\»
?\…
nil]
"NeXTstep encoding." ?N)
+;;;###autoload(autoload-coding-system 'koi8-t '(require 'code-pages))
(cp-make-coding-system
koi8-t ; used by glibc for tg_TJ
[?\қ
;; 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.
+;;;###autoload(autoload-coding-system 'iso-8859-16 '(require 'code-pages))
(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
;; Unicode-based alternative which has the possible advantage of
;; having its relative sparseness specified.
+;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
(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 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)
+;;;###autoload(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
(cp-make-coding-system
iso-latin-6
[nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
(define-coding-system-alias 'latin-6 'iso-latin-6)
;; used by lt_LT, lv_LV, mi_NZ
+;;;###autoload(autoload-coding-system 'iso-8859-13 '(require 'code-pages))
(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
?\
- ?\¡
+ ?\”
?\¢
?\£
?\¤
?\„
?\¦
?\§
- ?\¨
+ ?\Ø
?\©
- ?\ª
+ ?\Ŗ
?\«
?\¬
?\
?\®
- ?\¯
+ ?\Æ
?\°
?\±
?\²
?\µ
?\¶
?\·
- ?\¸
+ ?\ø
?\¹
- ?\º
+ ?\ŗ
?\»
?\¼
?\½
?\¾
- ?\¿
+ ?\æ
?\Ą
?\Į
?\Ā
;; 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.
+;;;###autoload(autoload-coding-system 'georgian-ps '(require 'code-pages))
(cp-make-coding-system
georgian-ps ; used by glibc for ka_GE
[?\\80
nil ?G)
(coding-system-put 'georgian-ps 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp720 '(require 'code-pages))
;; From http://www.microsoft.com/globaldev/reference/oem/720.htm
(cp-make-coding-system
cp720
?\ ])
(coding-system-put 'cp720 'mime-charset nil) ; not in IANA list
+;;;###autoload(autoload-coding-system 'cp1125 '(require 'code-pages))
;; 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>
;; Suggested by Anton Zinoviev <anton@lml.bas.bg>: Bulgarian DOS
;; codepage. Table at
-;; <URL:http://czyborra.com/charsets/bulgarian-mik.txt.gz>.
+;; <http://en.wikipedia.org/wiki/MIK_Code_page>.
+;;;###autoload(autoload-coding-system 'mik '(require 'code-pages))
(cp-make-coding-system
mik
[?А ?Б ?В ?Г ?Д ?Е ?Ж ?З ?И ?Й ?К ?Л ?М ?Н ?О ?П ?Р ?С ?Т ?У ?Ф ?Х ?Ц
?Ч ?Ш ?Щ ?Ъ ?Ы ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н
?о ?п ?р ?с ?т ?у ?ф ?х ?ц ?ч ?ш ?щ ?ъ ?ы ?ь ?э ?ю ?я ?└ ?┴ ?┬ ?├ ?─
?┼ ?╣ ?║ ?╚ ?╔ ?╩ ?╦ ?╠ ?═ ?╬ ?┐ ?░ ?▒ ?▓ ?│ ?┤ ?№ ?§ ?╗ ?╝ ?┘ ?┌ ?█
- ?▄ ?▌ ?▐ ?▀ ?α ?β ?Γ ?π ?Σ ?σ ?μ ?τ ?Φ ?Θ ?Ω ?δ ?∞ ?∅ ?∈ ?∩ ?≡ ?± ?≥
+ ?▄ ?▌ ?▐ ?▀ ?α ?ß ?Γ ?π ?Σ ?σ ?µ ?τ ?Φ ?Θ ?Ω ?δ ?∞ ?φ ?ε ?∩ ?≡ ?± ?≥
?≤ ?⌠ ?⌡ ?÷ ?≈ ?° ?∙ ?· ?√ ?ⁿ ?² ?■ ? ])
(coding-system-put 'mik 'mime-charset nil)
;; <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]
"ISO-8859-11. This is `thai-tis620' with the addition of no-break-space.")
-(dotimes (i 8)
+(dotimes (i 9)
(let ((w (intern (format "windows-125%d" i)))
(c (intern (format "cp125%d" i))))
- (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)))
-
-;; Use Unicode font under Windows. Jason Rumney fecit.
-(if (and (fboundp 'w32-add-charset-info)
- (not (boundp 'w32-unicode-charset-defined)))
- (w32-add-charset-info "iso10646-1" 'w32-charset-ansi t))
+ ;; 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-".
+ (when (coding-system-p w)
+ (define-coding-system-alias c w)
+ ;; Compatibility with codepage.el, though cp... are not the
+ ;; canonical names.
+ (if (not (assq c non-iso-charset-alist))
+ (let ((slot (assq w non-iso-charset-alist)))
+ (if slot
+ (push (cons c (cdr slot)) non-iso-charset-alist)))))))
(provide 'code-pages)
+;;; arch-tag: 8b6e3c73-b271-4198-866d-ea6d0ceff1b2
;;; code-pages.el ends here