home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / DOS / TEKST / AURORA2 / DELBLANK.AML < prev    next >
Text File  |  1995-04-28  |  2KB  |  60 lines

  1.  
  2. /* ------------------------------------------------------------------ */
  3. /* Macro:        DELBLANK.AML                                         */
  4. /* Written by:   nuText Systems                                       */
  5. /*                                                                    */
  6. /* Description:  This macro deletes blank lines in the current edit   */
  7. /*               window. The operation is confined to a marked block  */
  8. /*               if one exists.                                       */
  9. /*                                                                    */
  10. /* Usage:        Select this macro from the Macro List (on the Macro  */
  11. /*               menu), or run it from the macro picklist <shift f12> */
  12. /*               This macro will run faster if Undo is turned OFF.    */
  13. /* ------------------------------------------------------------------ */
  14.  
  15.   include bootpath "define.aml"
  16.  
  17.   var count
  18.  
  19.   // test for edit windows
  20.   if not wintype? "edit" then
  21.     msgbox "Edit windows only!"
  22.     return
  23.   end
  24.  
  25.   // test if a marked block exists in the current file
  26.   block_count = mark? and getmarkbuf == getcurrbuf
  27.  
  28.   // display message
  29.   say "Deleting blank lines" + (if? block_count " in block") + "..."
  30.  
  31.   // set search options
  32.   options = "x*" + (if? block_count 'b')
  33.  
  34.   // save cursor position and goto first line
  35.   pushcursor
  36.   gotopos 1 (if? block_count (getmarktop) 1)
  37.  
  38.   // mark the beginning of an undoable group of operations
  39.   undobegin
  40.  
  41.   // search for blank lines using regular expressions
  42.   while find "^ *$" options do
  43.     delline
  44.     count = count + 1
  45.   end
  46.  
  47.   // mark the end of an undoable group of operations
  48.   undoend
  49.  
  50.   // restore cursor
  51.   popcursor
  52.  
  53.   // clear the title bar
  54.   display
  55.  
  56.   // display the word count
  57.   shortbox  (if? count (thousands count) "No") + " lines deleted" +
  58.             (if? block_count " in the block")
  59.  
  60.