|
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