comparison lisp/term.el @ 71351:30e91c99f01a

(term-handle-scroll, term-delete-lines) (term-insert-lines): Fix off by one errors.
author Dan Nicolaescu <dann@ics.uci.edu>
date Thu, 15 Jun 2006 22:58:10 +0000
parents 1a9194ab1577
children fc1ff7769630 138027c8c982
comparison
equal deleted inserted replaced
71350:0844ec8948e9 71351:30e91c99f01a
3611 (cond (term-scroll-with-delete 3611 (cond (term-scroll-with-delete
3612 (if (< down 0) 3612 (if (< down 0)
3613 (progn 3613 (progn
3614 ;; Delete scroll-needed lines at term-scroll-end, 3614 ;; Delete scroll-needed lines at term-scroll-end,
3615 ;; then insert scroll-needed lines. 3615 ;; then insert scroll-needed lines.
3616 (term-vertical-motion (1- term-scroll-end)) 3616 (term-vertical-motion term-scroll-end)
3617 (end-of-line) 3617 (end-of-line)
3618 (setq save-top (point)) 3618 (setq save-top (point))
3619 (term-vertical-motion scroll-needed) 3619 (term-vertical-motion scroll-needed)
3620 (end-of-line) 3620 (end-of-line)
3621 (delete-region save-top (point)) 3621 (delete-region save-top (point))
3765 (defun term-delete-lines (lines) 3765 (defun term-delete-lines (lines)
3766 (let ((start (point)) 3766 (let ((start (point))
3767 (save-current-column term-current-column) 3767 (save-current-column term-current-column)
3768 (save-start-line-column term-start-line-column) 3768 (save-start-line-column term-start-line-column)
3769 (save-current-row (term-current-row))) 3769 (save-current-row (term-current-row)))
3770 (when (>= (+ save-current-row lines) term-scroll-end) 3770 ;; The number of inserted lines shouldn't exceed the scroll region end.
3771 (setq lines (- lines (- (+ save-current-row lines) term-scroll-end)))) 3771 (when (> (+ save-current-row lines) (1+ term-scroll-end))
3772 (setq lines (- lines (- (+ save-current-row lines) (1+ term-scroll-end)))))
3772 (term-down lines) 3773 (term-down lines)
3773 (delete-region start (point)) 3774 (delete-region start (point))
3774 (term-down (- term-scroll-end save-current-row lines)) 3775 (term-down (- (1+ term-scroll-end) save-current-row lines))
3775 (term-insert-char ?\n lines) 3776 (term-insert-char ?\n lines)
3776 (setq term-current-column save-current-column) 3777 (setq term-current-column save-current-column)
3777 (setq term-start-line-column save-start-line-column) 3778 (setq term-start-line-column save-start-line-column)
3778 (setq term-current-row save-current-row) 3779 (setq term-current-row save-current-row)
3779 (goto-char start))) 3780 (goto-char start)))
3790 (progn 3791 (progn
3791 (setq lines (- lines (- term-scroll-start save-current-row))) 3792 (setq lines (- lines (- term-scroll-start save-current-row)))
3792 (term-down (- term-scroll-start save-current-row)) 3793 (term-down (- term-scroll-start save-current-row))
3793 (setq start (point))) 3794 (setq start (point)))
3794 ;; The number of inserted lines shouldn't exceed the scroll region end. 3795 ;; The number of inserted lines shouldn't exceed the scroll region end.
3795 (when (>= (+ save-current-row lines) term-scroll-end) 3796 (when (> (+ save-current-row lines) (1+ term-scroll-end))
3796 (setq lines (- lines (- (+ save-current-row lines) term-scroll-end)))) 3797 (setq lines (- lines (- (+ save-current-row lines)(1+ term-scroll-end)))))
3797 (term-down (- term-scroll-end save-current-row lines))) 3798 (term-down (- (1+ term-scroll-end) save-current-row lines)))
3798 (setq start-deleted (point)) 3799 (setq start-deleted (point))
3799 (term-down lines) 3800 (term-down lines)
3800 (delete-region start-deleted (point)) 3801 (delete-region start-deleted (point))
3801 (goto-char start) 3802 (goto-char start)
3802 (setq term-current-column save-current-column) 3803 (setq term-current-column save-current-column)