blob: cf3efdcb0016e3187258e2374d3585ac7d44296f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# add to (+), delete from (-), set [=], or print (.) 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
;;
=) shift
t="$*"
;;
*) t="$*"
;;
esac
export TITLE_TEXT="$t"
eval x=\"$t\"
case $TERM in
630*) print -nr -- $'\E[?'"${#x}"$';0v'"${x}" ;;
uwin*|*vt100|xterm*) print -nr -- $'\E]0;'"${x}"$'\a' ;;
*) return 1 ;;
esac
return 0
}
|