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

  1. ;    WPAGE.CMD:    Wordprocessing Macro 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.            bind-to-key execute-macro-11 S-FN2
  9.     bind-to-key execute-macro-12 S-FN3
  10.     delete-buffer "[Macro 13]"
  11.     delete-buffer "[Macro 14]"
  12.     delete-buffer "[Macro 15]"
  13.     delete-buffer "[Macro 16]"
  14.     delete-buffer "[Macro 17]"
  15.     bind-to-key execute-macro-18 S-FN9
  16.     delete-buffer "[Macro 19]"
  17.     set $cmode %oldmode
  18.     set $gmode %oldgmode
  19. !endm
  20.  
  21. ; make sure the function key window is up
  22.     set %rcfkeys FALSE
  23.     toggle-fkeys
  24.     write-message "Loading..."
  25.  
  26. ; Write out the page instructions
  27.     save-window
  28.     1 next-window
  29.     beginning-of-file
  30.     set $curcol 25
  31.     overwrite-string " F1 center line                                     "
  32.     next-line
  33.     set $curcol 25
  34.     overwrite-string " F3 reformat paragraph     F4 spell check file      "
  35.     next-line
  36.     set $curcol 25
  37.     overwrite-string " F5 ref indented paragraph F6 PREVIEW output        "
  38.     next-line
  39.     set $curcol 18
  40.     overwrite-string "WORD"
  41.     set $curcol 25
  42.     overwrite-string " F7 toggle words           F8 output DRAFT          "
  43.     next-line
  44.     set $curcol 25
  45.     overwrite-string " F9 count words           F10 output FINAL          "
  46.     unmark-buffer
  47.     beginning-of-file
  48.     !force restore-window
  49.     update-screen
  50.  
  51. ; Center the current line
  52.  
  53. 10    store-macro
  54.     end-of-line
  55.     set %rctmp $curcol
  56.     beginning-of-line
  57.     &div &sub $fillcol %rctmp 2 insert-space
  58.     beginning-of-line
  59. !endm
  60.  
  61. bind-to-key nop S-FN2
  62. bind-to-key fill-paragraph S-FN3
  63.  
  64. ;    Spell check the current buffer
  65.  
  66. 13    store-macro
  67.     set %rctmp @"User dictionary(<ret> if none): "
  68.     !if &seq %rctmp "ERROR"
  69.         !return
  70.     !endif
  71.     !if ¬ &seq %rctmp ""
  72.         set %rctmp &cat &cat "-u" %rctmp " "
  73.     !endif
  74.     save-file
  75.     set %rcspell TRUE
  76.     write-message ~n
  77.     shell-command &cat &cat "spell " %rctmp $cfname
  78.     execute-file "scan.cmd"
  79.     delete-other-windows
  80.     !if &seq %rcfkeys TRUE
  81.         set %rcfkeys FALSE
  82.         toggle-fkeys
  83.     !endif
  84.     update-screen
  85.     write-message "[Spell Check complete]"
  86. !endm
  87.  
  88. ;    reformat indented paragraph
  89.  
  90. 14    store-macro
  91.     write-message "                    [Fixing paragraph]"
  92.  
  93.     ;remember where we are..and set up
  94.     set %endpos $cwline
  95.     set $discmd "FALSE"
  96.  
  97.     ;snarf the paragraph and put it in its own buffer
  98.     kill-region
  99.     2 split-current-window
  100.     select-buffer "[temp]"
  101.     yank
  102.  
  103.     ;get rid of the blank lines at the end
  104.     end-of-file
  105.     !while &and &seq $line "" ¬ &equ $curline 1
  106.         delete-previous-character
  107.     !endwhile
  108.     forward-character
  109.  
  110.     ;get rid of the indents
  111.     set %endline $curline
  112.     beginning-of-file
  113.     !while &gre %endline $curline
  114.         !while &or &equ $curchar 32 &equ $curchar 9
  115.             delete-next-character
  116.         !endwhile
  117.         next-line
  118.     !endwhile
  119.  
  120.     ;re-format it
  121.     &sub $fillcol 8 set-fill-column
  122.     1 goto-line
  123.     fill-paragraph
  124.     &add $fillcol 8 set-fill-column
  125.  
  126.     ;insert new indents
  127.     end-of-file
  128.     set %endline $curline
  129.     beginning-of-file
  130.     !while &less $curline &sub %endline 1
  131.         beginning-of-line
  132.         handle-tab
  133.         next-line
  134.     !endwhile
  135.  
  136.     ;move it back into the original buffer
  137.     beginning-of-file
  138.     set-mark
  139.     end-of-file
  140.     kill-region
  141.     unmark-buffer
  142.     delete-window
  143.     yank
  144.  
  145.     ;and clean up
  146.     delete-buffer "[temp]"
  147.     set $cwline %endpos
  148.     set $discmd TRUE
  149.     write-message "                    [Fixed paragraph]"
  150. !endm
  151.  
  152. 15    store-macro
  153.     write-message "[MicroSCRIBE not ready]"
  154. !endm
  155.  
  156. ;    swap the word the cursor is on and it's predisesor
  157.  
  158. 16    store-macro
  159.     set %rctmp $search
  160.     forward-character
  161.     previous-word
  162.     0 delete-next-word
  163.     set %second $kill
  164.     insert-string "~~"
  165.     !force previous-word
  166.     !if &seq $status FALSE
  167.         set %first %second
  168.     !else
  169.         0 delete-next-word
  170.         set %first $kill
  171.         insert-string %second
  172.     !endif
  173.     search-forward "~~"
  174.     delete-previous-character
  175.     insert-string %first
  176.     previous-word
  177.     set $search %rctmp
  178. !endm
  179.  
  180. 17    store-macro
  181.     write-message "[MicroSCRIBE not ready]"
  182. !endm
  183.  
  184. bind-to-key count-words S-FN9
  185.  
  186. 19    store-macro
  187.     write-message "[MicroSCRIBE not ready]"
  188. !endm
  189.  
  190.     set %oldmode $cmode
  191.     set %oldgmode $gmode
  192.     add-mode wrap
  193.     add-global-mode wrap
  194.     write-message "[Wordprocessing mode loaded]"
  195.