| 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 |
| |
| |
| |
| |
| |
| *** 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. |
| |
| |
| |
| *** 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 |
| |
| |
| |
| *** 3,8 **** |
| --- 3,13 ---- |
| axyzqqqqef mno ghijklm |
| axyzqqqqefgmnoklm |
| abcdqqqqijklm |
| + aaa aaa |
| + bbb bbb |
| + ccc ccc |
| + ddd ddd |
| + |
| the YOUTUSSEUU end |
| - yOUSSTUSSEXu - |
| THE YOUTUSSEUU END |
| |
| |
| |
| *** 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 /// |