CHARSET_8_BIT_GRAPHIC): New macros.
(SINGLE_BYTE_CHAR_P): Make it faster by using casting.
(CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
(CHARSET_REVERSE_CHARSET): Likewise.
(CHARSET_VALID_P): Handle new charsets; eight-bit-control and
eight-bit-graphic.
(BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
(CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
(PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
encounter an invalid multibyte sequence.
(PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
sequence is always valid.
(MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
(UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
macros.
(CHAR_STRING): For 8-bit characters, call char_to_string.
(INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
multibyte sequence is always valid.
(BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
(parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
str_as_unibyte): Extern them.
(BCOPY_SHORT): Fix a bug.
(CHAR_LEN): This macro deleted. Callers changed to use
CHAR_BYTES.
(FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
(FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
(FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
variables.
(SPLIT_CHARACTER_SEQ): This macro deleted.
(SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
valid.
(CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
and eight-bit-graphic.
(char_to_string): Likewise. Signal an error for too large
character code.
(char_printable_p): Return 0 for 8-bit characters.
(update_charset_table): Update iso_charset_table only when a final
character is non-negative.
(find_charset_in_text): Renamed from find_charset_in_str.
Arguments and return value changed. Callers changed.
(Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
be -1 if CHARSET is used only internally.
(Fmake_char_internal): Handle new charsets; eight-bit-control and
eight-bit-graphic.
(Fcharset_after): Simplified.
(char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
(char_bytes): Return 2 for chars of the range 0xA0..0xFF.
(multibyte_chars_in_text): Simplified by assuming there's no
invalid multibyte sequence.
(parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
str_as_unibyte): New functions.
(Fstring): Simpified by assuming that byte combining never
happens.
(init_charset_once): Initialization for
LEADING_CODE_8_BIT_CONTROL.
(syms_of_charset): Intern and staticpro Qeight_bit_control and
Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
eight-bit-control and eight-bit-graphic.
Move aliases (indent-for-comment, set-comment-column, kill-comment
and indent-new-comment-line) to the beginning of the file.
Get rid of the last few CLisms.
(comment-forward): Avoid decf.
(comment-make-extra-lines): Comment-out asserts.
(comment-with-narrowing): Properly create uninterned symbol.
(comment-region-internal): Comment-out asserts. Avoid incf and decf.
(comment-indent-new-line): Fix bug where compt could be set but
not comstart. Set comment-column more carefully.
(fs_load_font): If the face has fontset, record the face ID in
that fontset.
(Finternal_char_font): New function.
(accumulate_font_info): New function.
(Ffontset_info): Rewritten for the new fontset implementation.
(syms_of_fontset): Register Vdefault_fontset in the first element
of Vfontset_table. Include Vdefault_fontset in
Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
function.
(comment-auto-fill-only-comments): New var.
(comment-indent-new-line): Obey comment-auto-fill-only-comments.
Align with comment-column rather than previous comment if previous
comment's indentation is greater than comment-column.
(comment-search-forward): Make LIMIT compulsory.
If an unterminated string (rather than a comment) is found, try again,
assuming that the region starts inside a string.
(comment-beginning): Make sure we don't move if we find a comment but
it's not the one we're in.
(comment-enter-backward): Handle the case where comment-end-skip fails.
(comment-indent): Normalize variables and use line-end-position.
(comment-kill): Use line-end-position.
(comment-spill): Remove.
(comment-indent-new-line): Renamed from indent-new-comment-line.
Cleaned up old commented-out code.
Reset comment-continue and comment-end before calling comment-indent.