Commit cbdea07b authored by Dave Love's avatar Dave Love
Browse files

(cp-make-translation-table)

(cp-valid-codes): Made defsubsts.
(cp-fix-safe-chars): Deleted.
(mule-diag): Don't require.
(windows-1251, windows-1252): Removed to cyrillic.el/european.el.
(top-level): Check for defined coding system when defining
cp... aliases.  Change w32-add-charset-info test to avoid warning.
(non-iso-charset-alist): Defvar when compiling.
(cp-make-coding-system): Doc fix.
parent 0a1a08dd
......@@ -33,13 +33,12 @@
;; 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
......@@ -54,7 +53,11 @@
;;; 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
[?\€
......@@ -4749,15 +4483,16 @@ corresponding args of `make-coding-system'. If MNEMONIC isn't given,
(dotimes (i 8)
(let ((w (intern (format "windows-125%d" i)))
(c (intern (format "cp125%d" i))))
(define-coding-system-alias c w)
(if (coding-system-p c) ; 1251 is in cyrillic.el
(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))
(if (fboundp 'w32-add-charset-info)
(unless (boundp 'w32-unicode-charset-defined)
(w32-add-charset-info "iso10646-1" 'w32-charset-ansi t)))
(provide 'code-pages)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment