/* LISTMEM: version for OS/2 similar to @DIR on MVS*/ /* Created by David McRitchie, "The REXX Macros Toolbox", 1994/02/07 */ Address 'ISREDIT' 'MACRO (argx)'; /* NOPROCESS if adding cc-range later */ '(member) = member'; '(dataset) = dataset'; parse version v1 v2 v3 v4 v5 if v1 \= "REXXSAA" then do Say "THIS IS FOR OS/2 ONLY for SPF/PC on DOS try @STRAP" Say "==> @STRAP DIR *.*" exit 8 end parse var argx before 'pattern(' pattern ')' after if pattern \= '' then argx = before after pattern = translate(pattern) if pattern = "HTML" then pattern = """
  • ""filename""""" else if pattern = "" then pattern="PATTERN" member=dataset date1 = left(date('s'),4)"/"substr(date('s'),5,2)"/"right(date('s'),2) /* listmem listmem c:\spfmacro\*.* */ /* listmem spf listmem c:\spfmacro\*.spf */ /* listmem * listmem c:*.* */ /* listmem a: listmem a:\*.* */ /* listmem pattern(html) */ additions = 0 "loc .patt" if rc = 0 then do "(pattern) = line .patt" end if argx = '' then argx = "*" if length(argx) > 8 | substr(argx,2,1) = ":" then do;arg1 = argx;member=argx;end else arg1 = '*.'argx i=pos(':',member); if i=0 then member="c:"member l=length(member); x = substr(member,l,1) do i=l to 1 by -1 until x = '\'; x = substr(member,i,1); end; say '1...5...10...15...20...25' say member 'x='||x 'i='i if x \= '\' then return 0 arg0 = substr(member,1,i) say arg1 Call RxFuncAdd "SysFileTree", "REXXUTIL", "SysFileTree"; d=0 say 'begin phase 1 -- SysFileTree('arg1','stem','"BST"')' /* SysFileTree options .... (BST will be used) */ /* F Search for files only */ /* D Search for directories only */ /* B Search for both files and directories. (default) */ /* S Scan subdirectories recursively. (non-default) */ /* T Return time and date fields in the form: */ /* YY/MM/DD/HH/MM as opposed to MM/DD/YY HH:MMa */ /* O Only report fully qualified file names (no dates)*/ rc = SysFileTree(arg1,stem,"FO") say 'rc='rc', end of phase 1 -- records in stem.0 =' stem.0 if rc \= 0 then signal error "label .zlast = .LAST 0" do k = 1 to stem.0; if pattern \= "PATTERN" then do filename = stem.k interpret 'line='pattern "line_after .last = dataline (line)" iterate k end l=length(stem.k); x = substr(stem.k,l,1) do i=l to 1 by -1 until x = '\'; x = substr(member,i,1); end; var = substr(stem.k,i+1) var3 = strip(var); lvar3=length(var3); if lvar3 < 13 then do; kk=pos('.',var);km1=kk-1 if kk < 9 then if kk > 1 then var3 = left(substr(var,1,km1),8)||strip(substr(var,kk)) end "FIND '"var3"' 1 word first nx .zfirst .LAST" if rc \= 0 then do additions = 1 if length(arg0) < 15 then dash = '--'; else dash = '--' arg0||var line = substr(var3,1,14)substr(arg0,1,15)dash "LINE_AFTER .ZL = (LINE)" end end if additions = 1 then do line = '======listmem' date1 time('n') arg0 "line_after .LAST = (line)" line = 'return 0 /*This line added before LISTMEM results*/' "line_after .LAST = (line)" end return 0 /*This line added before LISTMEM results*/