d$! DO DIR {dir_parms {. or ;}} $! Show a condensed directory listing. ,$! $! This procedure places the file names, 5 to a line, to permit $! a long directory to be listed without running off the screen. X$! In addition multiple versions of the file are represented by the $! name for the first file, and version numbers for the rest. $! $! The first parameter, dir_parms, is used to specify a subset $! of the files to show ( i.e. a subset of *.*;* ). The second L$! parameter, "." or ";" , is used to shorten the file name(s) shown. $! Specify "." to have the type and version left off, and ";" to have $! the version left off. x$! $! note.. Creates, and deletes ZZZZZZZZZ.VX @$! $!-end.of.info- $ l$ if('f$locate("SCI_",p1).nes.'f$length(p1))then goto getSCI $ $gotSCI: $ directory/brief/out=ZZZZZZZZZ.VX 'p1 ` $ open/read inp ZZZZZZZZZ.VX $ on error then goto fini ( $ on control then goto fini $ $ outp := "" T $ read/err=fini inp line $ ipos = 'f$locate("]",line)-10  $ line := "''f$extract(11,ipos,line) $ on error then goto clsall $ write sys$output "''line' ''f$time() H $ write sys$output "" $ old :="" $ t$ragn: $ read/err=fini inp line <$ line := "''line' " $ new := 'line' $ lnam = 'f$locate(";",line)-2 h$ if( "''f$extract(2,lnam,line)'".eqs."ZZZZZZZZZ.VX") then goto fini $ if( "''f$extract(2,lnam,line)'".eqs."''f$extract(2,lnam,old)'" ) then- 0 line := "''f$extract(lnam,18,line)'" $ $ old := 'new' \$ $ if( p2 .nes. ";" ) then goto nosem $$ locsem = 'f$locate(";",line) $ line := "''f$extract(0,locsem,line)' " $ P$nosem: $ $ if( p2 .nes. "." ) then goto noper |$ locper = 'f$locate(".",line) $ line := "''f$extract(0,locper,line)' " D$ $noper: $ outp := "''outp'''f$extract(2,15,line)'" p$ if( 'f$length(outp).lt.70 ) then goto ragn $ write sys$output outp 8$ outp := "" $ goto ragn $ d$fini: $ write sys$output outp ,$ $clsall: $ close inp X$ delete ZZZZZZZZZ.VX;* $ exit $ $getSCI: $ temp := 'f$extract(0,7,p1) L$ p1 := 'f$logical(temp)''f$extract(8,100,p1) $ goto gotSCI