• Paul Eggert's avatar
    Prefer more inline functions in character.h · 27d10183
    Paul Eggert authored
    * src/buffer.h (fetch_char_advance, fetch_char_advance_no_check)
    (buf_next_char_len, next_char_len, buf_prev_char_len)
    (prev_char_len, inc_both, dec_both): New inline functions,
    replacing the old character.h macros FETCH_CHAR_ADVANCE,
    FETCH_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS, INC_POS, BUF_DEC_POS,
    DEC_POS, INC_BOTH, DEC_BOTH respectively.  All callers changed.
    These new functions all assume buffer primitives and so need
    to be here rather than in character.h.
    * src/casefiddle.c (make_char_unibyte): New static function,
    replacing the old MAKE_CHAR_UNIBYTE macro.  All callers changed.
    (do_casify_unibyte_string): Use SINGLE_BYTE_CHAR_P instead
    of open-coding it.
    * src/ccl.c (GET_TRANSLATION_TABLE): New static function,
    replacing the old macro of the same name.
    * src/character.c (string_char): Omit 2nd arg.  3rd arg can no
    longer be NULL.  All callers changed.
    * src/character.h (SINGLE_BYTE_CHAR_P): Move up.
    (MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE, PREV_CHAR_BOUNDARY)
    (STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE)
    (FETCH_STRING_CHAR_ADVANCE)
    (FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
    (FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
    (FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
    (DEC_BOTH, BUF_INC_POS, BUF_DEC_POS): Remove.
    (make_char_multibyte): New static function, replacing
    the old macro MAKE_CHAR_MULTIBYTE.  All callers changed.
    (CHAR_STRING_ADVANCE): Remove; all callers changed to use
    CHAR_STRING.
    (NEXT_CHAR_BOUNDARY): Remove; it was unused.
    (raw_prev_char_len): New inline function, replacing the
    old PREV_CHAR_BOUNDARY macro.  All callers changed.
    (string_char_and_length): New inline function, replacing the
    old STRING_CHAR_AND_LENGTH macro.  All callers changed.
    (STRING_CHAR): Rewrite in terms of string_char_and_length.
    (string_char_advance): New inline function, replacing the old
    STRING_CHAR_ADVANCE macro.  All callers changed.
    (fetch_string_char_advance): New inline function, replacing the
    old FETCH_STRING_CHAR_ADVANCE macro.  All callers changed.
    (fetch_string_char_as_multibyte_advance): New inline function,
    replacing the old FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE macro.
    All callers changed.
    (fetch_string_char_advance_no_check): New inline function,
    replacing the old FETCH_STRING_CHAR_ADVANCE_NO_CHECK macro.  All
    callers changed.
    * src/regex-emacs.c (HEAD_ADDR_VSTRING): Remove; no longer used.
    * src/syntax.c (scan_lists): Use dec_bytepos instead of
    open-coding it.
    * src/xdisp.c (string_char_and_length): Rename from
    string_char_and_length to avoid name conflict with new function in
    character.h.  All callers changed.
    27d10183
regex-emacs.c 148 KB