Actually add module needed for $SHOW-ESCAPES functionality.

This commit is contained in:
Quinn Evans 2015-10-13 15:30:03 -06:00
parent f8a91010c8
commit a48e8dab05
1 changed files with 39 additions and 0 deletions

39
REESCAPE.COB Normal file
View File

@ -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.