summaryrefslogtreecommitdiffstats
path: root/patches/source/vim/patches/7.4.085
diff options
context:
space:
mode:
Diffstat (limited to 'patches/source/vim/patches/7.4.085')
-rw-r--r--patches/source/vim/patches/7.4.085118
1 files changed, 118 insertions, 0 deletions
diff --git a/patches/source/vim/patches/7.4.085 b/patches/source/vim/patches/7.4.085
new file mode 100644
index 000000000..a6e9a8047
--- /dev/null
+++ b/patches/source/vim/patches/7.4.085
@@ -0,0 +1,118 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.085
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+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$khhhhhkkcmno
+ :$-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 endYpk0wgUe
+ :" 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 -- Bram@Moolenaar.net -- 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 ///