home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / live / usr / share / xterm / vttests / title.sh < prev   
Linux/UNIX/POSIX Shell Script  |  1999-09-19  |  1KB  |  48 lines

  1. #!/bin/sh
  2. # $XFree86: xc/programs/xterm/vttests/title.sh,v 1.3 1999/04/25 10:03:09 dawes Exp $
  3. #
  4. # -- Thomas Dickey (1999/3/27)
  5. # Obtain the current title of the window, set up a simple clock which runs
  6. # until this script is interrupted, then restore the title.
  7.  
  8. ESC=""
  9. CMD='echo'
  10. OPT='-n'
  11. SUF=''
  12. TMP=/tmp/xterm$$
  13. for verb in print printf ; do
  14.     rm -f $TMP
  15.     eval '$verb "\c" >$TMP || echo fail >$TMP' 2>/dev/null
  16.     if test -f $TMP ; then
  17.     if test ! -s $TMP ; then
  18.         CMD="$verb"
  19.         OPT=
  20.         SUF='\c'
  21.         break
  22.     fi
  23.     fi
  24. done
  25. rm -f $TMP
  26.  
  27. exec </dev/tty
  28. old=`stty -g`
  29. stty raw -echo min 0  time 5
  30.  
  31. $CMD $OPT "${ESC}[21t${SUF}" > /dev/tty
  32. read original
  33.  
  34. stty $old
  35.  
  36. # We actually get this terminated by an <esc>backslash, but the backslash
  37. # is lost.  We may lose doublequote characters when restoring the title,
  38. # depending on the shell.
  39. original=`echo "$original" |sed -e 's/^...//' -e 's/.$//'`
  40. original=${ESC}]2\;"${original}"${SUF}
  41.  
  42. trap '$CMD $OPT "$original" >/dev/tty; exit' 0 1 2 5 15
  43. while true
  44. do
  45.     sleep 1
  46.     $CMD $OPT "${ESC}]2;`date`" >/dev/tty
  47. done
  48.