comparison src/coding.h @ 19611:79c3bdba351b

(coding_type): New member coding_type_raw_text. (CODING_EOL_INCONSISTENT): New macro. (CODING_REQUIRE_NO_CONVERSION): Check also coding_type_raw_text. (CODING_MAY_REQUIRE_NO_CONVERSION): Likewise. (CODING_CATEGORY_IDX_RAW_TEXT): New macro. (CODING_CATEGORY_MASK_RAW_TEXT): New macro.
author Kenichi Handa <handa@m17n.org>
date Thu, 28 Aug 1997 10:51:12 +0000
parents 7182edce9028
children 08b92fab92af
comparison
equal deleted inserted replaced
19610:3bbf4dd908a5 19611:79c3bdba351b
232 coding system. */ 232 coding system. */
233 coding_type_sjis, /* SJIS coding system for Japanese. */ 233 coding_type_sjis, /* SJIS coding system for Japanese. */
234 coding_type_iso2022, /* Any coding system of ISO2022 234 coding_type_iso2022, /* Any coding system of ISO2022
235 variants. */ 235 variants. */
236 coding_type_big5, /* BIG5 coding system for Chinese. */ 236 coding_type_big5, /* BIG5 coding system for Chinese. */
237 coding_type_ccl /* The coding system of which decoder 237 coding_type_ccl, /* The coding system of which decoder
238 and encoder are written in CCL. */ 238 and encoder are written in CCL. */
239 coding_type_raw_text /* A coding system for a text
240 containing ramdom 8-bit code which
241 does not require code conversion
242 except for end-of-line format. */
239 }; 243 };
240 244
241 /* Formats of end-of-line. */ 245 /* Formats of end-of-line. */
242 #define CODING_EOL_LF 0 /* Line-feed only, same as Emacs' 246 #define CODING_EOL_LF 0 /* Line-feed only, same as Emacs'
243 internal format. */ 247 internal format. */
244 #define CODING_EOL_CRLF 1 /* Sequence of carriage-return and 248 #define CODING_EOL_CRLF 1 /* Sequence of carriage-return and
245 line-feed. */ 249 line-feed. */
246 #define CODING_EOL_CR 2 /* Carriage-return only. */ 250 #define CODING_EOL_CR 2 /* Carriage-return only. */
247 #define CODING_EOL_UNDECIDED 3 /* This value is used to denote the 251 #define CODING_EOL_UNDECIDED 3 /* This value is used to denote the
248 eol-type is not yet decided. */ 252 eol-type is not yet decided. */
253 #define CODING_EOL_INCONSISTENT 4 /* This value is used to denote the
254 eol-type is not consistent
255 through the file. */
249 256
250 /* Character composition status while encoding/decoding. */ 257 /* Character composition status while encoding/decoding. */
251 #define COMPOSING_NO 0 /* not composing */ 258 #define COMPOSING_NO 0 /* not composing */
252 #define COMPOSING_WITH_RULE_HEAD 1 /* 1st char of with-rule composing follow */ 259 #define COMPOSING_WITH_RULE_HEAD 1 /* 1st char of with-rule composing follow */
253 #define COMPOSING_NO_RULE_HEAD 2 /* 1st char of no-rule composing follow */ 260 #define COMPOSING_NO_RULE_HEAD 2 /* 1st char of no-rule composing follow */
328 int carryover_size; 335 int carryover_size;
329 }; 336 };
330 337
331 /* Return 1 if coding system CODING never requires any code conversion. */ 338 /* Return 1 if coding system CODING never requires any code conversion. */
332 #define CODING_REQUIRE_NO_CONVERSION(coding) \ 339 #define CODING_REQUIRE_NO_CONVERSION(coding) \
333 (((coding)->type == coding_type_no_conversion \ 340 ((coding)->type == coding_type_no_conversion \
334 || (coding)->type == coding_type_emacs_mule) \ 341 || (((coding)->type == coding_type_emacs_mule \
335 && (coding)->eol_type == CODING_EOL_LF) 342 || (coding)->type == coding_type_raw_text) \
343 && (coding)->eol_type == CODING_EOL_LF))
336 344
337 /* Return 1 if coding system CODING may not require code conversion. */ 345 /* Return 1 if coding system CODING may not require code conversion. */
338 #define CODING_MAY_REQUIRE_NO_CONVERSION(coding) \ 346 #define CODING_MAY_REQUIRE_NO_CONVERSION(coding) \
339 (((coding)->type == coding_type_no_conversion \ 347 ((coding)->type == coding_type_no_conversion \
340 || (coding)->type == coding_type_emacs_mule \ 348 || (((coding)->type == coding_type_emacs_mule \
341 || (coding)->type == coding_type_undecided) \ 349 || (coding)->type == coding_type_undecided \
342 && ((coding)->eol_type == CODING_EOL_LF \ 350 || (coding)->type == coding_type_raw_text) \
343 || (coding)->eol_type == CODING_EOL_UNDECIDED)) 351 && ((coding)->eol_type == CODING_EOL_LF \
352 || (coding)->eol_type == CODING_EOL_UNDECIDED)))
344 353
345 /* Index for each coding category in `coding_category_table' */ 354 /* Index for each coding category in `coding_category_table' */
346 #define CODING_CATEGORY_IDX_EMACS_MULE 0 355 #define CODING_CATEGORY_IDX_EMACS_MULE 0
347 #define CODING_CATEGORY_IDX_SJIS 1 356 #define CODING_CATEGORY_IDX_SJIS 1
348 #define CODING_CATEGORY_IDX_ISO_7 2 357 #define CODING_CATEGORY_IDX_ISO_7 2
349 #define CODING_CATEGORY_IDX_ISO_8_1 3 358 #define CODING_CATEGORY_IDX_ISO_8_1 3
350 #define CODING_CATEGORY_IDX_ISO_8_2 4 359 #define CODING_CATEGORY_IDX_ISO_8_2 4
351 #define CODING_CATEGORY_IDX_ISO_7_ELSE 5 360 #define CODING_CATEGORY_IDX_ISO_7_ELSE 5
352 #define CODING_CATEGORY_IDX_ISO_8_ELSE 6 361 #define CODING_CATEGORY_IDX_ISO_8_ELSE 6
353 #define CODING_CATEGORY_IDX_BIG5 7 362 #define CODING_CATEGORY_IDX_BIG5 7
354 #define CODING_CATEGORY_IDX_BINARY 8 363 #define CODING_CATEGORY_IDX_RAW_TEXT 8
355 #define CODING_CATEGORY_IDX_MAX 9 364 #define CODING_CATEGORY_IDX_BINARY 9
365 #define CODING_CATEGORY_IDX_MAX 10
356 366
357 /* Definitions of flag bits returned by the function 367 /* Definitions of flag bits returned by the function
358 detect_coding_mask (). */ 368 detect_coding_mask (). */
359 #define CODING_CATEGORY_MASK_EMACS_MULE (1 << CODING_CATEGORY_IDX_EMACS_MULE) 369 #define CODING_CATEGORY_MASK_EMACS_MULE (1 << CODING_CATEGORY_IDX_EMACS_MULE)
360 #define CODING_CATEGORY_MASK_SJIS (1 << CODING_CATEGORY_IDX_SJIS) 370 #define CODING_CATEGORY_MASK_SJIS (1 << CODING_CATEGORY_IDX_SJIS)
361 #define CODING_CATEGORY_MASK_ISO_7 (1 << CODING_CATEGORY_IDX_ISO_7) 371 #define CODING_CATEGORY_MASK_ISO_7 (1 << CODING_CATEGORY_IDX_ISO_7)
362 #define CODING_CATEGORY_MASK_ISO_8_1 (1 << CODING_CATEGORY_IDX_ISO_8_1) 372 #define CODING_CATEGORY_MASK_ISO_8_1 (1 << CODING_CATEGORY_IDX_ISO_8_1)
363 #define CODING_CATEGORY_MASK_ISO_8_2 (1 << CODING_CATEGORY_IDX_ISO_8_2) 373 #define CODING_CATEGORY_MASK_ISO_8_2 (1 << CODING_CATEGORY_IDX_ISO_8_2)
364 #define CODING_CATEGORY_MASK_ISO_7_ELSE (1 << CODING_CATEGORY_IDX_ISO_7_ELSE) 374 #define CODING_CATEGORY_MASK_ISO_7_ELSE (1 << CODING_CATEGORY_IDX_ISO_7_ELSE)
365 #define CODING_CATEGORY_MASK_ISO_8_ELSE (1 << CODING_CATEGORY_IDX_ISO_8_ELSE) 375 #define CODING_CATEGORY_MASK_ISO_8_ELSE (1 << CODING_CATEGORY_IDX_ISO_8_ELSE)
376 #define CODING_CATEGORY_MASK_RAW_TEXT (1 << CODING_CATEGORY_IDX_RAW_TEXT)
366 #define CODING_CATEGORY_MASK_BIG5 (1 << CODING_CATEGORY_IDX_BIG5) 377 #define CODING_CATEGORY_MASK_BIG5 (1 << CODING_CATEGORY_IDX_BIG5)
367 #define CODING_CATEGORY_MASK_BINARY (1 << CODING_CATEGORY_IDX_BINARY) 378 #define CODING_CATEGORY_MASK_BINARY (1 << CODING_CATEGORY_IDX_BINARY)
368 379
369 /* This value is returned if detect_coding_mask () find nothing other 380 /* This value is returned if detect_coding_mask () find nothing other
370 than ASCII characters. */ 381 than ASCII characters. */