title revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
1N/A# add to (+), delete from (-), set [=], or print (.) window title
1N/A# arguments are eval'd before printing
1N/A# title text string exported in TITLE_TEXT
1N/A
1N/Afunction title # [ + | - | = | . ] title ...
1N/A{
1N/A typeset x t="$TITLE_TEXT"
1N/A
1N/A case $1 in
1N/A +) shift
1N/A case $# in
1N/A 0) ;;
1N/A *) for x
1N/A do case " $t " in
1N/A *" $x "*) ;;
1N/A " ") t=$x ;;
1N/A *) t="$t $x" ;;
1N/A esac
1N/A done
1N/A case $t in
1N/A $TITLE_TEXT) return 1 ;;
1N/A esac
1N/A ;;
1N/A esac
1N/A ;;
1N/A -) shift
1N/A case $# in
1N/A 0) ;;
1N/A *) for x
1N/A do case " $t " in
1N/A *" $x "*) t="${t%?( )$x*}${t##*$x?( )}" ;;
1N/A esac
1N/A done
1N/A case $t in
1N/A $TITLE_TEXT) return 1 ;;
1N/A esac
1N/A ;;
1N/A esac
1N/A ;;
1N/A .) print -r -- "$TITLE_TEXT"
1N/A return 0
1N/A ;;
1N/A =) shift
1N/A t="$*"
1N/A ;;
1N/A *) t="$*"
1N/A ;;
1N/A esac
1N/A export TITLE_TEXT="$t"
1N/A eval x=\"$t\"
1N/A case $TERM in
1N/A 630*) print -nr -- $'\E[?'"${#x}"$';0v'"${x}" ;;
1N/A uwin*|*vt100|xterm*) print -nr -- $'\E]0;'"${x}"$'\a' ;;
1N/A *) return 1 ;;
1N/A esac
1N/A return 0
1N/A}
1N/A