Patch 7.4.085
Problem:    When inserting text in Visual block mode and moving the cursor the
            wrong text gets repeated in other lines.
Solution:   Use the '[ mark to find the start of the actually inserted text.
            (Christian Brabandt)
Files:      src/ops.c, src/testdir/test39.in, src/testdir/test39.ok


*** ../vim-7.4.084/src/ops.c    2013-11-05 07:12:59.000000000 +0100
--- src/ops.c   2013-11-11 01:23:14.000000000 +0100
***************
*** 2640,2645 ****
--- 2640,2670 ----
      {
        struct block_def        bd2;
  
+       /* The user may have moved the cursor before inserting something, try
+        * to adjust the block for that. */
+       if (oap->start.lnum == curbuf->b_op_start.lnum)
+       {
+           if (oap->op_type == OP_INSERT
+                   && oap->start.col != curbuf->b_op_start.col)
+           {
+               oap->start.col = curbuf->b_op_start.col;
+               pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
+                                                           - oap->start_vcol;
+               oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
+           }
+           else if (oap->op_type == OP_APPEND
+                   && oap->end.col >= curbuf->b_op_start.col)
+           {
+               oap->start.col = curbuf->b_op_start.col;
+               /* reset pre_textlen to the value of OP_INSERT */
+               pre_textlen += bd.textlen;
+               pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
+                                                           - oap->start_vcol;
+               oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
+               oap->op_type = OP_INSERT;
+           }
+       }
+ 
        /*
         * Spaces and tabs in the indent may have changed to other spaces and
         * tabs.  Get the starting column again and correct the length.
*** ../vim-7.4.084/src/testdir/test39.in        2013-11-04 01:41:11.000000000 
+0100
--- src/testdir/test39.in       2013-11-11 01:20:51.000000000 +0100
***************
*** 19,24 ****
--- 19,28 ----
  :" Test block-change
  G$khhh hhkkcmno 
  :$-4,$w! test.out
+ :" Test block-insert using cursor keys for movement
+ /^aaaa/
+ :exe ":norm! l\<C-V>jjjlllI\<Right>\<Right>  \<Esc>"
+ :/^aa/,/^$/w >> test.out
  :" gUe must uppercase a whole word, also when ß changes to SS
  Gothe youtußeuu end Ypk0wgUe
  :" gUfx must uppercase until x, inclusive.
***************
*** 40,45 ****
--- 44,54 ----
  :qa!
  ENDTEST
  
+ aaaaaa
+ bbbbbb
+ cccccc
+ dddddd
+ 
  abcdefghijklm
  abcdefghijklm
  abcdefghijklm
*** ../vim-7.4.084/src/testdir/test39.ok        2013-11-04 01:41:11.000000000 
+0100
--- src/testdir/test39.ok       2013-11-11 01:20:51.000000000 +0100
***************
*** 3,8 ****
--- 3,13 ----
  axyzqqqqef mno        ghijklm
  axyzqqqqefgmnoklm
  abcdqqqqijklm
+ aaa  aaa
+ bbb  bbb
+ ccc  ccc
+ ddd  ddd
+ 
  the YOUTUSSEUU end
  - yOUSSTUSSEXu -
  THE YOUTUSSEUU END
*** ../vim-7.4.084/src/version.c        2013-11-11 01:05:43.000000000 +0100
--- src/version.c       2013-11-11 01:18:01.000000000 +0100
***************
*** 740,741 ****
--- 740,743 ----
  {   /* Add new patch number below this line */
+ /**/
+     85,
  /**/

-- 
SOLDIER: What?  Ridden on a horse?
ARTHUR:  Yes!
SOLDIER: You're using coconuts!
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Raspunde prin e-mail lui