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.