Mercurial > emacs
annotate src/coding.h @ 23323:0800a4f84757
(underlying_strftime):
Set the buffer to a nonzero value before calling
strftime, and check to see whether strftime has set the buffer to zero.
This lets us distinguish between an empty buffer and an error.
I'm installing this patch by hand now; it will be superseded whenever
the glibc sources are propagated back to fsf.org.
| author | Paul Eggert <eggert@twinsun.com> |
|---|---|
| date | Fri, 25 Sep 1998 21:40:23 +0000 |
| parents | bad51ca51df3 |
| children | 4c5f12c6041c |
| rev | line source |
|---|---|
| 17052 | 1 /* Header for coding system handler. |
|
18341
33e78cc7f058
Change copyright notices.
Richard M. Stallman <rms@gnu.org>
parents:
18181
diff
changeset
|
2 Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN. |
|
33e78cc7f058
Change copyright notices.
Richard M. Stallman <rms@gnu.org>
parents:
18181
diff
changeset
|
3 Licensed to the Free Software Foundation. |
| 17052 | 4 |
| 17071 | 5 This file is part of GNU Emacs. |
| 6 | |
| 7 GNU Emacs is free software; you can redistribute it and/or modify | |
| 8 it under the terms of the GNU General Public License as published by | |
| 9 the Free Software Foundation; either version 2, or (at your option) | |
| 10 any later version. | |
| 17052 | 11 |
| 17071 | 12 GNU Emacs is distributed in the hope that it will be useful, |
| 13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 GNU General Public License for more details. | |
| 17052 | 16 |
| 17071 | 17 You should have received a copy of the GNU General Public License |
| 18 along with GNU Emacs; see the file COPYING. If not, write to | |
| 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 20 Boston, MA 02111-1307, USA. */ | |
| 17052 | 21 |
| 22 #ifndef _CODING_H | |
| 23 #define _CODING_H | |
| 24 | |
| 25 #ifndef _CCL_H | |
| 26 #include "../src/ccl.h" | |
| 27 #endif | |
| 28 | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
29 /*** EMACS' INTERNAL FORMAT (emacs-mule) section ***/ |
| 17052 | 30 |
| 31 /* All code (1-byte) of Emacs' internal format is classified into one | |
| 32 of the followings. See also `charset.h'. */ | |
| 33 enum emacs_code_class_type | |
| 34 { | |
| 35 EMACS_control_code, /* Control codes in the range | |
| 36 0x00..0x1F and 0x7F except for the | |
| 37 following two codes. */ | |
| 38 EMACS_linefeed_code, /* 0x0A (linefeed) to denote | |
| 39 end-of-line. */ | |
| 40 EMACS_carriage_return_code, /* 0x0D (carriage-return) to be used | |
| 41 in selective display mode. */ | |
| 42 EMACS_ascii_code, /* ASCII characters. */ | |
| 43 EMACS_leading_code_composition, /* Leading code of a composite | |
| 44 character. */ | |
| 45 EMACS_leading_code_2, /* Base leading code of official | |
| 46 TYPE9N character. */ | |
| 47 EMACS_leading_code_3, /* Base leading code of private TYPE9N | |
| 48 or official TYPE9Nx9N character. */ | |
| 49 EMACS_leading_code_4, /* Base leading code of private | |
| 50 TYPE9Nx9N character. */ | |
| 51 EMACS_invalid_code /* Invalid code, i.e. a base leading | |
| 52 code not yet assigned to any | |
| 53 charset, or a code of the range | |
| 54 0xA0..0xFF. */ | |
| 55 }; | |
| 56 | |
| 57 extern enum emacs_code_class_type emacs_code_class[256]; | |
| 58 | |
| 59 /*** ISO2022 section ***/ | |
| 60 | |
| 61 /* Macros to define code of control characters for ISO2022's functions. */ | |
| 62 /* code */ /* function */ | |
| 63 #define ISO_CODE_LF 0x0A /* line-feed */ | |
| 64 #define ISO_CODE_CR 0x0D /* carriage-return */ | |
| 65 #define ISO_CODE_SO 0x0E /* shift-out */ | |
| 66 #define ISO_CODE_SI 0x0F /* shift-in */ | |
| 67 #define ISO_CODE_SS2_7 0x19 /* single-shift-2 for 7-bit code */ | |
| 68 #define ISO_CODE_ESC 0x1B /* escape */ | |
| 69 #define ISO_CODE_SS2 0x8E /* single-shift-2 */ | |
| 70 #define ISO_CODE_SS3 0x8F /* single-shift-3 */ | |
| 71 #define ISO_CODE_CSI 0x9B /* control-sequence-introduce */ | |
| 72 | |
| 73 /* All code (1-byte) of ISO2022 is classified into one of the | |
| 74 followings. */ | |
| 75 enum iso_code_class_type | |
| 76 { | |
| 77 ISO_control_code, /* Control codes in the range | |
| 78 0x00..0x1F, 0x7F, and 0x80..0x9F, | |
| 79 except for the following seven | |
| 80 codes. */ | |
| 81 ISO_carriage_return, /* ISO_CODE_CR (0x0D) */ | |
| 82 ISO_shift_out, /* ISO_CODE_SO (0x0E) */ | |
| 83 ISO_shift_in, /* ISO_CODE_SI (0x0F) */ | |
| 84 ISO_single_shift_2_7, /* ISO_CODE_SS2_7 (0x19) */ | |
| 85 ISO_escape, /* ISO_CODE_SO (0x1B) */ | |
| 86 ISO_single_shift_2, /* ISO_CODE_SS2 (0x8E) */ | |
| 87 ISO_single_shift_3, /* ISO_CODE_SS3 (0x8F) */ | |
| 88 ISO_control_sequence_introducer, /* ISO_CODE_CSI (0x9B) */ | |
| 89 ISO_0x20_or_0x7F, /* Codes of the values 0x20 or 0x7F. */ | |
| 90 ISO_graphic_plane_0, /* Graphic codes in the range 0x21..0x7E. */ | |
| 91 ISO_0xA0_or_0xFF, /* Codes of the values 0xA0 or 0xFF. */ | |
| 92 ISO_graphic_plane_1 /* Graphic codes in the range 0xA1..0xFE. */ | |
| 93 }; | |
| 94 | |
| 95 /** The macros CODING_FLAG_ISO_XXX defines a flag bit of the `flags' | |
| 96 element in the structure `coding_system'. This information is used | |
| 97 while encoding a text to ISO2022. **/ | |
| 98 | |
| 99 /* If set, produce short-form designation sequence (e.g. ESC $ A) | |
| 100 instead of long-form sequence (e.g. ESC $ ( A). */ | |
| 101 #define CODING_FLAG_ISO_SHORT_FORM 0x0001 | |
| 102 | |
| 103 /* If set, reset graphic planes and registers at end-of-line to the | |
| 104 initial state. */ | |
| 105 #define CODING_FLAG_ISO_RESET_AT_EOL 0x0002 | |
| 106 | |
| 107 /* If set, reset graphic planes and registers before any control | |
| 108 characters to the initial state. */ | |
| 109 #define CODING_FLAG_ISO_RESET_AT_CNTL 0x0004 | |
| 110 | |
| 111 /* If set, encode by 7-bit environment. */ | |
| 112 #define CODING_FLAG_ISO_SEVEN_BITS 0x0008 | |
| 113 | |
| 114 /* If set, use locking-shift function. */ | |
| 115 #define CODING_FLAG_ISO_LOCKING_SHIFT 0x0010 | |
| 116 | |
| 117 /* If set, use single-shift function. Overwrite | |
| 118 CODING_FLAG_ISO_LOCKING_SHIFT. */ | |
| 119 #define CODING_FLAG_ISO_SINGLE_SHIFT 0x0020 | |
| 120 | |
| 121 /* If set, designate JISX0201-Roman instead of ASCII. */ | |
| 122 #define CODING_FLAG_ISO_USE_ROMAN 0x0040 | |
| 123 | |
| 124 /* If set, designate JISX0208-1978 instead of JISX0208-1983. */ | |
| 125 #define CODING_FLAG_ISO_USE_OLDJIS 0x0080 | |
| 126 | |
| 127 /* If set, do not produce ISO6429's direction specifying sequence. */ | |
| 128 #define CODING_FLAG_ISO_NO_DIRECTION 0x0100 | |
| 129 | |
|
17118
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
130 /* If set, assume designation states are reset at beginning of line on |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
131 output. */ |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
132 #define CODING_FLAG_ISO_INIT_AT_BOL 0x0200 |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
133 |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
134 /* If set, designation sequence should be placed at beginning of line |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
135 on output. */ |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
136 #define CODING_FLAG_ISO_DESIGNATE_AT_BOL 0x0400 |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
137 |
|
20149
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
138 /* If set, do not encode unsafe charactes on output. */ |
|
19279
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
139 #define CODING_FLAG_ISO_SAFE 0x0800 |
|
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
140 |
|
19364
7182edce9028
(Vmicrosoft_code_table): This variable deleted.
Kenichi Handa <handa@m17n.org>
parents:
19284
diff
changeset
|
141 /* If set, extra latin codes (128..159) are accepted as a valid code |
|
7182edce9028
(Vmicrosoft_code_table): This variable deleted.
Kenichi Handa <handa@m17n.org>
parents:
19284
diff
changeset
|
142 on input. */ |
|
7182edce9028
(Vmicrosoft_code_table): This variable deleted.
Kenichi Handa <handa@m17n.org>
parents:
19284
diff
changeset
|
143 #define CODING_FLAG_ISO_LATIN_EXTRA 0x1000 |
|
7182edce9028
(Vmicrosoft_code_table): This variable deleted.
Kenichi Handa <handa@m17n.org>
parents:
19284
diff
changeset
|
144 |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
145 /* If set, use designation escape sequence. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
146 #define CODING_FLAG_ISO_DESIGNATION 0x10000 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
147 |
|
19279
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
148 /* A character to be produced on output if encoding of the original |
|
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
149 character is prohibited by CODING_FLAG_ISO_SAFE. */ |
|
19364
7182edce9028
(Vmicrosoft_code_table): This variable deleted.
Kenichi Handa <handa@m17n.org>
parents:
19284
diff
changeset
|
150 #define CODING_INHIBIT_CHARACTER_SUBSTITUTION 077 /* 077 == `?' */ |
|
19279
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
151 |
| 17052 | 152 /* Structure of the field `spec.iso2022' in the structure `coding_system'. */ |
| 153 struct iso2022_spec | |
| 154 { | |
| 155 /* The current graphic register invoked to each graphic plane. */ | |
| 156 int current_invocation[2]; | |
| 157 | |
| 158 /* The current charset designated to each graphic register. */ | |
| 159 int current_designation[4]; | |
| 160 | |
| 161 /* A charset initially designated to each graphic register. */ | |
| 162 int initial_designation[4]; | |
| 163 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
164 /* If not -1, it is a graphic register specified in an invalid |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
165 designation sequence. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
166 int last_invalid_designation_register; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
167 |
| 17052 | 168 /* A graphic register to which each charset should be designated. */ |
|
18001
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
169 unsigned char requested_designation[MAX_CHARSET + 1]; |
| 17052 | 170 |
|
20149
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
171 /* A revision number to be specified for each charset on encoding. |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
172 The value 255 means no revision number for the corresponding |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
173 charset. */ |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
174 unsigned char charset_revision_number[MAX_CHARSET + 1]; |
|
19284
dd1d7096f59d
(struct iso2022_spec): New member expected_charsets.
Kenichi Handa <handa@m17n.org>
parents:
19279
diff
changeset
|
175 |
| 17052 | 176 /* Set to 1 temporarily only when graphic register 2 or 3 is invoked |
| 177 by single-shift while encoding. */ | |
| 178 int single_shifting; | |
|
17118
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
179 |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
180 /* Set to 1 temporarily only when processing at beginning of line. */ |
|
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
181 int bol; |
| 17052 | 182 }; |
| 183 | |
| 184 /* Macros to access each field in the structure `spec.iso2022'. */ | |
| 185 #define CODING_SPEC_ISO_INVOCATION(coding, plane) \ | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
186 (coding)->spec.iso2022.current_invocation[plane] |
| 17052 | 187 #define CODING_SPEC_ISO_DESIGNATION(coding, reg) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
188 (coding)->spec.iso2022.current_designation[reg] |
| 17052 | 189 #define CODING_SPEC_ISO_INITIAL_DESIGNATION(coding, reg) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
190 (coding)->spec.iso2022.initial_designation[reg] |
| 17052 | 191 #define CODING_SPEC_ISO_REQUESTED_DESIGNATION(coding, charset) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
192 (coding)->spec.iso2022.requested_designation[charset] |
|
20149
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
193 #define CODING_SPEC_ISO_REVISION_NUMBER(coding, charset) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
194 (coding)->spec.iso2022.charset_revision_number[charset] |
| 17052 | 195 #define CODING_SPEC_ISO_SINGLE_SHIFTING(coding) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
196 (coding)->spec.iso2022.single_shifting |
|
17118
dcfb481ee914
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17071
diff
changeset
|
197 #define CODING_SPEC_ISO_BOL(coding) \ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
198 (coding)->spec.iso2022.bol |
| 17052 | 199 |
|
18001
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
200 /* A value which may appear in |
|
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
201 coding->spec.iso2022.requested_designation indicating that the |
|
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
202 corresponding charset does not request any graphic register to be |
|
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
203 designated. */ |
|
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
204 #define CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION 4 |
|
9846609c4fd5
(struct iso2022_spec): Member requested_designation is
Kenichi Handa <handa@m17n.org>
parents:
17879
diff
changeset
|
205 |
| 17052 | 206 /* Return a charset which is currently designated to the graphic plane |
| 207 PLANE in the coding-system CODING. */ | |
|
17724
545c2f09f14d
(CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
Kenichi Handa <handa@m17n.org>
parents:
17190
diff
changeset
|
208 #define CODING_SPEC_ISO_PLANE_CHARSET(coding, plane) \ |
|
545c2f09f14d
(CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
Kenichi Handa <handa@m17n.org>
parents:
17190
diff
changeset
|
209 ((CODING_SPEC_ISO_INVOCATION (coding, plane) < 0) \ |
|
545c2f09f14d
(CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
Kenichi Handa <handa@m17n.org>
parents:
17190
diff
changeset
|
210 ? -1 \ |
|
545c2f09f14d
(CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
Kenichi Handa <handa@m17n.org>
parents:
17190
diff
changeset
|
211 : CODING_SPEC_ISO_DESIGNATION (coding, \ |
|
545c2f09f14d
(CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
Kenichi Handa <handa@m17n.org>
parents:
17190
diff
changeset
|
212 CODING_SPEC_ISO_INVOCATION (coding, plane))) |
| 17052 | 213 |
| 214 /*** BIG5 section ***/ | |
| 215 | |
| 216 /* Macros to denote each type of BIG5 coding system. */ | |
| 217 #define CODING_FLAG_BIG5_HKU 0x00 /* BIG5-HKU is one of variants of | |
| 218 BIG5 developed by Hong Kong | |
| 219 University. */ | |
| 220 #define CODING_FLAG_BIG5_ETEN 0x01 /* BIG5_ETen is one of variants | |
| 221 of BIG5 developed by the | |
| 222 company ETen in Taiwan. */ | |
| 223 | |
| 224 /*** GENERAL section ***/ | |
| 225 | |
| 226 /* Types of coding system. */ | |
| 227 enum coding_type | |
| 228 { | |
| 229 coding_type_no_conversion, /* A coding system which requires no | |
| 230 conversion for reading and writing | |
| 231 including end-of-line format. */ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
232 coding_type_emacs_mule, /* A coding system used in Emacs' |
| 17052 | 233 buffer and string. Requires no |
| 234 conversion for reading and writing | |
| 235 except for end-of-line format. */ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
236 coding_type_undecided, /* A coding system which requires |
| 17052 | 237 automatic detection of a real |
| 238 coding system. */ | |
| 239 coding_type_sjis, /* SJIS coding system for Japanese. */ | |
| 240 coding_type_iso2022, /* Any coding system of ISO2022 | |
| 241 variants. */ | |
| 242 coding_type_big5, /* BIG5 coding system for Chinese. */ | |
|
19611
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
243 coding_type_ccl, /* The coding system of which decoder |
| 17052 | 244 and encoder are written in CCL. */ |
|
19611
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
245 coding_type_raw_text /* A coding system for a text |
|
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
246 containing ramdom 8-bit code which |
|
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
247 does not require code conversion |
|
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
248 except for end-of-line format. */ |
| 17052 | 249 }; |
| 250 | |
| 251 /* Formats of end-of-line. */ | |
| 252 #define CODING_EOL_LF 0 /* Line-feed only, same as Emacs' | |
| 253 internal format. */ | |
| 254 #define CODING_EOL_CRLF 1 /* Sequence of carriage-return and | |
| 255 line-feed. */ | |
| 256 #define CODING_EOL_CR 2 /* Carriage-return only. */ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
257 #define CODING_EOL_UNDECIDED 3 /* This value is used to denote the |
| 17052 | 258 eol-type is not yet decided. */ |
|
19611
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
259 #define CODING_EOL_INCONSISTENT 4 /* This value is used to denote the |
|
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
260 eol-type is not consistent |
|
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
261 through the file. */ |
| 17052 | 262 |
| 263 /* Character composition status while encoding/decoding. */ | |
| 264 #define COMPOSING_NO 0 /* not composing */ | |
| 265 #define COMPOSING_WITH_RULE_HEAD 1 /* 1st char of with-rule composing follow */ | |
| 266 #define COMPOSING_NO_RULE_HEAD 2 /* 1st char of no-rule composing follow */ | |
| 267 #define COMPOSING_WITH_RULE_TAIL 3 /* Nth char of with-rule composing follow */ | |
| 268 #define COMPOSING_NO_RULE_TAIL 4 /* Nth char of no-rule composing follow */ | |
| 269 #define COMPOSING_WITH_RULE_RULE 5 /* composition rule follow */ | |
| 270 | |
| 271 /* 1 iff composing. */ | |
| 272 #define COMPOSING_P(composing) (composing) | |
| 273 /* 1 iff 1st char of composing element follows. */ | |
| 274 #define COMPOSING_HEAD_P(composing) \ | |
| 275 ((composing) && (composing) <= COMPOSING_NO_RULE_HEAD) | |
| 276 /* 1 iff composing with embeded composition rule. */ | |
| 277 #define COMPOSING_WITH_RULE_P(composing) ((composing) & 1) | |
| 278 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
279 /* Macros used for the member finish_status of the struct |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
280 coding_system. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
281 #define CODING_FINISH_NORMAL 0 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
282 #define CODING_FINISH_INSUFFICIENT_SRC 1 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
283 #define CODING_FINISH_INSUFFICIENT_DST 2 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
284 #define CODING_FINISH_INCONSISTENT_EOL 3 |
|
23278
bad51ca51df3
(CODING_FINISH_INTERRUPT): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22978
diff
changeset
|
285 #define CODING_FINISH_INTERRUPT 4 |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
286 |
| 21031 | 287 /* Macros used for the member `mode' of the struct coding_system. */ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
288 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
289 /* If set, recover the original CR or LF of the already decoded text |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
290 when the decoding routine encounters an inconsistent eol format. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
291 #define CODING_MODE_INHIBIT_INCONSISTENT_EOL 0x01 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
292 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
293 /* If set, the decoding/encoding routines treat the current data as |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
294 the last block of the whole text to be converted, and do |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
295 appropriate fisishing job. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
296 #define CODING_MODE_LAST_BLOCK 0x02 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
297 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
298 /* If set, it means that the current source text is in a buffer which |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
299 enables selective display. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
300 #define CODING_MODE_SELECTIVE_DISPLAY 0x04 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
301 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
302 /* This flag is used by the decoding/encoding routines on the fly. If |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
303 set, it means that right-to-left text is being processed. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
304 #define CODING_MODE_DIRECTION 0x08 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
305 |
| 17052 | 306 struct coding_system |
| 307 { | |
| 308 /* Type of the coding system. */ | |
| 309 enum coding_type type; | |
| 310 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
311 /* Type of end-of-line format (LF, CRLF, or CR) of the coding system. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
312 int eol_type; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
313 |
|
20226
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
314 /* Flag bits of the coding system. The meaning of each bit is common |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
315 to all types of coding systems. */ |
|
20226
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
316 unsigned int common_flags; |
| 17052 | 317 |
| 318 /* Flag bits of the coding system. The meaning of each bit depends | |
| 319 on the type of the coding system. */ | |
| 320 unsigned int flags; | |
| 321 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
322 /* Mode bits of the coding system. See the comments of the macros |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
323 CODING_MODE_XXX. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
324 unsigned int mode; |
| 17052 | 325 |
|
20149
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
326 /* Table of safe character sets for this coding system. If the Nth |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
327 element is 0, the charset of ID N is not a safe character set. |
|
20149
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
328 Such a character set is not encoded when CODING_ISO_FLAG_SAFE is |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
329 set. */ |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
330 unsigned char safe_charsets[MAX_CHARSET + 1]; |
|
b804a783ceec
(struct iso2022_spec): New member
Kenichi Handa <handa@m17n.org>
parents:
19689
diff
changeset
|
331 |
| 17052 | 332 /* Non-zero means that characters are being composed currently while |
| 333 decoding or encoding. See macros COMPOSING_XXXX above for the | |
| 334 meaing of each non-zero value. */ | |
| 335 int composing; | |
| 336 | |
| 337 /* Detailed information specific to each type of coding system. */ | |
| 338 union spec | |
| 339 { | |
| 340 struct iso2022_spec iso2022; | |
| 341 struct ccl_spec ccl; /* Defined in ccl.h. */ | |
| 342 } spec; | |
| 343 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
344 /* Index number of coding category of the coding system. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
345 int category_idx; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
346 |
|
21320
278c256defc6
(struct coding_system): Comment for the member
Kenichi Handa <handa@m17n.org>
parents:
21051
diff
changeset
|
347 /* How may heading bytes we can skip for decoding. This is set to |
|
278c256defc6
(struct coding_system): Comment for the member
Kenichi Handa <handa@m17n.org>
parents:
21051
diff
changeset
|
348 -1 in setup_coding_system, and updated by detect_coding. So, |
|
278c256defc6
(struct coding_system): Comment for the member
Kenichi Handa <handa@m17n.org>
parents:
21051
diff
changeset
|
349 when this is equal to the byte length of the text being |
|
278c256defc6
(struct coding_system): Comment for the member
Kenichi Handa <handa@m17n.org>
parents:
21051
diff
changeset
|
350 converted, we can skip the actual conversion process. */ |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
351 int heading_ascii; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
352 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
353 /* The following members are set by encoding/decoding routine. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
354 int produced, produced_char, consumed, consumed_char; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
355 |
|
20930
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
356 /* Encoding routines set this to 1 when they produce a byte sequence |
|
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
357 which can be parsed as a multibyte character. Decoding routines |
|
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
358 set this to 1 when they encounter an invalid code and, as the |
|
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
359 result, produce an unexpected multibyte character. */ |
|
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
360 int fake_multibyte; |
|
1331679fe704
(struct coding_system): New member fake_multibyte.
Kenichi Handa <handa@m17n.org>
parents:
20717
diff
changeset
|
361 |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
362 /* The following members are all Lisp symbols. We don't have to |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
363 protect them from GC because the current garbage collection |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
364 doesn't relocate Lisp symbols. But, when it is changed, we must |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
365 find a way to protect them. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
366 |
| 17052 | 367 /* Backward pointer to the Lisp symbol of the coding system. */ |
| 368 Lisp_Object symbol; | |
| 369 | |
| 370 /* Lisp function (symbol) to be called after decoding to do | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
371 additional conversion, or nil. */ |
| 17052 | 372 Lisp_Object post_read_conversion; |
| 373 | |
| 374 /* Lisp function (symbol) to be called before encoding to do | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
375 additional conversion, or nil. */ |
| 17052 | 376 Lisp_Object pre_write_conversion; |
| 377 | |
|
22118
42e2ffa98618
Change terms unify/unification to
Kenichi Handa <handa@m17n.org>
parents:
21901
diff
changeset
|
378 /* Character translation tables to look up, or nil. */ |
|
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22118
diff
changeset
|
379 Lisp_Object translation_table_for_decode; |
|
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22118
diff
changeset
|
380 Lisp_Object translation_table_for_encode; |
| 17052 | 381 }; |
| 382 | |
|
20226
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
383 #define CODING_REQUIRE_FLUSHING_MASK 1 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
384 #define CODING_REQUIRE_DECODING_MASK 2 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
385 #define CODING_REQUIRE_ENCODING_MASK 4 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
386 #define CODING_REQUIRE_DETECTION_MASK 8 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
387 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
388 /* Return 1 if the coding system CODING requires specific code to be |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
389 attached at the tail of converted text. */ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
390 #define CODING_REQUIRE_FLUSHING(coding) \ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
391 ((coding)->common_flags & CODING_REQUIRE_FLUSHING_MASK) |
| 17052 | 392 |
|
20226
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
393 /* Return 1 if the coding system CODING requires code conversion on |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
394 decoding. */ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
395 #define CODING_REQUIRE_DECODING(coding) \ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
396 ((coding)->common_flags & CODING_REQUIRE_DECODING_MASK) |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
397 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
398 /* Return 1 if the coding system CODING requires code conversion on |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
399 encoding. */ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
400 #define CODING_REQUIRE_ENCODING(coding) \ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
401 ((coding)->common_flags & CODING_REQUIRE_ENCODING_MASK) |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
402 |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
403 /* Return 1 if the coding system CODING requires some kind of code |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
404 detection. */ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
405 #define CODING_REQUIRE_DETECTION(coding) \ |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
406 ((coding)->common_flags & CODING_REQUIRE_DETECTION_MASK) |
|
549826cf2952
(struct coding_system): Add member common_flags, delete
Kenichi Handa <handa@m17n.org>
parents:
20149
diff
changeset
|
407 |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
408 #define CODING_MAY_REQUIRE_DECODING(coding) \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
409 ((coding)->common_flags \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
410 & (CODING_REQUIRE_DETECTION_MASK | CODING_REQUIRE_DECODING_MASK)) |
| 17052 | 411 |
| 412 /* Index for each coding category in `coding_category_table' */ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
413 #define CODING_CATEGORY_IDX_EMACS_MULE 0 |
| 17052 | 414 #define CODING_CATEGORY_IDX_SJIS 1 |
| 415 #define CODING_CATEGORY_IDX_ISO_7 2 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
416 #define CODING_CATEGORY_IDX_ISO_7_TIGHT 3 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
417 #define CODING_CATEGORY_IDX_ISO_8_1 4 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
418 #define CODING_CATEGORY_IDX_ISO_8_2 5 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
419 #define CODING_CATEGORY_IDX_ISO_7_ELSE 6 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
420 #define CODING_CATEGORY_IDX_ISO_8_ELSE 7 |
|
22873
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
421 #define CODING_CATEGORY_IDX_CCL 8 |
|
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
422 #define CODING_CATEGORY_IDX_BIG5 9 |
|
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
423 #define CODING_CATEGORY_IDX_RAW_TEXT 10 |
|
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
424 #define CODING_CATEGORY_IDX_BINARY 11 |
|
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
425 #define CODING_CATEGORY_IDX_MAX 12 |
| 17052 | 426 |
| 427 /* Definitions of flag bits returned by the function | |
| 428 detect_coding_mask (). */ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
429 #define CODING_CATEGORY_MASK_EMACS_MULE (1 << CODING_CATEGORY_IDX_EMACS_MULE) |
| 17052 | 430 #define CODING_CATEGORY_MASK_SJIS (1 << CODING_CATEGORY_IDX_SJIS) |
| 431 #define CODING_CATEGORY_MASK_ISO_7 (1 << CODING_CATEGORY_IDX_ISO_7) | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
432 #define CODING_CATEGORY_MASK_ISO_7_TIGHT (1 << CODING_CATEGORY_IDX_ISO_7_TIGHT) |
| 17052 | 433 #define CODING_CATEGORY_MASK_ISO_8_1 (1 << CODING_CATEGORY_IDX_ISO_8_1) |
| 434 #define CODING_CATEGORY_MASK_ISO_8_2 (1 << CODING_CATEGORY_IDX_ISO_8_2) | |
|
18786
e44570b2a6a0
(CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
Kenichi Handa <handa@m17n.org>
parents:
18649
diff
changeset
|
435 #define CODING_CATEGORY_MASK_ISO_7_ELSE (1 << CODING_CATEGORY_IDX_ISO_7_ELSE) |
|
e44570b2a6a0
(CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
Kenichi Handa <handa@m17n.org>
parents:
18649
diff
changeset
|
436 #define CODING_CATEGORY_MASK_ISO_8_ELSE (1 << CODING_CATEGORY_IDX_ISO_8_ELSE) |
|
22873
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
437 #define CODING_CATEGORY_MASK_CCL (1 << CODING_CATEGORY_IDX_CCL) |
|
19689
08b92fab92af
Minor reordering of macros.
Richard M. Stallman <rms@gnu.org>
parents:
19611
diff
changeset
|
438 #define CODING_CATEGORY_MASK_BIG5 (1 << CODING_CATEGORY_IDX_BIG5) |
|
19611
79c3bdba351b
(coding_type): New member coding_type_raw_text.
Kenichi Handa <handa@m17n.org>
parents:
19364
diff
changeset
|
439 #define CODING_CATEGORY_MASK_RAW_TEXT (1 << CODING_CATEGORY_IDX_RAW_TEXT) |
|
19096
0724276f0e01
(CODING_CATEGORY_MASK_BINARY): New macro.
Kenichi Handa <handa@m17n.org>
parents:
18975
diff
changeset
|
440 #define CODING_CATEGORY_MASK_BINARY (1 << CODING_CATEGORY_IDX_BINARY) |
| 17052 | 441 |
| 442 /* This value is returned if detect_coding_mask () find nothing other | |
| 443 than ASCII characters. */ | |
| 444 #define CODING_CATEGORY_MASK_ANY \ | |
|
17835
f36ffb6f1208
Name change through the code:
Kenichi Handa <handa@m17n.org>
parents:
17724
diff
changeset
|
445 ( CODING_CATEGORY_MASK_EMACS_MULE \ |
| 17052 | 446 | CODING_CATEGORY_MASK_SJIS \ |
| 447 | CODING_CATEGORY_MASK_ISO_7 \ | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
448 | CODING_CATEGORY_MASK_ISO_7_TIGHT \ |
| 17052 | 449 | CODING_CATEGORY_MASK_ISO_8_1 \ |
| 450 | CODING_CATEGORY_MASK_ISO_8_2 \ | |
|
18786
e44570b2a6a0
(CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
Kenichi Handa <handa@m17n.org>
parents:
18649
diff
changeset
|
451 | CODING_CATEGORY_MASK_ISO_7_ELSE \ |
|
e44570b2a6a0
(CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
Kenichi Handa <handa@m17n.org>
parents:
18649
diff
changeset
|
452 | CODING_CATEGORY_MASK_ISO_8_ELSE \ |
|
22873
79b98ccffdfc
(CODING_CATEGORY_IDX_CCL): New macro.
Kenichi Handa <handa@m17n.org>
parents:
22620
diff
changeset
|
453 | CODING_CATEGORY_MASK_CCL \ |
| 17052 | 454 | CODING_CATEGORY_MASK_BIG5) |
| 455 | |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
456 #define CODING_CATEGORY_MASK_ISO_7BIT \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
457 (CODING_CATEGORY_MASK_ISO_7 | CODING_CATEGORY_MASK_ISO_7_TIGHT) |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
458 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
459 #define CODING_CATEGORY_MASK_ISO_8BIT \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
460 (CODING_CATEGORY_MASK_ISO_8_1 | CODING_CATEGORY_MASK_ISO_8_2) |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
461 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
462 #define CODING_CATEGORY_MASK_ISO_SHIFT \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
463 (CODING_CATEGORY_MASK_ISO_7_ELSE | CODING_CATEGORY_MASK_ISO_8_ELSE) |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
464 |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
465 #define CODING_CATEGORY_MASK_ISO \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
466 ( CODING_CATEGORY_MASK_ISO_7BIT \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
467 | CODING_CATEGORY_MASK_ISO_SHIFT \ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
468 | CODING_CATEGORY_MASK_ISO_8BIT) |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
469 |
| 17052 | 470 /* Macros to decode or encode a character of JISX0208 in SJIS. S1 and |
| 471 S2 are the 1st and 2nd position-codes of JISX0208 in SJIS coding | |
| 472 system. C1 and C2 are the 1st and 2nd position codes of Emacs' | |
| 473 internal format. */ | |
| 474 | |
| 475 #define DECODE_SJIS(s1, s2, c1, c2) \ | |
| 476 do { \ | |
| 477 if (s2 >= 0x9F) \ | |
| 478 c1 = s1 * 2 - (s1 >= 0xE0 ? 0x160 : 0xE0), \ | |
| 479 c2 = s2 - 0x7E; \ | |
| 480 else \ | |
| 481 c1 = s1 * 2 - ((s1 >= 0xE0) ? 0x161 : 0xE1), \ | |
| 482 c2 = s2 - ((s2 >= 0x7F) ? 0x20 : 0x1F); \ | |
| 483 } while (0) | |
| 484 | |
| 485 #define ENCODE_SJIS(c1, c2, s1, s2) \ | |
| 486 do { \ | |
| 487 if (c1 & 1) \ | |
| 488 s1 = c1 / 2 + ((c1 < 0x5F) ? 0x71 : 0xB1), \ | |
| 489 s2 = c2 + ((c2 >= 0x60) ? 0x20 : 0x1F); \ | |
| 490 else \ | |
| 491 s1 = c1 / 2 + ((c1 < 0x5F) ? 0x70 : 0xB0), \ | |
| 492 s2 = c2 + 0x7E; \ | |
| 493 } while (0) | |
| 494 | |
|
21051
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
495 /* Encode the file name NAME using the specified coding system |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
496 for file names, if any. */ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
497 #define ENCODE_FILE(name) \ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
498 (! NILP (Vfile_name_coding_system) \ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
499 && XFASTINT (Vfile_name_coding_system) != 0 \ |
| 22342 | 500 ? code_convert_string_norecord (name, Vfile_name_coding_system, 1) \ |
|
21051
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
501 : (! NILP (Vdefault_file_name_coding_system) \ |
| 22342 | 502 && XFASTINT (Vdefault_file_name_coding_system) != 0 \ |
| 503 ? code_convert_string_norecord (name, Vdefault_file_name_coding_system, 1) \ | |
|
21051
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
504 : name)) |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
505 |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
506 /* Decode the file name NAME using the specified coding system |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
507 for file names, if any. */ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
508 #define DECODE_FILE(name) \ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
509 (! NILP (Vfile_name_coding_system) \ |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
510 && XFASTINT (Vfile_name_coding_system) != 0 \ |
| 22342 | 511 ? code_convert_string_norecord (name, Vfile_name_coding_system, 0) \ |
|
21051
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
512 : (! NILP (Vdefault_file_name_coding_system) \ |
| 22342 | 513 && XFASTINT (Vdefault_file_name_coding_system) != 0 \ |
| 514 ? code_convert_string_norecord (name, Vdefault_file_name_coding_system, 0) \ | |
|
21051
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
515 : name)) |
|
b5844e2bf088
(ENCODE_FILE): Moved from fileio.c. Use
Kenichi Handa <handa@m17n.org>
parents:
21031
diff
changeset
|
516 |
| 17052 | 517 /* Extern declarations. */ |
|
20308
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
518 extern int decode_coding P_ ((struct coding_system *, unsigned char *, |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
519 unsigned char *, int, int)); |
|
20308
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
520 extern int encode_coding P_ ((struct coding_system *, unsigned char *, |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
521 unsigned char *, int, int)); |
| 21515 | 522 extern int code_convert_region P_ ((int, int, int, int, struct coding_system *, |
| 523 int, int)); | |
|
20308
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
524 extern int decoding_buffer_size P_ ((struct coding_system *, int)); |
|
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
525 extern int encoding_buffer_size P_ ((struct coding_system *, int)); |
|
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
526 extern void detect_coding P_ ((struct coding_system *, unsigned char *, int)); |
|
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
527 extern void detect_eol P_ ((struct coding_system *, unsigned char *, int)); |
| 17052 | 528 extern int conversion_buffer_size; |
|
20308
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
529 extern char *conversion_buffer; |
|
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
530 extern char *get_conversion_buffer P_ ((int)); |
|
8d520e3dcb86
Add more prototypes and function declarations.
Andreas Schwab <schwab@suse.de>
parents:
20226
diff
changeset
|
531 extern int setup_coding_system P_ ((Lisp_Object, struct coding_system *)); |
|
22615
bad8b17b0524
(setup_raw_text_coding_system): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
22342
diff
changeset
|
532 extern void setup_raw_text_coding_system P_ ((struct coding_system *)); |
| 17052 | 533 extern Lisp_Object Qcoding_system, Qeol_type, Qcoding_category_index; |
| 22620 | 534 extern Lisp_Object Qraw_text, Qemacs_mule; |
| 17052 | 535 extern Lisp_Object Qbuffer_file_coding_system; |
| 536 extern Lisp_Object Vcoding_category_list; | |
| 537 | |
|
22186
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22118
diff
changeset
|
538 extern Lisp_Object Qtranslation_table; |
|
fc4aaf1b1772
Change term "character translation table" to "translation table".
Kenichi Handa <handa@m17n.org>
parents:
22118
diff
changeset
|
539 extern Lisp_Object Qtranslation_table_id; |
|
22118
42e2ffa98618
Change terms unify/unification to
Kenichi Handa <handa@m17n.org>
parents:
21901
diff
changeset
|
540 |
| 17052 | 541 /* Mnemonic character to indicate each type of end-of-line. */ |
| 542 extern int eol_mnemonic_unix, eol_mnemonic_dos, eol_mnemonic_mac; | |
| 543 /* Mnemonic character to indicate type of end-of-line is not yet decided. */ | |
| 544 extern int eol_mnemonic_undecided; | |
| 545 | |
| 546 #ifdef emacs | |
| 547 extern Lisp_Object Qfile_coding_system; | |
| 548 extern Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument; | |
| 549 extern Lisp_Object Qstart_process, Qopen_network_stream; | |
| 550 | |
| 551 /* Coding-system for reading files and receiving data from process. */ | |
| 552 extern Lisp_Object Vcoding_system_for_read; | |
| 553 /* Coding-system for writing files and sending data to process. */ | |
| 554 extern Lisp_Object Vcoding_system_for_write; | |
| 555 /* Coding-system actually used in the latest I/O. */ | |
| 556 extern Lisp_Object Vlast_coding_system_used; | |
| 557 | |
|
21573
92b33933ceeb
Declare inherit-process-coding-system.
Eli Zaretskii <eliz@gnu.org>
parents:
21515
diff
changeset
|
558 /* If non-zero, process buffer inherits the coding system used to decode |
|
92b33933ceeb
Declare inherit-process-coding-system.
Eli Zaretskii <eliz@gnu.org>
parents:
21515
diff
changeset
|
559 the subprocess output. */ |
|
92b33933ceeb
Declare inherit-process-coding-system.
Eli Zaretskii <eliz@gnu.org>
parents:
21515
diff
changeset
|
560 extern int inherit_process_coding_system; |
|
92b33933ceeb
Declare inherit-process-coding-system.
Eli Zaretskii <eliz@gnu.org>
parents:
21515
diff
changeset
|
561 |
| 17052 | 562 /* Coding-system to be used for encoding terminal output. This |
| 563 structure contains information of a coding-system specified by the | |
| 564 function `set-terminal-coding-system'. */ | |
| 565 extern struct coding_system terminal_coding; | |
| 566 | |
|
19279
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
567 /* Coding system to be used to encode text for terminal display when |
|
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
568 terminal coding system is nil. */ |
|
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
569 extern struct coding_system safe_terminal_coding; |
|
3217a3ba8ef7
(CODING_FLAG_ISO_SAFE): New macro.
Kenichi Handa <handa@m17n.org>
parents:
19096
diff
changeset
|
570 |
| 17052 | 571 /* Coding-system of what is sent from terminal keyboard. This |
| 572 structure contains information of a coding-system specified by the | |
| 573 function `set-keyboard-coding-system'. */ | |
| 574 extern struct coding_system keyboard_coding; | |
| 575 | |
|
22978
6535413fa872
(default_buffer_file_coding): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
22873
diff
changeset
|
576 /* Default coding system to be used to write a file. */ |
|
6535413fa872
(default_buffer_file_coding): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
22873
diff
changeset
|
577 extern struct coding_system default_buffer_file_coding; |
|
6535413fa872
(default_buffer_file_coding): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
22873
diff
changeset
|
578 |
|
18181
1d91f0e4ff7d
(Vdefault_process_coding_system): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
18001
diff
changeset
|
579 /* Default coding systems used for process I/O. */ |
|
1d91f0e4ff7d
(Vdefault_process_coding_system): Extern it.
Kenichi Handa <handa@m17n.org>
parents:
18001
diff
changeset
|
580 extern Lisp_Object Vdefault_process_coding_system; |
| 17052 | 581 |
|
20717
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
582 /* Function to call to force a user to force select a propert coding |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
583 system. */ |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
584 extern Lisp_Object Vselect_safe_coding_system_function; |
|
19463997fbc6
(CODING_FLAG_ISO_DESIGNATION): New macro.
Kenichi Handa <handa@m17n.org>
parents:
20308
diff
changeset
|
585 |
|
21901
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
586 /* Coding system for file names, or nil if none. */ |
|
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
587 extern Lisp_Object Vfile_name_coding_system; |
|
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
588 |
|
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
589 /* Coding system for file names used only when |
|
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
590 Vfile_name_coding_system is nil. */ |
|
1b46a79d86e3
(Vfile_name_coding_system)
Richard M. Stallman <rms@gnu.org>
parents:
21573
diff
changeset
|
591 extern Lisp_Object Vdefault_file_name_coding_system; |
| 17052 | 592 #endif |
| 593 | |
| 594 #endif /* _CODING_H */ |
