mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
55 lines
868 B
Text
55 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
|
|||
|
}
|