10
20
30 :
40 ON ERROR REPORT:PROCClose_All:PRINT LEFT$(" at line "+STR$ERL,ERR<128 AND ERR<>17):PROCexit(ERR):END
50 A$=FNOS_GetEnv:in%=0:out%=0:IF os%>31:PROCWin_TextIO
60 IF FNcl("-?",0):PRINT "Syntax: eol <infile> [-cr|-lf|-crlf|-lfcr] [<outfile>]":PROCexit(0)
70 eol%=(FNcl("-crlf",0) AND 1) OR (FNcl("-lfcr",0) AND 2) OR (FNcl("-cr",0) AND 3) OR (FNcl("-lf",0) AND 4)
80 in$=FNcl("",0):out$=FNcl("",0)
90 IF in$="":INPUT "Input file: "in$:INPUT" output file: "out$:IF eol%=0:INPUT "Output EOL type: "eol%
100 IF eol%=0:eol%=10-3*(os%<6):IF os%>31:eol%=1:
110 :
120 same%=out$="" OR out$=in$:IF same%:out$="!!tmp!!"
130 in%=OPENIN(in$):IF in%=0:PRINT"File '"in$"' not found":PROCexit(214)
140 out%=OPENOUT(out$):IF out%=0:PRINT"Can't save '"out$"'":CLOSE#in%:in%=0:PROCexit(192)
150 REPEAT
160 PROCwr(out%,FNrd(in%))
170 IF eol%=1:BPUT#out%,13:BPUT#out%,10
180 IF eol%=2:BPUT#out%,10:BPUT#out%,13
190 IF eol%=3:BPUT#out%,13
200 IF eol%=4:BPUT#out%,10
210 UNTIL EOF#in%
220 CLOSE#out%:out%=0
230 CLOSE#in%:in%=0
240 IF same%:OSCLI "Delete "+in$:OSCLI "Rename "+out$+" "+in$
250 PROCexit(0)
260 :
270 :
280 DEFPROCWin_TextIO
290 SYS "GetStdHandle",-10 TO @hfile%(1):*INPUT 13
300 SYS "GetStdHandle",-11 TO @hfile%(2):*OUTPUT 14
310 SYS "SetConsoleMode",@hfile%(1),0:ENDPROC
320 :
330 DEFPROCClose_All
340 in%=in%:IFin%:A%=in%:in%=0:CLOSE#A%
350 out%=out%:IFout%:A%=out%:out%=0:CLOSE#A%
360 ENDPROC
370 :
380 DEFFNrd(i%):LOCALA%,B%,A$:REPEAT:A%=BGET#i%:IFA%<>10ANDA%<>13:A$=A$+CHR$A%
390 UNTILA%=10ORA%=13OREOF#i%:IFNOTEOF#i%:B%=BGET#i%:IFA%=B%OR(B%<>13ANDB%<>10):PTR#i%=PTR#i%-1
400 =A$
410 DEFPROCwr(o%,A$):IFA$="":ENDPROC
420 FORA%=1TOLENA$:BPUT#o%,ASCMID$(A$,A%,1):NEXT:ENDPROC
430 :
440 DEFFNcl(l$,n%):IFl$="":A$=FNs(A$):IFASCA$=34:A%=INSTR(A$+" "" ",""" ",2):l$=MID$(A$,2,A%-2):A$=FNs(MID$(A$,A%+1)):=l$
450 IFl$="":A%=INSTR(A$+" "," "):l$=LEFT$(A$,A%-1):A$=FNs(MID$(A$,A%+1)):=l$
460 IFn%=0:IFl$<>"":A%=INSTR(A$,l$):IFA%:A$=FNs(LEFT$(A$,A%-1)+MID$(A$,INSTR(A$," ",A%)+1))+" ":=TRUE
470 IFn%=0:IFl$<>"":=FALSE
480 A%=INSTR(LEFT$(" ",ASCl$=32)+A$,l$):IFA%=0:=""
490 A$=LEFT$(A$,A%-1)+FNs(MID$(A$,INSTR(A$," ",A%)+1))
500 IFASCl$=32:l$=MID$(A$,A%):A$=LEFT$(A$,A%-1):=MID$(l$,1-(ASCl$=34),LENl$+2*(ASCl$=34))
510 IFASCMID$(A$,A%,1)<>34:l$=MID$(A$,A%,INSTR(A$+" "," ",A%)-A%):A$=LEFT$(A$,A%-1)+MID$(A$,A%+LENl$+1):=l$
520 l$=MID$(A$,A%+1,INSTR(A$+""" ",""" ",A%+1)-A%-1):A$=LEFT$(A$,A%-1)+MID$(A$,A%+LENl$+3):=l$
530 DEFFNs(A$):IFLEFT$(A$,1)=" ":REPEATA$=MID$(A$,2):UNTILLEFT$(A$,1)<>" "
540 IFRIGHT$(A$,1)=" ":REPEATA$=LEFT$(A$,LENA$-1):UNTILRIGHT$(A$,1)<>" "
550 =A$
560 :
570 DEFFNOS_GetEnv:LOCALA$,A%,X%,Y%:X%=1:os%=((USR&FFF4)AND&FF00)DIV256
580 IF!PAGE=&D7C1C7C5:run$=ARGV$(0):IFARGC:FORA%=1TOARGC:A$=A$+ARGV$(A%)+" ":NEXT:=LEFT$(A$,LENA$-1)ELSEIF!PAGE=&D7C1C7C5:=""
590 IFos%>31:IFPAGE>&FFFFF:DIMX%LOCAL256:SYS"GetModuleFileName",0,X%,255:run$=$$X%:=@cmd$
600 A%=(HIMEM>&FFFF)AND&900:IF?(TOP-3):A%=((PAGE>&9FFF)ANDA%)OR((&1400-PAGE)AND(A%=0))ELSEA%=((A%-&500)OR&200)AND&FFF
610 A$=$(PAGE-&E00+A%):IFA%=0:run$=A$:SYS16TOA$,,A%:SYS72,"",A%:A$=MID$(A$,1+INSTR(A$+" "," ",1+INSTR(A$," "))):IFLENA$=0:A$=run$
620 FORY%=-1TO0:A$=" "+A$:REPEATA$=MID$(A$,2):UNTILASCA$<>32
630 IFY%:IFASCA$=34:A%=INSTR(A$,"""",2)+1 ELSEIFY%:A%=INSTR(A$+" "," ")
640 IFY%:run$=MID$(A$,1-(ASCA$=34),A%-1+2*(ASCA$=34)):IFrun$<>"":A$=MID$(A$,A%+1)
650 NEXT:=A$
660 DEFPROCos(A$):IFASCA$=42:OSCLIA$ ELSE IFA$<>"":CHAINA$
670 ENDPROC
680 DEFPROCexit(A%):OSCLI"FX1,"+STR$(A%AND255):quit$=quit$:A$=quit$:quit$="":PROCos(A$)
690 IFPAGE>&FFFFF:QUIT A%
700 IFos%<6:END ELSE *Quit
710 ENDPROC
720 :