/* EMF - E-Mail From */

address spot
options results


signal on Syntax
signal on failure
options failat 20


parse arg area

'gotoarea NAME ' Area
if rc=0 then do
	'MessageList'

	'excludeflag all'

	'include from "UUCP" UNREAD NOGUI NOREQ '

	'getnumselected'
	selected=result


	if selected>0 then do

		'firstmessage'
		'nextmarked'
		'prevmarked'

		'progressopen TITLE "Imp Master E-Mail From" Prompt "Reading"'
		progdat=result

		do loop=1 to selected
			'getmessagenum'
			EMail.loop=result
			'progressupdate REQ "'progdat'" CURRENT "'LOOP'" TOTAL "'SELECTED'" PROMPT "Reading"'
			if rc=5 then loop=selected
			'nextmarked'
		end
		'progressclose 'progdat
		'excludeflag all'

		'progressopen TITLE "Imp Master E-Mail From" Prompt "Changing"'
		progdat=result


		do loop=1 to selected
	                'gotomessage' email.loop
			'markmessage'
			'saveascii To "T:EMFTEMP" OVERWRITE NOHEADER NOTEARLINE NOKLUDGES NOREFLOW'
			call open(emfo,"T:EMFTEMP",'r')
			line=readln(emfo)
			call close(emfo)
			if upper(substr(line,1,5))="FROM:" then do
				NFROM=strip(compress(substr(line,6),":&%^$[]/\*#?()"||'27'x||'22'x))
				if lastpos('<',nfrom)~=0 then nfrom=strip(substr(nfrom,1,lastpos('<',nfrom)-1))
				'edit from "'NFROM'" NOGUI NOREQ NOEDIT'
			end
			'markmessage clear'
			'progressupdate REQ "'progdat'" CURRENT "'LOOP'" TOTAL "'SELECTED'" PROMPT "Changing"'
			if rc=5 then do
				loop=selected
				'excludeflag all'
			end

		end

                'progressclose 'progdat

        end
end

'excludeflag all'

exit selected

syntax:
failure:

signal off failure
signal off syntax

parse source . . . program

program = subword(program,1,words(program)-2)

call 'spot/impmaster/imperror'(program,rc,sigl,sourceline(sigl))

exit