{ Read file names from command buffer } { Assumes global file names 'infilename' and 'outfilename' } procedure getfilenames (extin, extout : string255); const buflen = 128; { Length of command buffer } var buffer : string buflen; ch : char; bp, len : byte; { Read a name from the command buffer } procedure getname (var name : string0; ext : string255); { Read one character from the command buffer } procedure getchar; begin bp := bp + 1; if bp <= len then ch := buffer[bp] else ch := chr(0) end; { getchar } begin { getname } setlength(name,0); repeat getchar until ch <> blank; if ch > chr(0) then begin repeat append(name,ch); getchar until (ch = blank) or (ch = chr(0)); if index(name,'.') = 0 then append(name,ext) end end; { getname } begin { getfilenames } setlength(buffer,0); while not eoln(0) do begin read(ch); append(buffer,ch) end; { while } len := length(buffer); bp := 0; getname(infilename,extin); getname(outfilename,extout); if (length(infilename) > 0) and (length(outfilename) = 0) then begin outfilename := infilename; setlength(outfilename,index(outfilename,'.') - 1); append(outfilename,extout) end end; { getfilenames }