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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
502
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 448
diff changeset
1 ;;; mule-coding.el --- Coding-system functions for Mule. -*- coding: iso-2022-7bit; -*-
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
2
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
4 ;; Licensed to the Free Software Foundation.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
5 ;; Copyright (C) 1995 Amdahl Corporation.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
6 ;; Copyright (C) 1995 Sun Microsystems.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
7 ;; Copyright (C) 1997 MORIOKA Tomohiko
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
8 ;; Copyright (C) 2001 Ben Wing.
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
9
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
10 ;; This file is part of XEmacs.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
21
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
24
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
25 ;;; Commentary:
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
26
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
27 ;;; split off of mule.el and mostly moved to coding.el
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
28
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
29 ;;; Code:
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
30
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
31 (defun coding-system-force-on-output (coding-system register)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
32 "Return the 'force-on-output property of CODING-SYSTEM for the specified REGISTER."
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
33 (check-type register integer)
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
34 (coding-system-property
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
35 coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
36 (case register
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
37 (0 'force-g0-on-output)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
38 (1 'force-g1-on-output)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
39 (2 'force-g2-on-output)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
40 (3 'force-g3-on-output)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
41 (t (signal 'args-out-of-range (list register 0 3))))))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
42
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
43 (defun coding-system-short (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
44 "Return the 'short property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
45 (coding-system-property coding-system 'short))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
46
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
47 (defun coding-system-no-ascii-eol (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
48 "Return the 'no-ascii-eol property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
49 (coding-system-property coding-system 'no-ascii-eol))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
50
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
51 (defun coding-system-no-ascii-cntl (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
52 "Return the 'no-ascii-cntl property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
53 (coding-system-property coding-system 'no-ascii-cntl))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
54
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
55 (defun coding-system-seven (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
56 "Return the 'seven property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
57 (coding-system-property coding-system 'seven))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
58
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
59 (defun coding-system-lock-shift (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
60 "Return the 'lock-shift property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
61 (coding-system-property coding-system 'lock-shift))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
62
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
63 ;;(defun coding-system-use-japanese-jisx0201-roman (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
64 ;; "Return the 'use-japanese-jisx0201-roman property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
65 ;; (coding-system-property coding-system 'use-japanese-jisx0201-roman))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
66
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
67 ;;(defun coding-system-use-japanese-jisx0208-1978 (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
68 ;; "Return the 'use-japanese-jisx0208-1978 property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
69 ;; (coding-system-property coding-system 'use-japanese-jisx0208-2978))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
70
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
71 (defun coding-system-no-iso6429 (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
72 "Return the 'no-iso6429 property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
73 (coding-system-property coding-system 'no-iso6429))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
74
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
75 (defun coding-system-ccl-encode (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
76 "Return the CCL 'encode property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
77 (coding-system-property coding-system 'encode))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
78
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
79 (defun coding-system-ccl-decode (coding-system)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
80 "Return the CCL 'decode property of CODING-SYSTEM."
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
81 (coding-system-property coding-system 'decode))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
82
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
83 (defun coding-system-iso2022-charset (coding-system register)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
84 "Return the charset initially designated to REGISTER in CODING-SYSTEM.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
85 The allowable range of REGISTER is 0 through 3."
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
86 (if (or (< register 0) (> register 3))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
87 (error 'args-out-of-range "coding-system-charset REGISTER" register 0 3))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
88 (coding-system-property coding-system (nth register '(charset-g0
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
89 charset-g1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
90 charset-g2
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
91 charset-g3))))
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
92
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
93
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
94 ;;;; Definitions of predefined coding systems
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
95
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
96 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
97 'ctext 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
98 "Compound Text"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
99 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
100 charset-g1 latin-iso8859-1
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
103 mnemonic "CText"))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
104
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
105 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
106 'iso-2022-8bit-ss2 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
107 "ISO-2022 8-bit w/SS2"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
108 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
109 charset-g1 latin-iso8859-1
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
110 charset-g2 t ;; unspecified but can be used later.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
115 mnemonic "ISO8/SS"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
116 documentation "ISO 2022 based 8-bit encoding using SS2 for 96-charset"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
117 ))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
118
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
119 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
120 'iso-2022-7bit-ss2 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
121 "ISO-2022 7-bit w/SS2"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
122 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
123 charset-g2 t ;; unspecified but can be used later.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
124 seven t
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
127 mnemonic "ISO7/SS"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
128 documentation "ISO 2022 based 7-bit encoding using SS2 for 96-charset"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
129 eol-type nil))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
130
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
131 ;; (copy-coding-system 'iso-2022-7bit-ss2 'iso-2022-jp-2)
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
132 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
133 'iso-2022-jp-2 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
134 "ISO-2022-JP-2"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
135 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
136 charset-g2 t ;; unspecified but can be used later.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
137 seven t
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
140 mnemonic "ISO7/SS"
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
141 eol-type nil))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
142
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
143 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
144 'iso-2022-7bit 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
145 "ISO 2022 7-bit"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
146 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
147 seven t
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
150 mnemonic "ISO7"
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
151 documentation "ISO-2022-based 7-bit encoding using only G0"
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
152 ))
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
153
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
154 ;; compatibility for old XEmacsen
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
155 (define-coding-system-alias 'iso-2022-7 'iso-2022-7bit)
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
156
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
157 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
158 'iso-2022-8 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
159 "ISO-2022 8-bit"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
160 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
161 charset-g1 latin-iso8859-1
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
164 mnemonic "ISO8"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
165 documentation "ISO-2022 eight-bit coding system. No single-shift or locking-shift."
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
166 ))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
167
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
168 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
169 'escape-quoted 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
170 "Escape-Quoted (for .ELC files)"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
171 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
172 charset-g1 latin-iso8859-1
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
173 eol-type lf
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
176 mnemonic "ESC/Quot"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
177 documentation "ISO-2022 eight-bit coding system with escape quoting; used for .ELC files."
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
178 ))
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
179
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
180 (make-coding-system
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
181 'iso-2022-lock 'iso2022
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
182 "ISO-2022 w/locking-shift"
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
183 '(charset-g0 ascii
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
184 charset-g1 t ;; unspecified but can be used later.
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
185 seven t
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
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
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
188 mnemonic "ISO7/Lock"
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 528
diff changeset
189 documentation "ISO-2022 coding system using Locking-Shift for 96-charset."
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
190 ))
4072
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
191
333
4f79e16b1112 Import from CVS: tag r21-0-64
cvs
parents:
diff changeset
192
4072
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
193 ;; This is used by people writing CCL programs, but is called at runtime.
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
194 (defun define-translation-hash-table (symbol table)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
195 "Define SYMBOL as the name of the hash translation TABLE for use in CCL.
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
196
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
197 Analogous to `define-translation-table', but updates
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
198 `translation-hash-table-vector' and the table is for use in the CCL
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
199 `lookup-integer' and `lookup-character' functions."
4145
edb00a8b4eff [xemacs-hg @ 2007-08-26 20:00:29 by aidan]
aidan
parents: 4103
diff changeset
200 (check-argument-type #'symbolp symbol)
edb00a8b4eff [xemacs-hg @ 2007-08-26 20:00:29 by aidan]
aidan
parents: 4103
diff changeset
201 (check-argument-type #'hash-table-p table)
4072
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
202 (let ((len (length translation-hash-table-vector))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
203 (id 0)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
204 done)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
205 (put symbol 'translation-hash-table table)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
206 (while (not done)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
207 (if (>= id len)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
208 (setq translation-hash-table-vector
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
209 (vconcat translation-hash-table-vector [nil])))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
210 (let ((slot (aref translation-hash-table-vector id)))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
211 (if (or (not slot)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
212 (eq (car slot) symbol))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
213 (progn
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
214 (aset translation-hash-table-vector id (cons symbol table))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
215 (setq done t))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
216 (setq id (1+ id)))))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
217 (put symbol 'translation-hash-table-id id)
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
218 id))
aa28d959af41 [xemacs-hg @ 2007-07-22 22:03:29 by aidan]
aidan
parents: 771
diff changeset
219
4299
f4c3ffe60a4f [xemacs-hg @ 2007-12-01 14:24:46 by aidan]
aidan
parents: 4295
diff changeset
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
f4c3ffe60a4f [xemacs-hg @ 2007-12-01 14:24:46 by aidan]
aidan
parents: 4295
diff changeset
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
f4c3ffe60a4f [xemacs-hg @ 2007-12-01 14:24:46 by aidan]
aidan
parents: 4295
diff changeset
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))))