*! version 1.0.0 10/28/93 STB16: zz3 program define stb quietly version global STBver = _result(1) version 3.1 stb_dirs di _n " ___ ____ ____" _n " /__ / /___/" _n /* */ "___/ / /___/ informer" _n _dup(27) "-" _n preserve local i 1 capture stb_find stb`i' while _rc==0 { local i=`i'+1 capture stb_find stb`i' } local i=`i'-1 if `i'==0 { di in red "STB index files not found" exit 601 } di in gr "(indexes for STB-1 through STB-`i' found)" while 1 { while "`insert'"=="" { di _n in gr "--Top level-- Enter search specification, " /* */ in wh "?" in gr ", " in wh "??" in gr ", or " /* */ in wh "end" in gr " -> " _request(_insert) if "`insert'"=="end" | "`insert'"=="" { exit } if "`insert'"=="?" { stb_qih local insert } if "`insert'"=="??" { stb_qihh local insert } if "`insert'"==">cal" { stb_cal local insert } } if substr("`insert'",1,1)=="/" { local insert = substr("`insert'",2,.) local l -1 } else if substr("`insert'",1,1)=="\" { local insert = substr("`insert'",2,.) local l -2 } else if substr("`insert'",1,1)=="=" { local insert = substr("`insert'",2,.) local l=index("`insert'","*") while `l' { local insert = substr("`insert'",1,`l'-1)+/* */ substr("`insert'",`l'+1,.) local l=index("`insert'","*") } local l -3 } else if substr("`insert'",length("`insert'"),1)=="*" { local l = length("`insert'")-1 } else local l . stb_idx "`insert'" `l' stb_next local insert } /*NOTREACHED*/ end exit /* globals: STBdlmt directory delimiter (e.g., /) STBdir# directory STBdirn number of directories, 1 ... $STBdirn */