#!/bin/zsh # $Id: tab.zsh,v 3.1 2004/06/06 12:02:31 ss Exp $ # DestroyFunc SwallowNextStatus # AddToFunc SwallowNextStatus # + I Deschedule 314159 # + I PipeRead 'usleep 1' # + I SendToModule FvwmCommandS swallowNext$0 # + I PipeRead 'usleep 1' # + I SendToModule FvwmCommandS flush tab () { FvwmCommand 'Schedule 2000 314159 Function SwallowNextStatus Failed' (( $? == 0 )) || { echo "FvwmCommand failed" 1>&2 ; false ; return } # IFS=$'\n' local bOk FvwmCommand -i2 -m 'SendToModule FvwmTabs swallowNext lastFocus Function SwallowNextStatus Ready' | \ while read line ; do # echo "got $line" if [ -z ${line#*swallowNextReady} ] ; then bOk=true break elif [ -z ${line#*swallowNextFailed} ] ; then echo "Error: FvwmTabs not responding to request." 1>& 2 bOk=false break fi done rv=$pipestatus[0] if (( $rv != 0 )) ; then echo "FvwmCommand failed" 1>&2 return $rv elif ! $bOk ; then echo "FvwmTabs failed" 1>&2 return 1 fi eval $* &! # give the window 200ms to popup & be swallowed. # usleep 200000 } # print function $0 initialised. tab $*