(real_this_command): New variable, but not a Lisp variable;
updated like Vthis_command, but never altered by Lisp programs.
(command_loop_1): Use real_this_command to set Vreal_last_command.
(read_char): When input method returns no chars, call cancel_echoing.
Restore the previous echo area message and this_command_keys, too.
(Vinput_method_previous_message): New variable.
(syms_of_keyboard): Set up lisp variable.
(Qinput_method_exit_on_first_char, Qinput_method_use_echo_area): New variables.
(syms_of_keyboard): Initialize them.
(Fread_key_sequence): New arg COMMAND_LOOP.
Bind those variables.
(Qprint_escape_nonascii): New variables.
(syms_of_print): Initialize them and set up Lisp variable.
(PRINTPREPARE): Bind print-escape-multibyte to t if appropriate.
Also bind print-escape-nonascii if appropriate.
(print): Test print_escape_multibyte and print_escape_nonascii,
rather than enable-multibyte-characters.
(fast_find_position): Handle case where position is before
an invisible character, thus not actually listed in charstarts.
(x_make_frame_visible): Use XGetGeometry to see if
position has been changed by the window manager. Use
FRAME_OUTER_WINDOW.
Rename Vclipboard_coding_system to Vselection_coding_system.
(Fw16_set_clipboard_data): Don't count trailing zero in the string
for the purposes of conversion.
(coding_category_name): Include "coding-category-ccl".
(detect_coding_ccl): New function.
(setup_coding_system): Setup coding->spec.ccl.valid_codes from the
coding system priority `valid-codes' for CCL based coding systesm.
(detect_coding_mask): Check also a CCL based coding system.
(Fupdate_coding_systems_internal): Renamed from
Fupdate_iso_coding_systems.
(syms_of_coding): Change property char-table-extra-slot of
translation-table to 1. Initialize and static pro Qvalid_codes.
(CODING_CATEGORY_IDX_BIG5, CODING_CATEGORY_IDX_RAW_TEXT,
CODING_CATEGORY_IDX_BINARY, CODING_CATEGORY_IDX_MAX): Increased by
one.
(CODING_CATEGORY_MASK_CCL): New macro.
(CODING_CATEGORY_MASK_ANY): Include CODING_CATEGORY_MASK_CCL.
(syms_of_keyboard): Init and staticpro it.
(read_key_sequence): Bind input-method-function,
and set it to nil after reading the first event.
(raw_keybuf, raw_keybuf_count): New variables, to record
raw input events as they are read with read_char.
(GROW_RAW_KEYBUF): New macro.
(Fthis_single_command_raw_keys): New function.
(syms_of_keyboard): defsubr it.
(read_char): Call the input method if appropriate.
Change logic for distinguishing rereads from new events;
use local var `reread'. Take events from
Vunread_input_method_events and Vunread_post_input_method_events.
(Vunread_input_method_events, Vunread_post_input_method_events)
(Vinput_method_function): New variable.
(syms_of_keyboard): Set up Lisp vars.
(command_loop_1): Check Vunread_input_method_events and
Vunread_post_input_method_events along with Vunread_command_events.
with two arguments.
(Fwrite_region): If buffer-file-coding-system is set locally, use
the coding system whithout checking file-coding-system-alist.
(syms_of_fileio): Docstring of set-auto-coding-function adjusted
for the change of argument number.