Mercurial > emacs
comparison src/coding.h @ 102423:f23ca4ed51bd
Include "composite.h".
(enum compisition_state): New enum.
(struct compisition_status): New struct.
(struct iso_2022_spec): New member cmp_status.
(struct emacs_mule_spec): New struct.
(struct coding_system): New members ctext_extended_segment_len and
embedded_utf_8. Change the union member
spec.emacs_mule_full_support to spec.emacs_mule.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 06 Mar 2009 07:52:06 +0000 |
parents | a12d39ca6870 |
children | 578826d532dc |
comparison
equal
deleted
inserted
replaced
102422:82f82b92314e | 102423:f23ca4ed51bd |
---|---|
304 | 304 |
305 /* If set, it means that the encoding routines produces some safe | 305 /* If set, it means that the encoding routines produces some safe |
306 ASCII characters (usually '?') for unsupported characters. */ | 306 ASCII characters (usually '?') for unsupported characters. */ |
307 #define CODING_MODE_SAFE_ENCODING 0x20 | 307 #define CODING_MODE_SAFE_ENCODING 0x20 |
308 | 308 |
309 /* For handling composition sequence. */ | |
310 #include "composite.h" | |
311 | |
312 enum composition_state | |
313 { | |
314 COMPOSING_NO, | |
315 COMPOSING_CHAR, | |
316 COMPOSING_RULE, | |
317 COMPOSING_COMPONENT_CHAR, | |
318 COMPOSING_COMPONENT_RULE | |
319 }; | |
320 | |
321 /* Structure for the current composition status. */ | |
322 struct composition_status | |
323 { | |
324 enum composition_state state; | |
325 enum composition_method method; | |
326 int old_form; /* 0:pre-21 form, 1:post-21 form */ | |
327 int length; /* number of elements produced in charbuf */ | |
328 int nchars; /* number of characters composed */ | |
329 int ncomps; /* number of composition components */ | |
330 /* Maximum carryover is for the case of COMPOSITION_WITH_RULE_ALTCHARS. | |
331 See the comment in coding.c. */ | |
332 int carryover[4 /* annotation header */ | |
333 + MAX_COMPOSITION_COMPONENTS * 3 - 2 /* ALTs and RULEs */ | |
334 + 2 /* intermediate -1 -1 */ | |
335 + MAX_COMPOSITION_COMPONENTS /* CHARs */ | |
336 ]; | |
337 }; | |
338 | |
339 | |
309 /* Structure of the field `spec.iso_2022' in the structure | 340 /* Structure of the field `spec.iso_2022' in the structure |
310 `coding_system'. */ | 341 `coding_system'. */ |
311 struct iso_2022_spec | 342 struct iso_2022_spec |
312 { | 343 { |
313 /* Bit-wise-or of CODING_ISO_FLAG_XXX. */ | 344 /* Bit-wise-or of CODING_ISO_FLAG_XXX. */ |
325 by single-shift while encoding. */ | 356 by single-shift while encoding. */ |
326 int single_shifting; | 357 int single_shifting; |
327 | 358 |
328 /* Set to 1 temporarily only when processing at beginning of line. */ | 359 /* Set to 1 temporarily only when processing at beginning of line. */ |
329 int bol; | 360 int bol; |
361 | |
362 /* If positive, we are now scanning CTEXT extended segment. */ | |
363 int ctext_extended_segment_len; | |
364 | |
365 /* If nonzero, we are now scanning embedded UTF-8 sequence. */ | |
366 int embedded_utf_8; | |
367 | |
368 /* The current composition. */ | |
369 struct composition_status cmp_status; | |
370 }; | |
371 | |
372 struct emacs_mule_spec | |
373 { | |
374 int full_support; | |
375 struct composition_status cmp_status; | |
330 }; | 376 }; |
331 | 377 |
332 struct ccl_spec; | 378 struct ccl_spec; |
333 | 379 |
334 enum utf_bom_type | 380 enum utf_bom_type |
385 { | 431 { |
386 struct iso_2022_spec iso_2022; | 432 struct iso_2022_spec iso_2022; |
387 struct ccl_spec *ccl; /* Defined in ccl.h. */ | 433 struct ccl_spec *ccl; /* Defined in ccl.h. */ |
388 struct utf_16_spec utf_16; | 434 struct utf_16_spec utf_16; |
389 enum utf_bom_type utf_8_bom; | 435 enum utf_bom_type utf_8_bom; |
390 int emacs_mule_full_support; | 436 struct emacs_mule_spec emacs_mule; |
391 } spec; | 437 } spec; |
392 | 438 |
393 int max_charset_id; | 439 int max_charset_id; |
394 unsigned char *safe_charsets; | 440 unsigned char *safe_charsets; |
395 | 441 |