]> code.delx.au - gnu-emacs/blobdiff - lisp/international/code-pages.el
(sgml-html-meta-auto-coding-function):
[gnu-emacs] / lisp / international / code-pages.el
index c0c4a2e93f504617b4159c3d48ad2baafd60123b..0f8cdbf5713c853d9c9db2adc788afdfacd0e291 100644 (file)
 
 ;; 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)))
@@ -75,7 +78,7 @@ V comprises characters encodable by mule-utf-8."
                      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
@@ -94,13 +97,6 @@ See `make-coding-system'."
     (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
@@ -145,9 +141,10 @@ read/written by MS-DOS software, or for display on the MS-DOS terminal."
 (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
@@ -203,6 +200,7 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
                     (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
@@ -2573,270 +2571,6 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
   ?\ţ
   ?\˙])
 
-;; be_BY, bg_BG
-(cp-make-coding-system
- windows-1251
- [?\Ђ
-  ?\Ѓ
-  ?\‚
-  ?\ѓ
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\€
-  ?\‰
-  ?\Љ
-  ?\‹
-  ?\Њ
-  ?\Ќ
-  ?\Ћ
-  ?\Џ
-  ?\ђ
-  ?\‘
-  ?\’
-  ?\“
-  ?\”
-  ?\•
-  ?\–
-  ?\—
-  nil
-  ?\™
-  ?\љ
-  ?\›
-  ?\њ
-  ?\ќ
-  ?\ћ
-  ?\џ
-  ?\ 
-  ?\Ў
-  ?\ў
-  ?\Ј
-  ?\¤
-  ?\Ґ
-  ?\¦
-  ?\§
-  ?\Ё
-  ?\©
-  ?\Є
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\Ї
-  ?\°
-  ?\±
-  ?\І
-  ?\і
-  ?\ґ
-  ?\µ
-  ?\¶
-  ?\·
-  ?\ё
-  ?\№
-  ?\є
-  ?\»
-  ?\ј
-  ?\Ѕ
-  ?\ѕ
-  ?\ї
-  ?\А
-  ?\Б
-  ?\В
-  ?\Г
-  ?\Д
-  ?\Е
-  ?\Ж
-  ?\З
-  ?\И
-  ?\Й
-  ?\К
-  ?\Л
-  ?\М
-  ?\Н
-  ?\О
-  ?\П
-  ?\Р
-  ?\С
-  ?\Т
-  ?\У
-  ?\Ф
-  ?\Х
-  ?\Ц
-  ?\Ч
-  ?\Ш
-  ?\Щ
-  ?\Ъ
-  ?\Ы
-  ?\Ь
-  ?\Э
-  ?\Ю
-  ?\Я
-  ?\а
-  ?\б
-  ?\в
-  ?\г
-  ?\д
-  ?\е
-  ?\ж
-  ?\з
-  ?\и
-  ?\й
-  ?\к
-  ?\л
-  ?\м
-  ?\н
-  ?\о
-  ?\п
-  ?\р
-  ?\с
-  ?\т
-  ?\у
-  ?\ф
-  ?\х
-  ?\ц
-  ?\ч
-  ?\ш
-  ?\щ
-  ?\ъ
-  ?\ы
-  ?\ь
-  ?\э
-  ?\ю
-  ?\я]
- nil ?b)
-
-(cp-make-coding-system
- windows-1252
- [?\€
-  nil
-  ?\‚
-  ?\ƒ
-  ?\„
-  ?\…
-  ?\†
-  ?\‡
-  ?\ˆ
-  ?\‰
-  ?\Š
-  ?\‹
-  ?\Œ
-  nil
-  ?\Ž
-  ?\ž
-  nil
-  ?\‘
-  ?\’
-  ?\“
-  ?\”
-  ?\•
-  ?\–
-  ?\—
-  ?\˜
-  ?\™
-  ?\š
-  ?\›
-  ?\œ
-  nil
-  nil
-  ?\Ÿ
-  ?\ 
-  ?\¡
-  ?\¢
-  ?\£
-  ?\¤
-  ?\¥
-  ?\¦
-  ?\§
-  ?\¨
-  ?\©
-  ?\ª
-  ?\«
-  ?\¬
-  ?\­
-  ?\®
-  ?\¯
-  ?\°
-  ?\±
-  ?\²
-  ?\³
-  ?\´
-  ?\µ
-  ?\¶
-  ?\·
-  ?\¸
-  ?\¹
-  ?\º
-  ?\»
-  ?\¼
-  ?\½
-  ?\¾
-  ?\¿
-  ?\À
-  ?\Á
-  ?\Â
-  ?\Ã
-  ?\Ä
-  ?\Å
-  ?\Æ
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
-  ?\Ì
-  ?\Í
-  ?\Î
-  ?\Ï
-  ?\Ð
-  ?\Ñ
-  ?\Ò
-  ?\Ó
-  ?\Ô
-  ?\Õ
-  ?\Ö
-  ?\×
-  ?\Ø
-  ?\Ù
-  ?\Ú
-  ?\Û
-  ?\Ü
-  ?\Ý
-  ?\Þ
-  ?\ß
-  ?\à
-  ?\á
-  ?\â
-  ?\ã
-  ?\ä
-  ?\å
-  ?\æ
-  ?\ç
-  ?\è
-  ?\é
-  ?\ê
-  ?\ë
-  ?\ì
-  ?\í
-  ?\î
-  ?\ï
-  ?\ð
-  ?\ñ
-  ?\ò
-  ?\ó
-  ?\ô
-  ?\õ
-  ?\ö
-  ?\÷
-  ?\ø
-  ?\ù
-  ?\ú
-  ?\û
-  ?\ü
-  ?\ý
-  ?\þ
-  ?\ÿ])
-
 (cp-make-coding-system
  windows-1253
  [?\€
@@ -3236,22 +2970,22 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
 (cp-make-coding-system
  windows-1256
  [?\€
-  ?\Ù 
+  ?\Ù¾
   ?\‚
-  ?\١
+  ?\ƒ
   ?\„
   ?\…
   ?\†
   ?\‡
-  ?\٢
-  ?\٣
-  ?\Ù¤
+  ?\ˆ
+  ?\
+  ?\Ù¹
   ?\‹
-  ?\٥
-  ?\٦
-  ?\٧
-  ?\٨
-  ?\٩
+  ?\Œ
+  ?\چ
+  ?\ژ
+  ?\ڈ
+  ?\گ
   ?\‘
   ?\’
   ?\“
@@ -3259,110 +2993,110 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
   ?\•
   ?\–
   ?\—
-  ?\؛
+  ?\ک
   ?\™
-  ?\؟
+  ?\ڑ
   ?\›
-  ?\ء
-  ?\آ
-  ?\أ
-  ?\Ÿ
+  ?\œ
+  ?\
+  ?\
+  ?\ں
   ?\ 
-  ?\ؤ
-  ?\إ
+  ?\Ø\8c
+  ?\¢
   ?\£
   ?\¤
-  ?\ئ
+  ?\¥
   ?\¦
   ?\§
-  ?\ا
+  ?\¨
   ?\©
-  ?\ب
+  ?\ھ
   ?\«
   ?\¬
   ?\­
   ?\®
-  ?\پ
+  ?\¯
   ?\°
   ?\±
-  ?\ة
-  ?\ت
-  ?\ث
+  ?\²
+  ?\³
+  ?\´
   ?\µ
   ?\¶
   ?\·
+  ?\¸
+  ?\¹
+  ?\؛
+  ?\»
+  ?\¼
+  ?\½
+  ?\¾
+  ?\؟
+  ?\ہ
+  ?\ء
+  ?\آ
+  ?\أ
+  ?\ؤ
+  ?\إ
+  ?\ئ
+  ?\ا
+  ?\ب
+  ?\ة
+  ?\ت
+  ?\ث
   ?\ج
-  ?\چ
   ?\ح
-  ?\»
   ?\خ
   ?\د
   ?\ذ
   ?\ر
-  ?\À
   ?\ز
-  ?\Â
-  ?\ژ
   ?\س
   ?\ش
   ?\ص
-  ?\Ç
-  ?\È
-  ?\É
-  ?\Ê
-  ?\Ë
   ?\ض
+  ?\×
   ?\ط
-  ?\Î
-  ?\Ï
-  ?\ㄓ
+  ?\ظ
   ?\ع
   ?\غ
   ?\ـ
-  ?\Ô
   ?\ف
   ?\ق
-  ?\×
   ?\ك
-  ?\Ù
-  ?\گ
-  ?\Û
-  ?\Ü
+  ?\à
   ?\ل
+  ?\â
   ?\م
   ?\ن
-  ?\à
   ?\ه
-  ?\â
-  ?\ځ
   ?\و
-  ?\ى
-  ?\ي
   ?\ç
   ?\è
   ?\é
   ?\ê
   ?\ë
-  ?\Ù\8b
-  ?\Ù\8c
+  ?\Ù\89
+  ?\Ù\8a
   ?\î
   ?\ï
+  ?\ً
+  ?\ٌ
   ?\ٍ
   ?\َ
+  ?\ô
   ?\ُ
   ?\ِ
-  ?\ô
-  ?\ّ
-  ?\ْ
   ?\÷
-  nil
+  ?\ّ
   ?\ù
-  nil
+  ?\ْ
   ?\û
   ?\ü
   ?\‎
   ?\‏
-  ?\ÿ]
+  ?\ے]
  nil ?a) ;; Arabic
 
 (cp-make-coding-system
@@ -4696,11 +4430,11 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
   ?\і
   ?\Ї
   ?\ї
-  ?\÷
-  ?\±
+  ?\·
+  ?\
   ?\№
   ?\¤
-  ?\
+  ?\
   ?\ ])
 (define-coding-system-alias 'ruscii 'cp1125)
 ;; Original name for cp1125, says Serhii Hlodin <hlodin@lutsk.bank.gov.ua>
@@ -4725,6 +4459,7 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
 ;; <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
  [?Җ ?Ғ ?Ӯ ?ғ ?„ ?… ?Ҷ ?Ү ?Ҳ ?ү ?Ҡ ?Ӣ ?Ң ?Қ ?Һ ?Ҹ ?җ ?‘ ?’ ?“ ?” ?• ?–
@@ -4734,6 +4469,7 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
   ?Ь ?Э ?Ю ?Я ?а ?б ?в ?г ?д ?е ?ж ?з ?и ?й ?к ?л ?м ?н ?о ?п ?р ?с ?т
   ?у ?ф ?х ?ц ?ч ?ш ?щ ?ъ ?ы ?ь ?э ?ю ?я])
   
+;;;###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
@@ -4746,19 +4482,19 @@ corresponding args of `make-coding-system'.  If MNEMONIC isn't given,
   ?๐  ?๑  ?๒  ?๓  ?๔  ?๕  ?๖  ?๗  ?๘  ?๙  ?๚  ?๛   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)
+    ;; 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)))
 
-;; 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))
-
 (provide 'code-pages)
 
+;;; arch-tag: 8b6e3c73-b271-4198-866d-ea6d0ceff1b2
 ;;; code-pages.el ends here