;;; code-pages.el --- coding systems for assorted codepages -*-coding: utf-8;-*-
-;; Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-;; Copyright (C) 2004, 2005
+;; 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
;; 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:
(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))
;; 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))))
+ (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))
;; 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])
;;;###autoload(autoload-coding-system 'windows-1250 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1250 '(require 'code-pages))
(cp-make-coding-system
windows-1250
[?\€
?\˙])
;;;###autoload(autoload-coding-system 'windows-1253 '(require 'code-pages))
+;;;###autoload(autoload-coding-system 'cp1253 '(require 'code-pages))
(cp-make-coding-system
windows-1253
[?\€
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 ?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
[?\€
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
[?\қ
;; 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)
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
;; 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)
;; 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)))
+ (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)