Mercurial > emacs
annotate lisp/international/mule.el @ 88750:62636e000934
(define-charset): Change the attribute
:parents to :subset or :superset.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 12 Jun 2002 00:15:39 +0000 |
parents | c712966df91c |
children | 97a127f9efeb |
rev | line source |
---|---|
88551 | 1 ;;; mule.el --- basic commands for multilingual environment |
17052 | 2 |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
41983
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
4 ;; Licensed to the Free Software Foundation. |
37765
0a94387bba65
Add copyright notice for FSF.
Gerd Moellmann <gerd@gnu.org>
parents:
37746
diff
changeset
|
5 ;; Copyright (C) 2001 Free Software Foundation, Inc. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
6 ;; Copyright (C) 2001, 2002 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
7 ;; National Institute of Advanced Industrial Science and Technology (AIST) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
8 ;; Registration Number H13PRO009 |
17052 | 9 |
10 ;; Keywords: mule, multilingual, character set, coding system | |
11 | |
12 ;; This file is part of GNU Emacs. | |
13 | |
14 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
15 ;; it under the terms of the GNU General Public License as published by | |
16 ;; the Free Software Foundation; either version 2, or (at your option) | |
17 ;; any later version. | |
18 | |
19 ;; GNU Emacs is distributed in the hope that it will be useful, | |
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
22 ;; GNU General Public License for more details. | |
23 | |
24 ;; You should have received a copy of the GNU General Public License | |
17071 | 25 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
26 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
27 ;; Boston, MA 02111-1307, USA. | |
17052 | 28 |
38414
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37995
diff
changeset
|
29 ;;; Commentary: |
67b464da13ec
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37995
diff
changeset
|
30 |
17052 | 31 ;;; Code: |
32 | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
33 (defconst mule-version "7.0 (SAKAKI)" "\ |
17052 | 34 Version number and name of this version of MULE (multilingual environment).") |
35 | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
36 (defconst mule-version-date "2002.2.28" "\ |
17052 | 37 Distribution date of this version of MULE (multilingual environment).") |
38 | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
39 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
40 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
41 ;;; CHARACTER |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
42 (defalias 'char-valid-p 'characterp) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
43 (make-obsolete 'char-valid-p 'characterp "22.1") |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
44 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
45 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
46 ;;; CHARSET |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
47 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
48 (defun define-charset (name docstring &rest props) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
49 "Define NAME (symbol) as a charset with DOCSTRING. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
50 The remaining arguments must come in pairs ATTRIBUTE VALUE. ATTRIBUTE |
88551 | 51 may be any symbol. The following have special meanings, and one of |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
52 `:code-offset', `:map', `:parents' must be specified. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
53 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
54 `:short-name' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
55 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
56 VALUE must be a short string to identify the charset. If omitted, |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
57 NAME is used. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
58 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
59 `:long-name' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
60 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
61 VALUE must be a string longer than `:short-name' to identify the |
88551 | 62 charset. If omitted, the value of the `:short-name' attribute is used. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
63 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
64 `:dimension' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
65 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
66 VALUE must be an integer 0, 1, 2, or 3, specifying the dimension of |
88551 | 67 code-points of the charsets. If omitted, it is calculated from the |
68 value of the `:code-space' attribute. | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
69 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
70 `:code-space' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
71 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
72 VALUE must be a vector of length at most 8 specifying the byte code |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
73 range of each dimension in this format: |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
74 [ MIN-1 MAX-1 MIN-2 MAX-2 ... ] |
88551 | 75 where MIN-N is the minimum byte value of Nth dimension of code-point, |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
76 MAX-N is the maximum byte value of that. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
77 |
88680
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
78 `:min-code' |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
79 |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
80 VALUE must be an integer specifying the mininum code point of the |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
81 charset. If omitted, it is calculated from `:code-space'. VALUE may |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
82 be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
83 the code point and LOW is the least significant 16 bits. |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
84 |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
85 `max-code' |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
86 |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
87 VALUE must be an integer specifying the maxinum code point of the |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
88 charset. If omitted, it is calculated from `:code-space'. VALUE may |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
89 be a cons (HIGH . LOW), where HIGH is the most significant 16 bits of |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
90 the code point and LOW is the least significant 16 bits. |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
91 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
92 `:iso-final-char' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
93 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
94 VALUE must be a character in the range 32 to 127 (inclusive) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
95 specifying the final char of the charset for ISO-2022 encoding. If |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
96 omitted, the charset can't be encoded by ISO-2022 based |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
97 coding-systems. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
98 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
99 `:iso-revision-number' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
100 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
101 VALUE must be an integer in the range 0..63, specifying the revision |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
102 number of the charset for ISO-2022 encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
103 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
104 `:emacs-mule-id' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
105 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
106 VALUE must be an integer of 0, 128..255. If omitted, the charset |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
107 can't be encoded by coding-systems of type `emacs-mule'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
108 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
109 `:ascii-compatible-p' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
110 |
88551 | 111 VALUE must be nil or t (default nil). If VALUE is t, the charset is |
112 compatible with ASCII, i.e. the first 128 code points map to ASCII. | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
113 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
114 `:supplementary-p' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
115 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
116 VALUE must be nil or t. If the VALUE is t, the charset is |
88551 | 117 supplementary, which means it is used only as a parent of some other |
118 charset. | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
119 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
120 `:invalid-code' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
121 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
122 VALUE must be a nonnegative integer that can be used as an invalid |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
123 code point of the charset. If the minimum code is 0 and the maximum |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
124 code is greater than Emacs' maximum integer value, `:invalid-code' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
125 should not be omitted. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
126 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
127 `:code-offset' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
128 |
88551 | 129 VALUE must be an integer added to the index number of a character to |
130 get the corresponding character code. | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
131 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
132 `:map' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
133 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
134 VALUE must be vector or string. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
135 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
136 If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ], |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
137 where CODE-n is a code-point of the charset, and CHAR-n is the |
88551 | 138 corresponding character code. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
139 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
140 If it is a string, it is a name of file that contains the above |
88436 | 141 information. Each line of the file must be this format: |
142 0xXXX 0xYYY | |
143 where XXX is a hexadecimal representation of CODE-n and YYY is a | |
144 hexadecimal representation of CHAR-n. A line starting with `#' is a | |
145 comment line. | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
146 |
88750
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
147 `:subset' |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
148 |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
149 VALUE must be a list: |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
150 ( PARENT MIN-CODE MAX-CODE OFFSET ) |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
151 PARENT is a parent charset. MIN-CODE and MAX-CODE specify the range |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
152 of characters inherited from the parent. OFFSET is an integer value |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
153 to add to a code point of the parent charset to get the corresponding |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
154 code point of this charset. |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
155 |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
156 `:superset' |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
157 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
158 VALUE must be a list of parent charsets. The charset inherits |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
159 characters from them. Each element of the list may be a cons (PARENT |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
160 . OFFSET), where PARENT is a parent charset, and OFFSET is an offset |
88750
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
161 value to add to a code point of PARENT to get the corresponding code |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
162 point of this charset. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
163 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
164 `:unify-map' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
165 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
166 VALUE must be vector or string. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
167 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
168 If it is a vector, the format is [ CODE-1 CHAR-1 CODE-2 CHAR-2 ... ], |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
169 where CODE-n is a code-point of the charset, and CHAR-n is the |
88551 | 170 corresponding Unicode character code. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
171 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
172 If it is a string, it is a name of file that contains the above |
88436 | 173 information. The file format is the same as what described for `:map' |
174 attribute." | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
175 (let ((attrs (mapcar 'list '(:dimension |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
176 :code-space |
88680
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
177 :min-code |
e574f078b30d
(define-charset): New args :min-code and :max-code.
Kenichi Handa <handa@m17n.org>
parents:
88651
diff
changeset
|
178 :max-code |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
179 :iso-final-char |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
180 :iso-revision-number |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
181 :emacs-mule-id |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
182 :ascii-compatible-p |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
183 :supplementary-p |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
184 :invalid-code |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
185 :code-offset |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
186 :map |
88750
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
187 :subset |
62636e000934
(define-charset): Change the attribute
Kenichi Handa <handa@m17n.org>
parents:
88700
diff
changeset
|
188 :superset |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
189 :unify-map |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
190 :plist)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
191 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
192 ;; If :dimension is omitted, get the dimension from :code-space. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
193 (let ((dimension (plist-get props :dimension))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
194 (or dimension |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
195 (progn |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
196 (setq dimension (/ (length (plist-get props :code-space)) 2)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
197 (setq props (plist-put props :dimension dimension))))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
198 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
199 (dolist (slot attrs) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
200 (setcdr slot (plist-get props (car slot)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
201 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
202 ;; Make sure that the value of :code-space is a vector of 8 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
203 ;; elements. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
204 (let* ((slot (assq :code-space attrs)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
205 (val (cdr slot)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
206 (len (length val))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
207 (if (< len 8) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
208 (setcdr slot |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
209 (vconcat val (make-vector (- 8 len) 0))))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
210 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
211 ;; Add :name and :docstring properties to PROPS. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
212 (setq props |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
213 (cons :name (cons name (cons :docstring (cons docstring props))))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
214 (or (plist-get props :short-name) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
215 (plist-put props :short-name (symbol-name name))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
216 (or (plist-get props :long-name) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
217 (plist-put props :long-name (plist-get props :short-name))) |
88562 | 218 ;; We can probably get a worthwhile amount in purespace. |
219 (setq props | |
220 (mapcar (lambda (elt) | |
221 (if (stringp elt) | |
222 (purecopy elt) | |
223 elt)) | |
224 props)) | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
225 (setcdr (assq :plist attrs) props) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
226 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
227 (apply 'define-charset-internal name (mapcar 'cdr attrs)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
228 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
229 |
17052 | 230 (defun load-with-code-conversion (fullname file &optional noerror nomessage) |
20405
faf18d58a01b
(load-with-code-conversion): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20168
diff
changeset
|
231 "Execute a file of Lisp code named FILE whose absolute name is FULLNAME. |
faf18d58a01b
(load-with-code-conversion): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20168
diff
changeset
|
232 The file contents are decoded before evaluation if necessary. |
17052 | 233 If optional second arg NOERROR is non-nil, |
234 report no error if FILE doesn't exist. | |
235 Print messages at start and end of loading unless | |
236 optional third arg NOMESSAGE is non-nil. | |
237 Return t if file exists." | |
238 (if (null (file-readable-p fullname)) | |
239 (and (null noerror) | |
240 (signal 'file-error (list "Cannot open load file" file))) | |
241 ;; Read file with code conversion, and then eval. | |
242 (let* ((buffer | |
243 ;; To avoid any autoloading, set default-major-mode to | |
244 ;; fundamental-mode. | |
21675
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
245 ;; So that we don't get completely screwed if the |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
246 ;; file is encoded in some complicated character set, |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
247 ;; read it with real decoding, as a multibyte buffer, |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
248 ;; even if this is a --unibyte Emacs session. |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
249 (let ((default-major-mode 'fundamental-mode) |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
250 (default-enable-multibyte-characters t)) |
17052 | 251 ;; We can't use `generate-new-buffer' because files.el |
252 ;; is not yet loaded. | |
253 (get-buffer-create (generate-new-buffer-name " *load*")))) | |
20168
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
254 (load-in-progress t) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
255 (source (save-match-data (string-match "\\.el\\'" fullname)))) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
256 (unless nomessage |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
257 (if source |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
258 (message "Loading %s (source)..." file) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
259 (message "Loading %s..." file))) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
260 (when purify-flag |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
261 (setq preloaded-file-list (cons file preloaded-file-list))) |
17052 | 262 (unwind-protect |
20161
0d9c6ccdc45c
(load-with-code-conversion): Update
Kenichi Handa <handa@m17n.org>
parents:
20112
diff
changeset
|
263 (let ((load-file-name fullname) |
22699
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
264 (set-auto-coding-for-load t) |
20161
0d9c6ccdc45c
(load-with-code-conversion): Update
Kenichi Handa <handa@m17n.org>
parents:
20112
diff
changeset
|
265 (inhibit-file-name-operation nil)) |
17052 | 266 (save-excursion |
267 (set-buffer buffer) | |
268 (insert-file-contents fullname) | |
23860
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
269 ;; If the loaded file was inserted with no-conversion or |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
270 ;; raw-text coding system, make the buffer unibyte. |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
271 ;; Otherwise, eval-buffer might try to interpret random |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
272 ;; binary junk as multibyte characters. |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
273 (if (and enable-multibyte-characters |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
274 (or (eq (coding-system-type last-coding-system-used) 5) |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
275 (eq last-coding-system-used 'no-conversion))) |
2ce75856e89f
(load-with-code-conversion): If the loaded
Eli Zaretskii <eliz@gnu.org>
parents:
23770
diff
changeset
|
276 (set-buffer-multibyte nil)) |
17052 | 277 ;; Make `kill-buffer' quiet. |
278 (set-buffer-modified-p nil)) | |
20405
faf18d58a01b
(load-with-code-conversion): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20168
diff
changeset
|
279 ;; Have the original buffer current while we eval. |
21675
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
280 (eval-buffer buffer nil file |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
281 ;; If this Emacs is running with --unibyte, |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
282 ;; convert multibyte strings to unibyte |
f000ba659241
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
21660
diff
changeset
|
283 ;; after reading them. |
21728
ea71ddaad673
(load-with-code-conversion): Don't pass extra arg to eval-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
21675
diff
changeset
|
284 ;; (not default-enable-multibyte-characters) |
25198
aaa595530183
(load-with-code-conversion): Pass t to eval-buffer for DO-ALLOW-PRINT.
Richard M. Stallman <rms@gnu.org>
parents:
25144
diff
changeset
|
285 nil t |
21728
ea71ddaad673
(load-with-code-conversion): Don't pass extra arg to eval-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
21675
diff
changeset
|
286 )) |
18583
66e7a91e32ef
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
18558
diff
changeset
|
287 (let (kill-buffer-hook kill-buffer-query-functions) |
66e7a91e32ef
(load-with-code-conversion):
Richard M. Stallman <rms@gnu.org>
parents:
18558
diff
changeset
|
288 (kill-buffer buffer))) |
17052 | 289 (let ((hook (assoc file after-load-alist))) |
20168
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
290 (when hook |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
291 (mapcar (function eval) (cdr hook)))) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
292 (unless (or nomessage noninteractive) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
293 (if source |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
294 (message "Loading %s (source)...done" file) |
13074c25ab06
Indicate in messages if source code is being loaded.
Simon Marshall <simon@gnu.org>
parents:
20161
diff
changeset
|
295 (message "Loading %s...done" file))) |
17052 | 296 t))) |
297 | |
298 ;; API (Application Program Interface) for charsets. | |
299 | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
300 ;;; Charset property |
17052 | 301 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
302 (defun get-charset-property (charset propname) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
303 "Return the value of CHARSET's PROPNAME property. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
304 This is the last value stored with |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
305 (put-charset-property CHARSET PROPNAME VALUE)." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
306 (plist-get (charset-plist charset) propname)) |
17052 | 307 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
308 (defun put-charset-property (charset propname value) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
309 "Store CHARSETS's PROPNAME property with value VALUE. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
310 It can be retrieved with `(get-charset-property CHARSET PROPNAME)'." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
311 (set-charset-plist charset |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
312 (plist-put (charset-plist charset) propname value))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
313 |
26085
2473e4ca59b3
* international/mule-cmds.el (global-map):
Paul Eggert <eggert@twinsun.com>
parents:
25198
diff
changeset
|
314 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
315 (defun charset-description (charset) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
316 "Return description string of CHARSET." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
317 (plist-get (charset-plist charset) :docstring)) |
17052 | 318 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
319 (defun charset-dimension (charset) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
320 "Return dimension string of CHARSET." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
321 (plist-get (charset-plist charset) :dimension)) |
17052 | 322 |
88700
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
323 (defun charset-chars (charset &optional dimension) |
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
324 "Return character numbers contained in DIMENSION of CHARSET. |
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
325 DIMENSION defaults to the first dimension." |
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
326 (unless dimension (setq dimension 1)) |
88450
4f93848ba5a8
(charset-chars): Fix typo.
Kenichi Handa <handa@m17n.org>
parents:
88436
diff
changeset
|
327 (let ((code-space (plist-get (charset-plist charset) :code-space))) |
88700
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
328 (1+ (- (aref code-space (1- (* 2 dimension))) |
c712966df91c
(charset-chars): Add optional dimension arg.
Dave Love <fx@gnu.org>
parents:
88698
diff
changeset
|
329 (aref code-space (- (* 2 dimension) 2)))))) |
17052 | 330 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
331 (defun charset-iso-final-char (charset) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
332 "Return final char of CHARSET." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
333 (or (plist-get (charset-plist charset) :iso-final-char) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
334 -1)) |
17052 | 335 |
336 (defmacro charset-short-name (charset) | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
337 "Return short name of CHARSET." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
338 (plist-get (charset-plist charset) :short-name)) |
17052 | 339 |
340 (defmacro charset-long-name (charset) | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
341 "Return long name of CHARSET." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
342 (plist-get (charset-plist charset) :long-name)) |
17052 | 343 |
19985
930e7515c033
(charset-list): Change it to function.
Kenichi Handa <handa@m17n.org>
parents:
19948
diff
changeset
|
344 (defun charset-list () |
18558
09cc19f19722
(charset-bytes, charset-dimension,
Kenichi Handa <handa@m17n.org>
parents:
18518
diff
changeset
|
345 "Return list of charsets ever defined. |
09cc19f19722
(charset-bytes, charset-dimension,
Kenichi Handa <handa@m17n.org>
parents:
18518
diff
changeset
|
346 |
19985
930e7515c033
(charset-list): Change it to function.
Kenichi Handa <handa@m17n.org>
parents:
19948
diff
changeset
|
347 This function is provided for backward compatibility. |
18558
09cc19f19722
(charset-bytes, charset-dimension,
Kenichi Handa <handa@m17n.org>
parents:
18518
diff
changeset
|
348 Now we have the variable `charset-list'." |
19985
930e7515c033
(charset-list): Change it to function.
Kenichi Handa <handa@m17n.org>
parents:
19948
diff
changeset
|
349 charset-list) |
88551 | 350 (make-obsolete 'charset-list "Use variable `charset-list'" "22.1") |
19985
930e7515c033
(charset-list): Change it to function.
Kenichi Handa <handa@m17n.org>
parents:
19948
diff
changeset
|
351 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
352 (defun generic-char-p (char) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
353 "Always return nil. This exists only for backward compatibility." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
354 nil) |
88551 | 355 (make-obsolete 'generic-char-p "Generic characters no longer exist" "22.1") |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
356 |
34297
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
357 ;; Coding system stuff |
17052 | 358 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
359 ;; Coding system is a symbol that has been defined by the function |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
360 ;; `define-coding-system'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
361 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
362 (defconst coding-system-iso-2022-flags |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
363 '(long-form |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
364 ascii-at-eol |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
365 ascii-at-cntl |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
366 7-bit |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
367 locking-shift |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
368 single-shift |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
369 designation |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
370 revision |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
371 direction |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
372 init-at-bol |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
373 designate-at-bol |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
374 safe |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
375 latin-extra |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
376 composition |
88685
f1ce7c70c868
(coding-system-iso-2022-flags): Add use-roman, use-oldjis.
Kenichi Handa <handa@m17n.org>
parents:
88680
diff
changeset
|
377 euc-tw-shift |
f1ce7c70c868
(coding-system-iso-2022-flags): Add use-roman, use-oldjis.
Kenichi Handa <handa@m17n.org>
parents:
88680
diff
changeset
|
378 use-roman |
f1ce7c70c868
(coding-system-iso-2022-flags): Add use-roman, use-oldjis.
Kenichi Handa <handa@m17n.org>
parents:
88680
diff
changeset
|
379 use-oldjis) |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
380 "List of symbols that control ISO-2022 encoder/decoder. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
381 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
382 The value of `:flags' attribute in the argument of the function |
88643
db559e54c9e0
(coding-system-iso-2022-flags): Revert
Dave Love <fx@gnu.org>
parents:
88636
diff
changeset
|
383 `define-coding-system' must be one of them. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
384 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
385 If `long-form' is specified, use a long designation sequence on |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
386 encoding for the charsets `japanese-jisx0208-1978', `chinese-gb2312', |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
387 and `japanese-jisx0208'. The long designation sequence doesn't |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
388 conform to ISO 2022, but used by such a coding system as |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
389 `compound-text'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
390 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
391 If `ascii-at-eol' is specified, designate ASCII to g0 at end of line |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
392 on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
393 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
394 If `ascii-at-cntl' is specified, designate ASCII to g0 before control |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
395 codes and SPC on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
396 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
397 If `7-bit' is specified, use 7-bit code only on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
398 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
399 If `locking-shift' is specified, decode locking-shift code correctly |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
400 on decoding, and use locking-shift to invoke a graphic element on |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
401 encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
402 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
403 If `single-shift' is specified, decode single-shift code correctly on |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
404 decoding, and use single-shift to invoke a graphic element on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
405 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
406 If `designation' is specified, decode designation code correctly on |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
407 decoding, and use designation to designate a charset to a graphic |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
408 element on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
409 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
410 If `revision' is specified, produce an escape sequence to specify |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
411 revision number of a charset on encoding. Such an escape sequence is |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
412 always correctly decoded on decoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
413 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
414 If `direction' is specified, decode ISO6429's code for specifying |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
415 direction correctly, and produced the code on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
416 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
417 If `init-at-bol' is specified, on encoding, it is assumed that |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
418 invocation and designation statuses are reset at each beginning of |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
419 line even if `ascii-at-eol' is not specified thus no code for |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
420 resetting them are produced. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
421 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
422 If `safe' is specified, on encoding, characters not supported by a |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
423 coding are replaced with `?'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
424 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
425 If `latin-extra' is specified, code-detection routine assumes that a |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
426 code specified in `latin-extra-code-table' (which see) is valid. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
427 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
428 If `composition' is specified, an escape sequence to specify |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
429 composition sequence is correctly decode on decoding, and is produced |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
430 on encoding. |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
431 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
432 If `euc-tw-shift' is specified, the EUC-TW specific shifting code is |
88643
db559e54c9e0
(coding-system-iso-2022-flags): Revert
Dave Love <fx@gnu.org>
parents:
88636
diff
changeset
|
433 correctly decoded on decoding, and is produced on encoding.") |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
434 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
435 (defun define-coding-system (name docstring &rest props) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
436 "Define NAME (symbol) as a coding system with DOCSTRING and attributes. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
437 The remaining arguments must come in pairs ATTRIBUTE VALUE. ATTRIBUTE |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
438 may be any symbol. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
439 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
440 The following attributes have special meanings. If labeled as |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
441 \"(required)\", it should not be omitted. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
442 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
443 `:mnemonic' (required) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
444 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
445 VALUE is a character to display on mode line for the coding system. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
446 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
447 `:coding-type' (required) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
448 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
449 VALUE must be one of `charset', `utf-8', `utf-16', `iso-2022', |
88495
5082b2d8d5eb
(define-coding-system): Docstring fixed (sjis->shift-jis).
Kenichi Handa <handa@m17n.org>
parents:
88450
diff
changeset
|
450 `emacs-mule', `shift-jis', `big5', `ccl', `raw-text', `undecided'. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
451 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
452 `:eol-type' (optional) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
453 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
454 VALUE is an EOL (end-of-line) format of the coding system. It must be |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
455 one of `unix', `dos', `mac'. The symbol `unix' means Unix-like EOL |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
456 \(i.e. single LF), `dos' means DOS-like EOL \(i.e. sequence of CR LF), |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
457 and `mac' means MAC-like EOL \(i.e. single CR). If omitted, on |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
458 decoding by the coding system, Emacs automatically detects an EOL |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
459 format of the source text. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
460 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
461 `:charset-list' (required) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
462 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
463 VALUE must be a list of charsets supported by the coding system. On |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
464 encoding by the coding system, if a character belongs to multiple |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
465 charsets in the list, a charset that comes earlier in the list is |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
466 selected. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
467 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
468 `:ascii-compatible-p' (optional) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
469 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
470 If VALUE is non-nil, the coding system decodes all 7-bit bytes into |
88551 | 471 the corresponding ASCII characters, and encodes all ASCII characters |
472 back to the corresponding 7-bit bytes. If omitted, the VALUE defaults | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
473 to nil. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
474 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
475 `:decode-translation-table' (optional) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
476 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
477 VALUE must be a translation table to use on decoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
478 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
479 `:encode-translation-table' (optional) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
480 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
481 VALUE must be a translation table to use on encoding. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
482 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
483 `:post-read-conversion' (optional) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
484 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
485 VALUE must be a function to call after some text is inserted and |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
486 decoded by the coding system itself and before any functions in |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
487 `after-insert-functions' are called. The arguments to this function |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
488 is the same as those of a function in `after-insert-functions', |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
489 i.e. LENGTH of a text while putting point at the head of the text to |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
490 be decoded |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
491 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
492 `:pre-write-conversion' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
493 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
494 VALUE must be a function to call after all functions in |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
495 `write-region-annotate-functions' and `buffer-file-format' are called, |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
496 and before the text is encoded by the coding system itself. The |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
497 arguments to this function is the same as those of a function in |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
498 `write-region-annotate-functions', i.e. FROM and TO specifying region |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
499 of a text. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
500 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
501 `:default-char' |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
502 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
503 VALUE must be a character. On encoding, a character not supported by |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
504 the coding system is replaced with VALUE. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
505 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
506 `:eol-type' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
507 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
508 VALUE must be `unix', `dos', `mac'. The symbol `unix' means Unix-like |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
509 EOL (LF), `dos' means DOS-like EOL (CRLF), and `mac' means MAC-like |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
510 EOL (CR). If omitted, on decoding, the coding system detect EOL |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
511 format automatically, and on encoding, used Unix-like EOL. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
512 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
513 `:mime-charset' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
514 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
515 VALUE must be a symbol who has MIME-charset name. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
516 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
517 `:flags' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
518 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
519 VALUE must be a list of symbols that control ISO-2022 converter. Each |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
520 symbol must be a member of the variable `coding-system-iso-2022-flags' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
521 \(which see). This attribute has a meaning only when `:coding-type' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
522 is `iso-2022'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
523 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
524 `:designation' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
525 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
526 VALUE must be a vector [ G0-USAGE G1-USAGE G2-USAGE G3-USAGE]. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
527 GN-USAGE specifies the usage of graphic register GN as follows. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
528 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
529 If it is nil, no charset can be designated to GN. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
530 |
88551 | 531 If it is a charset, the charset is initially designated to GN, and |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
532 never used by the other charsets. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
533 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
534 If it is a list, the elements must be charsets, nil, 94, or 96. GN |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
535 can be used by all listed charsets. If the list contains 94, any |
88551 | 536 charsets whose iso-chars is 94 can be designated to GN. If the list |
537 contains 96, any charsets whose iso-chars is 96 can be designated to | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
538 GN. If the first element is a charset, the charset is initially |
88551 | 539 designated to GN. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
540 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
541 This attribute has a meaning only when `:coding-type' is `iso-2022'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
542 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
543 `:bom' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
544 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
545 VALUE must nil, t, or cons of coding systems whose `:coding-type' is |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
546 `utf-16'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
547 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
548 This attribute has a meaning only when `:coding-type' is `utf-16'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
549 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
550 `:endian' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
551 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
552 VALUE must be t or nil. See the above description for the detail. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
553 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
554 This attribute has a meaning only when `:coding-type' is `utf-16'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
555 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
556 `:ccl-decoder' |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
557 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
558 This attribute has a meaning only when `:coding-type' is `ccl'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
559 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
560 `:ccl-encoder' |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
561 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
562 This attribute has a meaning only when `:coding-type' is `ccl'." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
563 (let* ((common-attrs (mapcar 'list |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
564 '(:mnemonic |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
565 :coding-type |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
566 :charset-list |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
567 :ascii-compatible-p |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
568 :docode-translation-table |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
569 :encode-translation-table |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
570 :post-read-conversion |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
571 :pre-write-conversion |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
572 :default-char |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
573 :plist |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
574 :eol-type))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
575 (coding-type (plist-get props :coding-type)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
576 (spec-attrs (mapcar 'list |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
577 (cond ((eq coding-type 'iso-2022) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
578 '(:initial |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
579 :reg-usage |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
580 :request |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
581 :flags)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
582 ((eq coding-type 'utf-16) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
583 '(:bom |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
584 :endian)) |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
585 ;; Fixme: CCL definition is broken. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
586 ((eq coding-type 'ccl) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
587 '(:ccl-decoder |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
588 :ccl-encoder |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
589 :valids)))))) |
17052 | 590 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
591 (dolist (slot common-attrs) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
592 (setcdr slot (plist-get props (car slot)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
593 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
594 (dolist (slot spec-attrs) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
595 (setcdr slot (plist-get props (car slot)))) |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
596 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
597 (if (eq coding-type 'iso-2022) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
598 (let ((designation (plist-get props :designation)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
599 (flags (plist-get props :flags)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
600 (initial (make-vector 4 nil)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
601 (reg-usage (cons 4 4)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
602 request elt) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
603 (dotimes (i 4) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
604 (setq elt (aref designation i)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
605 (cond ((charsetp elt) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
606 (aset initial i elt) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
607 (setq request (cons (cons elt i) request))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
608 ((consp elt) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
609 (aset initial i (car elt)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
610 (if (charsetp (car elt)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
611 (setq request (cons (cons (car elt) i) request))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
612 (dolist (e (cdr elt)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
613 (cond ((charsetp e) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
614 (setq request (cons (cons e i) request))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
615 ((eq e 94) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
616 (setcar reg-usage i)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
617 ((eq e 96) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
618 (setcdr reg-usage i)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
619 ((eq e t) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
620 (setcar reg-usage i) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
621 (setcdr reg-usage i))))))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
622 (setcdr (assq :initial spec-attrs) initial) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
623 (setcdr (assq :reg-usage spec-attrs) reg-usage) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
624 (setcdr (assq :request spec-attrs) request) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
625 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
626 ;; Change :flags value from a list to a bit-mask. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
627 (let ((bits 0) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
628 (i 0)) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
629 (dolist (elt coding-system-iso-2022-flags) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
630 (if (memq elt flags) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
631 (setq bits (logior bits (lsh 1 i)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
632 (setq i (1+ i))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
633 (setcdr (assq :flags spec-attrs) bits)))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
634 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
635 ;; Add :name and :docstring properties to PROPS. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
636 (setq props |
88562 | 637 (cons :name (cons name (cons :docstring (cons (purecopy docstring) |
638 props))))) | |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
639 (setcdr (assq :plist common-attrs) props) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
640 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
641 (apply 'define-coding-system-internal |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
642 name (mapcar 'cdr (append common-attrs spec-attrs))))) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
643 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
644 (defun coding-system-doc-string (coding-system) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
645 "Return the documentation string for CODING-SYSTEM." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
646 (plist-get (coding-system-plist coding-system) :docstring)) |
17052 | 647 |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
648 (defun coding-system-mnemonic (coding-system) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
649 "Return the mnemonic character of CODING-SYSTEM. |
22302
fb2d8c0920c6
(coding-system-mnemonic): Don't crash if arg is nil.
Karl Heuer <kwzh@gnu.org>
parents:
22227
diff
changeset
|
650 The mnemonic character of a coding system is used in mode line |
fb2d8c0920c6
(coding-system-mnemonic): Don't crash if arg is nil.
Karl Heuer <kwzh@gnu.org>
parents:
22227
diff
changeset
|
651 to indicate the coding system. If the arg is nil, return ?-." |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
652 (plist-get (coding-system-plist coding-system) :mnemonic)) |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
653 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
654 (defun coding-system-type (coding-system) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
655 "Return the coding type of CODING-SYSTEM. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
656 A coding type is a symbol indicating the encoding method of CODING-SYSTEM. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
657 See the function `define-coding-system' for more detail." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
658 (plist-get (coding-system-plist coding-system) :coding-type)) |
19985
930e7515c033
(charset-list): Change it to function.
Kenichi Handa <handa@m17n.org>
parents:
19948
diff
changeset
|
659 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
660 (defun coding-system-charset-list (coding-system) |
88551 | 661 "Return list of charsets supported by CODING-SYSTEM. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
662 If CODING-SYSTEM supports all ISO-2022 charsets, return `iso-2022'. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
663 If CODING-SYSTEM supports all emacs-mule charsets, return `emacs-mule'." |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
664 (plist-get (coding-system-plist coding-system) :charset-list)) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
665 |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
666 (defun coding-system-get (coding-system prop) |
88551 | 667 "Extract a value from CODING-SYSTEM's property list for property PROP. |
668 For compatibility with Emacs 20/21, this accepts old-style symbols | |
669 like `mime-charset' as well as the current style like `:mime-charset'." | |
670 (or (plist-get (coding-system-plist coding-system) prop) | |
671 (if (not (keywordp prop)) | |
672 (plist-get (coding-system-plist coding-system) | |
673 (intern (concat ":" (symbol-name prop))))))) | |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
674 |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
675 (defun coding-system-put (coding-system prop val) |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
676 "Change value in CODING-SYSTEM's property list PROP to VAL." |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
677 (plist-put (coding-system-plist coding-system) prop val)) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
678 |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
679 (defalias 'coding-system-parent 'coding-system-base) |
29354
4ed4a700358b
Update calls to make-obsolete with a WHEN argument.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28457
diff
changeset
|
680 (make-obsolete 'coding-system-parent 'coding-system-base "20.3") |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
681 |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
682 ;; Coding system also has a property `eol-type'. |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
683 ;; |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
684 ;; This property indicates how the coding system handles end-of-line |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
685 ;; format. The value is integer 0, 1, 2, or a vector of three coding |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
686 ;; systems. Each integer value 0, 1, and 2 indicates the format of |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
687 ;; end-of-line LF, CRLF, and CR respectively. A vector value |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
688 ;; indicates that the format of end-of-line should be detected |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
689 ;; automatically. Nth element of the vector is the subsidiary coding |
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
690 ;; system whose `eol-type' property is N. |
17052 | 691 |
24276
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
692 (defun coding-system-lessp (x y) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
693 (cond ((eq x 'no-conversion) t) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
694 ((eq y 'no-conversion) nil) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
695 ((eq x 'emacs-mule) t) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
696 ((eq y 'emacs-mule) nil) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
697 ((eq x 'undecided) t) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
698 ((eq y 'undecided) nil) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
699 (t (let ((c1 (coding-system-mnemonic x)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
700 (c2 (coding-system-mnemonic y))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
701 (or (< (downcase c1) (downcase c2)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
702 (and (not (> (downcase c1) (downcase c2))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
703 (< c1 c2))))))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
704 |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
705 (defun add-to-coding-system-list (coding-system) |
36037 | 706 "Add CODING-SYSTEM to `coding-system-list' while keeping it sorted." |
24276
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
707 (if (or (null coding-system-list) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
708 (coding-system-lessp coding-system (car coding-system-list))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
709 (setq coding-system-list (cons coding-system coding-system-list)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
710 (let ((len (length coding-system-list)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
711 mid (tem coding-system-list)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
712 (while (> len 1) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
713 (setq mid (nthcdr (/ len 2) tem)) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
714 (if (coding-system-lessp (car mid) coding-system) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
715 (setq tem mid |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
716 len (- len (/ len 2))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
717 (setq len (/ len 2)))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
718 (setcdr tem (cons coding-system (cdr tem)))))) |
ec0195eb2657
(coding-system-lessp): Moved here from
Andreas Schwab <schwab@suse.de>
parents:
24026
diff
changeset
|
719 |
24345
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
720 (defun coding-system-list (&optional base-only) |
30491
7b4fadfac0c8
(register-char-codings): New function.
Kenichi Handa <handa@m17n.org>
parents:
29722
diff
changeset
|
721 "Return a list of all existing non-subsidiary coding systems. |
7b4fadfac0c8
(register-char-codings): New function.
Kenichi Handa <handa@m17n.org>
parents:
29722
diff
changeset
|
722 If optional arg BASE-ONLY is non-nil, only base coding systems are listed. |
7b4fadfac0c8
(register-char-codings): New function.
Kenichi Handa <handa@m17n.org>
parents:
29722
diff
changeset
|
723 The value doesn't include subsidiary coding systems which are what |
7b4fadfac0c8
(register-char-codings): New function.
Kenichi Handa <handa@m17n.org>
parents:
29722
diff
changeset
|
724 made from bases and aliases automatically for various end-of-line |
7b4fadfac0c8
(register-char-codings): New function.
Kenichi Handa <handa@m17n.org>
parents:
29722
diff
changeset
|
725 formats (e.g. iso-latin-1-unix, koi8-r-dos)." |
24345
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
726 (let* ((codings (copy-sequence coding-system-list)) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
727 (tail (cons nil codings))) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
728 ;; Remove subsidiary coding systems (eol variants) and alias |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
729 ;; coding systems (if necessary). |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
730 (while (cdr tail) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
731 (let* ((coding (car (cdr tail))) |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
732 (aliases (coding-system-aliases coding))) |
24345
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
733 (if (or |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
734 ;; CODING is an eol variant if not in ALIASES. |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
735 (not (memq coding aliases)) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
736 ;; CODING is an alias if it is not car of ALIASES. |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
737 (and base-only (not (eq coding (car aliases))))) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
738 (setcdr tail (cdr (cdr tail))) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
739 (setq tail (cdr tail))))) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
740 codings)) |
26fcfef41d24
(coding-system-list): Moved here from
Kenichi Handa <handa@m17n.org>
parents:
24299
diff
changeset
|
741 |
17052 | 742 (defun set-buffer-file-coding-system (coding-system &optional force) |
19162 | 743 "Set the file coding-system of the current buffer to CODING-SYSTEM. |
744 This means that when you save the buffer, it will be converted | |
745 according to CODING-SYSTEM. For a list of possible values of CODING-SYSTEM, | |
746 use \\[list-coding-systems]. | |
747 | |
748 If the buffer's previous file coding-system value specifies end-of-line | |
749 conversion, and CODING-SYSTEM does not specify one, CODING-SYSTEM is | |
750 merged with the already-specified end-of-line conversion. | |
29544
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
751 |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
752 If the buffer's previous file coding-system value specifies text |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
753 conversion, and CODING-SYSTEM does not specify one, CODING-SYSTEM is |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
754 merged with the already-specified text conversion. |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
755 |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
756 However, if the optional prefix argument FORCE is non-nil, then |
6f22d585904b
(set-buffer-file-coding-system): If one of undecided-XXX is specified,
Kenichi Handa <handa@m17n.org>
parents:
29504
diff
changeset
|
757 CODING-SYSTEM is used exactly as specified. |
26716 | 758 |
759 This marks the buffer modified so that the succeeding \\[save-buffer] | |
760 surely saves the buffer with CODING-SYSTEM. From a program, if you | |
761 don't want to mark the buffer modified, just set the variable | |
762 `buffer-file-coding-system' directly." | |
20729
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
763 (interactive "zCoding system for visited file (default, nil): \nP") |
17052 | 764 (check-coding-system coding-system) |
29575
ab979e3b519a
(set-buffer-file-coding-system): If CODING-SYSTEM is nil, set
Kenichi Handa <handa@m17n.org>
parents:
29544
diff
changeset
|
765 (if (and coding-system buffer-file-coding-system (null force)) |
29659
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
766 (let ((base (coding-system-base buffer-file-coding-system)) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
767 (eol (coding-system-eol-type buffer-file-coding-system))) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
768 ;; If CODING-SYSTEM doesn't specify text conversion, merge |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
769 ;; with that of buffer-file-coding-system. |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
770 (if (eq (coding-system-base coding-system) 'undecided) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
771 (setq coding-system (coding-system-change-text-conversion |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
772 coding-system base))) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
773 ;; If CODING-SYSTEM doesn't specify eol conversion, merge with |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
774 ;; that of buffer-file-coding-system. |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
775 (if (and (vectorp (coding-system-eol-type coding-system)) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
776 (numberp eol) (>= eol 0) (<= eol 2)) |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
777 (setq coding-system (coding-system-change-eol-conversion |
4f79b4ed9ebc
(set-buffer-file-coding-system): Almost rewritten to handle
Kenichi Handa <handa@m17n.org>
parents:
29641
diff
changeset
|
778 coding-system eol))))) |
17052 | 779 (setq buffer-file-coding-system coding-system) |
780 (set-buffer-modified-p t) | |
781 (force-mode-line-update)) | |
782 | |
19162 | 783 (defvar default-terminal-coding-system nil |
784 "Default value for the terminal coding system. | |
785 This is normally set according to the selected language environment. | |
786 See also the command `set-terminal-coding-system'.") | |
787 | |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
788 (defun set-terminal-coding-system (coding-system) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
789 "Set coding system of your terminal to CODING-SYSTEM. |
19162 | 790 All text output to the terminal will be encoded |
791 with the specified coding system. | |
792 For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]. | |
793 The default is determined by the selected language environment | |
794 or by the previous use of this command." | |
795 (interactive | |
19760
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
796 (list (let ((default (if (and (not (terminal-coding-system)) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
797 default-terminal-coding-system) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
798 default-terminal-coding-system))) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
799 (read-coding-system |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
800 (format "Coding system for terminal display (default, %s): " |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
801 default) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
802 default)))) |
19162 | 803 (if (and (not coding-system) |
804 (not (terminal-coding-system))) | |
805 (setq coding-system default-terminal-coding-system)) | |
806 (if coding-system | |
36037 | 807 (setq default-terminal-coding-system coding-system)) |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
808 (set-terminal-coding-system-internal coding-system) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
809 (redraw-frame (selected-frame))) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
810 |
19162 | 811 (defvar default-keyboard-coding-system nil |
812 "Default value of the keyboard coding system. | |
813 This is normally set according to the selected language environment. | |
814 See also the command `set-keyboard-coding-system'.") | |
815 | |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
816 (defun set-keyboard-coding-system (coding-system) |
19162 | 817 "Set coding system for keyboard input to CODING-SYSTEM. |
818 In addition, this command enables Encoded-kbd minor mode. | |
34688
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
819 \(If CODING-SYSTEM is nil, Encoded-kbd mode is turned off -- see |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
820 `encoded-kbd-mode'.) |
19162 | 821 For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]. |
822 The default is determined by the selected language environment | |
823 or by the previous use of this command." | |
824 (interactive | |
19760
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
825 (list (let ((default (if (and (not (keyboard-coding-system)) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
826 default-keyboard-coding-system) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
827 default-keyboard-coding-system))) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
828 (read-coding-system |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
829 (format "Coding system for keyboard input (default, %s): " |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
830 default) |
ad4989a73bf0
(charset-quoted-standard-p): New function.
Richard M. Stallman <rms@gnu.org>
parents:
19749
diff
changeset
|
831 default)))) |
19162 | 832 (if (and (not coding-system) |
833 (not (keyboard-coding-system))) | |
834 (setq coding-system default-keyboard-coding-system)) | |
835 (if coding-system | |
836 (setq default-keyboard-coding-system coding-system)) | |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
837 (set-keyboard-coding-system-internal coding-system) |
38614
2be878396f1e
(set-keyboard-coding-system): Set
Gerd Moellmann <gerd@gnu.org>
parents:
38414
diff
changeset
|
838 (setq keyboard-coding-system coding-system) |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
839 (encoded-kbd-mode (if coding-system 1 0))) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
840 |
34688
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
841 (defcustom keyboard-coding-system nil |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
842 "Specify coding system for keyboard input. |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
843 If you set this on a terminal which can't distinguish Meta keys from |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
844 8-bit characters, you will have to use ESC to type Meta characters. |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
845 See Info node `Specify Coding' and Info node `Single-Byte Character Support'. |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
846 |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
847 Setting this variable directly does not take effect; |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
848 use either M-x customize or \\[set-keyboard-coding-system]." |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
849 :type '(coding-system :tag "Coding system") |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
850 :link '(info-link "(emacs)Specify Coding") |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
851 :link '(info-link "(emacs)Single-Byte Character Support") |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
852 :set (lambda (symbol value) |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
853 ;; Don't load encoded-kbd-mode unnecessarily. |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
854 (if (or value (boundp 'encoded-kbd-mode)) |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
855 (set-keyboard-coding-system value) |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
856 (set-default 'keyboard-coding-system nil))) ; must initialize |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
857 :version "21.1" |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
858 :group 'keyboard |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
859 :group 'mule) |
8f397d03b992
(set-keyboard-coding-system): Doc fix.
Dave Love <fx@gnu.org>
parents:
34297
diff
changeset
|
860 |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
861 (defun set-buffer-process-coding-system (decoding encoding) |
19162 | 862 "Set coding systems for the process associated with the current buffer. |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
863 DECODING is the coding system to be used to decode input from the process, |
19162 | 864 ENCODING is the coding system to be used to encode output to the process. |
865 | |
866 For a list of possible values of CODING-SYSTEM, use \\[list-coding-systems]." | |
17052 | 867 (interactive |
30965
d3223b7bcd96
(set-buffer-process-coding-system): Make interactive prompt less confusing.
Miles Bader <miles@gnu.org>
parents:
30877
diff
changeset
|
868 "zCoding-system for output from the process: \nzCoding-system for input to the process: ") |
17052 | 869 (let ((proc (get-buffer-process (current-buffer)))) |
870 (if (null proc) | |
36037 | 871 (error "No process") |
17984
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
872 (check-coding-system decoding) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
873 (check-coding-system encoding) |
4882d58acf01
(set-terminal-coding-system): New function.
Kenichi Handa <handa@m17n.org>
parents:
17837
diff
changeset
|
874 (set-process-coding-system proc decoding encoding))) |
17052 | 875 (force-mode-line-update)) |
876 | |
22836
f3603840ddbc
(set-clipboard-coding-system): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents:
22832
diff
changeset
|
877 (defalias 'set-clipboard-coding-system 'set-selection-coding-system) |
f3603840ddbc
(set-clipboard-coding-system): Define as alias.
Richard M. Stallman <rms@gnu.org>
parents:
22832
diff
changeset
|
878 |
22741
763e88fd4ca2
(set-selection-coding-system): Renamed from set-clipboard-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22700
diff
changeset
|
879 (defun set-selection-coding-system (coding-system) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
880 "Make CODING-SYSTEM used for communicating with other X clients . |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
881 When sending or receiving text via cut_buffer, selection, and clipboard, |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
882 the text is encoded or decoded by CODING-SYSTEM." |
23030
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
883 (interactive "zCoding system for X selection: ") |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
884 (check-coding-system coding-system) |
22741
763e88fd4ca2
(set-selection-coding-system): Renamed from set-clipboard-coding-system.
Richard M. Stallman <rms@gnu.org>
parents:
22700
diff
changeset
|
885 (setq selection-coding-system coding-system)) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
886 |
23196 | 887 ;; Coding system lastly specified by the command |
23030
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
888 ;; set-next-selection-coding-system. |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
889 (defvar last-next-selection-coding-system nil) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
890 |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
891 (defun set-next-selection-coding-system (coding-system) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
892 "Make CODING-SYSTEM used for the next communication with other X clients. |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
893 This setting is effective for the next communication only." |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
894 (interactive |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
895 (list (read-coding-system |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
896 (if last-next-selection-coding-system |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
897 (format "Coding system for the next X selection (default, %S): " |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
898 last-next-selection-coding-system) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
899 "Coding system for the next X selection: ") |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
900 last-next-selection-coding-system))) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
901 (if coding-system |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
902 (setq last-next-selection-coding-system coding-system) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
903 (setq coding-system last-next-selection-coding-system)) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
904 (check-coding-system coding-system) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
905 |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
906 (setq next-selection-coding-system coding-system)) |
d2ceee5cd572
(set-selection-coding-system): Make it
Kenichi Handa <handa@m17n.org>
parents:
22903
diff
changeset
|
907 |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
908 ;; Fixme: |
17052 | 909 (defun set-coding-priority (arg) |
36037 | 910 "Set priority of coding categories according to ARG. |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
911 ARG is a list of coding categories ordered by priority. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
912 |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
913 This function is provided for backward compatibility. |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
914 Now we have more convenient function `set-coding-system-priority'." |
20729
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
915 (let ((l arg) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
916 (current-list (copy-sequence coding-category-list))) |
23196 | 917 ;; Check the validity of ARG while deleting coding categories in |
20729
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
918 ;; ARG from CURRENT-LIST. We assume that CODING-CATEGORY-LIST |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
919 ;; contains all coding categories. |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
920 (while l |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
921 (if (or (null (get (car l) 'coding-category-index)) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
922 (null (memq (car l) current-list))) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
923 (error "Invalid or duplicated element in argument: %s" arg)) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
924 (setq current-list (delq (car l) current-list)) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
925 (setq l (cdr l))) |
17052 | 926 ;; Update `coding-category-list' and return it. |
22227
e7ac7f644152
(set-coding-priority): Call
Kenichi Handa <handa@m17n.org>
parents:
22225
diff
changeset
|
927 (setq coding-category-list (append arg current-list)) |
88551 | 928 ;; Fixme: not defined. |
22227
e7ac7f644152
(set-coding-priority): Call
Kenichi Handa <handa@m17n.org>
parents:
22225
diff
changeset
|
929 (set-coding-priority-internal))) |
88551 | 930 (make-obsolete 'set-coding-priority 'set-coding-system-priority "22.1") |
17052 | 931 |
43457
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
932 ;;; X selections |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
933 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
934 (defvar non-standard-icccm-encodings-alist |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
935 '(("ISO8859-15" . latin-iso8859-15) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
936 ("ISO8859-14" . latin-iso8859-14) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
937 ("KOI8-R" . koi8-r) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
938 ("BIG5-0" . big5)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
939 "Alist of font charset names defined by XLFD, and the corresponding Emacs |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
940 charsets or coding systems.") |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
941 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
942 ;; Functions to support "Non-Standard Character Set Encodings" defined |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
943 ;; by the ICCCM spec. We support that by converting the leading |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
944 ;; sequence of the ``extended segment'' to the corresponding ISO-2022 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
945 ;; sequences (if the leading sequence names an Emacs charset), or decode |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
946 ;; the segment (if it names a coding system). Encoding does the reverse. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
947 (defun ctext-post-read-conversion (len) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
948 "Decode LEN characters encoded as Compound Text with Extended Segments." |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
949 (buffer-disable-undo) ; minimize consing due to insertions and deletions |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
950 (narrow-to-region (point) (+ (point) len)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
951 (save-match-data |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
952 (let ((pt (point-marker)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
953 (oldpt (point-marker)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
954 (newpt (make-marker)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
955 (modified-p (buffer-modified-p)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
956 (case-fold-search nil) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
957 last-coding-system-used |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
958 encoding textlen chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
959 (while (re-search-forward |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
960 "\\(\e\\)%/[0-4]\\([\200-\377][\200-\377]\\)\\([^\002]+\\)\002" |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
961 nil 'move) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
962 (set-marker newpt (point)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
963 (set-marker pt (match-beginning 0)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
964 (setq encoding (match-string 3)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
965 (setq textlen (- (+ (* (- (aref (match-string 2) 0) 128) 128) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
966 (- (aref (match-string 2) 1) 128)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
967 (1+ (length encoding)))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
968 (setq |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
969 chset (cdr (assoc-ignore-case encoding |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
970 non-standard-icccm-encodings-alist))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
971 (cond ((null chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
972 ;; This charset is not supported--leave this extended |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
973 ;; segment unaltered and skip over it. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
974 (goto-char (+ (point) textlen))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
975 ((charsetp chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
976 ;; If it's a charset, replace the leading escape sequence |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
977 ;; with a standard ISO-2022 sequence. We will decode all |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
978 ;; such segments later, in one go, when we exit the loop |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
979 ;; or find an extended segment that names a coding |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
980 ;; system, not a charset. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
981 (replace-match |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
982 (concat "\\1" |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
983 (if (= 0 (charset-iso-graphic-plane chset)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
984 ;; GL charsets |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
985 (if (= 1 (charset-dimension chset)) "(" "$(") |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
986 ;; GR charsets |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
987 (if (= 96 (charset-chars chset)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
988 "-" |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
989 (if (= 1 (charset-dimension chset)) ")" "$)"))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
990 (string (charset-iso-final-char chset))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
991 t) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
992 (goto-char (+ (point) textlen))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
993 ((coding-system-p chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
994 ;; If it's a coding system, we need to decode the segment |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
995 ;; right away. But first, decode what we've skipped |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
996 ;; across until now. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
997 (when (> pt oldpt) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
998 (decode-coding-region oldpt pt 'ctext-no-compositions)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
999 (delete-region pt newpt) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1000 (set-marker newpt (+ newpt textlen)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1001 (decode-coding-region pt newpt chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1002 (goto-char newpt) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1003 (set-marker oldpt newpt)))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1004 ;; Decode what's left. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1005 (when (> (point) oldpt) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1006 (decode-coding-region oldpt (point) 'ctext-no-compositions)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1007 ;; This buffer started as unibyte, because the string we get from |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1008 ;; the X selection is a unibyte string. We must now make it |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1009 ;; multibyte, so that the decoded text is inserted as multibyte |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1010 ;; into its buffer. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1011 (set-buffer-multibyte t) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1012 (set-buffer-modified-p modified-p) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1013 (- (point-max) (point-min))))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1014 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1015 (defvar non-standard-designations-alist |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1016 '(("$(0" . (big5 "big5-0" 2)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1017 ("$(1" . (big5 "big5-0" 2)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1018 ("-V" . (t "iso8859-10" 1)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1019 ("-Y" . (t "iso8859-13" 1)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1020 ("-_" . (t "iso8859-14" 1)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1021 ("-b" . (t "iso8859-15" 1)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1022 ("-f" . (t "iso8859-16" 1))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1023 "Alist of ctext control sequences that introduce character sets which |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1024 are not in the list of approved ICCCM encodings, and the corresponding |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1025 coding system, identifier string, and number of octets per encoded |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1026 character. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1027 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1028 Each element has the form (CTLSEQ . (ENCODING CHARSET NOCTETS)). CTLSEQ |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1029 is the control sequence (sans the leading ESC) that introduces the character |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1030 set in the text encoded by compound-text. ENCODING is a coding system |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1031 symbol; if it is t, it means that the ctext coding system already encodes |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1032 the text correctly, and only the leading control sequence needs to be altered. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1033 If ENCODING is a coding system, we need to re-encode the text with that |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1034 coding system. CHARSET is the ICCCM name of the charset we need to put into |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1035 the leading control sequence. NOCTETS is the number of octets (bytes) that |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1036 encode each character in this charset. NOCTETS can be 0 (meaning the number |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1037 of octets per character is variable), 1, 2, 3, or 4.") |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1038 |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1039 (defun ctext-pre-write-conversion (from to) |
43558
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1040 "Encode characters between FROM and TO as Compound Text w/Extended Segments. |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1041 |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1042 If FROM is a string, or if the current buffer is not the one set up for us |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1043 by run_pre_post_conversion_on_str, generate a new temp buffer, insert the |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1044 text, and convert it in the temporary buffer. Otherwise, convert in-place." |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1045 (cond ((and (string= (buffer-name) " *code-converting-work*") |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1046 (not (stringp from))) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1047 ; Minimize consing due to subsequent insertions and deletions. |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1048 (buffer-disable-undo) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1049 (narrow-to-region from to)) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1050 (t |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1051 (let ((buf (current-buffer))) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1052 (set-buffer (generate-new-buffer " *temp")) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1053 (buffer-disable-undo) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1054 (if (stringp from) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1055 (insert from) |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1056 (insert-buffer-substring buf from to))))) |
43457
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1057 (encode-coding-region from to 'ctext-no-compositions) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1058 ;; Replace ISO-2022 charset designations with extended segments, for |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1059 ;; those charsets that are not part of the official X registry. |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1060 (save-match-data |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1061 (goto-char (point-min)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1062 (let ((newpt (make-marker)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1063 (case-fold-search nil) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1064 pt desig encode-info encoding chset noctets textlen) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1065 (set-buffer-multibyte nil) |
43558
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1066 ;; The regexp below finds the leading sequences for big5 and |
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1067 ;; iso8859-1[03-6] charsets. |
43457
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1068 (while (re-search-forward "\e\\(\$([01]\\|-[VY_bf]\\)" nil 'move) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1069 (setq desig (match-string 1) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1070 pt (point-marker) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1071 encode-info (cdr (assoc desig non-standard-designations-alist)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1072 encoding (car encode-info) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1073 chset (cadr encode-info) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1074 noctets (car (cddr encode-info))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1075 (skip-chars-forward "^\e") |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1076 (set-marker newpt (point)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1077 (cond |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1078 ((eq encoding t) ; only the leading sequence needs to be changed |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1079 (setq textlen (+ (- newpt pt) (length chset) 1)) |
43558
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1080 ;; Generate the ICCCM control sequence for an extended segment. |
43457
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1081 (replace-match (format "\e%%/%d%c%c%s" |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1082 noctets |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1083 (+ (/ textlen 128) 128) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1084 (+ (% textlen 128) 128) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1085 chset) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1086 t t)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1087 ((coding-system-p encoding) ; need to recode the entire segment... |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1088 (set-marker pt (match-beginning 0)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1089 (decode-coding-region pt newpt 'ctext-no-compositions) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1090 (set-buffer-multibyte t) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1091 (encode-coding-region pt newpt encoding) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1092 (set-buffer-multibyte nil) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1093 (setq textlen (+ (- newpt pt) (length chset) 1)) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1094 (goto-char pt) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1095 (insert (format "\e%%/%d%c%c%s" |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1096 noctets |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1097 (+ (/ textlen 128) 128) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1098 (+ (% textlen 128) 128) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1099 chset)))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1100 (goto-char newpt)))) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1101 (set-buffer-multibyte t) |
43558
5ee62a93032e
(ctext-pre-write-conversion): Handle the
Eli Zaretskii <eliz@gnu.org>
parents:
43457
diff
changeset
|
1102 ;; Must return nil, as build_annotations_2 expects that. |
43457
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1103 nil) |
28a141684094
(non-standard-icccm-encodings-alist, non-standard-designations-alist): New
Eli Zaretskii <eliz@gnu.org>
parents:
42011
diff
changeset
|
1104 |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1105 (make-obsolete 'set-coding-priority 'set-coding-system-priority "22.0") |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1106 |
17052 | 1107 ;;; FILE I/O |
1108 | |
34297
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1109 (defcustom auto-coding-alist |
24681 | 1110 '(("\\.\\(arc\\|zip\\|lzh\\|zoo\\|jar\\|tar\\|tgz\\)\\'" . no-conversion) |
37995
35006c638de9
(auto-coding-alist): Remove redundant
Eli Zaretskii <eliz@gnu.org>
parents:
37826
diff
changeset
|
1111 ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion)) |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1112 "Alist of filename patterns vs corresponding coding systems. |
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1113 Each element looks like (REGEXP . CODING-SYSTEM). |
22819
da7ae4205e0b
(auto-coding-alist): Docstring fixed.
Kenichi Handa <handa@m17n.org>
parents:
22813
diff
changeset
|
1114 A file whose name matches REGEXP is decoded by CODING-SYSTEM on reading. |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1115 |
22826
e81f7de474b3
(auto-coding-alist): Another doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22819
diff
changeset
|
1116 The settings in this alist take priority over `coding:' tags |
e81f7de474b3
(auto-coding-alist): Another doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22819
diff
changeset
|
1117 in the file (see the function `set-auto-coding') |
34297
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1118 and the contents of `file-coding-system-alist'." |
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1119 :group 'files |
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1120 :group 'mule |
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1121 :type '(repeat (cons (regexp :tag "File name regexp") |
8fffee49b42e
(decode-char, encode-char): Doc fix.
Dave Love <fx@gnu.org>
parents:
34123
diff
changeset
|
1122 (symbol :tag "Coding system")))) |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1123 |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1124 (defcustom auto-coding-regexp-alist |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1125 '(("^BABYL OPTIONS:[ \t]*-\\*-[ \t]*rmail[ \t]*-\\*-" . no-conversion)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1126 "Alist of patterns vs corresponding coding systems. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1127 Each element looks like (REGEXP . CODING-SYSTEM). |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1128 A file whose first bytes match REGEXP is decoded by CODING-SYSTEM on reading. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1129 |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1130 The settings in this alist take priority over `coding:' tags |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1131 in the file (see the function `set-auto-coding') |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1132 and the contents of `file-coding-system-alist'." |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1133 :group 'files |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1134 :group 'mule |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1135 :type '(repeat (cons (regexp :tag "Regexp") |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1136 (symbol :tag "Coding system")))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1137 |
22699
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1138 (defvar set-auto-coding-for-load nil |
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1139 "Non-nil means look for `load-coding' property instead of `coding'. |
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1140 This is used for loading and byte-compiling Emacs Lisp files.") |
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1141 |
24602
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1142 (defun auto-coding-alist-lookup (filename) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1143 "Return the coding system specified by `auto-coding-alist' for FILENAME." |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1144 (let ((alist auto-coding-alist) |
24610
66a14155ad78
(auto-coding-alist-lookup): Include ms-dos
Eli Zaretskii <eliz@gnu.org>
parents:
24602
diff
changeset
|
1145 (case-fold-search (memq system-type '(vax-vms windows-nt ms-dos))) |
24602
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1146 coding-system) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1147 (while (and alist (not coding-system)) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1148 (if (string-match (car (car alist)) filename) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1149 (setq coding-system (cdr (car alist))) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1150 (setq alist (cdr alist)))) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1151 coding-system)) |
ca3a341bfd58
(auto-coding-alist-lookup): New function.
Richard M. Stallman <rms@gnu.org>
parents:
24575
diff
changeset
|
1152 |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1153 |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1154 (defun auto-coding-from-file-contents (size) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1155 "Determine a coding system from the contents of the current buffer. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1156 The current buffer contains SIZE bytes starting at point. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1157 Value is either a coding system or nil." |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1158 (save-excursion |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1159 (let ((alist auto-coding-regexp-alist) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1160 coding-system) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1161 (while (and alist (not coding-system)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1162 (let ((regexp (car (car alist)))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1163 (when (re-search-forward regexp (+ (point) size) t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1164 (setq coding-system (cdr (car alist))))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1165 (setq alist (cdr alist))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1166 coding-system))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1167 |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1168 |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1169 (defun set-auto-coding (filename size) |
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1170 "Return coding system for a file FILENAME of which SIZE bytes follow point. |
22699
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1171 These bytes should include at least the first 1k of the file |
754703e243e6
(set-auto-coding-for-load): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22654
diff
changeset
|
1172 and the last 3k of the file, but the middle may be omitted. |
19648
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1173 |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1174 It checks FILENAME against the variable `auto-coding-alist'. If |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1175 FILENAME doesn't match any entries in the variable, it checks the |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1176 contents of the current buffer following point against |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1177 `auto-coding-regexp-alist'. If no match is found, it checks for a |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1178 `coding:' tag in the first one or two lines following point. If no |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1179 `coding:' tag is found, it checks for local variables list in the last |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1180 3K bytes out of the SIZE bytes. |
19648
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1181 |
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1182 The return value is the specified coding system, |
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1183 or nil if nothing specified. |
19454
5a08bc0f02d3
(make-coding-system): Doc-string fixed.
Kenichi Handa <handa@m17n.org>
parents:
19395
diff
changeset
|
1184 |
21728
ea71ddaad673
(load-with-code-conversion): Don't pass extra arg to eval-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
21675
diff
changeset
|
1185 The variable `set-auto-coding-function' (which see) is set to this |
19454
5a08bc0f02d3
(make-coding-system): Doc-string fixed.
Kenichi Handa <handa@m17n.org>
parents:
19395
diff
changeset
|
1186 function by default." |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1187 (or (auto-coding-alist-lookup filename) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1188 (auto-coding-from-file-contents size) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1189 (let* ((case-fold-search t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1190 (head-start (point)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1191 (head-end (+ head-start (min size 1024))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1192 (tail-start (+ head-start (max (- size 3072) 0))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1193 (tail-end (+ head-start size)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1194 coding-system head-found tail-found pos) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1195 ;; Try a short cut by searching for the string "coding:" |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1196 ;; and for "unibyte:" at the head and tail of SIZE bytes. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1197 (setq head-found (or (search-forward "coding:" head-end t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1198 (search-forward "unibyte:" head-end t))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1199 (if (and head-found (> head-found tail-start)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1200 ;; Head and tail are overlapped. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1201 (setq tail-found head-found) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1202 (goto-char tail-start) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1203 (setq tail-found (or (search-forward "coding:" tail-end t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1204 (search-forward "unibyte:" tail-end t)))) |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1205 |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1206 ;; At first check the head. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1207 (when head-found |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1208 (goto-char head-start) |
41973
903480208cfd
(set-auto-coding): Use set-auto-mode-1.
Richard M. Stallman <rms@gnu.org>
parents:
41677
diff
changeset
|
1209 (setq head-end (set-auto-mode-1)) |
903480208cfd
(set-auto-coding): Use set-auto-mode-1.
Richard M. Stallman <rms@gnu.org>
parents:
41677
diff
changeset
|
1210 (setq head-start (point)) |
42011
235915876f5b
(set-auto-coding): Don't search for
Eli Zaretskii <eliz@gnu.org>
parents:
41983
diff
changeset
|
1211 (when (and head-end (< head-found head-end)) |
22813
b209a00e464e
(auto-coding-alist): New variable.
Kenichi Handa <handa@m17n.org>
parents:
22741
diff
changeset
|
1212 (goto-char head-start) |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1213 (when (and set-auto-coding-for-load |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1214 (re-search-forward |
41973
903480208cfd
(set-auto-coding): Use set-auto-mode-1.
Richard M. Stallman <rms@gnu.org>
parents:
41677
diff
changeset
|
1215 "\\(.*;\\)?[ \t]*unibyte:[ \t]*\\([^ ;]+\\)" |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1216 head-end t)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1217 (setq coding-system 'raw-text)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1218 (when (and (not coding-system) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1219 (re-search-forward |
41973
903480208cfd
(set-auto-coding): Use set-auto-mode-1.
Richard M. Stallman <rms@gnu.org>
parents:
41677
diff
changeset
|
1220 "\\(.*;\\)?[ \t]*coding:[ \t]*\\([^ ;]+\\)" |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1221 head-end t)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1222 (setq coding-system (intern (match-string 2))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1223 (or (coding-system-p coding-system) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1224 (setq coding-system nil))))) |
19648
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1225 |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1226 ;; If no coding: tag in the head, check the tail. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1227 (when (and tail-found (not coding-system)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1228 (goto-char tail-start) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1229 (search-forward "\n\^L" nil t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1230 (if (re-search-forward |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1231 "^\\(.*\\)[ \t]*Local Variables:[ \t]*\\(.*\\)$" tail-end t) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1232 ;; The prefix is what comes before "local variables:" in its |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1233 ;; line. The suffix is what comes after "local variables:" |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1234 ;; in its line. |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1235 (let* ((prefix (regexp-quote (match-string 1))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1236 (suffix (regexp-quote (match-string 2))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1237 (re-coding |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1238 (concat |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1239 "^" prefix |
39947
9c7e9fea58dc
(set-auto-coding): Fix regexps for local
Gerd Moellmann <gerd@gnu.org>
parents:
38614
diff
changeset
|
1240 ;; N.B. without the \n below, the regexp can |
9c7e9fea58dc
(set-auto-coding): Fix regexps for local
Gerd Moellmann <gerd@gnu.org>
parents:
38614
diff
changeset
|
1241 ;; eat newlines. |
9c7e9fea58dc
(set-auto-coding): Fix regexps for local
Gerd Moellmann <gerd@gnu.org>
parents:
38614
diff
changeset
|
1242 "[ \t]*coding[ \t]*:[ \t]*\\([^ \t\n]+\\)[ \t]*" |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1243 suffix "$")) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1244 (re-unibyte |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1245 (concat |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1246 "^" prefix |
39947
9c7e9fea58dc
(set-auto-coding): Fix regexps for local
Gerd Moellmann <gerd@gnu.org>
parents:
38614
diff
changeset
|
1247 "[ \t]*unibyte[ \t]*:[ \t]*\\([^ \t\n]+\\)[ \t]*" |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1248 suffix "$")) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1249 (re-end |
39947
9c7e9fea58dc
(set-auto-coding): Fix regexps for local
Gerd Moellmann <gerd@gnu.org>
parents:
38614
diff
changeset
|
1250 (concat "^" prefix "[ \t]*End *:[ \t]*" suffix "$")) |
37746
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1251 (pos (point))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1252 (re-search-forward re-end tail-end 'move) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1253 (setq tail-end (point)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1254 (goto-char pos) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1255 (when (and set-auto-coding-for-load |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1256 (re-search-forward re-unibyte tail-end t)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1257 (setq coding-system 'raw-text)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1258 (when (and (not coding-system) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1259 (re-search-forward re-coding tail-end t)) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1260 (setq coding-system (intern (match-string 1))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1261 (or (coding-system-p coding-system) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1262 (setq coding-system nil)))))) |
0204bb9ccc1e
(auto-coding-regexp-alist): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
36466
diff
changeset
|
1263 coding-system))) |
19648
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1264 |
e9031152e052
(set-auto-coding): Name changed from
Kenichi Handa <handa@m17n.org>
parents:
19606
diff
changeset
|
1265 (setq set-auto-coding-function 'set-auto-coding) |
19454
5a08bc0f02d3
(make-coding-system): Doc-string fixed.
Kenichi Handa <handa@m17n.org>
parents:
19395
diff
changeset
|
1266 |
17052 | 1267 (defun after-insert-file-set-buffer-file-coding-system (inserted) |
36037 | 1268 "Set `buffer-file-coding-system' of current buffer after text is inserted." |
17052 | 1269 (if last-coding-system-used |
1270 (let ((coding-system | |
1271 (find-new-buffer-file-coding-system last-coding-system-used)) | |
1272 (modified-p (buffer-modified-p))) | |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
1273 (when coding-system |
29641
703433352fc4
(after-insert-file-set-buffer-file-coding-system): Call
Kenichi Handa <handa@m17n.org>
parents:
29575
diff
changeset
|
1274 (set-buffer-file-coding-system coding-system t) |
23717
ad0e76fa89be
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
23456
diff
changeset
|
1275 (if (and enable-multibyte-characters |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1276 (or (eq (coding-system-type coding-system) 'raw-text)) |
29504
09063dfdc92c
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
29428
diff
changeset
|
1277 ;; If buffer was unmodified and the size is the |
09063dfdc92c
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
29428
diff
changeset
|
1278 ;; same as INSERTED, we must be visiting it. |
09063dfdc92c
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
29428
diff
changeset
|
1279 (not modified-p) |
09063dfdc92c
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
29428
diff
changeset
|
1280 (= (buffer-size) inserted)) |
22041
e977f2414da5
(after-insert-file-set-buffer-file-coding-system):
Richard M. Stallman <rms@gnu.org>
parents:
21728
diff
changeset
|
1281 ;; For coding systems no-conversion and raw-text..., |
e977f2414da5
(after-insert-file-set-buffer-file-coding-system):
Richard M. Stallman <rms@gnu.org>
parents:
21728
diff
changeset
|
1282 ;; edit the buffer as unibyte. |
23717
ad0e76fa89be
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
23456
diff
changeset
|
1283 (let ((pos-byte (position-bytes (+ (point) inserted)))) |
ad0e76fa89be
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
23456
diff
changeset
|
1284 (set-buffer-multibyte nil) |
ad0e76fa89be
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
23456
diff
changeset
|
1285 (setq inserted (- pos-byte (position-bytes (point)))))) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
1286 (set-buffer-modified-p modified-p)))) |
23717
ad0e76fa89be
(after-insert-file-set-buffer-file-coding-system): If the buffer
Kenichi Handa <handa@m17n.org>
parents:
23456
diff
changeset
|
1287 inserted) |
17052 | 1288 |
21023 | 1289 (add-hook 'after-insert-file-functions |
1290 'after-insert-file-set-buffer-file-coding-system) | |
17052 | 1291 |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
1292 ;; The coding-spec and eol-type of coding-system returned is decided |
17052 | 1293 ;; independently in the following order. |
1294 ;; 1. That of buffer-file-coding-system locally bound. | |
1295 ;; 2. That of CODING. | |
1296 | |
1297 (defun find-new-buffer-file-coding-system (coding) | |
1298 "Return a coding system for a buffer when a file of CODING is inserted. | |
17761
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1299 The local variable `buffer-file-coding-system' of the current buffer |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1300 is set to the returned value. |
24575
a95503af9112
(find-new-buffer-file-coding-system): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
24373
diff
changeset
|
1301 Return nil if there's no need to set `buffer-file-coding-system'." |
17052 | 1302 (let (local-coding local-eol |
19948
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1303 found-coding found-eol |
17052 | 1304 new-coding new-eol) |
1305 (if (null coding) | |
1306 ;; Nothing found about coding. | |
1307 nil | |
1308 | |
19948
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1309 ;; Get information of `buffer-file-coding-system' in LOCAL-EOL |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1310 ;; and LOCAL-CODING. |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1311 (setq local-eol (coding-system-eol-type buffer-file-coding-system)) |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1312 (if (null (numberp local-eol)) |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1313 ;; But eol-type is not yet set. |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1314 (setq local-eol nil)) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
1315 (if (and buffer-file-coding-system |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1316 (not (eq (coding-system-type buffer-file-coding-system) |
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1317 'undecided))) |
20112
6e6838a12511
The summary of the following changes:
Kenichi Handa <handa@m17n.org>
parents:
19986
diff
changeset
|
1318 (setq local-coding (coding-system-base buffer-file-coding-system))) |
17052 | 1319 |
19948
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1320 (if (and (local-variable-p 'buffer-file-coding-system) |
46e5df654a35
(find-new-buffer-file-coding-system): Reflect
Richard M. Stallman <rms@gnu.org>
parents:
19802
diff
changeset
|
1321 local-eol local-coding) |
17052 | 1322 ;; The current buffer has already set full coding-system, we |
1323 ;; had better not change it. | |
1324 nil | |
1325 | |
18195
9650375d0a68
Delete declaration for buffer-file-coding-system. It
Kenichi Handa <handa@m17n.org>
parents:
17984
diff
changeset
|
1326 (setq found-eol (coding-system-eol-type coding)) |
17052 | 1327 (if (null (numberp found-eol)) |
22903
77e68af369b1
(find-new-buffer-file-coding-system): When
Eli Zaretskii <eliz@gnu.org>
parents:
22884
diff
changeset
|
1328 ;; But eol-type is not found. |
77e68af369b1
(find-new-buffer-file-coding-system): When
Eli Zaretskii <eliz@gnu.org>
parents:
22884
diff
changeset
|
1329 ;; If EOL conversions are inhibited, force unix eol-type. |
77e68af369b1
(find-new-buffer-file-coding-system): When
Eli Zaretskii <eliz@gnu.org>
parents:
22884
diff
changeset
|
1330 (setq found-eol (if inhibit-eol-conversion 0))) |
88413
418777d5ccd4
(char-valid-p): Make it an alias of characterp.
Kenichi Handa <handa@m17n.org>
parents:
43558
diff
changeset
|
1331 (setq found-coding (coding-system-base coding)) |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1332 |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1333 (if (and (not found-eol) (eq found-coding 'undecided)) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1334 ;; No valid coding information found. |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1335 nil |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1336 |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1337 ;; Some coding information (eol or text) found. |
17052 | 1338 |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1339 ;; The local setting takes precedence over the found one. |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1340 (setq new-coding (if (local-variable-p 'buffer-file-coding-system) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1341 (or local-coding found-coding) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1342 (or found-coding local-coding))) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1343 (setq new-eol (if (local-variable-p 'buffer-file-coding-system) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1344 (or local-eol found-eol) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1345 (or found-eol local-eol))) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1346 |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1347 (let ((eol-type (coding-system-eol-type new-coding))) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1348 (if (and (numberp new-eol) (vectorp eol-type)) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1349 (aref eol-type new-eol) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1350 new-coding))))))) |
17052 | 1351 |
18874
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1352 (defun modify-coding-system-alist (target-type regexp coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1353 "Modify one of look up tables for finding a coding system on I/O operation. |
18913
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1354 There are three of such tables, `file-coding-system-alist', |
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1355 `process-coding-system-alist', and `network-coding-system-alist'. |
18874
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1356 |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1357 TARGET-TYPE specifies which of them to modify. |
18913
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1358 If it is `file', it affects `file-coding-system-alist' (which see). |
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1359 If it is `process', it affects `process-coding-system-alist' (which see). |
23196 | 1360 If it is `network', it affects `network-coding-system-alist' (which see). |
18874
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1361 |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1362 REGEXP is a regular expression matching a target of I/O operation. |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1363 The target is a file name if TARGET-TYPE is `file', a program name if |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1364 TARGET-TYPE is `process', or a network service name or a port number |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1365 to connect to if TARGET-TYPE is `network'. |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1366 |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1367 CODING-SYSTEM is a coding system to perform code conversion on the I/O |
18913
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1368 operation, or a cons cell (DECODING . ENCODING) specifying the coding systems |
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1369 for decoding and encoding respectively, |
7333c3179621
(modify-coding-system-alist): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
18874
diff
changeset
|
1370 or a function symbol which, when called, returns such a cons cell." |
18874
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1371 (or (memq target-type '(file process network)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1372 (error "Invalid target type: %s" target-type)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1373 (or (stringp regexp) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1374 (and (eq target-type 'network) (integerp regexp)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1375 (error "Invalid regular expression: %s" regexp)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1376 (if (symbolp coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1377 (if (not (fboundp coding-system)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1378 (progn |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1379 (check-coding-system coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1380 (setq coding-system (cons coding-system coding-system)))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1381 (check-coding-system (car coding-system)) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1382 (check-coding-system (cdr coding-system))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1383 (cond ((eq target-type 'file) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1384 (let ((slot (assoc regexp file-coding-system-alist))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1385 (if slot |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1386 (setcdr slot coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1387 (setq file-coding-system-alist |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1388 (cons (cons regexp coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1389 file-coding-system-alist))))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1390 ((eq target-type 'process) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1391 (let ((slot (assoc regexp process-coding-system-alist))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1392 (if slot |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1393 (setcdr slot coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1394 (setq process-coding-system-alist |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1395 (cons (cons regexp coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1396 process-coding-system-alist))))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1397 (t |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1398 (let ((slot (assoc regexp network-coding-system-alist))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1399 (if slot |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1400 (setcdr slot coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1401 (setq network-coding-system-alist |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1402 (cons (cons regexp coding-system) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1403 network-coding-system-alist))))))) |
e44ac570f54f
(modify-coding-system-alist): Moved to mule-util.el.
Geoff Voelker <voelker@cs.washington.edu>
parents:
18798
diff
changeset
|
1404 |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1405 (defun make-translation-table (&rest args) |
36262 | 1406 "Make a translation table from arguments. |
40826
24ea3c263919
(make-translation-table): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
39947
diff
changeset
|
1407 A translation table is a char table intended for character |
36262 | 1408 translation in CCL programs. |
1409 | |
40826
24ea3c263919
(make-translation-table): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
39947
diff
changeset
|
1410 Each argument is a list of elements of the form (FROM . TO), where FROM |
36262 | 1411 is a character to be translated to TO. |
17761
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1412 |
35481
df08279e042b
(make-translation-table): Fix docstring.
Kenichi Handa <handa@m17n.org>
parents:
35324
diff
changeset
|
1413 The arguments and forms in each argument are processed in the given |
df08279e042b
(make-translation-table): Fix docstring.
Kenichi Handa <handa@m17n.org>
parents:
35324
diff
changeset
|
1414 order, and if a previous form already translates TO to some other |
df08279e042b
(make-translation-table): Fix docstring.
Kenichi Handa <handa@m17n.org>
parents:
35324
diff
changeset
|
1415 character, say TO-ALT, FROM is also translated to TO-ALT." |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1416 (let ((table (make-char-table 'translation-table)) |
17761
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1417 revlist) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1418 (while args |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1419 (let ((elts (car args))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1420 (while elts |
17837
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1421 (let* ((from (car (car elts))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1422 (from-i 0) ; degree of freedom of FROM |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1423 (from-rev (nreverse (split-char from))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1424 (to (cdr (car elts))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1425 (to-i 0) ; degree of freedom of TO |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1426 (to-rev (nreverse (split-char to)))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1427 ;; Check numbers of heading 0s in FROM-REV and TO-REV. |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1428 (while (eq (car from-rev) 0) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1429 (setq from-i (1+ from-i) from-rev (cdr from-rev))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1430 (while (eq (car to-rev) 0) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1431 (setq to-i (1+ to-i) to-rev (cdr to-rev))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1432 (if (and (/= from-i to-i) (/= to-i 0)) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1433 (error "Invalid character pair (%d . %d)" from to)) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1434 ;; If we have already translated TO to TO-ALT, FROM should |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1435 ;; also be translated to TO-ALT. |
17837
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1436 (let ((to-alt (aref table to))) |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1437 (if (and to-alt (> to-i 0)) |
17837
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1438 (setq to to-alt))) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1439 (if (> from-i 0) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1440 (set-char-table-default table from to) |
a4d3078a83e9
(make-unification-table): Fix handling of a generic
Kenichi Handa <handa@m17n.org>
parents:
17761
diff
changeset
|
1441 (aset table from to)) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1442 ;; If we have already translated some chars to FROM, they |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1443 ;; should also be translated to TO. |
17761
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1444 (let ((l (assq from revlist))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1445 (if l |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1446 (let ((ch (car l))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1447 (setcar l to) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1448 (setq l (cdr l)) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1449 (while l |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1450 (aset table ch to) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1451 (setq l (cdr l)) )))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1452 ;; Now update REVLIST. |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1453 (let ((l (assq to revlist))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1454 (if l |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1455 (setcdr l (cons from (cdr l))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1456 (setq revlist (cons (list to from) revlist))))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1457 (setq elts (cdr elts)))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1458 (setq args (cdr args))) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1459 ;; Return TABLE just created. |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1460 table)) |
c5f430853301
(make-char): Doc-string modified.
Kenichi Handa <handa@m17n.org>
parents:
17175
diff
changeset
|
1461 |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1462 (defun make-translation-table-from-vector (vec) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1463 "Make translation table from decoding vector VEC. |
41983
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1464 VEC is an array of 256 elements to map unibyte codes to multibyte |
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1465 characters. Elements may be nil for undefined code points. |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1466 See also the variable `nonascii-translation-table'." |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1467 (let ((table (make-char-table 'translation-table)) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1468 (rev-table (make-char-table 'translation-table)) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1469 ch) |
41983
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1470 (dotimes (i 256) |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1471 (setq ch (aref vec i)) |
41983
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1472 (when ch |
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1473 (aset table i ch) |
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1474 (if (>= ch 256) |
8acbb96a91c3
(make-translation-table-from-vector):
Dave Love <fx@gnu.org>
parents:
41973
diff
changeset
|
1475 (aset rev-table ch i)))) |
22884
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1476 (set-char-table-extra-slot table 0 rev-table) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1477 table)) |
e7a1b839f16c
(make-coding-system): If the arg TYPE is
Kenichi Handa <handa@m17n.org>
parents:
22836
diff
changeset
|
1478 |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1479 (defun define-translation-table (symbol &rest args) |
36262 | 1480 "Define SYMBOL as the name of translation table made by ARGS. |
1481 This sets up information so that the table can be used for | |
1482 translations in a CCL program. | |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1483 |
36262 | 1484 If the first element of ARGS is a char-table whose purpose is |
1485 `translation-table', just define SYMBOL to name it. (Note that this | |
1486 function does not bind SYMBOL.) | |
23770
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1487 |
36262 | 1488 Any other ARGS should be suitable as arguments of the function |
23770
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1489 `make-translation-table' (which see). |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1490 |
22225
6f56af1aab96
(make-translation-table): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
22186
diff
changeset
|
1491 This function sets properties `translation-table' and |
36037 | 1492 `translation-table-id' of SYMBOL to the created table itself and the |
1493 identification number of the table respectively. It also registers | |
1494 the table in `translation-table-vector'." | |
23770
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1495 (let ((table (if (and (char-table-p (car args)) |
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1496 (eq (char-table-subtype (car args)) |
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1497 'translation-table)) |
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1498 (car args) |
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1499 (apply 'make-translation-table args))) |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1500 (len (length translation-table-vector)) |
20729
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
1501 (id 0) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1502 (done nil)) |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1503 (put symbol 'translation-table table) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1504 (while (not done) |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1505 (if (>= id len) |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1506 (setq translation-table-vector |
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1507 (vconcat translation-table-vector (make-vector len nil)))) |
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1508 (let ((slot (aref translation-table-vector id))) |
22125
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1509 (if (or (not slot) |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1510 (eq (car slot) symbol)) |
8e8f1bc7f743
Change term unification to translation
Kenichi Handa <handa@m17n.org>
parents:
22083
diff
changeset
|
1511 (progn |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1512 (aset translation-table-vector id (cons symbol table)) |
23770
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1513 (setq done t)) |
45f1d511e726
(define-translation-table): Fix bug of
Kenichi Handa <handa@m17n.org>
parents:
23717
diff
changeset
|
1514 (setq id (1+ id))))) |
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22160
diff
changeset
|
1515 (put symbol 'translation-table-id id) |
20729
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
1516 id)) |
821b2167b6c3
(define-character-unification-table): New
Kenichi Handa <handa@m17n.org>
parents:
20405
diff
changeset
|
1517 |
26887
2f284b9ec711
(mule-version): Updated to 5.0 (AOI).
Kenichi Handa <handa@m17n.org>
parents:
26716
diff
changeset
|
1518 (put 'with-category-table 'lisp-indent-function 1) |
2f284b9ec711
(mule-version): Updated to 5.0 (AOI).
Kenichi Handa <handa@m17n.org>
parents:
26716
diff
changeset
|
1519 |
2f284b9ec711
(mule-version): Updated to 5.0 (AOI).
Kenichi Handa <handa@m17n.org>
parents:
26716
diff
changeset
|
1520 (defmacro with-category-table (category-table &rest body) |
88551 | 1521 "Execute BODY like `progn' with CATEGORY-TABLE the current category table." |
88651
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1522 (let ((current-category-table (make-symbol "current-category-table"))) |
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1523 `(let ((,current-category-table (category-table))) |
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1524 (set-category-table ,category-table) |
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1525 (unwind-protect |
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1526 (progn ,@body) |
ddc129ce7bc1
(with-category-table): Use make-symbol.
Dave Love <fx@gnu.org>
parents:
88643
diff
changeset
|
1527 (set-category-table ,current-category-table))))) |
26887
2f284b9ec711
(mule-version): Updated to 5.0 (AOI).
Kenichi Handa <handa@m17n.org>
parents:
26716
diff
changeset
|
1528 |
17094
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1529 ;;; Initialize some variables. |
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1530 |
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1531 (put 'use-default-ascent 'char-table-extra-slots 0) |
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1532 (setq use-default-ascent (make-char-table 'use-default-ascent)) |
19263
9d34beb088bf
(make-coding-system): Add a new FLAGS
Kenichi Handa <handa@m17n.org>
parents:
19162
diff
changeset
|
1533 (put 'ignore-relative-composition 'char-table-extra-slots 0) |
9d34beb088bf
(make-coding-system): Add a new FLAGS
Kenichi Handa <handa@m17n.org>
parents:
19162
diff
changeset
|
1534 (setq ignore-relative-composition |
9d34beb088bf
(make-coding-system): Add a new FLAGS
Kenichi Handa <handa@m17n.org>
parents:
19162
diff
changeset
|
1535 (make-char-table 'ignore-relative-composition)) |
17094
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1536 |
c237252970e5
(make-coding-system): For ISO-2022 type conding systems,
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
1537 ;;; |
17052 | 1538 (provide 'mule) |
1539 | |
1540 ;;; mule.el ends here |