recordformat ainff(string (11) name,integer nkb,string (8) date,c
string (6) tape,integer chap,flags)
externalintegerfunctionspec ddestroy(string (6) user,c
string (15) file,c
string (8) date,c
integer fsys,type)
externalintegerfnspec dfilenames(string (6) user,c
record (ainff)arrayname inf,c
integername fileno,maxrec,nfiles,c
integer fsys,type)
externalintegerfunctionspec dfinfo(string (6) user,string (11) file,c
integer fsys,adr)
externalintegerfunctionspec get usnames(integername n,integer adr,c
fsys)
externalroutinespec get av fsys(integername n,integerarrayname a)
systemstringfunctionspec itos(integer n)
!
!
routine treat user(stringname user,integer fsys)
integer flag,fileno,maxrec,nfiles,dirfound,optfound,i,boxfound,proffound
integerarray a(0:20)
record (ainff)name f
record (ainff)array inf(0:1024)
!
dirfound = 0; optfound = 0; boxfound = 0; proffound = 0
flag = dfinfo(user,"SS#DIR",fsys,addr(a(0)))
if flag = 0 then dirfound = 1
flag = dfinfo(user,"SS#OPT",fsys,addr(a(0)))
if flag = 0 then optfound = 1
!
fileno = 0; maxrec = 1024
flag = dfilenames(user,inf,fileno,maxrec,nfiles,fsys,1)
if flag # 0 then monitor and return
return if maxrec = 0
for i = 0,1,maxrec-1 cycle
f == inf(i)
if f_name = "SS#DIR" then start
if dirfound = 0 then dirfound = 1 else start
printstring(user." SS#DIR ".f_date)
write(fsys,1)
newline
flag = ddestroy(user,"SS#DIR",f_date,fsys,1)
finish
continue
finish
if f_name = "SS#OPT" then start
if optfound = 0 then optfound = 1 else start
flag = ddestroy(user,"SS#OPT",f_date,fsys,1)
printstring(user." SS#OPT ".f_date)
write(fsys,1)
newline
finish
continue
finish
if f_name = "M#INBOX" then start
if boxfound = 0 then boxfound = 1 else start
flag = ddestroy(user,"M#INBOX",f_date,fsys,1)
printstring(user." M#INBOX ".f_date)
write(fsys,1)
newline
finish
continue
finish
if f_name = "M#PROFILE" then start
if proffound = 0 then proffound = 1 else start
flag = ddestroy(user,"M#PROFILE",f_date,fsys,1)
printstring(user." M#PROFILE ".f_date)
write(fsys,1)
newline
finish
continue
finish
repeat
end
!
integerfunction stoi(string (255) s)
if s = "-1" then result = -1
if length(s) = 1 then s = "0".s
if length(s) # 2 then result = -2
unless '0' <= charno(s,1) <= '9' then result = -2
unless '0' <= charno(s,2) <= '9' then result = -2
result = (charno(s,1) - '0')*10 + charno(s,2) - '0'
end ; ! of stoi
!
!
externalroutine sspurge(string (255) s)
string (6)array u(0:1023)
integer nu,nusers
integer j,n,fx,fsys
integerarray a(0:99)
string (63) user
!
fsys = -1
if s # "" then start
fsys = stoi(s)
unless -1 <= fsys <= 99 then -> bp
finish
if fsys<0 then get av fsys(n,a) else a(0) = fsys and n = 1
fx = 0
while fx<n cycle
fsys = a(fx)
printstring("+++ Fsys ".itos(fsys)." +++"); newline; newline
j = get usnames(nusers,addr(u(0)),fsys)
printstring("Get usnames flag ="); write(j,1)
printstring(" No of users ="); write(nusers,1); newlines(2)
nu = 0
while nu<nusers cycle
user<-u(nu)
if length(user) = 6 then start
treat user(user,fsys)
finish
nu = nu+1
repeat
fx = fx + 1
repeat
return
bp:
printstring("Illegal fsys specification"); newline
end ; ! of doall
endoffile