Mercurial > hg > xemacs-beta
annotate lisp/mule/mule-coding.el @ 5518:3cc7470ea71c
gnuclient: if TMPDIR was set and connect failed, try again with /tmp
2011-06-03 Aidan Kehoe <kehoea@parhasard.net>
* gnuslib.c (connect_to_unix_server):
Retry with /tmp as a directory in which to search for Unix sockets
if an attempt to connect with some other directory failed (which
may be because gnuclient and gnuserv don't share an environment
value for TMPDIR, or because gnuserv was compiled with USE_TMPDIR
turned off).
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Fri, 03 Jun 2011 18:40:57 +0100 |
parents | 308d34e9f07d |
children |
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 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
12 ;; XEmacs is free software: you can redistribute it and/or modify it |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
13 ;; under the terms of the GNU General Public License as published by the |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
14 ;; Free Software Foundation, either version 3 of the License, or (at your |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
15 ;; option) any later version. |
333 | 16 |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
17 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
18 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
19 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
20 ;; for more details. |
333 | 21 |
22 ;; You should have received a copy of the GNU General Public License | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
4690
diff
changeset
|
23 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
333 | 24 |
25 ;;; Commentary: | |
26 | |
27 ;;; split off of mule.el and mostly moved to coding.el | |
28 | |
29 ;;; Code: | |
30 | |
31 (defun coding-system-force-on-output (coding-system register) | |
32 "Return the 'force-on-output property of CODING-SYSTEM for the specified REGISTER." | |
444 | 33 (check-type register integer) |
333 | 34 (coding-system-property |
35 coding-system | |
36 (case register | |
37 (0 'force-g0-on-output) | |
38 (1 'force-g1-on-output) | |
39 (2 'force-g2-on-output) | |
40 (3 'force-g3-on-output) | |
41 (t (signal 'args-out-of-range (list register 0 3)))))) | |
42 | |
43 (defun coding-system-short (coding-system) | |
44 "Return the 'short property of CODING-SYSTEM." | |
45 (coding-system-property coding-system 'short)) | |
46 | |
47 (defun coding-system-no-ascii-eol (coding-system) | |
48 "Return the 'no-ascii-eol property of CODING-SYSTEM." | |
49 (coding-system-property coding-system 'no-ascii-eol)) | |
50 | |
51 (defun coding-system-no-ascii-cntl (coding-system) | |
52 "Return the 'no-ascii-cntl property of CODING-SYSTEM." | |
53 (coding-system-property coding-system 'no-ascii-cntl)) | |
54 | |
55 (defun coding-system-seven (coding-system) | |
56 "Return the 'seven property of CODING-SYSTEM." | |
57 (coding-system-property coding-system 'seven)) | |
58 | |
59 (defun coding-system-lock-shift (coding-system) | |
60 "Return the 'lock-shift property of CODING-SYSTEM." | |
61 (coding-system-property coding-system 'lock-shift)) | |
62 | |
63 ;;(defun coding-system-use-japanese-jisx0201-roman (coding-system) | |
64 ;; "Return the 'use-japanese-jisx0201-roman property of CODING-SYSTEM." | |
65 ;; (coding-system-property coding-system 'use-japanese-jisx0201-roman)) | |
66 | |
67 ;;(defun coding-system-use-japanese-jisx0208-1978 (coding-system) | |
68 ;; "Return the 'use-japanese-jisx0208-1978 property of CODING-SYSTEM." | |
69 ;; (coding-system-property coding-system 'use-japanese-jisx0208-2978)) | |
70 | |
71 (defun coding-system-no-iso6429 (coding-system) | |
72 "Return the 'no-iso6429 property of CODING-SYSTEM." | |
73 (coding-system-property coding-system 'no-iso6429)) | |
74 | |
75 (defun coding-system-ccl-encode (coding-system) | |
76 "Return the CCL 'encode property of CODING-SYSTEM." | |
77 (coding-system-property coding-system 'encode)) | |
78 | |
79 (defun coding-system-ccl-decode (coding-system) | |
80 "Return the CCL 'decode property of CODING-SYSTEM." | |
81 (coding-system-property coding-system 'decode)) | |
82 | |
771 | 83 (defun coding-system-iso2022-charset (coding-system register) |
84 "Return the charset initially designated to REGISTER in CODING-SYSTEM. | |
85 The allowable range of REGISTER is 0 through 3." | |
86 (if (or (< register 0) (> register 3)) | |
87 (error 'args-out-of-range "coding-system-charset REGISTER" register 0 3)) | |
88 (coding-system-property coding-system (nth register '(charset-g0 | |
89 charset-g1 | |
90 charset-g2 | |
91 charset-g3)))) | |
92 | |
333 | 93 |
94 ;;;; Definitions of predefined coding systems | |
95 | |
96 (make-coding-system | |
97 'ctext 'iso2022 | |
771 | 98 "Compound Text" |
333 | 99 '(charset-g0 ascii |
100 charset-g1 latin-iso8859-1 | |
101 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
|
102 safe-charsets t ;; Reasonable |
333 | 103 mnemonic "CText")) |
104 | |
105 (make-coding-system | |
106 'iso-2022-8bit-ss2 'iso2022 | |
771 | 107 "ISO-2022 8-bit w/SS2" |
333 | 108 '(charset-g0 ascii |
109 charset-g1 latin-iso8859-1 | |
110 charset-g2 t ;; unspecified but can be used later. | |
111 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
|
112 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
|
113 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
|
114 japanese-jisx0213-2) |
333 | 115 mnemonic "ISO8/SS" |
771 | 116 documentation "ISO 2022 based 8-bit encoding using SS2 for 96-charset" |
333 | 117 )) |
118 | |
119 (make-coding-system | |
120 'iso-2022-7bit-ss2 'iso2022 | |
771 | 121 "ISO-2022 7-bit w/SS2" |
333 | 122 '(charset-g0 ascii |
123 charset-g2 t ;; unspecified but can be used later. | |
124 seven t | |
125 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
|
126 safe-charsets t |
333 | 127 mnemonic "ISO7/SS" |
771 | 128 documentation "ISO 2022 based 7-bit encoding using SS2 for 96-charset" |
333 | 129 eol-type nil)) |
130 | |
131 ;; (copy-coding-system 'iso-2022-7bit-ss2 'iso-2022-jp-2) | |
132 (make-coding-system | |
133 'iso-2022-jp-2 'iso2022 | |
771 | 134 "ISO-2022-JP-2" |
333 | 135 '(charset-g0 ascii |
136 charset-g2 t ;; unspecified but can be used later. | |
137 seven t | |
138 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
|
139 safe-charsets t |
333 | 140 mnemonic "ISO7/SS" |
141 eol-type nil)) | |
142 | |
143 (make-coding-system | |
144 'iso-2022-7bit 'iso2022 | |
771 | 145 "ISO 2022 7-bit" |
333 | 146 '(charset-g0 ascii |
147 seven t | |
148 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
|
149 safe-charsets t |
771 | 150 mnemonic "ISO7" |
151 documentation "ISO-2022-based 7-bit encoding using only G0" | |
152 )) | |
333 | 153 |
154 ;; compatibility for old XEmacsen | |
771 | 155 (define-coding-system-alias 'iso-2022-7 'iso-2022-7bit) |
333 | 156 |
157 (make-coding-system | |
158 'iso-2022-8 'iso2022 | |
771 | 159 "ISO-2022 8-bit" |
333 | 160 '(charset-g0 ascii |
161 charset-g1 latin-iso8859-1 | |
162 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
|
163 safe-charsets t |
333 | 164 mnemonic "ISO8" |
771 | 165 documentation "ISO-2022 eight-bit coding system. No single-shift or locking-shift." |
333 | 166 )) |
167 | |
168 (make-coding-system | |
169 'escape-quoted 'iso2022 | |
771 | 170 "Escape-Quoted (for .ELC files)" |
333 | 171 '(charset-g0 ascii |
172 charset-g1 latin-iso8859-1 | |
173 eol-type lf | |
174 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
|
175 safe-charsets t |
333 | 176 mnemonic "ESC/Quot" |
771 | 177 documentation "ISO-2022 eight-bit coding system with escape quoting; used for .ELC files." |
333 | 178 )) |
179 | |
180 (make-coding-system | |
181 'iso-2022-lock 'iso2022 | |
771 | 182 "ISO-2022 w/locking-shift" |
333 | 183 '(charset-g0 ascii |
184 charset-g1 t ;; unspecified but can be used later. | |
185 seven t | |
186 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
|
187 safe-charsets t |
333 | 188 mnemonic "ISO7/Lock" |
771 | 189 documentation "ISO-2022 coding system using Locking-Shift for 96-charset." |
333 | 190 )) |
4072 | 191 |
333 | 192 |
4072 | 193 ;; This is used by people writing CCL programs, but is called at runtime. |
194 (defun define-translation-hash-table (symbol table) | |
195 "Define SYMBOL as the name of the hash translation TABLE for use in CCL. | |
196 | |
197 Analogous to `define-translation-table', but updates | |
198 `translation-hash-table-vector' and the table is for use in the CCL | |
199 `lookup-integer' and `lookup-character' functions." | |
4145 | 200 (check-argument-type #'symbolp symbol) |
201 (check-argument-type #'hash-table-p table) | |
4072 | 202 (let ((len (length translation-hash-table-vector)) |
203 (id 0) | |
204 done) | |
205 (put symbol 'translation-hash-table table) | |
206 (while (not done) | |
207 (if (>= id len) | |
208 (setq translation-hash-table-vector | |
209 (vconcat translation-hash-table-vector [nil]))) | |
210 (let ((slot (aref translation-hash-table-vector id))) | |
211 (if (or (not slot) | |
212 (eq (car slot) symbol)) | |
213 (progn | |
214 (aset translation-hash-table-vector id (cons symbol table)) | |
215 (setq done t)) | |
216 (setq id (1+ id))))) | |
217 (put symbol 'translation-hash-table-id id) | |
218 id)) | |
219 | |
4299 | 220 ;; 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
|
221 (make-coding-system |
4299 | 222 'iso-8859-1 |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
223 'fixed-width |
4299 | 224 "ISO-8859-1 (Latin-1)" |
4690
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
225 (eval-when-compile |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
226 `(unicode-map |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
227 ,(loop |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
228 for i from #x80 to #xff |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
229 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
|
230 mnemonic "Latin 1" |
257b468bf2ca
Move the #'query-coding-region implementation to C.
Aidan Kehoe <kehoea@parhasard.net>
parents:
4605
diff
changeset
|
231 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
|
232 aliases (iso-latin-1 latin-1)))) |