Hi Bram and Christian B,
2015-7-28(Tue) 18:34:13 UTC+9 Bram Moolenaar:
> Patch 7.4.798 (after 7.4.753)
> Problem: Repeating a change in Visual mode does not work as expected.
> (Urtica Dioica)
> Solution: Make redo in Visual mode work better. (Christian Brabandt)
> Files: src/normal.c, src/testdir/test_listlbr.in,
> src/testdir/test_listlbr.ok
>
>
> *** ../vim-7.4.797/src/normal.c 2015-07-21 17:53:11.581527951 +0200
> --- src/normal.c 2015-07-28 11:11:58.479169612 +0200
> ***************
> *** 9598,9615 ****
> #endif
>
> getvvcol(curwin, &(oap->start), &oap->start_vcol, NULL, &oap->end_vcol);
> - getvvcol(curwin, &(oap->end), &start, NULL, &end);
>
> ! if (start < oap->start_vcol)
> ! oap->start_vcol = start;
> ! if (end > oap->end_vcol)
> {
> ! if (initial && *p_sel == 'e' && start >= 1
> ! && start - 1 >= oap->end_vcol)
> ! oap->end_vcol = start - 1;
> ! else
> ! oap->end_vcol = end;
> }
> /* if '$' was used, get oap->end_vcol from longest line */
> if (curwin->w_curswant == MAXCOL)
> {
> --- 9598,9620 ----
> #endif
>
> getvvcol(curwin, &(oap->start), &oap->start_vcol, NULL, &oap->end_vcol);
>
> ! if (!redo_VIsual_busy)
> {
> ! getvvcol(curwin, &(oap->end), &start, NULL, &end);
> !
> ! if (start < oap->start_vcol)
> ! oap->start_vcol = start;
> ! if (end > oap->end_vcol)
> ! {
> ! if (initial && *p_sel == 'e' && start >= 1
> ! && start - 1 >= oap->end_vcol)
> ! oap->end_vcol = start - 1;
> ! else
> ! oap->end_vcol = end;
> ! }
> }
> +
> /* if '$' was used, get oap->end_vcol from longest line */
> if (curwin->w_curswant == MAXCOL)
> {
> *** ../vim-7.4.797/src/testdir/test_listlbr.in 2015-06-25
> 13:30:41.206095684 +0200
> --- src/testdir/test_listlbr.in 2015-07-28 11:11:39.487362238 +0200
> ***************
> *** 74,79 ****
> --- 74,85 ----
> :let g:test ="Test 8: set linebreak with visual char mode and changing
> block"
> :$put =g:test
> Go1111-1111-1111-11-1111-1111-1111 0f-lv3lc2222 bgj.
> + :let g:test ="Test 9: using redo after block visual mode"
> + :$put =g:test
> + Go
> + aaa
> + aaa
> + a 2k 2j~e.
> :%w! test.out
> :qa!
> ENDTEST
> *** ../vim-7.4.797/src/testdir/test_listlbr.ok 2015-06-25
> 13:30:41.206095684 +0200
> --- src/testdir/test_listlbr.ok 2015-07-28 11:11:39.487362238 +0200
> ***************
> *** 41,43 ****
> --- 41,48 ----
> long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar
> foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar
> foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar
> foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETx at end
> Test 8: set linebreak with visual char mode and changing block
> 1111-2222-1111-11-1111-2222-1111
> + Test 9: using redo after block visual mode
> +
> + AaA
> + AaA
> + A
> *** ../vim-7.4.797/src/version.c 2015-07-25 22:52:55.396781119 +0200
> --- src/version.c 2015-07-28 11:11:21.699542664 +0200
> ***************
> *** 743,744 ****
> --- 743,746 ----
> { /* Add new patch number below this line */
> + /**/
> + 798,
> /**/
Since this patch, Actual mode and displayed mode is differ.
How to reproduce:
$ vim -N -u NONE
i1<Esc>
<C-V> " '-- VISUAL BLOCK --' is displayed on the last line.
<C-A>
Expect behavior:
- Clear the last line. (Because the transition to the normal mode)
Actual behavior:
- Keep displaying '-- VISUAL BLOCK --'
(When input The <C-L>, This can be erased)
--
Best regards,
Hirohito Higashi (a.k.a h_east)
--
--
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/d/optout.