home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / rexx / 4macrs / indent.rex < prev    next >
OS/2 REXX Batch file  |  1993-06-01  |  3KB  |  114 lines

  1. /* Indent */
  2. /* 
  3.    Creation        93/03/12 by  Thomas Korfhage, tel&fax ++49 6446 2931
  4.                                                  CIS 100271,16
  5.    History           
  6.  
  7.    Description
  8.    indentation of whole file or slected text with use of indent.exe
  9.    
  10.    This is one of my first REXX steps, so excuse.
  11.    Because i think i will not have the time to step over this again
  12.    I send it out like it is.
  13. */ 
  14. 'S_CLEAR_MACRO_OUTPUT'
  15. 'S_GET_SELECTED_SIZE' Len
  16. if Len <= 1 THEN DO
  17.    CALL filter("indent -v")
  18.    EXIT
  19. END   
  20. IF ARG() == 0 THEN DO
  21.    'S_PROMPT "Indentation - Nr of TABS", args'
  22.    IF rc \= 0 THEN EXIT
  23.    IF args = "CANCEL" THEN EXIT
  24.    if Length(args) < 1 then 
  25.       args = '0'
  26. END
  27. ELSE DO
  28.    args = ARG(1) 
  29. END   
  30. CALL filter("indent -st -addind" || args)
  31. EXIT
  32.  
  33. filter: PROCEDURE
  34. 'S_CLEAR_MACRO_OUTPUT'
  35. IF ARG() = 0 THEN 
  36. DO
  37.    'S_PROMPT Filter Command, args'
  38.    IF rc \= 0 THEN EXIT
  39.    IF args = "CANCEL" THEN EXIT
  40. END   
  41. ELSE DO
  42.    args = ARG(1) 
  43. END   
  44. 'S_GET_ENV_INFO SL_TEMP2 TempPath'
  45. TempPath = PathEndSlash(TempPath)
  46. NewClipName = TempPath || "TempFile.$$I"
  47. ClipInName = TempPath || "TempFile.$$O"
  48. 'S_GET_CLIP_FILENAME' OldClipName
  49. S_GET_SELECTED_SIZE Len
  50. IF Len <= 1 THEN DO
  51.    'S_GET_CURR_EDITMODE IsChanged'
  52.    IF IsChanged = READONLY THEN DO
  53.     'S_MSG File is readonly,,,URES'
  54.      EXIT
  55.    END
  56.    ELSE NOP
  57.    'S_GET_COL_NUM' SavCol
  58.    'S_GET_LINE_NUM' SavLin
  59.    'S_GET_CURR_CHGSTATUS IsChanged'
  60.    'S_GET_CURR_FILENAME OrgName'
  61.    IF IsChanged = TRUE THEN  'S_SAVE_CURR_FILE'
  62.    'S_CHG_EDITMODE'
  63.    erase NewClipName
  64.    'S_SAVEAS_CURR_FILE' NewClipName
  65.    grepstring = args || ' ' || NewClipName || ' '|| OrgName
  66.    grepstring
  67.    URES = rc
  68.    IF URES = 0 THEN DO
  69.       'S_CLOSE_CURR_FILE'
  70.       'S_OPEN_SL_FILE 0 E N' OrgName
  71.       'S_GOTO_COL' SavCol
  72.       'S_GOTO_LINE' SavLin
  73.    END 
  74.    ELSE DO
  75.       'S_GET_REF_FILENAME 5' macro_out
  76.       IF URES <> 2 THEN DO
  77.          Copy OrgName TempPath || "INDENT.ERR"
  78.          Copy NewClipName OrgName
  79.          say 'Fehler output in: ' TempPath || 'INDENT.ERR'
  80.       END 
  81.       ELSE NOP    
  82.       'S_MSG ,Indent says ERROR - File is waiting,,URES'
  83.       'SLSTART' macro_out
  84.    END
  85.    EXIT
  86. END
  87. ELSE DO
  88.    'S_DISABLE_WINDOW'
  89.    'S_RENAME_CLIP_FILE' NewClipName
  90.    'S_CUT_SEL_TO_PASTE'
  91.    'S_COPY_PASTE_TO_CLIP'
  92.    grepstring = args || ' < ' || NewClipName || ' > '|| ClipInName
  93.    grepstring
  94.    IF rc = 0 THEN DO
  95.       'S_INSERT_FILE' ClipInName
  96.       'S_RENAME_CLIP_FILE' OldClipName
  97.    END 
  98.    ELSE  DO
  99.       'S_INSERT_PASTE'
  100.       'S_MSG Indent says ERROR - File is waiting,,,URES'
  101.       'S_GET_REF_FILENAME 5' macro_out
  102.       'SLSTART' macro_out
  103.    END
  104.   'S_ENABLE_WINDOW'
  105. END   
  106. EXIT
  107.  
  108. PathEndSlash: PROCEDURE
  109.    Path = ARG(1) 
  110.    IF Right(Path,1) \= "\" THEN Path = Path || "\"
  111.    RETURN Path 
  112. END   
  113.  
  114.