• Paul Eggert's avatar
    Treat out-of-range positions consistently · de00a933
    Paul Eggert authored
    If a position argument to get-byte etc. is an out-of-range integer,
    treat it the same regardless of whether it is a fixnum or a bignum.
    * src/buffer.c (fix_position): New function.
    * src/buffer.c (validate_region):
    * src/character.c (Fget_byte):
    * src/coding.c (Ffind_coding_systems_region_internal)
    (Fcheck_coding_systems_region):
    * src/composite.c (Ffind_composition_internal):
    * src/editfns.c (Fposition_bytes, Fchar_after, Fchar_before)
    (Finsert_buffer_substring, Fcompare_buffer_substrings)
    (Fnarrow_to_region):
    * src/fns.c (Fsecure_hash_algorithms):
    * src/font.c (Finternal_char_font, Ffont_at):
    * src/fringe.c (Ffringe_bitmaps_at_pos):
    * src/search.c (search_command):
    * src/textprop.c (get_char_property_and_overlay):
    * src/window.c (Fpos_visible_in_window_p):
    * src/xdisp.c (Fwindow_text_pixel_size):
    Use it instead of CHECK_FIXNUM_COERCE_MARKER, so that
    the code is simpler and treats bignums consistently with fixnums.
    * src/buffer.h (CHECK_FIXNUM_COERCE_MARKER): Define here
    rather than in lisp.h, and reimplement in terms of fix_position
    so that it treats bignums consistently with fixnums.
    * src/lisp.h (CHECK_FIXNUM_COERCE_MARKER): Move to buffer.h.
    * src/textprop.c (validate_interval_range): Signal with original
    bounds rather than modified ones.
    de00a933
font.c 157 KB