• John Shahid's avatar
    Fix setting and resetting of scroll-with-delete · e44b56d1
    John Shahid authored
    The start and end lines of the scroll region must to be in the range
    [0,term-height).  There are few placees that incorrectly set the end
    line of the scroll region to term-height which is outside the valid
    range.  Combined with another off-by-one error in
    term-set-scroll-region's clamping logic, this would cause
    term-scroll-with-delete to be unnecessarily turned on.
    * lisp/term.el (term-scroll-start,term-scroll-end): Use defvar-local
    to define the variables and document the valid range of values that
    the variables can take.
    (term--last-line): New function to calculate the 0-based index of the
    last line.
    (term--reset-scroll-region): New function to reset the scroll region
    to the full height of the terminal.
    (term-mode,term-reset-size,term-reset-terminal): Call
    term--reset-scroll-region to reset the scroll region.
    (term-set-scroll-region): Fix the off-by-one error in the clamping
    logic which allowed term-scroll-end to have values outside the valid
    range [0,term-height).
term.el 179 KB