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