Files
erkyrath.infocom-zcode-terps/fixer.mud
Andrew Plotkin b642da811e Initial commit.
2023-11-16 18:19:54 -05:00

62 lines
1.9 KiB
Plaintext

<SETG ASC-CTJ <ASCII 10>>
<SETG ASC-CTM <ASCII 13>>
<SETG ASC-CTP <ASCII 16>>
<SETG ASC-TAB <ASCII 9>>
<SETG ASC-ESC <ASCII 27>>
<SETG ASC-PRN !\(>
<MANIFEST ASC-CTJ ASC-CTM ASC-CTP ASC-TAB ASC-ESC ASC-PRN>
<SETG END-READ <STRING <ASCII 27>>>
<GDECL (END-READ) STRING>
<DEFINE CVT (INFILE OUTFILE "AUX" INCH OUCH)
#DECL ((INFILE OUTFILE) STRING (INCH OUCH) <OR CHANNEL FALSE>)
<COND (<NOT <SET INCH <OPEN "READ" .INFILE>>> .INCH)
(<NOT <SET OUCH <OPEN "PRINT" .OUTFILE>>> .OUCH)
(ELSE
<REPEAT (CHR CHR1 CHR2) #DECL ((CHR CHR1 CHR2) CHARACTER)
<SET CHR <READCHR .INCH '<RETURN>>>
<COND (<==? .CHR ,ASC-CTM>
<SET CHR1 <READCHR .INCH '<RETURN>>>
<COND (<==? .CHR1 ,ASC-CTP>
<SET CHR2 <READCHR .INCH '<RETURN>>>
<PRINC ,ASC-CTM .OUCH>
<PRINC ,ASC-CTJ .OUCH>
<COND (<==? .CHR2 ,ASC-PRN>
<PRINC ,ASC-TAB .OUCH>)
(ELSE <PRINC .CHR2 .OUCH>)>)
(ELSE
<PRINC .CHR .OUCH>
<PRINC .CHR1 .OUCH>)>)
(ELSE <PRINC .CHR .OUCH>)>>
<CLOSE .INCH>
<CLOSE .OUCH>)>>
<DEFINE INIT-CVT ("AUX" INLNT OUTLNT INFILE OUTFILE
(INCHAN .INCHAN) (OUTCHAN .OUTCHAN))
#DECL ((INLNT OUTLNT) FIX (INFILE OUTFILE) STRING
(INCHAN OUTCHAN) CHANNEL)
<REPEAT ()
<READCHR .INCHAN>
<PRINC "Input File: " .OUTCHAN>
<SET INLNT
<READSTRING <SET INFILE <ISTRING 30>> .INCHAN ,END-READ>>
<COND (<0? .INLNT> <QUIT>)
(ELSE <SET INFILE <SUBSTRUC .INFILE 0 .INLNT>>)>
<PRINC !\[ .OUTCHAN>
<PRINC .INFILE .OUTCHAN>
<PRINC !\] .OUTCHAN>
<CRLF .OUTCHAN>
<PRINC "Output File: " .OUTCHAN>
<SET OUTLNT
<READSTRING <SET OUTFILE <ISTRING 30>> .INCHAN ,END-READ>>
<COND (<0? .OUTLNT> <SET OUTFILE .INFILE>)
(ELSE <SET OUTFILE <SUBSTRUC .OUTFILE 0 .OUTLNT>>)>
<PRINC !\[ .OUTCHAN>
<PRINC .OUTFILE .OUTCHAN>
<PRINC !\] .OUTCHAN>
<CRLF .OUTCHAN>
<CVT .INFILE .OUTFILE>>>
<OR <LOOKUP "COMPILE" <ROOT>> <INIT-CVT>>