Unly use classifications in ls if stdout is a tty

darcs-hash:20060919165317-ac50b-c7923c7f5900ecc9814756743e6b0345efa382c5.gz
This commit is contained in:
axel 2006-09-20 02:53:17 +10:00
parent 7a5823fd60
commit be886bc6df
3 changed files with 45 additions and 1 deletions

12
doc_src/isatty.txt Normal file
View file

@ -0,0 +1,12 @@
\section isatty isatty - Test if the specidied file descriptor is a tty
\subsection isatty-synopsis Synopsis
<tt>isatty [FILE DESCRIPTOR]</tt>
where FILE DESCRIPTOR may be either the number of a file descriptor, or one
of the strings stdin, stdout and stderr.
If he specified file descriptor is a tty, the exit status of the
command is zero, otherwise, it is non-zero.

View file

@ -0,0 +1,28 @@
function isatty -d "Tests if a file descriptor is a tty"
set -l fd 0
if count $argv >/dev/null
switch $argv[1]
case -h --h --he --hel --help
help isatty
case stdin
set fd 0
case stdout
set fd 1
case stderr
set fd 2
case '*'
set fd $argv[1]
end
end
eval "tty 0>&$fd >/dev/null"; and return 0
return 1
end

View file

@ -5,7 +5,11 @@
if command ls --version 1>/dev/null 2>/dev/null
# This is GNU ls
function ls -d (N_ "List contents of directory")
command ls --color=auto --indicator-style=classify $argv
set -l param --color=auto
if isatty 1
set param $param --indicator-style=classify
end
command ls $argv
end
set -l color_document 35