home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / memacs32.zip / epage.cmd < prev    next >
OS/2 REXX Batch file  |  1993-08-07  |  4KB  |  164 lines

  1. ;    EPAGE.CMD:    EMACS Macro Programming Page
  2. ;            for MicroEMACS 3.9d and above
  3. ;            (C)opyright 1987 by Daniel M Lawrence
  4.  
  5. ; set the clean procedure up
  6. store-procedure clean
  7.     delete-buffer "[Macro 10]"
  8.     delete-buffer "[Macro 11]"
  9.     delete-buffer "[Macro 12]"
  10.     delete-buffer "[Macro 13]"
  11.     bind-to-key execute-macro-14 S-FN5
  12.     bind-to-key execute-macro-15 S-FN6
  13.     delete-buffer "[Macro 16]"
  14.     delete-buffer "[Macro 17]"
  15.     bind-to-key execute-macro-18 S-FN9
  16.     bind-to-key execute-macro-19 S-FN0
  17. !endm
  18.  
  19. ; make sure the function key window is up
  20.     set %rcfkeys FALSE
  21.     toggle-fkeys
  22.     write-message "Loading..."
  23.  
  24. ; Write out the page instructions
  25.     save-window
  26.     1 next-window
  27.     beginning-of-file
  28.     set $curcol 25
  29.     overwrite-string " F1 display variable       F2 evaluate expression"
  30.     next-line
  31.     set $curcol 25
  32.     overwrite-string " F3 compile buffer         F4 debug mode [OFF]"
  33.     next-line
  34.     set $curcol 25
  35.     overwrite-string " F5 execute buffer         F6 execute macro"
  36.     next-line
  37.     set $curcol 18
  38.     overwrite-string "EMAC"
  39.     set $curcol 25
  40.     overwrite-string " F7 indent region          F8 undent region"
  41.     next-line
  42.     set $curcol 25
  43.     overwrite-string " F9 execute DOS command   F10 shell to DOS"
  44.     unmark-buffer
  45.     beginning-of-file
  46.     !force restore-window
  47.     update-screen
  48.  
  49. ; display a variable
  50.  
  51. 10    store-macro
  52.     set %rcdebug $debug
  53.     set $debug FALSE
  54.     set %rctmp @&cat &cat "Variable to display[" %rcvar "]: "
  55.     !if ¬ &seq %rctmp ""
  56.         set %rcvar %rctmp
  57.     !endif
  58.     write-message &cat &cat &cat %rcvar " = [" &ind %rcvar "]"
  59.     set $debug %rcdebug
  60. !endm
  61.  
  62. ;    evaluate expresion
  63.  
  64. 11    store-macro
  65.     delete-buffer "[temp]"
  66.     set %rcbuf $cbufname
  67.     set %cline $cwline
  68.     select-buffer "[temp]"
  69.     insert-string "set %rcval "
  70.     !force insert-string @"EXP: "
  71.     execute-buffer "[temp]"
  72.     unmark-buffer
  73.     select-buffer %rcbuf
  74.     delete-buffer "[temp]"
  75.     %cline redraw-display
  76.     write-message &cat &cat "Value = [" %rcval "]"
  77. !endm
  78.  
  79. ;    compile the current buffer
  80.  
  81. 12    store-macro
  82. ;    here is where to add code to handle compiling the current buffer
  83.     write-message "[No Compiler module loaded]"
  84. !endm
  85.  
  86. ;    Toggle debug mode
  87.  
  88. 13    store-macro
  89.     set $debug FALSE
  90.     set %cbuf $cbufname
  91.     set %cline $cwline
  92.     select-buffer "Function Keys"
  93.     beginning-of-file
  94.     next-line
  95.     68 forward-character
  96.     set %rcdebug &equ $curchar 70
  97.     delete-previous-character
  98.     2 delete-next-character
  99.     !if %rcdebug
  100.         insert-string "ON "
  101.     !else
  102.         insert-string "OFF"
  103.     !endif
  104.     unmark-buffer
  105.     select-buffer %cbuf    
  106.     %cline redraw-display
  107.     write-message &cat &cat "[Debug Mode " %rcdebug "]"
  108.     set $debug %rcdebug
  109. !endm
  110.  
  111.     bind-to-key execute-buffer S-FN5
  112.     bind-to-key execute-macro S-FN6
  113.  
  114. ;    indent region
  115.  
  116. 16    store-macro
  117.     write-message "[Indenting region]"
  118.     set %endline $curline
  119.     set %endpos $cwline
  120.     exchange-point-and-mark
  121.     set $discmd FALSE
  122.     set-mark
  123.     set $discmd TRUE
  124.  
  125.     !while &gre %endline $curline
  126.         beginning-of-line
  127.         handle-tab
  128.         next-line
  129.     !endwhile
  130.  
  131.     beginning-of-line    
  132.     set $cwline %endpos
  133.     write-message "[Region indented]"
  134. !endm
  135.  
  136. ;    undent region
  137.  
  138. 17    store-macro
  139.     write-message "[Undenting region]"
  140.     set %endline $curline
  141.     set %endpos $cwline
  142.     exchange-point-and-mark
  143.     set $discmd FALSE
  144.     set-mark
  145.     set $discmd TRUE
  146.  
  147.     !while &gre %endline $curline
  148.         beginning-of-line
  149.         !if &gre $lwidth 0
  150.             delete-next-character
  151.         !endif
  152.         next-line
  153.     !endwhile
  154.  
  155.     beginning-of-line    
  156.     set $cwline %endpos
  157.     write-message "[Region undented]"
  158. !endm
  159.  
  160.     bind-to-key shell-command S-FN9
  161.     bind-to-key i-shell S-FN0
  162.     set %rcvar ""
  163.     write-message "[Program page loaded]"
  164.