call lineout savefile,"Message killed for presence of string:" reason
do u=1 to temp.0
call lineout savefile,temp.u
end
call lineout savefile,origline
end
if messagenumbers<>"" then do until rc=0
"hacksaw email mw" hackargs
if rc<0 then do
call TellUser CENTER 80 "HACKSAW returned error code" rc "when checking the number of messages on the server before deleting message(s)" messagenumbers". Will keep trying...."
iterate
end
if rc<message then do
longline=program "wants to delete message number(s)" messagenumbers", but the POP3 server says there are fewer messages present now than there were a moment ago. "
longline=longline||"This must mean that some other program has deleted some messages from the server. Therefore," program "cannot delete these messages since there's no "
longline=longline||"way of knowing that the old message numbers still refer to the same messages!"
call TellUser CENTER 80 longline
rc=0
iterate
end
nospace=translate(messagenumbers,","," ")
"hacksaw email del mn("nospace")" hackargs
if rc=200 then do
call TellUser CENTER 80 "POP3 server says there are no messages present. User must have deleted them before" program "could, using some other program."
rc=0
end
else if rc<>0 then do
call TellUser CENTER 80 "HACKSAW returned error code" rc "when trying to delete message number(s)" messagenumbers". Will keep trying...."
end
end
else do
parse value syscurpos() with row column
call syscurpos row, 0
say "No messages matched the search strings. "
end
call lineout infile
call sysfiledelete infile
if words(hackargs)>1 | (translate(left(hackargs,5))<>"PORT(" & hackargs<>"") then leave
end
exit
Syntax:
say ""
say "Error" rc "in line" sigl":" errortext(rc)
say sigl":" sourceline(sigl)
exit
return
Halt:
say ""
say Program "interrupted by Ctrl-C, ShutDown, or closing of WorkArea."
exit
return
NoREXX:
call TellUser CENTER 80 "Unable to load the REXXUtil functions. Either the REXXUTIL.DLL file is not on the LIBPATH or REXX support is not installed on this system."
exit
return
TellUser: procedure
/* Copyright (c)1995 Kari Jackson */
parse arg format width message
if wordpos(format,"CENTER center LEFT left LINES lines")=0 then return "ERROR1"
if datatype(width,"W")=0 then return "ERROR2"
if width>80 then return "ERROR3"
if width=80 then width=79
if message="" then return "ERROR4"
width=width-4
if wordpos(format,"LINES lines")=0 then do
testing=message
testlen1=0
do until testing=""
parse var testing test testing
testlen2=length(test)
if testlen2>testlen1 then testlen1=testlen2
end
if testlen1>width then width=testlen1
if width>75 then return "ERROR5"
do q=1 until message=""
if msg.q="MSG."q then parse var message msg.q message
do until message=""
parse var message nextword message
if length(msg.q nextword) > width then do
message=nextword message
iterate q
end
else msg.q=msg.q nextword
end
end
end
else do
parse var message delimiter 2 message
do q=1 until message=""
parse var message msg.q (delimiter) message
end
testlen4=0
do c=1 to q
testlen5=length(msg.c)
if testlen5>testlen4 then testlen4=testlen5
end
if testlen4>width then width=testlen4
end
if format="left"|format="LEFT" then do
width=0
do c=1 to q
width2=length(msg.c)
if width2>width then width=width2
end
end
say
say "┌"copies("─",width+2)"┐"
if format="LEFT"|format="left" then do b=1 to q
say "│ "msg.b||copies(" ",width-length(msg.b))" │"