2002-07-24 Kenichi Handa * lread.c: Include "coding.h". (Qget_emacs_mule_file_char, Qload_force_doc_strings, load_each_byte, unread_char): New variables. (readchar_backlog): This variable deleted. (readchar): Return a character unless load_each_byte is nonzero. Handle the case that readcharfun is Qget_emacs_mule_file_char or a cons. If unread_char is not -1, simply return it. (unreadchar): Handle the case that readcharfun is Qget_emacs_mule_file_char or a cons. Set unread_char if necessary. (read_multibyte): This function deleted. (readbyte_for_lambda, readbyte_from_file, readbyte_from_string) (read_emacs_mule_char): New functions. (Fload): Even if the file doesn't have the extention ".elc", if safe_to_load_p returns a positive version number, assume that the file contains bytecompiled code. If the version is less than 22, load the file while decoding multibyte sequences by emacs-mule. (readevalloop): Don't use readchar_backlog. (Fread): Likewise. Pay attention to the case that STREAM is a cons. (Fread_from_string): Pay attention to the case that STREAM is a cons. (read_escape): The arg BYTEREP deleted. (read1): Set load_each_byte to 1 temporarily while handling #@NUMBER. Don't call read_multibyte. (read_vector): Call Fread with a cons. If readcharfun is Qget_emacs_mule_file_char, decode the read string by emacs-mule. (read_list): If doc_reference is 2, make the cdr part string as unibyte. (syms_of_lread): Intern and staticpro Qget_emacs_mule_file_char and Qload_force_doc_strings. 2002-07-23 Kenichi Handa * xdisp.c (face_before_or_after_it_pos): Call FETCH_MULTIBYTE_CHAR with byte postion, not char position. 2002-07-22 Kenichi Handa * character.h (TRAILING_CODE_P): New macro. (MAYBE_UNIFY_CHAR): Adjusted for the change of Funify_charset. (string_char_with_unification): Fix prototype. (Vscript_alist): Extern it. * character.c (Vscript_alist): New variable. (string_char_with_unification): Add `const' to local variables. (str_as_unibyte): Likewise. (string_escape_byte8): Likewise. (syms_of_character): Declare script-alist as a Lisp variable. * charset.h (Vcharset_ordered_list): Extern it. (charset_ordered_list_tick): Extern it. (EMACS_MULE_LEADING_CODE_PRIVATE_11, EMACS_MULE_LEADING_CODE_PRIVATE_12, EMACS_MULE_LEADING_CODE_PRIVATE_21, EMACS_MULE_LEADING_CODE_PRIVATE_22): New macros (Funify_charset): Adjusted for the change of Funify_charset. * charset.c (charset_ordered_list_tick): New variable. (Fdefine_charset_internal): Increment charset_ordered_list_tick. (Funify_charset): New optional arg DEUNIFY. If it is non-nil, deunify intead of unify a charset. (string_xstring_p): Add `const' to local variables. (find_charsets_in_text): Add `const' to arguemnts and local variables. (encode_char): Adjusted for the change of Funify_charset. Fix detecting of invalid code. (Fset_charset_priority): Increment charset_ordered_list_tick. (Fmap_charset_chars): Fix handling of default value for FROM_CODE and TO_CODE. * coding.c (LEADING_CODE_PRIVATE_11, LEADING_CODE_PRIVATE_12, LEADING_CODE_PRIVATE_21, LEADING_CODE_PRIVATE_22): Macros deleted. Callers changes to use EMACS_MULE_LEADING_CODE_PRIVATE_11, etc. (decode_coding_ccl): Add `const' to local variables. (consume_chars): Likewise. (Ffind_coding_systems_region_internal): Likewise. (Fcheck_coding_systems_region): Likewise. * print.c (print_object): Use octal form for printing the contents of a bool vector. 2002-07-18 Dave Love * lread.c (Fload) : Don't leak fd. : Refuse to load. 2002-07-17 Dave Love * fns.c: Move coding.h. (Qcodeset, Qdays, Qmonths): New. (concat): Use CHARACTERP instead of INTERGERP. (Flocale_codeset): Deleted. (Flanginfo): New function. (syms_of_fns): Changed accordingly. * coding.c (adjust_coding_eol_type): Fix eol_type/eol_seen mixup. 2002-07-16 Dave Love * casetab.c (init_casetab_once, init_casetab_once): Fix CHAR_TABLE_SET call. * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call. * character.c (syms_of_character): Fix CHAR_TABLE_SET call. * charset.c (Fmap_charset_chars): Check args. Convert Lisp types. (load_charset_map, Fdeclare_equiv_charset, Fencode_char) (Fset_charset_priority, syms_of_charset): Convert Lisp types. * charset.h (CHECK_CHARSET_GET_ID): Use XINT on AREF result. * coding.c (ENCODE_DESIGNATION, decode_eol) (make_conversion_work_buffer, code_conversion_restore) (Fdefine_coding_system_internal): Convert Lisp types. (code_conversion_restore): Use EQ, not ==. (Fencode_coding_string): Fix code_convert_string call. * coding.h (code_convert_region): Fix prototype. * dispextern.h (redraw_frame, redraw_garbaged_frames): Removed. * fontset.c (fontset_ref, fontset_set, fs_load_font) (Ffontset_info): Convert Lisp types. * syntax.h (SYNTAX_ENTRY_INT): Don't use make_number. * xterm.c (note_mouse_movement): Fix call of window_from_coordinates. * xdisp.c (display_mode_element): Fix call of Fset_text_properties. * chartab.c: Include "...h", not <...h> in some cases. * callproc.c (Fcall_process): Remove unused variables. 2002-07-12 Dave Love * coding.c (Fset_coding_system_priority): Allow null arg list. 2002-07-03 Dave Love * minibuf.c (Fminibuffer_complete_word): Remove unused var. (Fself_insert_and_exit): Use CHARACTERP. * callproc.c (Fcall_process): Remove unused vars. * xterm.c (XTread_socket): Add extra dead keysyms. * xdisp.c (decode_mode_spec_coding): Use CHARACTERP. * dispextern.h: Remove prototypes for redraw_frame, redraw_garbaged_frames. * cmds.c (Fself_insert_command): Use CHARACTERP. * chartab.c (make_sub_char_table): Remove unused var. (Fset_char_table_default, Fmap_char_table): Doc fix. * keymap.c (access_keymap): Remove generic char code. (push_key_description): Use CHARACTERP. 2002-07-01 Dave Love * charset.c: Doc fixes. (Funify_charset): Extra checking. 2002-06-24 Dave Love * lread.c: Remove some unused variables. (safe_to_load_p): If safe, return the magic number version byte. (Fload): Maybe use load-with-code-conversion. 2002-06-12 Kenichi Handa * category.c (Fmodify_category_entry): Don't modify the contents of category_set for characters out of the range. Avoid unnecessary modification. * character.h (MAYBE_UNIFY_CHAR): Adjusted for the change of Vchar_unify_table. The default value of the table is now nil. * character.c (syms_of_character): Setup Vchar_width_table for eight-bit-control and raw-byte chars. * charset.h (enum define_charset_arg_index): Delete charset_arg_parents and add charset_arg_subset and charset_arg_superset. (enum charset_attr_index): Delete charset_parents and add charset_subset and charset_superset. (enum charset_method): Delete CHARSET_METHOD_INHERIT and add CHARSET_METHOD_SUBSET and CHARSET_METHOD_SUPERSET. (CHARSET_ATTR_PARENTS, CHARSET_PARENTS): Macros deleted. (CHARSET_ATTR_SUBSET, CHARSET_ATTR_SUPERSET, CHARSET_SUBSET) (CHARSET_SUPERSET): New macros. (charset_work): Extern it. (ENCODE_CHAR): Use charset_work. (CHAR_CHARSET_P): Adjusted for the change of encoder format. (map_charset_chars): Extern it. * charset.c (load_charset_map): Set the default value of encoder and deunifier char-tables to nil. (map_charset_chars): Argument changed. Callers changed. Use map_char_table_for_charset instead of map_char_table. (Fmap_charset_chars): New optional args from_code and to_code. (Fdefine_charset_internal): Adjusted for the change of `define-charset' (:parents -> :subset or :superset). (charset_work): New variable. (encode_char): Adjusted for the change of Fdefine_charset_internal. (syms_of_charset): Likewise. (Ffind_charset_string): Setup the vector `charsets' correctly. * chartab.c (sub_char_table_ref_and_range): New arg defalt. Fix the previous change. (char_table_ref_and_range): Adjusted for the above change. (map_sub_char_table_for_charset): New function. (map_char_table_for_charset): New function. * keymap.c (describe_vector): Handle a char-table directly here. (describe_char_table): Deleted. * lisp.h (map_charset_chars): Deleted. 2002-06-11 Dave Love * fns.c (count_combining): Comment out (unused). (Flocale_codeset): New. (syms_of_fns): Defsubr it. * config.in (HAVE_PTY_H, HAVE_SIZE_T, HAVE_LANGINFO_CODESET): New. (size_t): Removed. 2002-06-06 Dave Love * Makefile.in (chartab.o): Depend on charset.h 2002-06-03 Kenichi Handa * character.c (syms_of_character): Set the default value of Vprintable_chars to Qnil. 2002-05-31 Dave Love * Makefile.in (lisp, shortlisp): Change indian.elc to indian.el. 2002-05-31 Kenichi Handa * charset.c (load_charset_map): Handle the case that from < to correctly. * coding.c (encode_coding_emacs_mule): Pay attention to raw-8-bit chars. (encode_coding_iso_2022): Likewise. (encode_coding_sjis): Likewise. (encode_coding_big5): Likewise. (encode_coding_charset): Likewise. 2002-05-30 Kenichi Handa * Makefile.in (lisp): Change chinese.elc to chinese.el. They are not bytecompiled now. (shortlisp): Likewise. * charset.c (charset_jisx0201_roman, charset_jisx0208_1978) (charset_jisx0208): New variables. (Fdefine_charset_internal): Setup them if appropriate. (init_charset_once): Initialize them to -1. * charset.h (charset_jisx0201_roman, charset_jisx0208_1978, charset_jisx0208): Extern them. * coding.c (CODING_ISO_FLAG_USE_ROMAN): New macro (CODING_ISO_FLAG_USE_OLDJIS): New macro. (CODING_ISO_FLAG_FULL_SUPPORT): Macro definition changed. (setup_iso_safe_charsets): Fix arguemtns to Fassq. (DECODE_DESIGNATION): Pay attention to CODING_ISO_FLAG_USE_ROMAN and CODING_ISO_FLAG_USE_OLDJIS. (ENCODE_ISO_CHARACTER_DIMENSION1): Likewise. (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise. (encode_coding_iso_2022): Change the 1st arg to ENCODE_ISO_CHARACTER to a variable. 2002-05-29 Kenichi Handa * charset.h (enum define_charset_arg_index): New enums charset_arg_min_code and charset_arg_max_code. (struct charset): New member char_index_offset. * charset.c (CODE_POINT_TO_INDEX): Take charset->char_index_offset into account. (INDEX_TO_CODE_POINT): Likewise. (Fdefine_charset_internal): Handle args[charset_arg_min_code] and args[charset_arg_max_code]. Setup charset.char_index_offset. (syms_of_charset): Fix args to Fdefine_charset_internal. 2002-05-27 Dave Love * coding.c (decode_coding_utf_8): Reject overlong sequences. 2002-05-26 Dave Love * coding.c: Doc fixes. (Fcoding_system_aliases): Fix return value. (Qmac): Remove (duplicated) definition. 2002-05-25 Dave Love * charset.c (Fcharset_priority_list, Fset_charset_priority): New functions. * character.c (Fstring): Doc fix. * charset.c (Fdefine_charset_alias): Update Vcharset_list. * fontset.c (Ffontset_info): Doc fix. Return charset names, not ids. (font-encoding-alist): Doc fix. 2002-05-24 Dave Love * term.c (costs_set): Declare static, non-initialized for pcc. (encode_terminal_code): Remove ensued var. * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl for K&R. * xterm.c (xlwmenu_window_p): Fix prototype for K&R. * coding.c (setup_iso_safe_charsets): Fix arg decl for K&R. (suffixes): Moved out of make_subsidiaries for K&R. * charset.c (map_charset_chars): Fix c_function declaration for K&R. * lisp.h (DEFUN) [!PROTOTYPES]: Remove spurious `args'. 2002-05-23 Dave Love * data.c (Fchar_or_string_p): Doc fix. Use CHARACTERP. * category.c (Fmodify_category_entry): Doc fix. Remove unused vars. 2002-05-23 Yong Lu * charset.c (Fdefine_charset_internal): Fix argument to bzero. * coding.c (Fdefine_coding_system_internal): Fix previous change. (decode_coding_charset): Workaround for the bug of GCC 2.96. 2002-05-23 Kenichi Handa * Makefile.in (lisp): Change cyrillic.elc to cyrillic.el, vietnamese.elc to vietnamese.el. They are not bytecompiled now. (shortlisp): Likewise. 2002-05-22 Kenichi Handa * coding.c (decode_coding_charset): Adjusted for the change of Fdefine_coding_system_internal. (Fdefine_coding_system_internal): For a coding system of `charset' type, store a list of charset IDs in `charset_attr_charset_valids' element of coding attributes. * charset.c (Fmake_char): Fix previous change. 2002-05-21 Kenichi Handa * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars. (emacs_mule_char): New arg src. Delete arg `composition'. Caller changed. Handle 2-byte and 3-byte charsets correctly. (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Renamed from DECODE_EMACS_MULE_COMPOSITION_RULE. Caller changed. (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro. (DECODE_EMACS_MULE_21_COMPOSITION): Call DECODE_EMACS_MULE_COMPOSITION_RULE_21. Produce correct annotation sequence. (decode_coding_emacs_mule): Handle composition correctly. Rewind `src' and `consumed_chars' correctly before calling emacs_mule_char. (DECODE_COMPOSITION_START): Correctly handle the case of altchar and alt&rule composition. (decode_coding_iso_2022): Handle composition correctly. (init_coding_once): Setup emacs_mule_bytes for private charsets. * charset.c (Fdefine_charset_internal): Fix bug for the case of re-defining a charset. If the charset has :emacs-mule-id, setup emacs_mule_bytes. (Fmake_char): If CODE1 is nil, use the minimum code of the charset. 2002-05-20 Kenichi Handa * coding.c (encode_coding_iso_2022): If coding requires safe encoding, produce a character specified by CODING_INHIBIT_CHARACTER_SUBSTITUTION. (encode_coding_sjis): Likewise. (encode_coding_big5): Likewise. (encode_coding_charset): Likewise. 2002-05-17 Dave Love * xterm.c (XSetIMValues): Declare. * process.c: Conditionally include sys/wait.h, pty.h. * print.c (print_object): Fix print format for 64-bit systems. * keyboard.c (modify_event_symbol): Fix print format for 64-bit systems. * buffer.c (emacs_strerror): Declare. (MMAP_ALLOCATED_P, mmap_enlarge, syms_of_buffer): Import changes from trunk. * fontset.c (Fclear_face_cache): Declare. (accumulate_font_info): Commented-out (unused). (face_for_char, Fset_fontset_font, Ffontset_info): Remove unused variables. * character.h (string_escape_byte8): Declare. * charset.c (load_charset_map, load_charset_map_from_file): Remove unused vars. (Fdefine_charset_internal, Fsplit_char, syms_of_charset) (Fmap_charset_chars): Doc fix. * coding.c (Vchar_coding_system_table, Qchar_coding_system): Removed. (Fset_coding_system_priority, Fset_coding_system_priority) (Fdefine_coding_system_internal): Doc fix. 2002-05-16 Dave Love * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Remove -nointrinsics. 2002-05-16 Kenichi Handa * character.c (string_escape_byte8): Make multibyte string with correct size. * charset.c (Fmake_char): Delete unnecessary code. 2002-05-14 Kenichi Handa * xfns.c (x_encode_text): Allocate coding.destination here, and call encode_coding_object with dst_object Qnil. * buffer.c (Fset_buffer_multibyte): Convert 8-bit bytes to multibyte form correctly. * fontset.c (fs_load_font): Check fontp->full_name (not fontname) against Vfont_encoding_alist. * coding.c (Fdecode_sjis_char): Fix typo (0x7F->0xFF). Fix the handling of charset list. (encode_coding_iso_2022): Setup coding->safe_charsets in advance. (decode_coding_object): Move point to coding->dst_pos before calling post-read-conversion function. (encode_coding_object): Give correct arguments to pre-write-conversion. Ignore the return value of pre-write-conversion function. Pay attention to the case that pre-write-conversion changes the current buffer. If dst_object is Qt, even if coding->src_bytes is zero, allocate at least one byte to coding->destination. * coding.h (JIS_TO_SJIS): Fix typo (j1->s1, j2->s2). * charset.c (Fmake_char): Make it more backward compatible. (Fmap_charset_chars): Fix docstring. 2002-05-13 Dave Love * coding.c: Doc fixes. (Fdefine_coding_system_alias): Use names, not symbols, in coding-system-alist. 2002-05-13 Kenichi Handa * fontset.c (free_realized_fontsets): Call Fclear_face_cache instead of calling free_realized_face. 2002-05-10 Yong Lu * charset.c (load_charset_map): Fix previous change. (read_hex): Don't treat SPC as a comment starter. (decode_char): If CODE_POINT_TO_INDEX retruns -1, always return -1. (Fdecode_char): Fix typo. 2002-05-10 Kenichi Handa * charset.h (struct charset): New member `code_space_mask'. * coding.c (coding_set_source): Delete the local variable beg_byte. (encode_coding_charset): Delete the local variable charset. (Fdefine_coding_system_internal): Likewise. (Fdefine_coding_system_internal): Setup attrs[coding_attr_charset_valids] correctly. * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask' member to check if CODE is valid or not. (Fdefine_charset_internal): Initialize `code_space_mask' member. (encode_char): Before calling CODE_POINT_TO_INDEX, check if CODE is within the range of charset->min_code and carset->max_code. 2002-05-09 Dave Love * syntax.h (syntax_temp) [!__GNUC__]: Declare. * dispextern.h (generate_ascii_font): Fix return type. * xfaces.c (generate_ascii_font): Fix arg declaration. * coding.c (coding_inherit_eol_type) (Fset_terminal_coding_system_internal) (Fset_safe_terminal_coding_system_internal): Fix arg declarations. 2002-05-08 Kenichi Handa * coding.c (decode_coding_charset, encode_coding_charset): Handle multiple charsets correctly. 2002-05-07 Kenichi Handa * search.c (boyer_moore): Fix handling of mulitbyte character translation. * xdisp.c (display_mode_element): When the variable `elt' is changed, update `this' and `lisp_string'. 2002-05-07 Kenichi Handa * buffer.c (Fset_buffer_multibyte): Fix 8-bit char handling. * callproc.c (Fcall_process): Be sure to give the current buffer to decode_coding_c_string. Update PT and PT_BYTE after the insertion. * charset.c (struct charset_map_entries): New struct. (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. * coding.c (coding_alloc_by_making_gap): Check the case that the 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. * fileio.c (Finsert_file_contents): Set coding_system instead of val. If the current buffer is multibyte, always call decode_coding_gap. * xfaces.c (try_font_list): Give higher priority to fontset's family than face's family. 2002-04-18 Kenichi Handa * callproc.c (Fcall_process): Be sure to give the current buffer to decode_coding_c_string. * xfaces.c (try_font_list): Give a family specified in a fontset higher priority than a family specified in a face. 2002-04-09 Kenichi Handa * fileio.c (Finsert_file_contents): Fix calculation of `inserted'. Fix arguments to insert_from_buffer. * xdisp.c (display_mode_element): Fix calculation of `bytepos'. 2002-03-11 Kenichi Handa * coding.c (produce_chars): Set the variable `multibytep' correctly. (decode_coding_gap): Set coding->dst_multibyte correctly. 2002-03-07 Kenichi Handa * coding.c (encode_coding_utf_8): Initialize produced_chars to 0. (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. * insdel.c (insert_from_gap): Call record_insert. 2002-03-04 Kenichi Handa * casefiddle.c (casify_region): Fix multibyte case. * character.c (c_string_width): Add return type `int'. (char_string_with_unification): Arg ADVANCED deleted. * character.h (CHAR_VALID_P): Don't call CHARACTERP. (CHAR_STRING): Adjusted for the change of char_string_with_unification. (CHAR_STRING_ADVANCE): Make it do-while statement. * chartab.c (sub_char_table_set_range): Optimized for the case DEPTH == 3. Add workaround code for a GCC optimization bug. * charset.c (parse_charset_map): Remove an unused variable. * coding.c: Delete unused variables. * fileio.c (Finsert_file_contents): Set coding_system to Qnil earlier. If inserted is zero and the coding system doesn't require flushing, don't call decode_coding_gap. * syntax.h (SET_RAW_SYNTAX_ENTRY): Don't call make_number. 2002-03-01 Kenichi Handa The following changes are for using Unicode as an internal character model, and use UTF-8 format for buffer/string representation. * .gdbinit (xchartable): Adjusted for the change of char table structure. (xsubchartable, xcoding, xcharset, xcurbuf): New commands. * Makefile.in (obj): Add character.o and chartab.o. (lisp, shortlisp): Remove utf-8.elc: (*.o): For many files, change dependency on charset.h to character.h, and add dependency on character.h. (character.o, chartab.o): New targets. * abbrev.c, bytecode.c, casefiddle.c, cmds.c, dispnew.c, doc.c, doprnt.c, dosfns.c, frame.c, marker.c, minibuf.c, msdos.c, w16select.c, w32bdf.c, w32console.c: Include "character.h" instead of "charset.h". * dired.c, filelock.c: Include "character.h". * alloc.c: Include "character.h" instead of "charset.h". (Fmake_char_table): Moved to chartab.c. (make_sub_char_table): Likewise. (syms_of_alloc): Remove defsubr for Smake_char_table. * buffer.c: Include "character.h" instead of "charset.h", don't include "coding.h". (Fset_buffer_multibyte): Adjuted for UTF-8. * buffer.h: EXFUN Fbuffer_live_p. * callproc.c: Include "character.h" instead of "charset.h". (Fcall_process): Big change for the new code-conversion APIs. * casetab.c: Include "character.h" instead of "charset.h". (set_canon, set_identity, shuffle): Adjusted for the new map_char_table spec. (init_casetab_once): Call CHAR_TABLE_SET instead of directly accessing the char table structure. * chartab.c: New file that implements char table. * category.c: Include "character.h". (copy_category_entry): New function. (copy_category_table): Call map_char_table and copy_category_entry. (Fmake_category_table): Initialize all top-vel slots. (char_category_set): New function. (modify_lower_category_set): Deleted. (Fmodify_category_entry): Call char_table_ref_and_range. * category.h (CATEGORY_SET): Just call char_category_set. * ccl.c: Include "character.h". (Qccl, Qcclp): New variables. (CCL_WRITE_CHAR): Alway treat the arg CH as a character even if it's less than 256. (CCL_WRITE_MULTIBYTE_CHAR): Deleted. (CCL_WRITE_STRING, CCL_READ_CHAR): Adjusted for the change of SRC and DST type. (ccl_driver): Types of arguments changed. Code adjusted for that. (Fccl_execute, Fccl_execute_on_string): Adjusted for the change of ccl_driver. (syms_of_ccl): Intern and staticpro Qccl and Qcclp. * ccl.h (struct ccl_program): Members eol_type and multibyte deleted. New members src_multibyte, dst_multibyte, consumed, and produced. (struct ccl_spec): Members decoder and encoder deleted. New memeber ccl. (CODING_SPEC_CCL_PROGRAM): New macro. (ccl_driver): Prototype updated. (Qccl, Qcclp, Fccl_program_p): Extern them. (CHECK_CCL_PROGRAM): New macro. * character.c, character.h, chartab.c: New files. * charset.c: Mostly re-written. Character and multibyte sequence handling codes are moved to character.c. * charset.h: Mostly re-written. Character and multibyte sequence handling codes are moved to character.h. * coding.c, coding.h: Mostly re-written. * composite.c: Include "character.h" instead of "charset.h". (CHAR_WIDTH): Moved to character.h. (HASH_KEY, HASH_VALUE): Deleted. * composite.h (enum composition_method): Order of enumeration symbols changed. * data.c: Include "character.h" instead of "charset.h". (Faref): Call CHAR_TABLE_REF for a char table. (Faset): Call CHAR_TABLE_SET for a char table. * dispextern.h (free_realized_face, check_face_attribytes, generate_ascii_font): Extern them. (free_realized_multibyte_face): Extern deleted. * disptab.h (DISP_CHAR_VECTOR): Adjusted for the change of char table structure. * editfns.c: Include "character.h" instead of "charset.h". (Fchar_to_string): Always call CHAR_STRING. * emacs.c (main): Call init_charset_once, init_charset, syms_of_chartab, and syms_of_character. * fileio.c: Include "character.h" instead of "charset.h". (Finsert_file_contents): Big change for the new code-conversion API. (choose_write_coding_system): Likewise. (Fwrite_region): Likewise. (build_annotations_2): Deleted. (e_write): Big change for the new code-conversion API. * fns.c: Include "character.h" instead of "charset.h". (copy_sub_char_table): Moved to chartab.c. (Fcopy_sequence): Call copy_char_table for a char table. (concat): Delete codes calling count_multibyte. (string_char_to_byte): Adjusted for the new multibyte form. (string_byte_to_char): Likewise. (internal_equal): Adjusted for the change of char table structure. (Fchar_table_subtype, Fchar_table_parent, Fset_char_table_parent, Fchar_table_extra_slot, Fset_char_table_extra_slot, Fchar_table_range, Fset_char_table_range, Fset_char_table_default, char_table_translate, optimize_sub_char_table, Foptimize_char_table, map_char_table, Fmap_char_table): Moved to chartab.c. (char_table_ref_and_index): Deleted. (HASH_KEY, HASH_VALUE): Moved to lisp.h. (Fmd5): Call preferred_coding_system instead of accessing Vcoding_category_list. Adjusted for the new code-conversion API. (syms_of_fns): Defsubr for char table related functions moved to chartab.c. * fontset.c: Mostly re-written. * fontset.h (struct font_info): Type of the member encoding_type changed. (enum FONT_SPEC_INDEX): New enum. (fontset_font_pattern, fs_load_font): Prototype updated. (FS_LOAD_FONT): Adjusted for the change of fs_load_font. * indent.c: Include "character.h" instead of "charset.h". (MULTIBYTE_BYTES_WIDTH): Call CHAR_WIDTH instead of WIDTH_BY_CHAR_HEAD. * insdel.c: Include "character.h" instead of "charset.h". (copy_text): Don't refer to Vnonascii_translation_table. (insert_from_gap): New function. * keyboard.c: Include "character.h" instead of "charset.h". (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. * keymap.c: Include "character.h". (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. * keymap.h (describe_char_table): Extern it. * lisp.h (enum pvec_type): New member PVEC_SUB_CHAR_TABLE. (XSUB_CHAR_TABLE, XSETSUB_CHAR_TABLE): New macros. (CHAR_TABLE_ORDINARY_SLOTS, CHAR_TABLE_SINGLE_BYTE_SLOTS, SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS): Deleted. (CHAR_TABLE_REF, CHAR_TABLE_SET): Adjusted for the new char table structure. (CHAR_TABLE_TRANSLATE): Just call char_table_translate. (CHARTAB_SIZE_BITS_0, CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3): New macros. (chartab_size): Extern it. (struct Lisp_Char_Table): Re-designed. (struct Lisp_Sub_Char_Table): New structure. (HASH_KEY, HASH_VALUE): Moved from fns.c. (CHARACTERBITS): Defined as 22. (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the above change. (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE. (GC_SUB_CHAR_TABLE_P): New macro. (Fencode_coding_string, Fdecode_coding_string): EXFUN Updated. (code_convert_string_norecord): Extern deleted. (init_character_once, syms_of_character, init_charset, syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them. * lread.c: Include "character.h". (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. * print.c: Include "character.h" instead of "charset.h". (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. * process.c: Include "character.h" instead of "charset.h". (read_process_output): Adjusted for the new code-conversion API. (send_process): Likewise. * puresize.h (BASE_PURESIZE): Increased. * regex.c: Include "character.h" instead of "charset.h". (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. * search.c: Include "character.h" instead of "charset.h". (search_buffer, boyer_moore): Adjusted for the new multibyte form. (Freplace_match): Adjusted for the change of multibyte_char_to_unibyte. * syntax.c: Include "character.h" instead of "charset.h". (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. * syntax.h (SET_RAW_SYNTAX_ENTRY): Call CHAR_TABLE_SET. (SYNTAX_ENTRY_FOLLOW_PARENT): Macro deleted. (SET_RAW_SYNTAX_ENTRY_RANGE): New macro. (SYNTAX_ENTRY_INT): Call CHAR_TABLE_REF. * term.c: Include "buffer.h" and "character.h". (encode_terminal_code): Adjusted for the new code-conversion API. (write_glyphs): Likewise. (produce_glyphs): Call CHAR_WIDTH instead of CHARSET_WIDTH. * w32term.c (x_new_font): Adjusted for the change of FS_LOAD_FONT. * xdisp.c: Include "character.h". (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. * xfaces.c: Include "character.h" instead of "charset.h". (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. * xfns.c: Include "character.h". (x_encode_text): Adjusted for the new code-conversion API. * xselect.c: Don't include "charset.h". (selection_data_to_lisp_data): Adjusted for the new code covnersion API. * xterm.c: Include "character.h". (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. ;; Local Variables: ;; coding: iso-2022-7bit ;; End: Copyright (C) 2002 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved.