in accord with value of enable-multilibyte-characters.
(Fcoding_system_p): Doc fix.
(Fcheck_coding_system): Doc fix.
(Fterminal_coding_system): Doc fix.
(Fkeyboard_coding_system): Doc fix.
does not fit MULTIBYTE, convert its contents.
(fast_c_string_match_ignore_case): Pass 0 to compile_pattern
as MULTIBYTE.
(search_buffer): If representation of STRING
does not fit MULTIBYTE, convert its contents.
Otherwise buffer_defaults->enable_multibyte_characters decides.
Only set force_singlebyte when a \-sequence is in the relevant
range.
(read_escape): New arg STRINGP. `\ ' is ignored only when STRINGP
(normally, when reading a string). Calls changed.
back to the right place.
Always compute result_len_byte as for a multibyte string. Then,
if the result will be single-byte, don't use that computation.
When converting single-byte to multibyte, don't use copy_text.
Do use copy_text between single-byte string and multibyte string.
(Fstring_make_multibyte, Fstring_make_unibyte): New functions.
(syms_of_fns): defsubr them.
(string_char_to_byte): Count from the beginning or the end,
whichever is closer. Keep a cache of recent values.
(string_byte_to_char): Likewise.
(Fstring_lessp): Compare the strings char by char.
properly calculate number of chars in the text.
Fix error message.
(file_name_as_directory): Error if arg is empty.
(Fwrite_region): Don't flush the encoding buffer if failure is set.
(struct gl_state_s): New field `object'.
(SETUP_SYNTAX_TABLE_FOR_OBJECT): Set it.
Handle non-current buffer properly. Args renamed to all caps.
(SETUP_SYNTAX_TABLE): Set `object'. Args renamed to all caps.
(UPDATE_SYNTAX_TABLE): Use gl_state.object.
(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
(SETUP_SYNTAX_TABLE_FOR_OBJECT): Add gl_state.offset
when using the arg FROM. Use BYTE_TO_CHAR.
Callers changed.
(message1, message1_nolog): String must be ASCII-only.
(message2, message2_nolog): Now static.
(x_consider_frame_title): Use size_byte.
(display_text_line): Likewise.
And scan Voverlay_arrow_string by bytes and chars.
(display_menu_bar): Call display_string with a byte size.
(display_mode_line): Call display_string with a byte size.
(describe_vector): Pass new args to insert_from_string.
(Ftext_char_description): Use make_multibyte_string.
(Fkey_binding): Scan PREFIX a char at a time.
(Fkey_description): Scan KEYS by chars.
(Fexecute_extended_command): Likewise.
(read_char_minibuf_menu_prompt): Use message2_nolog, not message1.
(parse_modifiers): Use size_byte.
(echo_char): Use size_byte.
(parse_modifiers_uncached): Likewise.
(record_char): Likewise.
(parse_solitary_modifier): Likewise.
(read_char): Use Faref on Vkeyboard_translate_table
if it is a string.
(apply_modifiers_uncached): New arg base_len_byte. Calls changed.
(read_char_minibuf_menu_prompt):
(read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE.
(Fexecute_extended_command): Use Faref to access FUNCTION.
Use size_byte of BINDING.
(stuff_buffered_input): Use size_byte of STUFFSTRING.
(Fwrite_region): Use message_with_string.
(auto_save_error, Fdo_auto_save): Likewise.
(Ffile_name_directory): Maybe use make_unibyte_string.
(Ffile_name_nondirectory): Likewise.
(Fsubstitute_in_file_name): Convert substituted envvars to multibyte
if necessary. Otherwise use make_unibyte_string.
(Finsert_file_contents): Use make_unibyte_string.
(double_dollars): Use make_uninit_multibyte_string.
(Fstring): Use make_multibyte_string.
(Fcompose_string): Likewise.
(Ffind_charset_string): Handle bytes vs chars in string.
Special case for single-byte strings.
(Fchars_in_string): Function deleted.
(Fstring): Renamed from Fconcat_chars.
Handle bytes vs chars in string.
(syms_of_charset): Corresponding changes.