Subject: bug#6085: closed (Re: Eshell doesn't handle ANSI escapes/colors well)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 29 May 2010 18:30:03 +0000

Your bug report

#6085: Eshell doesn't handle ANSI escapes/colors well

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6085: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6085
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: Eshell doesn't handle ANSI escapes/colors well
From: Chong Yidong <[email-masked]>
To: Thierry Volpiatto <[email-masked]>
Cc: Ken Hori <[email-masked]>, [email-masked]
Date: Sat, 29 May 2010 14:29:22 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>> Eshell doesn't handle a terminal escape code like ^[.
>>
>> [~/emacs.20100501/lisp/eshell]$ export TERM=xterm-256color
>> [~/emacs.20100501/lisp/eshell]$ *grep --color=auto ansi esh-*
>> ^[[Kesh-mode.el^[[K^[[K:^[[K    eshell-handle-^[[Kansi^[[K-color
>
> This was working some time ago so maybe looking at what have changed and
> reenable this feature should be good.

No, this is not a regression.  The mess here is due to the ^[[K ("erase
line") sequence that colorized grep emits.  (I don't know why it needs
this control sequence.)

There is no sane way for the ansi-color package to handle this.  Unlike
term.el, it is not intended to be a terminal emulator.  The best we can
do is to delete such sequences from the output, and I've committed a
change to do that.

Subject: Eshell doesn't handle ANSI escapes/colors well
From: Ken Hori <[email-masked]>
To: [email-masked]
Date: Sun, 2 May 2010 20:54:46 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

>From Emacs bzr HEAD:

Eshell doesn't handle a terminal escape code like ^[.

My eshell-output-filter-functions:
 '(eshell-output-filter-functions (quote (eshell-handle-ansi-color
eshell-handle-control-codes eshell-watch-for-password-prompt
eshell-postoutput-scroll-to-bottom)))

Example:
[~/emacs.20100501/lisp/eshell]$ export TERM=xterm-256color
[~/emacs.20100501/lisp/eshell]$ *grep --color=auto ansi esh-*
^[[Kesh-mode.el^[[K^[[K:^[[K    eshell-handle-^[[Kansi^[[K-color
^[[Kesh-mode.el^[[K^[[K:^[[K(autoload
'^[[Kansi^[[K-color-apply-on-region "^[[Kansi^[[K-color")
^[[Kesh-mode.el^[[K^[[K:^[[K(defun eshell-handle-^[[Kansi^[[K-color ()
^[[Kesh-mode.el^[[K^[[K:^[[K  (^[[Kansi^[[K-color-apply-on-region
eshell-last-output-start
^[[Kesh-mode.el^[[K^[[K:^[[K		   'eshell-handle-^[[Kansi^[[K-color)
^[[Kesh-var.el^[[K^[[K:^[[K;; is identical to just saying (lisp); but
with the variable exp^[[Kansi^[[Kon

`term-handle-ansi-escape' from term.el seems to be be handling
ansi escapes very well. Maybe we can integrate  a modified
version of it into Eshell.