• Kenichi Handa's avatar
    Vselect_safe_coding_system_function): New variable. · d46c5b12
    Kenichi Handa authored
    (coding_category_table): This variable deleted.
    (Vcoding_category_table): New variable.
    (coding_category_name): Add "coding-category-iso-7-tight".
    (detect_coding_iso2022): Check the mask
    CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Check a new coding
    category coding-category-iso-7-tight.
    (DECODE_DESIGNATION): Decode only such designations that CODING
    can handle.
    (check_composing_code): New function.
    (decode_coding_iso2022): Decode only such characters that CODING
    can handle.
    (encode_coding_iso2022): Before and after encoding composite
    characters, reset designation and invocation status.
    (detect_coding_sjis): Delete unnecessary check.
    (detect_coding_big5): Likewise.
    (encode_designation_at_bol): Check the validity of requested
    designation register.
    (setup_coding_system): Set requested designation registers for
    non-supported charsets to
    CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION.  Set mask
    CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Code tuned for
    no-conversion and undecided.
    (detect_coding): Adjusted for the new variable
    Vcoding_category_table.
    (syms_of_coding): Initialize Vcoding_category_table and staticpro
    it.  Register select-safe-coding-system as a Lisp variable.
    
    (DECODE_CHARACTER_ASCII): Update coding->produced_char;
    (DECODE_CHARACTER_DIMENSION1): Likewise.
    (Qraw_text, Qcoding_category): New variables.
    (syms_of_coding): Intern and staticpro them.
    (coding_system_table): New variable.
    (CHARSET_OK, SHIFT_OUT_OK): New macros.
    (detect_coding_iso2022): Detection algorithm improved.
    (decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
    return value changed.  Update members produced, produced_char,
    consumed, consumed_char of the struct *coding.  Pay attention to
    CODING_MODE_INHIBIT_INCONSISTENT_EOL.
    (encode_coding_iso2022): Likewise.
    (decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
    (decode_eol, encode_eol): Likewise.
    (ENCODE_ISO_CHARACTER): Update coding->consumed_char.
    (DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
    (ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
    (detect_coding(detect_coding(detect_ITIES and SKIP.
    (detect_coding): Adjusted for the change of detect_coding_mask.
    Update coding->heading_ascii.
    (detect_eol_type): New arg SKIP.
    (detect_eol): Adjusted for the change of detect_eol_type.
    (ccl_codign_driver): New function.
    (decode_coding): Arg CONSUMED deleted, and the meaning of return
    value changed.  Update members produced, produced_char, consumed,
    consumed_char of the struct *coding.
    (encode_coding): Likewise.
    (shrink_decoding_region, shrink_encoding_region): New function.
    (code_convert_region, code_convert_string): Completely rewritten.
    (detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_coding_sy(detect_codiT.
    (Fdetect_coding_string): New function.
    (Fdecode_coding_region, Fencode_coding_region): Adjusted for the
    change of code_convert_region.
    (Fdecode_coding_string, Fencode_coding_string): Adjusted for the
    change of code_convert_string.
    (Fupdate_iso_coding_systems): New function.
    (init_coding_once): Initialize coding_system_table.
    d46c5b12
coding.c 159 KB