home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 626a.lha / Textra_v1.12 / Scripts / DoubleSpace.textra < prev    next >
Text File  |  1991-12-18  |  2KB  |  116 lines

  1.     /*******************************************************************
  2.      *   TEXTRA AREXX script -- Mike Haas, 1991, All Rights Reserved.  *
  3.      * Freely distributable ONLY as a component of the TEXTRA package. *
  4.      * This banner may not be removed or altered (improvements to the  *
  5.      *    actual program welcome).  Please document and send to me.    *
  6.      *******************************************************************/
  7.  
  8. /* Usage:  DoubleSpace
  9.  *
  10.  * This script inserts a blank line between each text-bearing line
  11.  * in the select range.  No parameters are required.
  12.  *
  13.  */
  14.  
  15.  
  16. OPTIONS results
  17.  
  18. /* temporarily make sure auto indent is off */
  19. prefs autoindent read; autoistate = result
  20. prefs autoindent off
  21.  
  22. get select position   /* get the select boundary, if any */
  23.  
  24. if (result == "NO SELECT") then   /* is nothing selected? */
  25.  
  26.     do
  27.         get cursor position   /* nothing selected, get cursor pos */
  28.         parse var result   cursx ' ' cursy
  29.         LinesSelected = 0   /* means 'just cursor' */
  30.     
  31.     end
  32.     
  33. else
  34.  
  35.     do
  36.         /* yes, there is a selection, get it's boundaries */
  37.         parse var result   startx ' ' starty ' ' endx ' ' endy
  38.         LinesSelected = (endy - starty)
  39.     
  40.         /* if only the 'eol' of the previous line is selected
  41.            (nothing on this line is actually included, i.e. x==0),
  42.            then don't include it.
  43.         */
  44.         if (endx > 0) then  LinesSelected = LinesSelected + 1
  45.     
  46.     end
  47.  
  48.  
  49. if (LinesSelected == 0) then
  50.  
  51.     do
  52.         gotoxy 0 cursy+1
  53.         newline
  54.         up 1
  55.     end
  56.  
  57. else
  58.  
  59.     do
  60.         currline = starty; numLeft = LinesSelected
  61.         do while (numLeft > 0)
  62.             do
  63.                 call CheckDoCurrLine
  64.                 if (DoCurrLine == 1) then
  65.                     do
  66.                         gotoxy 0 currline + 1
  67.                         left 1
  68.                         newline
  69.                         currline = currline + 2
  70.                     end
  71.                 else
  72.                     currline = currline + 1
  73.                 numLeft = numLeft - 1
  74.             end
  75.         end
  76.         
  77.         /* gotoxy 0 starty
  78.            selectto 0 starty+LinesSelected  */
  79.         
  80.         gotoxy 0 currline
  81.     end
  82.  
  83. /* restore autoindent */
  84. prefs autoindent autoistate
  85.  
  86. exit
  87.  
  88.  
  89.  
  90. CheckDoCurrLine:                
  91. DoCurrLine = 0
  92. ThisLine = currline + 1
  93. call CheckThisLine
  94. lineplusone = DoCurrLine
  95. DoCurrLine = 0
  96. ThisLine = currline
  97. call CheckThisLine
  98. DoCurrLine = BITAND(lineplusone,DoCurrLine) 
  99. return
  100.  
  101. CheckThisLine:
  102. gotoxy 0 ThisLine
  103. get cursor char
  104. do while (result ~= -1)
  105.     do
  106.         if ((result ~= ' ') & (result ~= '    ')) /*TAB*/ then
  107.             do
  108.                 DoCurrLine = 1
  109.                 leave
  110.             end
  111.         right 1
  112.         get cursor char
  113.     end
  114. end
  115. return
  116.