vim/7.4.085
2013-11-20 15:52:24 +00:00

119 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 <20> changes to SS
Gothe youtu<74>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 ///