home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
400-499
/
ff445.lzh
/
TurboText
/
Rexx
/
StripANSI.ttx
< prev
next >
Wrap
Text File
|
1991-01-24
|
2KB
|
142 lines
/** $VER: StripANSI.ttx Demo 1.0 (4.1.91)
**
** Remove ANSI codes from the current document
**
** Written by Martin Taillefer (loosely based on code by Joe Pearce)
**/
OPTIONS RESULTS
OPTIONS FAILAT 11
SetDisplayLock ON
SetBookmark 0
GetPrefs FreeForm
form = RESULT
GetPrefs FindBackward
dir = RESULT
GetPrefs FindWholeWords
whole = RESULT
SetPrefs FreeForm OFF
SetPrefs FindBackward OFF
SetPrefs FindWholeWords OFF
/* first, convert "Esc[" to CSI */
MoveSOF
FindChange ALL FIND '1b'X||'[' CHANGE '9b'X
MoveSOF
SetPrefs FindString '9b'X
DO FOREVER
Find
IF RC ~= 0 THEN DO
LEAVE
END
i = 1
DO FOREVER
MoveRight
IF RC ~= 0 THEN DO
LEAVE
END
GetChar
IF RESULT >= '@' & RESULT <= '~' THEN DO
i = i + 1
LEAVE
END
IF RESULT < ' ' | RESULT > '?' THEN DO
LEAVE
END
i = i + 1
END
MoveLeft i-1
Delete i
END
MoveSOF
SetPrefs FindString '1b'X
DO FOREVER
Find
IF RC ~= 0 THEN DO
LEAVE
END
i = 1
DO FOREVER
MoveRight
IF RC ~= 0 THEN DO
LEAVE
END
GetChar
IF RESULT >= '0' & RESULT <= '~' THEN DO
i = i + 1
LEAVE
END
IF RESULT < ' ' | RESULT > '/' THEN DO
LEAVE
END
i = i + 1
END
MoveLeft i-1
Delete i
END
CALL StripReserved('90'X)
CALL StripReserved('9d'X)
CALL StripReserved('9e'X)
CALL StripReserved('9f'X)
SetPrefs FreeForm form
SetPrefs FindBackward dir
SetPrefs FindWholeWords whole
MoveBookmark 0
SetDisplayLock OFF
RETURN
StripReserved: PROCEDURE
PARSE ARG single
MoveSOF
SetPrefs FindString single
DO FOREVER
Find
IF RC ~= 0 THEN DO
LEAVE
END
i = 1
DO FOREVER
MoveRight
IF RC ~= 0 THEN DO
LEAVE
END
GetChar
IF RESULT == '9c'X THEN DO
i = i + 1
LEAVE
END
IF (RESULT >= ' ' & RESULT <= '~') | RESULT >= 'a0'X THEN DO
i = i + 1
END; ELSE DO
LEAVE
END
END
MoveLeft i-1
Delete i
END
RETURN