When running eshell, using an external program that outputs in color results in the raw terminal escape codes being displayed. For example,
~ $ yaourt -Ss emacs
^[[3m^[[1;32mextra/^[[0m^[[0m^[[1memacs ^[[1;32m22.3-1 ^[[7m^[[1;33m[installed]^[[0m ^[[1;34m^[[0m
^[[3m The Emacs Editor^[[0m
^[[3m^[[1;32mextra/^[[0m^[[0m^[[1msnd ^[[1;32m10.1-1^[[0m ^[[1;34m^[[0m
^[[3m Snd is the emacs of sound editor^[[0m
^[[3m^[[1;32mextra/^[[0m^[[0m^[[1mtexmacs ^[[1;32m1.0.6.14-1^[[0m ^[[1;34m^[[0m
^[[3m GNU TeXmacs is a free scientific text editor, which was both inspired by TeX^[[0m
...
However, if the following code is used in ~/.emacs (code found at http://www.emacswiki.org/emacs/EshellColor):
(require 'ansi-color)
(require 'eshell)
(defun eshell-handle-ansi-color ()
(ansi-color-apply-on-region eshell-last-output-start
eshell-last-output-end))
(add-to-list 'eshell-output-filter-functions 'eshell-handle-ansi-color)
the output is correctly displayed in color as:
$ yaourt -Ss emacs
extra/emacs 22.3-1 [installed]
The Emacs Editor
extra/snd 10.1-1
Snd is the emacs of sound editor
extra/texmacs 1.0.6.14-1
GNU TeXmacs is a free scientific text editor, which was both inspired by TeX
...
I think that this should be included and enabled by default with eshell, as it doesn't change existing behaviour for non-color output, it only makes color output readable. I have a fair few programs that output in color, and the default behaviour made eshell unusable for me.
In GNU Emacs 22.3.1 (i686-pc-linux-gnu, GTK+ Version 2.12.11)
of 2008-09-09 on p15200770.pureserver.info
Windowing system distributor `The X.Org Foundation', version 11.0.10402000
configured using `configure '--prefix=/usr' '--sysconfdir=/etc' '--libexecdir=/usr/lib' '--localstatedir=/var' '--mandir=/usr/share/man' '--without-sound' '-with-x-toolkit=gtk' 'CFLAGS=-march=i686 -mtune=generic -O2 -pipe''