2009-01-02 18:37:27 -05:00
|
|
|
# terminal fallback stuff
|
|
|
|
function fix_term ()
|
|
|
|
{
|
|
|
|
if (infocmp $1 &> /dev/null) ; then
|
|
|
|
echo $1
|
|
|
|
else
|
|
|
|
case $1 in
|
|
|
|
rxvt|xterm?*|kterm|putty)
|
|
|
|
fix_term xterm
|
|
|
|
;;
|
|
|
|
*rxvt?*|Eterm|aterm)
|
|
|
|
fix_term rxvt
|
|
|
|
;;
|
|
|
|
mlterm)
|
|
|
|
fix_term kterm
|
|
|
|
;;
|
2009-01-13 17:15:41 -05:00
|
|
|
screen-256colors-bce)
|
|
|
|
fix_term screen-256colors
|
|
|
|
;;
|
|
|
|
screen-256colors)
|
|
|
|
if (infocmp xterm-256colors &> /dev/null) ; then
|
|
|
|
fix_term xterm-256colors
|
|
|
|
else
|
|
|
|
fix_term screen
|
|
|
|
fi
|
|
|
|
;;
|
2009-01-02 18:37:27 -05:00
|
|
|
screen?*)
|
|
|
|
fix_term screen
|
|
|
|
;;
|
|
|
|
putty?*)
|
|
|
|
fix_term putty
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "vt100"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# sorta hacky, but I cannot find a better way to do this :/
|
|
|
|
function fix_terminfo_db ()
|
|
|
|
{
|
|
|
|
if [[ `type -p infocmp` = "$1/bin/infocmp" ]] ; then
|
|
|
|
export TERMINFO="$1/share/terminfo"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
# terminal surgery
|
|
|
|
case `uname -s` in
|
|
|
|
Interix)
|
|
|
|
fix_terminfo_db "/usr/local"
|
|
|
|
;;
|
|
|
|
SunOS)
|
|
|
|
fix_terminfo_db "/opt/csw"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
export TERM=$(fix_term $TERM)
|
|
|
|
|
2009-01-13 17:15:41 -05:00
|
|
|
if [[ $TERM == *256* ]] ; then
|
|
|
|
SCREEN_TERM=$(fix_term screen-256color-bce)
|
|
|
|
alias screen="screen -T ${SCREEN_TERM}"
|
2009-01-02 18:37:27 -05:00
|
|
|
fi
|
|
|
|
|