File modified: lisp/nterm/nterm.el
Change345 at Thu Aug 19 20:22:29 2010 +0200 by Ivan Kanis <ivan@tao>
diff -r e5bf71cd0e33 -r f1ad9447a287 lisp/nterm/nterm.el --- a/lisp/nterm/nterm.el Sun Aug 15 12:24:03 2010 +0200 +++ b/lisp/nterm/nterm.el Thu Aug 19 20:22:29 2010 +0200 @@ -916,13 +916,14 @@ "Bell." (ding)) -(defun nterm-vt100-blank-line (bl-line bl-start bl-end) - "Blank LINE from START to END. +(defun nterm-vt100-blank-line (bl-line bl-start bl-end bl-reset) + "Blank LINE from START to END, RESET line attribute. If END is nil go to the end of the term. Reset all attributes -on the line." +on the line. If RESET is non nil reset line attribute." (if (not bl-line) (setq bl-line (nterm-cursor-line-get))) - (nterm-mem-line-reset bl-line) + (if bl-reset + (nterm-mem-line-reset bl-line)) (let ((bl-index bl-start)) (while (< bl-index bl-end) (aset (cdr (assq 'char (nth bl-line nterm-memory))) bl-index ?\s) @@ -1336,11 +1337,11 @@ (while (< ed-index nterm-height) (cond ((and (< ed-index ed-line) (not (eq ed-number 0))) - (nterm-vt100-blank-line ed-index 0 nterm-width)) + (nterm-vt100-blank-line ed-index 0 nterm-width t)) ((= ed-index ed-line) - (nterm-vt100-el-ex ed-number)) + (nterm-vt100-el-ex ed-number t)) ((and (> ed-index ed-line) (not (eq ed-number 1))) - (nterm-vt100-blank-line ed-index 0 nterm-width))) + (nterm-vt100-blank-line ed-index 0 nterm-width t))) (incf ed-index)) (nterm-vt100-escape-end char))) @@ -1348,18 +1349,22 @@ "EL -- Erase In Line - host to vt100." (if nterm-debug-vt100 (message "EL par=%d" el-number)) - (nterm-vt100-el-ex (car (nterm-argument-to-list 1 0))) + (nterm-vt100-el-ex (car (nterm-argument-to-list 1 0)) nil) (nterm-vt100-escape-end char)) -(defun nterm-vt100-el-ex (el-ex-number) - "Erase line, used by ED and EL." +(defun nterm-vt100-el-ex (el-ex-number el-ex-reset) + "Erase line, used by ED and EL. +Erase part line depending on NUMBER. If RESET is t reset line +attribute." (cond ((eq el-ex-number 0) - (nterm-vt100-blank-line nil (nterm-cursor-col-get) nterm-width)) + (nterm-vt100-blank-line + nil (nterm-cursor-col-get) nterm-width nil)) ((eq el-ex-number 1) - (nterm-vt100-blank-line nil 0 (1+ (nterm-cursor-col-get)))) - (t ;; 2 and everything else - (nterm-vt100-blank-line nil 0 nterm-width)))) + (nterm-vt100-blank-line + nil 0 (1+ (nterm-cursor-col-get)) nil)) + ((eq el-ex-number 2) + (nterm-vt100-blank-line nil 0 nterm-width el-ex-reset)))) (defun nterm-vt100-escape-start (char) "Enter escape mode"