WOPO/REESCAPE.COB

38 lines
1.2 KiB
COBOL
Raw Normal View History

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 BUFFER PIC X(999).
PROCEDURE DIVISION USING BUFFER.
MOVE 0 TO LOOP-STATE.
MOVE 1 TO IN-PTR, OUT-PTR.
MOVE SPACES TO ESCAPED.
PERFORM MAYBE-ESCAPE-CHAR UNTIL DONE.
MOVE ESCAPED TO BUFFER.
EXIT PROGRAM.
MAYBE-ESCAPE-CHAR.
IF IN-PTR IS LESS THAN 999 AND
OUT-PTR IS LESS THAN 999 THEN
UNSTRING BUFFER INTO CURRENT-CHAR WITH POINTER IN-PTR
IF ESCAPE-CHAR THEN
IF OUT-PTR IS LESS THAN 998 THEN
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.