# Try to find a valid TERM entry.
#
-for term in linux dtterm xterm vt100; do
- if has_term $term; then
- export TERM=$term
- break
+# Note that running answerback will prevent keyboard input, which is annoying
+# if you try to start typing while the shell is starting up.
+term=
+eval $(answerback 2>/dev/null)
+case "$ANSWERBACK" in
+ PuTTY) term=xterm-256color;;
+ urxvt) term=rxvt-unicode;;
+esac
+
+if [ ! -z "$term" ]; then
+ if ! has_term $term; then
+ export TERMINFO=~/.terminfo
fi
-done
+ export TERM=$term
+elif ! has_term $TERM; then
+ for term in rxvt-unicode xterm-256color xterm-88color linux dtterm xterm-color xterm vt100; do
+ if has_term $term; then
+ export TERM=$term
+ break
+ fi
+ done
+fi
-unset term
+unset ANSWERBACK term