home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / text_dtp / editor / turbotext / rexx / stripansi.ttx < prev    next >
Text File  |  1995-07-10  |  2KB  |  144 lines

  1.  
  2. /** $VER: StripANSI.ttx 2.0 (22.2.94)
  3.  **
  4.  ** Remove ANSI codes from the current document
  5.  **/
  6.  
  7.  
  8. OPTIONS RESULTS
  9. OPTIONS FAILAT 11
  10.  
  11.  
  12.   SetDisplayLock ON
  13.   SetBookmark 0
  14.  
  15.   GetPrefs FreeForm
  16.   form = RESULT
  17.   GetPrefs FindBackward
  18.   dir = RESULT
  19.   GetPrefs FindWholeWords
  20.   whole = RESULT
  21.  
  22.   SetPrefs FreeForm OFF
  23.   SetPrefs FindBackward OFF
  24.   SetPrefs FindWholeWords OFF
  25.  
  26.   /* first, convert "Esc[" to CSI */
  27.   MoveSOF
  28.   FindChange ALL FIND '1b'X||'[' CHANGE '9b'X
  29.  
  30.   MoveSOF
  31.   SetPrefs FindString '9b'X
  32.   DO FOREVER
  33.     Find
  34.     IF RC ~= 0 THEN DO
  35.       LEAVE
  36.     END
  37.  
  38.     i = 1
  39.     DO FOREVER
  40.       MoveRight
  41.       IF RC ~= 0 THEN DO
  42.         LEAVE
  43.       END
  44.  
  45.       GetChar
  46.       IF RESULT >= '@' & RESULT <= '~' THEN DO
  47.         i = i + 1
  48.         LEAVE
  49.       END
  50.  
  51.       IF RESULT < ' ' | RESULT > '?' THEN DO
  52.         LEAVE
  53.       END
  54.       i = i + 1
  55.     END
  56.     MoveLeft i-1
  57.     Delete i
  58.     MoveLeft
  59.   END
  60.  
  61.   MoveSOF
  62.   SetPrefs FindString '1b'X
  63.   DO FOREVER
  64.     Find
  65.     IF RC ~= 0 THEN DO
  66.       LEAVE
  67.     END
  68.  
  69.     i = 1
  70.     DO FOREVER
  71.       MoveRight
  72.       IF RC ~= 0 THEN DO
  73.         LEAVE
  74.       END
  75.  
  76.       GetChar
  77.       IF RESULT >= '0' & RESULT <= '~' THEN DO
  78.         i = i + 1
  79.         LEAVE
  80.       END
  81.  
  82.       IF RESULT < ' ' | RESULT > '/' THEN DO
  83.         LEAVE
  84.       END
  85.       i = i + 1
  86.     END
  87.     MoveLeft i-1
  88.     Delete i
  89.     MoveLeft
  90.   END
  91.  
  92.   CALL StripReserved('90'X)
  93.   CALL StripReserved('9d'X)
  94.   CALL StripReserved('9e'X)
  95.   CALL StripReserved('9f'X)
  96.  
  97.   SetPrefs FreeForm form
  98.   SetPrefs FindBackward dir
  99.   SetPrefs FindWholeWords whole
  100.  
  101.   MoveBookmark 0
  102.   ClearBookmark 0
  103.   SetDisplayLock OFF
  104.  
  105.   RETURN
  106.  
  107.  
  108. StripReserved: PROCEDURE
  109. PARSE ARG single
  110.  
  111.   MoveSOF
  112.   SetPrefs FindString single
  113.   DO FOREVER
  114.     Find
  115.     IF RC ~= 0 THEN DO
  116.       LEAVE
  117.     END
  118.  
  119.     i = 1
  120.     DO FOREVER
  121.       MoveRight
  122.       IF RC ~= 0 THEN DO
  123.         LEAVE
  124.       END
  125.  
  126.       GetChar
  127.       IF RESULT == '9c'X THEN DO
  128.         i = i + 1
  129.         LEAVE
  130.       END
  131.  
  132.       IF (RESULT >= ' ' & RESULT <= '~') | RESULT >= 'a0'X THEN DO
  133.         i = i + 1
  134.       END; ELSE DO
  135.         LEAVE
  136.       END
  137.     END
  138.     MoveLeft i-1
  139.     Delete i
  140.     MoveLeft
  141.   END
  142.  
  143.   RETURN
  144.