Mercurial > emacs
annotate lisp/international/codepage.el @ 96115:6d96d49c7ae7
*** empty log message ***
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 20 Jun 2008 15:48:08 +0000 |
parents | 889bc336b89b |
children |
rev | line source |
---|---|
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
36579
diff
changeset
|
1 ;;; codepage.el --- MS-DOS/MS-Windows specific coding systems |
23915 | 2 |
92039
12b28703d0a5
Add missing FSF copyright years.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
3 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
12b28703d0a5
Add missing FSF copyright years.
Glenn Morris <rgm@gnu.org>
parents:
91327
diff
changeset
|
4 ;; 2007, 2008 Free Software Foundation, Inc. |
79709 | 5 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 |
62274 | 6 ;; National Institute of Advanced Industrial Science and Technology (AIST) |
7 ;; Registration Number H14PRO021 | |
23915 | 8 |
9 ;; Author: Eli Zaretskii | |
10 ;; Maintainer: FSF | |
88563 | 11 ;; Keywords: i18n ms-dos ms-windows codepage obsolete |
23915 | 12 |
13 ;; This file is part of GNU Emacs. | |
14 | |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94153
diff
changeset
|
15 ;; GNU Emacs is free software: you can redistribute it and/or modify |
23915 | 16 ;; it under the terms of the GNU General Public License as published by |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94153
diff
changeset
|
17 ;; the Free Software Foundation, either version 3 of the License, or |
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94153
diff
changeset
|
18 ;; (at your option) any later version. |
23915 | 19 |
20 ;; GNU Emacs is distributed in the hope that it will be useful, | |
21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 ;; GNU General Public License for more details. | |
24 | |
25 ;; You should have received a copy of the GNU General Public License | |
94664
889bc336b89b
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94153
diff
changeset
|
26 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
23915 | 27 |
28 ;;; Commentary: | |
29 | |
29922
9473e3466947
(cp-coding-system-for-codepage-1): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
29721
diff
changeset
|
30 ;; Special coding systems for DOS/Windows codepage support. |
88563 | 31 ;; Obsolete. |
23915 | 32 |
33 ;;; Code: | |
34 | |
65489
05943819b890
(dos-unsupported-char-glyph): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64085
diff
changeset
|
35 (defvar dos-unsupported-char-glyph) |
05943819b890
(dos-unsupported-char-glyph): Add defvar.
Juanma Barranquero <lekktu@gmail.com>
parents:
64085
diff
changeset
|
36 |
88563 | 37 ;; I doubt we need compatibility versions of any of these autoloaded |
38 ;; functions apart from codepage-setup, which users may call. | |
23915 | 39 |
88563 | 40 ;; ;;;###autoload |
41 ;; (defun cp-make-coding-systems-for-codepage (codepage iso-name offset) | |
42 ;; "Create a coding system to convert IBM CODEPAGE into charset ISO-NAME | |
43 ;; whose first character is at offset OFFSET from the beginning of 8-bit | |
44 ;; ASCII table. | |
23915 | 45 |
88563 | 46 ;; The created coding system has the usual 3 subsidiary systems: for Unix-, |
47 ;; DOS- and Mac-style EOL conversion. However, unlike built-in coding | |
48 ;; systems, the Mac-style EOL conversion is currently not supported by the | |
49 ;; decoder and encoder created by this function." | |
50 ;; (let* ((decode-table (intern (format "%s-decode-table" codepage))) | |
51 ;; (nonascii-table | |
52 ;; (intern (format "%s-nonascii-translation-table" codepage))) | |
53 ;; (decode-translation | |
54 ;; (intern (format "%s-decode-translation-table" codepage))) | |
55 ;; (encode-translation | |
56 ;; (intern (format "%s-encode-translation-table" codepage)))) | |
57 ;; (set nonascii-table | |
58 ;; (make-translation-table-from-vector | |
59 ;; (cp-decoding-vector-for-codepage | |
60 ;; (symbol-value decode-table) iso-name offset))) | |
61 ;; (define-translation-table encode-translation | |
62 ;; (char-table-extra-slot (symbol-value nonascii-table) 0)) | |
63 ;; ;; For charsets other than ascii, eight-bit-* and ISO-NAME, set | |
64 ;; ;; `?' for one-column charsets, and some Japanese character for | |
65 ;; ;; wide-column charsets. CCL encoder convert that Japanese | |
66 ;; ;; character to either dos-unsupported-char-glyph or "??". | |
67 ;; (let ((tbl (char-table-extra-slot (symbol-value nonascii-table) 0)) | |
68 ;; (undef (if (eq system-type 'ms-dos) | |
69 ;; (if dos-unsupported-char-glyph | |
70 ;; (logand dos-unsupported-char-glyph 255) | |
71 ;; 127) | |
72 ;; ??)) | |
73 ;; (charsets (delq 'ascii | |
74 ;; (delq 'eight-bit-control | |
75 ;; (delq 'eight-bit-graphic | |
76 ;; (delq iso-name | |
77 ;; (copy-sequence charset-list)))))) | |
78 ;; (wide-column-char (make-char 'japanese-jisx0208 32 32))) | |
79 ;; (while charsets | |
80 ;; (aset tbl (make-char (car charsets)) | |
81 ;; (if (= (charset-width (car charsets)) 1) undef wide-column-char)) | |
82 ;; (setq charsets (cdr charsets)))) | |
83 ;; (define-translation-table decode-translation | |
84 ;; (symbol-value nonascii-table)) | |
85 ;; (cp-coding-system-for-codepage-1 | |
86 ;; (intern codepage) ?D iso-name decode-translation encode-translation) | |
87 ;; )) | |
23915 | 88 |
88563 | 89 ;; ;;;###autoload |
90 ;; (defun cp-charset-for-codepage (codepage) | |
91 ;; "Return the charset for which there is a translation table to DOS CODEPAGE. | |
92 ;; CODEPAGE must be the name of a DOS codepage, a string." | |
93 ;; (let ((cp-decoder (cp-codepage-decoder codepage))) | |
94 ;; (if (null cp-decoder) | |
95 ;; (error "Unsupported codepage %s" codepage) | |
96 ;; (get cp-decoder 'charset)))) | |
36579 | 97 |
88563 | 98 ;; ;;;###autoload |
99 ;; (defun cp-language-for-codepage (codepage) | |
100 ;; "Return the name of the MULE language environment for CODEPAGE. | |
101 ;; CODEPAGE must be the name of a DOS codepage, a string." | |
102 ;; (let ((cp-decoder (cp-codepage-decoder codepage))) | |
103 ;; (if (null cp-decoder) | |
104 ;; (error "Unsupported codepage %s" codepage) | |
105 ;; (get cp-decoder 'language)))) | |
23915 | 106 |
88563 | 107 ;; ;;;###autoload |
108 ;; (defun cp-offset-for-codepage (codepage) | |
109 ;; "Return the offset to be used in setting up coding systems for CODEPAGE. | |
110 ;; CODEPAGE must be the name of a DOS codepage, a string." | |
111 ;; (let ((cp-decoder (cp-codepage-decoder codepage))) | |
112 ;; (if (null cp-decoder) | |
113 ;; (error "Unsupported codepage %s" codepage) | |
114 ;; (get cp-decoder 'offset)))) | |
24454
fe0089dd2d2f
(cp1250-decode-table, cp1251-decode-table, cp1253-decode-table,
Eli Zaretskii <eliz@gnu.org>
parents:
24371
diff
changeset
|
115 |
88563 | 116 ;; ;;;###autoload |
117 ;; (defun cp-supported-codepages () | |
118 ;; "Return an alist of supported codepages. | |
24454
fe0089dd2d2f
(cp1250-decode-table, cp1251-decode-table, cp1253-decode-table,
Eli Zaretskii <eliz@gnu.org>
parents:
24371
diff
changeset
|
119 |
88563 | 120 ;; Each association in the alist has the form (NNN . CHARSET), where NNN is the |
121 ;; codepage number, and CHARSET is the MULE charset which is the closest match | |
122 ;; for the character set supported by that codepage. | |
24454
fe0089dd2d2f
(cp1250-decode-table, cp1251-decode-table, cp1253-decode-table,
Eli Zaretskii <eliz@gnu.org>
parents:
24371
diff
changeset
|
123 |
88563 | 124 ;; A codepage NNN is supported if a variable called `cpNNN-decode-table' exists, |
125 ;; is a vector, and has a charset property." | |
126 ;; (save-match-data | |
127 ;; (let (alist chset sname) | |
128 ;; (mapatoms | |
129 ;; (function | |
130 ;; (lambda (sym) | |
131 ;; (if (and (boundp sym) | |
132 ;; (string-match "\\`cp\\([1-9][0-9][0-9][0-9]?\\)-decode-table\\'" | |
133 ;; (setq sname (symbol-name sym))) | |
134 ;; (vectorp (symbol-value sym)) | |
135 ;; (setq chset (get sym 'charset))) | |
136 ;; (setq alist | |
137 ;; (cons (cons (match-string 1 sname) chset) alist)))))) | |
138 ;; alist))) | |
24454
fe0089dd2d2f
(cp1250-decode-table, cp1251-decode-table, cp1253-decode-table,
Eli Zaretskii <eliz@gnu.org>
parents:
24371
diff
changeset
|
139 |
23915 | 140 ;;;###autoload |
88563 | 141 (defun codepage-setup (&optional codepage) |
142 "Obsolete. All coding systems are set up initially." | |
143 (interactive)) | |
94153
27a3a0b2d3d2
(codepage-setup): Fix typo in obsolescence declaration.
Juanma Barranquero <lekktu@gmail.com>
parents:
93975
diff
changeset
|
144 (make-obsolete 'codepage-setup "no longer relevant." "23.1") |
52435
528d8a1b09d5
("mule-diag"): Add eval-after-load
Dave Love <fx@gnu.org>
parents:
52401
diff
changeset
|
145 |
23915 | 146 (provide 'codepage) |
147 | |
93975
1e3a407766b9
Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
92039
diff
changeset
|
148 ;; arch-tag: 80328de8-b94e-4386-be26-5876105731f0 |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
36579
diff
changeset
|
149 ;;; codepage.el ends here |