emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

term.el fixes


From: Dan Nicolaescu
Subject: term.el fixes
Date: Wed, 15 Sep 2004 10:13:18 -0700

This patch contains a few fixes for term.el

- A few dead variables and a dead function have been deleted.

- The TERMCAP entry was out of sync with the terminfo entry in
etc/e/eterm.ti, quite a few capabilities were missing.
This was tested by running a version of Midnight Commander that uses
TERMCAP in a M-x term terminal. It was able to use colors and display
correctly. 

- The reverse video mode did not work. This can be seen by the fact
that running "tput rev" before the patch did not have any
effect. After the patch it turns on reverse video. Also before the
patch the modeline for an "emacs -nw" running in a M-x term terminal
was shown with the default face, after the patch the modeline is shown
in reverse video as expected.

- term-exec-1 was deciding to bound either the TERMCAP or TERMINFO
environment variable based on the value of `system-uses-terminfo',
which is a emacs compile time constant. This is not correct as on the
same system some applications can still use TERMCAP, not terminfo. So
it is probably better to set both variables all the time. 

Please apply this patch if it's OK. 

2004-09-15  Dan Nicolaescu  <address@hidden>

        * term.el (term-exec-1): Set both TERMCAP and TERMINFO
        unconditionally. 
        (term-termcap-format): Synchronyze with the eterm terminfo entry
        in etc/e/eterm.ti.
        (term-handle-colors-array): If the current foreground or
        background are zero (i.e. unspecified), use the foreground and
        background of the default face for reverse video.
        (term-ansi-at-eval-string, term-ansi-default-fg)
        (term-ansi-default-bg, term-ansi-current-temp): Delete unused
        variable. 
        (term-mem): Delete ununsed function.


*** term.el     07 Sep 2004 15:26:52 -0700      1.56
--- term.el     15 Sep 2004 10:08:19 -0700      
***************
*** 676,682 ****
  (defvar term-terminal-menu)
  
  ;;; Let's silence the byte-compiler -mm
- (defvar term-ansi-at-eval-string nil)
  (defvar term-ansi-at-host nil)
  (defvar term-ansi-at-dir nil)
  (defvar term-ansi-at-user nil)
--- 676,681 ----
***************
*** 692,700 ****
  (defvar term-ansi-current-highlight 0)
  (defvar term-ansi-current-reverse 0)
  (defvar term-ansi-current-invisible 0)
- (defvar term-ansi-default-fg 0)
- (defvar term-ansi-default-bg 0)
- (defvar term-ansi-current-temp 0)
  
  ;;; Four should be enough, if you want more, just add. -mm
  (defvar term-terminal-more-parameters 0)
--- 691,696 ----
***************
*** 1365,1375 ****
  (defvar term-termcap-format
    "%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH\
  :nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\
! :al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=\\n\
  :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\
  :dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi:\
  :so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\
! :UP=\\E[%%dA:DO=\\E[%%dB:LE=\\E[%%dD:RI=\\E[%%dC"
  ;;; : -undefine ic
    "termcap capabilities supported")
  
--- 1361,1374 ----
  (defvar term-termcap-format
    "%s%s:li#%d:co#%d:cl=\\E[H\\E[J:cd=\\E[J:bs:am:xn:cm=\\E[%%i%%d;%%dH\
  :nd=\\E[C:up=\\E[A:ce=\\E[K:ho=\\E[H:pt\
! :al=\\E[L:dl=\\E[M:DL=\\E[%%dM:AL=\\E[%%dL:cs=\\E[%%i%%d;%%dr:sf=^J\
  :te=\\E[2J\\E[?47l\\E8:ti=\\E7\\E[?47h\
  :dc=\\E[P:DC=\\E[%%dP:IC=\\E[%%d@:im=\\E[4h:ei=\\E[4l:mi:\
  :so=\\E[7m:se=\\E[m:us=\\E[4m:ue=\\E[m:md=\\E[1m:mr=\\E[7m:me=\\E[m\
! :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:"
  ;;; : -undefine ic
    "termcap capabilities supported")
  
***************
*** 1386,1395 ****
         (nconc
          (list
           (format "TERM=%s" term-term-name)
!          (if (and (boundp 'system-uses-terminfo) system-uses-terminfo)
!              (format "TERMINFO=%s" data-directory)
!           (format term-termcap-format "TERMCAP="
!                   term-term-name term-height term-width))
           ;; Breaks `./configure' of w3 and url which try to run $EMACS.
           (format "EMACS=%s (term:%s)" emacs-version term-protocol-version)
           (format "LINES=%d" term-height)
--- 1385,1393 ----
         (nconc
          (list
           (format "TERM=%s" term-term-name)
!          (format "TERMINFO=%s" data-directory)
!          (format term-termcap-format "TERMCAP="
!                  term-term-name term-height term-width)
           ;; Breaks `./configure' of w3 and url which try to run $EMACS.
           (format "EMACS=%s (term:%s)" emacs-version term-protocol-version)
           (format "LINES=%d" term-height)
***************
*** 1409,1426 ****
           ".."
           command switches)))
  
- ;;; This should be in Emacs, but it isn't.
- (defun term-mem (item list &optional elt=)
-   "Test to see if ITEM is equal to an item in LIST.
- Option comparison function ELT= defaults to equal."
-   (let ((elt= (or elt= (function equal)))
-       (done nil))
-     (while (and list (not done))
-       (if (funcall elt= item (car list))
-         (setq done list)
-         (setq list (cdr list))))
-     done))
- 
  
  ;;; Input history processing in a buffer
  ;;; 
===========================================================================
--- 1407,1412 ----
***************
*** 3044,3052 ****
                    )
            (setq term-current-face
                  (list :background
!                       (elt ansi-term-color-vector term-ansi-current-color)
                        :foreground
!                       (elt ansi-term-color-vector 
term-ansi-current-bg-color)))
            (if (= term-ansi-current-bold 1)
                (setq term-current-face
                      (append '(:weight bold) term-current-face)))
--- 3030,3042 ----
                    )
            (setq term-current-face
                  (list :background
!                       (if (= term-ansi-current-color 0)
!                           (face-foreground 'default)
!                           (elt ansi-term-color-vector 
term-ansi-current-color))
                        :foreground
!                       (if (= term-ansi-current-bg-color 0)
!                           (face-background 'default)
!                       (elt ansi-term-color-vector 
term-ansi-current-bg-color))))
            (if (= term-ansi-current-bold 1)
                (setq term-current-face
                      (append '(:weight bold) term-current-face)))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]