PROC MIKES_SCL_EDIT (MSCLED) IS ( LITERAL INFILE, LITERAL OUTFILE, LITERAL EDITSCL := "OUT := IN", LITERAL NOBLANK := "Y", RESPONSE (RESPONSE) RESP := RESULT) BEGIN STRING PHASE, IN, OUT INT FLAG, SFLAG, INPUTFILE, OUTPUTFILE BOOL NOREAD BOOL WRITEBLANK := ("Nn" INCLUDES SUBSTR(NOBLANK)) WHENEVER FLAG NE 0 THEN IF FLAG > 0 THEN SMSG("ERROR WHEN " + PHASE) RESP := FLAG RETURN ELSE SMSG("WARNINGS WHEN " + PHASE) SRSMSG(FLAG) FLAG := 0 FI FI PHASE := "ASSIGNING " + INFILE + " AS INPUTFILE" AF(NAM = VAL INFILE, LNA = INPUTFILE, RES = FLAG) PHASE := "ASSIGNING " + OUTFILE + " AS OUTPUTFILE" AF(NAM = VAL OUTFILE, LNA = OUTPUTFILE, ACC = W, RES = SFLAG) IF ((SFLAG = 31501) OR (SFLAG = 50144)) THEN PHASE := "CREATING " + OUTFILE + " AS OUTPUTFILE" CRF(NAM = VAL OUTFILE, LNA = OUTPUTFILE, RES = FLAG) SVF(RES = FLAG) ELSE FLAG := SFLAG FI PHASE := "OPENING INPUTFILE FOR INPUT" OPF(NAM = *INPUTFILE, CHA = INPUT, RES = FLAG) PHASE := "OPENING OUTPUTFILE FOR OUTPUT" OPF(NAM = *OUTPUTFILE, CHA = OUTPUT, ACC = O, RES = FLAG) PHASE := "READING INPUTFILE (1)" RDR(CHA = INPUT, REC = IN, RES = SFLAG) UNTIL SFLAG = 26272 DO FLAG := SFLAG NOREAD := FALSE PHASE := "EXECUTING EDIT SCL" EXSCL(LIN = EDITSCL, RES = FLAG) IF ((OUT NE "") OR WRITEBLANK) THEN PHASE := "WRITING OUT TO OUTPUT" WRR(CHA = OUTPUT, REC = OUT, RES = FLAG) FI IF NOT NOREAD THEN PHASE := "READING INPUT (2)" RDR(CHA = INPUT, REC = IN, RES = SFLAG) FI REPEAT PHASE := "CLOSING INPUT" CLOF(CHA = INPUT, RES = FLAG) PHASE := "CLOSING OUTPUT" CLOF(CHA = OUTPUT, RES = FLAG) END