• Paul Eggert's avatar
    Remove fixnum restriction on some display vars · dfed333b
    Paul Eggert authored
    This is a minor patch to remove some fixnum restrictions.
    Many more such patches are needed, but one thing at a time.
    * doc/emacs/custom.texi (Examining): Update fill-column example.
    * src/buffer.c (fill-column, left-margin, tab-width)
    (buffer-saved-size, left-margin-width, right-margin-width)
    (left-fringe-width, right-fringe-width, scroll-bar-width)
    (scroll-bar-height, buffer-display-count):
    Allow any integer; do not restrict to fixnums.
    * src/character.h (SANE_TAB_WIDTH): Do not assume tab_width
    is a nonnegative fixnum.
    (sanitize_tab_width): Take a Lisp_Object integer, not an
    EMACS_INT.  Only use changed.
    * src/data.c (store_symval_forwarding): Remove unnecessary
    SYMBOLP since the predicate (e.g., Qintegerp) is always a
    symbol (leave the test in as an eassert).  Avoid assignments
    inside if-conditions.
    * src/fileio.c (Fdo_auto_save): Do not assume
    buffer-saved-size is a fixnum.  Avoid undefined behavior
    on EMACS_INT overflow by multiplying a fixnum by at most 4,
    not by at most 13.
    * src/window.c (set_window_buffer): When buffer-display-count
    is too large for a fixnum, make it a bignum.
    * src/xdisp.c (FILL_COLUMN_INDICATOR_NEEDED): Remove macro, ...
    (fill_column_indicator_column): ... replacing with this new function.
    All uses changed.  The function is a bit pickier, to prevent
    problems with non-character fixnums and columns out of range
    for int, and to remove the assumption that integers are in
    fixnum range.
    (append_space_for_newline, extend_face_to_end_of_line):
    Avoid undefined behavior with signed integer overflow.
data.c 116 KB