mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
54 lines
868 B
Text
54 lines
868 B
Text
# add to (+), delete from (-), print (.), or set ([=]) window title
|
||
# arguments are eval'd before printing
|
||
# title text string exported in TITLE_TEXT
|
||
|
||
function title # [+ | - | =] title ...
|
||
{
|
||
typeset x t="$TITLE_TEXT"
|
||
|
||
case $1 in
|
||
+) shift
|
||
case $# in
|
||
0) ;;
|
||
*) for x
|
||
do case " $t " in
|
||
*" $x "*) ;;
|
||
" ") t=$x ;;
|
||
*) t="$t $x" ;;
|
||
esac
|
||
done
|
||
case $t in
|
||
$TITLE_TEXT) return 1 ;;
|
||
esac
|
||
;;
|
||
esac
|
||
;;
|
||
-) shift
|
||
case $# in
|
||
0) ;;
|
||
*) for x
|
||
do case " $t " in
|
||
*" $x "*) t="${t%?( )$x*}${t##*$x?( )}" ;;
|
||
esac
|
||
done
|
||
case $t in
|
||
$TITLE_TEXT) return 1 ;;
|
||
esac
|
||
;;
|
||
esac
|
||
;;
|
||
.) print -r -- "$TITLE_TEXT"
|
||
return 0
|
||
;;
|
||
*) t="$*"
|
||
;;
|
||
esac
|
||
export TITLE_TEXT="$t"
|
||
eval x=\"$t\"
|
||
case $TERM in
|
||
630*) print -nr -- "[?${#x};0v$x" ;;
|
||
vt100|xterm*) print -nr -- "]0;$x" ;;
|
||
*) return 1 ;;
|
||
esac
|
||
return 0
|
||
}
|