Mercurial > hg > xemacs-beta
annotate lisp/mule/mule-coding.el @ 5384:3889ef128488
Fix misspelled words, and some grammar, across the entire source tree.
See xemacs-patches message with ID
<AANLkTi=edkEKtK3pZ60ytsG5pTJQy2TjAEVCZCLOa-oA@mail.gmail.com>.
author | Jerry James <james@xemacs.org> |
---|---|
date | Thu, 24 Mar 2011 11:00:11 -0600 |
parents | 257b468bf2ca |
children | 308d34e9f07d |
rev | line source |
---|---|
502 | 1 ;;; mule-coding.el --- Coding-system functions for Mule. -*- coding: iso-2022-7bit; -*- |
333 | 2 |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
4 ;; Licensed to the Free Software Foundation. | |
5 ;; Copyright (C) 1995 Amdahl Corporation. | |
6 ;; Copyright (C) 1995 Sun Microsystems. | |
7 ;; Copyright (C) 1997 MORIOKA Tomohiko | |
771 | 8 ;; Copyright (C) 2001 Ben Wing. |
333 | 9 |
10 ;; This file is part of XEmacs. | |
11 | |
12 ;; XEmacs is free software; you can redistribute it and/or modify it | |
13 ;; under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; XEmacs is distributed in the hope that it will be useful, but | |
18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
20 ;; General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
444 | 23 ;; along with XEmacs; see the file COPYING. If not, write to the |
333 | 24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
25 ;; Boston, MA 02111-1307, USA. | |
26 | |
27 ;;; Commentary: | |
28 | |
29 ;;; split off of mule.el and mostly moved to coding.el | |
30 | |
31 ;;; Code: | |
32 | |
33 (defun coding-system-force-on-output (coding-system register) | |
34 "Return the 'force-on-output property of CODING-SYSTEM for the specified REGISTER." | |
444 | 35 (check-type register integer) |
333 | 36 (coding-system-property |
37 coding-system | |
38 (case register | |
39 (0 'force-g0-on-output) | |
40 (1 'force-g1-on-output) | |
41 (2 'force-g2-on-output) | |
42 (3 'force-g3-on-output) | |
43 (t (signal 'args-out-of-range (list register 0 3)))))) | |
44 | |
45 (defun coding-system-short (coding-system) | |
46 "Return the 'short property of CODING-SYSTEM." | |
47 (coding-system-property coding-system 'short)) | |
48 | |
49 (defun coding-system-no-ascii-eol (coding-system) | |
50 "Return the 'no-ascii-eol property of CODING-SYSTEM." | |
51 (coding-system-property coding-system 'no-ascii-eol)) | |
52 | |
53 (defun coding-system-no-ascii-cntl (coding-system) | |
54 "Return the 'no-ascii-cntl property of CODING-SYSTEM." | |
55 (coding-system-property coding-system 'no-ascii-cntl)) | |
56 | |
57 (defun coding-system-seven (coding-system) | |
58 "Return the 'seven property of CODING-SYSTEM." | |
59 (coding-system-property coding-system 'seven)) | |
60 | |
61 (defun coding-system-lock-shift (coding-system) | |
62 "Return the 'lock-shift property of CODING-SYSTEM." | |
63 (coding-system-property coding-system 'lock-shift)) | |
64 | |
65 ;;(defun coding-system-use-japanese-jisx0201-roman (coding-system) | |
66 ;; "Return the 'use-japanese-jisx0201-roman property of CODING-SYSTEM." | |
67 ;; (coding-system-property coding-system 'use-japanese-jisx0201-roman)) | |
68 | |
69 ;;(defun coding-system-use-japanese-jisx0208-1978 (coding-system) | |
70 ;; "Return the 'use-japanese-jisx0208-1978 property of CODING-SYSTEM." | |
71 ;; (coding-system-property coding-system 'use-japanese-jisx0208-2978)) | |
72 | |
73 (defun coding-system-no-iso6429 (coding-system) | |
74 "Return the 'no-iso6429 property of CODING-SYSTEM." | |
75 (coding-system-property coding-system 'no-iso6429)) | |
76 | |
77 (defun coding-system-ccl-encode (coding-system) | |
78 "Return the CCL 'encode property of CODING-SYSTEM." | |
79 (coding-system-property coding-system 'encode)) | |
80 | |
81 (defun coding-system-ccl-decode (coding-system) | |
82 "Return the CCL 'decode property of CODING-SYSTEM." | |
83 (coding-system-property coding-system 'decode)) | |
84 | |
771 | 85 (defun coding-system-iso2022-charset (coding-system register) |
86 "Return the charset initially designated to REGISTER in CODING-SYSTEM. | |
87 The allowable range of REGISTER is 0 through 3." | |
88 (if (or (< register 0) (> register 3)) | |
89 (error 'args-out-of-range "coding-system-charset REGISTER" register 0 3)) | |
90 (coding-system-property coding-system (nth register '(charset-g0 | |
91 charset-g1 | |
92 charset-g2 | |
93 charset-g3)))) | |
94 | |
333 | 95 |
96 ;;;; Definitions of predefined coding systems | |
97 | |
98 (make-coding-system | |
99 'ctext 'iso2022 | |
771 | 100 "Compound Text" |
333 | 101 '(charset-g0 ascii |
102 charset-g1 latin-iso8859-1 | |
103 eol-type nil | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
104 safe-charsets t ;; Reasonable |
333 | 105 mnemonic "CText")) |
106 | |
107 (make-coding-system | |
108 'iso-2022-8bit-ss2 'iso2022 | |
771 | 109 "ISO-2022 8-bit w/SS2" |
333 | 110 '(charset-g0 ascii |
111 charset-g1 latin-iso8859-1 | |
112 charset-g2 t ;; unspecified but can be used later. | |
113 short t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
114 safe-charsets (ascii katakana-jisx0201 japanese-jisx0208-1978 |
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
115 japanese-jisx0208 japanese-jisx0212 japanese-jisx0213-1 |
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
116 japanese-jisx0213-2) |
333 | 117 mnemonic "ISO8/SS" |
771 | 118 documentation "ISO 2022 based 8-bit encoding using SS2 for 96-charset" |
333 | 119 )) |
120 | |
121 (make-coding-system | |
122 'iso-2022-7bit-ss2 'iso2022 | |
771 | 123 "ISO-2022 7-bit w/SS2" |
333 | 124 '(charset-g0 ascii |
125 charset-g2 t ;; unspecified but can be used later. | |
126 seven t | |
127 short t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
128 safe-charsets t |
333 | 129 mnemonic "ISO7/SS" |
771 | 130 documentation "ISO 2022 based 7-bit encoding using SS2 for 96-charset" |
333 | 131 eol-type nil)) |
132 | |
133 ;; (copy-coding-system 'iso-2022-7bit-ss2 'iso-2022-jp-2) | |
134 (make-coding-system | |
135 'iso-2022-jp-2 'iso2022 | |
771 | 136 "ISO-2022-JP-2" |
333 | 137 '(charset-g0 ascii |
138 charset-g2 t ;; unspecified but can be used later. | |
139 seven t | |
140 short t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
141 safe-charsets t |
333 | 142 mnemonic "ISO7/SS" |
143 eol-type nil)) | |
144 | |
145 (make-coding-system | |
146 'iso-2022-7bit 'iso2022 | |
771 | 147 "ISO 2022 7-bit" |
333 | 148 '(charset-g0 ascii |
149 seven t | |
150 short t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
151 safe-charsets t |
771 | 152 mnemonic "ISO7" |
153 documentation "ISO-2022-based 7-bit encoding using only G0" | |
154 )) | |
333 | 155 |
156 ;; compatibility for old XEmacsen | |
771 | 157 (define-coding-system-alias 'iso-2022-7 'iso-2022-7bit) |
333 | 158 |
159 (make-coding-system | |
160 'iso-2022-8 'iso2022 | |
771 | 161 "ISO-2022 8-bit" |
333 | 162 '(charset-g0 ascii |
163 charset-g1 latin-iso8859-1 | |
164 short t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
165 safe-charsets t |
333 | 166 mnemonic "ISO8" |
771 | 167 documentation "ISO-2022 eight-bit coding system. No single-shift or locking-shift." |
333 | 168 )) |
169 | |
170 (make-coding-system | |
171 'escape-quoted 'iso2022 | |
771 | 172 "Escape-Quoted (for .ELC files)" |
333 | 173 '(charset-g0 ascii |
174 charset-g1 latin-iso8859-1 | |
175 eol-type lf | |
176 escape-quoted t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
177 safe-charsets t |
333 | 178 mnemonic "ESC/Quot" |
771 | 179 documentation "ISO-2022 eight-bit coding system with escape quoting; used for .ELC files." |
333 | 180 )) |
181 | |
182 (make-coding-system | |
183 'iso-2022-lock 'iso2022 | |
771 | 184 "ISO-2022 w/locking-shift" |
333 | 185 '(charset-g0 ascii |
186 charset-g1 t ;; unspecified but can be used later. | |
187 seven t | |
188 lock-shift t | |
4568
1d74a1d115ee
Add #'query-coding-region tests; do the work necessary to get them running.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4567
diff
changeset
|
189 safe-charsets t |
333 | 190 mnemonic "ISO7/Lock" |
771 | 191 documentation "ISO-2022 coding system using Locking-Shift for 96-charset." |
333 | 192 )) |
4072 | 193 |
333 | 194 |
4072 | 195 ;; This is used by people writing CCL programs, but is called at runtime. |
196 (defun define-translation-hash-table (symbol table) | |
197 "Define SYMBOL as the name of the hash translation TABLE for use in CCL. | |
198 | |
199 Analogous to `define-translation-table', but updates | |
200 `translation-hash-table-vector' and the table is for use in the CCL | |
201 `lookup-integer' and `lookup-character' functions." | |
4145 | 202 (check-argument-type #'symbolp symbol) |
203 (check-argument-type #'hash-table-p table) | |
4072 | 204 (let ((len (length translation-hash-table-vector)) |
205 (id 0) | |
206 done) | |
207 (put symbol 'translation-hash-table table) | |
208 (while (not done) | |
209 (if (>= id len) | |
210 (setq translation-hash-table-vector | |
211 (vconcat translation-hash-table-vector [nil]))) | |
212 (let ((slot (aref translation-hash-table-vector id))) | |
213 (if (or (not slot) | |
214 (eq (car slot) symbol)) | |
215 (progn | |
216 (aset translation-hash-table-vector id (cons symbol table)) | |
217 (setq done t)) | |
218 (setq id (1+ id))))) | |
219 (put symbol 'translation-hash-table-id id) | |
220 id)) | |
221 | |
4299 | 222 ;; Ideally this would be in latin.el, but code-init.el uses it. |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
223 (make-coding-system |
4299 | 224 'iso-8859-1 |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
225 'fixed-width |
4299 | 226 "ISO-8859-1 (Latin-1)" |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
227 (eval-when-compile |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
228 `(unicode-map |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
229 ,(loop |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
230 for i from #x80 to #xff |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
231 collect (list i (int-char i))) ;; Identical to Latin-1. |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
232 mnemonic "Latin 1" |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
233 documentation "The most used encoding of Western Europe and the Americas." |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
234 aliases (iso-latin-1 latin-1)))) |