From a48e8dab052d1872dfd979320752b44b29fc557d Mon Sep 17 00:00:00 2001 From: Quinn Evans Date: Tue, 13 Oct 2015 15:30:03 -0600 Subject: [PATCH] Actually add module needed for $SHOW-ESCAPES functionality. --- REESCAPE.COB | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 REESCAPE.COB diff --git a/REESCAPE.COB b/REESCAPE.COB new file mode 100644 index 0000000..71b01c1 --- /dev/null +++ b/REESCAPE.COB @@ -0,0 +1,39 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. "RE-ESCAPE". + + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 ESCAPED PIC X(999). + 01 PTRS. + 03 IN-PTR PIC 999. + 03 OUT-PTR PIC 999. + 01 CURRENT-CHAR PIC X. + 88 ESCAPE-CHAR VALUE "$". + 01 LOOP-STATE PIC 99. + 88 DONE VALUE 99. + + LINKAGE SECTION. + 01 UNESCAPED PIC X(999). + 01 COUNTER PIC 9. + + PROCEDURE DIVISION USING UNESCAPED, COUNTER. + MOVE 0 TO LOOP-STATE, COUNTER. + MOVE 1 TO IN-PTR, OUT-PTR. + MOVE SPACES TO ESCAPED. + PERFORM MAYBE-ESCAPE-CHAR UNTIL DONE. + MOVE ESCAPED TO UNESCAPED. + EXIT PROGRAM. + + MAYBE-ESCAPE-CHAR. + IF IN-PTR IS LESS THAN 999 AND + OUT-PTR IS LESS THAN 999 THEN + UNSTRING UNESCAPED INTO CURRENT-CHAR WITH POINTER IN-PTR + IF ESCAPE-CHAR THEN + IF OUT-PTR IS LESS THAN 998 THEN + ADD 1 TO COUNTER + STRING "$$" INTO ESCAPED WITH POINTER OUT-PTR + ELSE MOVE 99 TO LOOP-STATE + ELSE + STRING CURRENT-CHAR INTO ESCAPED WITH POINTER OUT-PTR + ELSE + MOVE 99 TO LOOP-STATE.