From d56bb1ab22c3cc463c088550a15fe0f91c5db006 Mon Sep 17 00:00:00 2001 From: Dan Nicolaescu Date: Sat, 11 Dec 2004 21:05:19 +0000 Subject: [PATCH] (term-termcap-format): Synchronyze with terminfo. (term-emulate-terminal): Handle reset. (term-reset-terminal): New function. --- lisp/ChangeLog | 6 ++++++ lisp/term.el | 24 ++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 879e6a5195a..fc4a8ebcd12 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2004-12-11 Dan Nicolaescu + + * term.el (term-termcap-format): Synchronyze with terminfo. + (term-emulate-terminal): Handle reset. + (term-reset-terminal): New function. + 2004-12-11 Thien-Thi Nguyen * play/zone.el (zone-programs): Add `zone-pgm-random-life'. diff --git a/lisp/term.el b/lisp/term.el index 8c624568ad0..14a567a667c 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -1402,7 +1402,7 @@ The main purpose is to get rid of the local keymap." :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:" +: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") @@ -2893,6 +2893,10 @@ See `term-prompt-regexp'." (term-goto (car term-saved-cursor) (cdr term-saved-cursor))) (setq term-terminal-state 0)) + ((eq char ?c) ;; \Ec - Reset (terminfo: rs1) + ;; This is used by the "clear" program. + (setq term-terminal-state 0) + (term-reset-terminal)) ;; The \E#8 reset sequence for xterm. We ;; probably don't need to handle it, but this ;; is the code to parse it. @@ -3020,13 +3024,29 @@ See `term-prompt-regexp'." (set-marker term-home-marker (point)) (setq term-current-row (1- term-height)))))) +;;; Reset the terminal, delete all the content and set the face to the +;;; default one. +(defun term-reset-terminal () + (erase-buffer) + (setq term-current-row 1) + (setq term-current-column 1) + (setq term-insert-mode nil) + (setq term-current-face nil) + (setq term-ansi-current-underline 0) + (setq term-ansi-current-bold 0) + (setq term-ansi-current-reverse 0) + (setq term-ansi-current-color 0) + (setq term-ansi-current-invisible 0) + (setq term-ansi-face-already-done 1) + (setq term-ansi-current-bg-color 0)) + ;;; New function to deal with ansi colorized output, as you can see you can ;;; have any bold/underline/fg/bg/reverse combination. -mm (defun term-handle-colors-array (parameter) (cond -;;; Bold +;;; Bold (terminfo: bold) ((eq parameter 1) (setq term-ansi-current-bold 1)) -- 2.39.5