title.sh revision d522f475
1d522f475Smrg#!/bin/sh
2d522f475Smrg# $XFree86: xc/programs/xterm/vttests/title.sh,v 1.6 2003/05/19 00:52:30 dickey Exp $
3d522f475Smrg#
4d522f475Smrg# -- Thomas Dickey (1999/3/27)
5d522f475Smrg# Obtain the current title of the window, set up a simple clock which runs
6d522f475Smrg# until this script is interrupted, then restore the title.
7d522f475Smrg
8d522f475SmrgESC=""
9d522f475SmrgCMD='echo'
10d522f475SmrgOPT='-n'
11d522f475SmrgSUF=''
12d522f475SmrgTMP=/tmp/xterm$$
13d522f475Smrgeval '$CMD $OPT >$TMP || echo fail >$TMP' 2>/dev/null
14d522f475Smrg( test ! -f $TMP || test -s $TMP ) &&
15d522f475Smrgfor verb in printf print ; do
16d522f475Smrg    rm -f $TMP
17d522f475Smrg    eval '$verb "\c" >$TMP || echo fail >$TMP' 2>/dev/null
18d522f475Smrg    if test -f $TMP ; then
19d522f475Smrg	if test ! -s $TMP ; then
20d522f475Smrg	    CMD="$verb"
21d522f475Smrg	    OPT=
22d522f475Smrg	    SUF='\c'
23d522f475Smrg	    break
24d522f475Smrg	fi
25d522f475Smrg    fi
26d522f475Smrgdone
27d522f475Smrgrm -f $TMP
28d522f475Smrg
29d522f475Smrgexec </dev/tty
30d522f475Smrgold=`stty -g`
31d522f475Smrgstty raw -echo min 0  time 5
32d522f475Smrg
33d522f475Smrg$CMD $OPT "${ESC}[21t${SUF}" > /dev/tty
34d522f475Smrgread original
35d522f475Smrg
36d522f475Smrgstty $old
37d522f475Smrg
38d522f475Smrg# We actually get this terminated by an <esc>backslash, but the backslash
39d522f475Smrg# is lost.  We may lose doublequote characters when restoring the title,
40d522f475Smrg# depending on the shell.
41d522f475Smrgoriginal=`echo "$original" |sed -e 's/^...//' -e 's/.$//'`
42d522f475Smrgoriginal=${ESC}]2\;"${original}"${SUF}
43d522f475Smrg
44d522f475Smrgif ( trap "echo exit" EXIT 2>/dev/null ) >/dev/null
45d522f475Smrgthen
46d522f475Smrg    trap '$CMD $OPT "$original" >/dev/tty; exit' EXIT HUP INT TRAP TERM
47d522f475Smrgelse
48d522f475Smrg    trap '$CMD $OPT "$original" >/dev/tty; exit' 0    1   2   5    15
49d522f475Smrgfi
50d522f475Smrg
51d522f475Smrgwhile true
52d522f475Smrgdo
53d522f475Smrg	sleep 1
54d522f475Smrg	$CMD $OPT "${ESC}]2;`date`" >/dev/tty
55d522f475Smrgdone
56