Mercurial > emacs
changeset 66891:a723e6ef69a4
(term-termcap-format): Fix typos.
(term-down): Fix the negative argument case.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Tue, 15 Nov 2005 17:13:22 +0000 |
parents | 0a46c5ea06d0 |
children | 2f71f4b01b01 |
files | lisp/ChangeLog lisp/term.el |
diffstat | 2 files changed, 28 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Nov 15 13:53:45 2005 +0000 +++ b/lisp/ChangeLog Tue Nov 15 17:13:22 2005 +0000 @@ -1,3 +1,8 @@ +2005-11-15 Dan Nicolaescu <dann@ics.uci.edu> + + * term.el (term-termcap-format): Fix typos. + (term-down): Fix the negative argument case. + 2005-11-16 Nick Roberts <nickrob@snap.net.nz> * progmodes/gdb-ui.el: Remove face-alias left over from change on
--- a/lisp/term.el Tue Nov 15 13:53:45 2005 +0000 +++ b/lisp/term.el Tue Nov 15 17:13:22 2005 +0000 @@ -1406,8 +1406,8 @@ :UP=\\E[%%dA:DO=\\E[%%dB:LE=\\E[%%dD:RI=\\E[%%dC\ :kl=\\EOD:kd=\\EOB:kr=\\EOC:ku=\\EOA:kN=\\E[6~:kP=\\E[5~:@7=\\E[4~:kh=\\E[1~\ :mk=\\E[8m:cb=\\E[1K:op=\\E[39;49m:Co#8:pa#64:AB=\\E[4%%dm:AF=\\E[3%%dm:cr=^M\ -:bl=^G:do=^J:le=^H:ta=^I:se=\E[27m:ue=\E24m\ -:kb=^?:kD=^[[3~:sc=\E7:rc=\E8:r1=\Ec:" +:bl=^G:do=^J:le=^H:ta=^I:se=\\E[27m:ue=\\E24m\ +:kb=^?:kD=^[[3~:sc=\\E7:rc=\\E8:r1=\\Ec:" ;;; : -undefine ic ;;; don't define :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\ "termcap capabilities supported") @@ -3615,21 +3615,32 @@ (defun term-down (down &optional check-for-scroll) "Move down DOWN screen lines vertically." (let ((start-column (term-horizontal-column))) - (if (and check-for-scroll (or term-scroll-with-delete term-pager-count)) - (setq down (term-handle-scroll down))) - (term-adjust-current-row-cache down) - (if (or (/= (point) (point-max)) (< down 0)) - (setq down (- down (term-vertical-motion down)))) - ;; Extend buffer with extra blank lines if needed. + (when (and check-for-scroll (or term-scroll-with-delete term-pager-count)) + (setq down (term-handle-scroll down))) + (unless (and (= term-current-row 0) (< down 0)) + (term-adjust-current-row-cache down) + (when (or (/= (point) (point-max)) (< down 0)) + (setq down (- down (term-vertical-motion down))))) (cond ((> down 0) + ;; Extend buffer with extra blank lines if needed. (term-insert-char ?\n down) (setq term-current-column 0) (setq term-start-line-column 0)) (t - (setq term-current-column nil) + (when (= term-current-row 0) + ;; Insert lines if at the beginning. + (save-excursion (term-insert-char ?\n (- down))) + (save-excursion + (let (p) + ;; Delete lines from the end. + (forward-line term-height) + (setq p (point)) + (forward-line (- down)) + (delete-region p (point))))) + (setq term-current-column 0) (setq term-start-line-column (current-column)))) - (if start-column - (term-move-columns start-column)))) + (when start-column + (term-move-columns start-column)))) ;; Assuming point is at the beginning of a screen line, ;; if the line above point wraps around, add a ?\n to undo the wrapping. @@ -3695,7 +3706,7 @@ ;;; Insert COUNT spaces after point, but do not change any of ;;; following screen lines. Hence we may have to delete characters -;;; at teh end of this screen line to make room. +;;; at the end of this screen line to make room. (defun term-insert-spaces (count) (let ((save-point (point)) (save-eol) (point-at-eol))