Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
################################################################ # # File: lslR2find2 # # Subject: converts a ls-lR file to a "find"-like format # # Author: Edrx # # Date: # ################################################################ # # # # Libbables: # ################################################################ $include "zinc.icn" global li, dirnow, prefix, nofsize, fsl, fsr, fnl # (find-fline "$DEBIAN/ls-lR") procedure fsize(); return li[fsl:fsr]; end procedure fname(); return li[fnl:0]; end procedure processli() if li == "" then return if li[-1] == ":" then { dirnow := li[1:-1] prefix := dirnow || "/" prefix ? if (="./") then prefix := tab(0) return } li ? { if ="total " then return if ="-" then { write(fsize(), " ", prefix, fname()) return } if ="l" then { write(nofsize, " ", prefix, fname()) return } if ="d" then { if fname() == ("." | "..") then return write(nofsize, " ", prefix, fname(), "/") return } write(li) } end procedure main(args) fsl := integer(args[1] | 32)+1 fsr := integer(args[2] | 41)+1 fnl := integer(args[3] | 55)+1 # extra := ((*args>0) & (integer(args[1]))) nofsize := repl(" ", fsr-fsl) prefix := "" while li := read() do processli() end