source and destination are the same correctly.
(decode_coding_raw_text): Set coding->consumed_char and
coding->consumed to 0.
(produce_chars): If coding->chars_at_source is nonzero, update
coding->consumed_char and coding->consumed before calling
alloc_destination.
(Fdefine_coding_system_alias): Register ALIAS in
Vcoding_system_alist.
(syms_of_coding): Define `no-convesion' coding system at the tail.
(load_charset_map): Renamed from parse_charset_map. New args
entries and n_entries. Caller changed.
(load_charset_map_from_file): Renamed from load_charset_map.
Caller changed. New arg control_flag. Call load_charset_map at
the tail.
(load_charset_map_from_vector): New function.
(Fdefine_charset_internal): Setup charset.compact_codes_p.
(encode_char): If the charset is compact, change a character index
to a code point.
(decode_coding_utf_16): Fix converting high and low bytes to
code-point.
(encode_coding_utf_16): Substitute coding->default_char for
non-Unicode characters.
(decode_coding): Don't call record_insert here.
(setup_coding_system): Initialize `surrogate' of
coding->spec.utf_16 to 0.
(EMIT_ONE_BYTE): Fix for multibyte case.
(x_encode_char): New argument CHARSET. Caller changed.
(x_get_char_face_and_encoding): Call ENCODE_CHAR instead of
SPLIT_CHAR.
(x_get_glyph_face_and_encoding): Likewise.
(x_produce_glyphs): Don't check Vnonascii_translation_table Call
CHAR_WIDTH instead of CHARSET_WIDTH.
(XTread_socket): Adjusted for the new code-conversion API.
(x_new_font): Adjusted for the change of FS_LOAD_FONT.
(x_load_font): Adjusted for the change of struct font.
(load_face_font): Adjusted for the change of choose_face_font and
FS_LOAD_FONT.
(generate_ascii_font): New function.
(set_lface_from_font_name): Adjusted for the change of
FS_LOAD_FONT.
(set_font_frame_param): Adjusted for the change of
choose_face_font.
(free_realized_face): Make it public.
(free_realized_faces_for_fontset): Renamed from
free_realized_multibyte_face. Free also faces realized for ASCII.
(choose_face_font): Argments changed. Adjusted for the change of
fontset_font_pattern and FS_LOAD_FONT.
(get_next_display_element): Adjusted for the new multibyte form.
(disp_char_vector): Adjusted for the new char table structure.
(decode_mode_spec_coding): Adjusted for the new structure of
coding system.
(decode_mode_spec): Adjusted for the new code-conversion API.
(encode_terminal_code): Adjusted for the new code-conversion API.
(write_glyphs): Likewise.
(produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH.
(syntax_parent_lookup): Deleted.
(Fmodify_syntax_entry): Accept a cons as CHAR.
(skip_chars): Adjusted for the new multibyte form.
(init_syntax_once): Call char_table_set_range instead of directly
accessing the structure of a char table.
(BYTE8_TO_CHAR, CHAR_BYTE8_P) [not emacs]: New dummy macros.
(regex_compile): Accept a range whose starting and ending
character have different leading bytes.
(analyse_first): Adjusted for the above change.
(print_string): Convert 8-bit raw bytes to octal form by
string_escape_byte8.
(print_object): Adjusted for the new multibyte form. Print 8-bit
raw bytes always in octal form. Handle sub char table correctly.
(read_multibyte): New arg NBYTES.
(read_escape): The meaning of returned *BYTEREP changed.
(to_multibyte): Deleted.
(read1): Adjuted the handling of char table and string.
(store_in_keymap): Handle the case that IDX is a cons.
(Fdefine_key): Handle the case that KEY is a cons and the car part
is also a cons (range).
(push_key_description): Adjusted for the new character code.
(describe_vector): Call describe_char_table for a char table.
(describe_char_table): New function.
(command_loop_1): Never call direct_output_forward_char before
a non-ASCII character.
(read_char): If Vkeyboard_translate_table is a char table, always
translated a character.