Hi Tony and All,
2016-1-12(Tue) 15:13:12 UTC+9 h_east:
> Hi Tony,
>
> 2016-1-12(Tue) 12:53:15 UTC+9 Tony Mechelynck:
> > On Tue, Jan 12, 2016 at 4:19 AM, Gary Johnson <[email protected]> wrote:
> > > On 2016-01-11, KF Leong wrote:
> > >> On Tuesday, 12 January 2016 11:00:17 UTC+8, Tony Mechelynck wrote:
> > >> > I have the following problem in gvim (Huge) 7.4.1087. My previous
> > >> > build was 7.4.1074 and IIRC it did not have this problem. Between them
> > >> > I notice several patches affecting Ctrl-A and Ctrl-X in Visual mode,
> > >> > or in RTL mode, or with '[ and '] marks, none of which seem to apply
> > >> > to my usecase. I am using Ctrl-A in plain Normal mode and repeating it
> > >> > with . (in the {rhs} of a mapping). Trying to find out what went
> > >> > wrong, I found that apparently _neither_ . _nor_ mappings (nor "q"
> > >> > macros) properly repeat Ctrl-A nowadays:
> > >> >
> > >> > ....
> > >>
> > >> Follow this thread:
> > >> https://groups.google.com/d/msg/vim_dev/rrTPmy_0OGA/BvbIq-cnAwAJ
> > >
> > > That would be the "[patch] visual <C-A>/<C-X> is refactored to
> > > support vcol." thread. In case one is reading this in a text MUA
> > > and doesn't have a Java-enabled browser handy.
> > >
> > > I didn't see explicit mention of the bug that Tony reported, though.
> > >
> > > Regards,
> > > Gary
> > >
> > Explicit mention, neither could I. Implicit mention, maybe, but over my
> > head.
>
> Oh... I can reproduce it.
>
> How to reproduce:
> - Start pure Vim
> $ vim -Nu NONE
> - Append three lines "10"
> 3O10<Esc>
> - Add five to 10 at third line in normal mode
> 5<C-A>
> - Redo add
> .
>
> Expected result:
> 10
> 10
> 20
>
> Actual result (in Vim 7.4.1087):
> 10
> 10
> 10
> 10
> 10
> 15
>
>
> It seems "5<C-A>" does not set to the redo-buffer.
> I investigate from now.
> Thanks.
Please check the attached patch.
This patch would be fixed the above problem.
--
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.
diff --git a/src/normal.c b/src/normal.c
index 810aabf..ac1a391 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -4227,6 +4227,7 @@ nv_addsub(cap)
{
if (!VIsual_active && cap->oap->op_type == OP_NOP)
{
+ prep_redo_cmd(cap);
cap->oap->op_type = cap->cmdchar == Ctrl_A ? OP_NR_ADD : OP_NR_SUB;
op_addsub(cap->oap, cap->count1, cap->arg);
cap->oap->op_type = OP_NOP;
diff --git a/src/testdir/test_increment.vim b/src/testdir/test_increment.vim
index e4f67ea..9b592ed 100644
--- a/src/testdir/test_increment.vim
+++ b/src/testdir/test_increment.vim
@@ -701,4 +701,11 @@ func Test_visual_increment_37()
call assert_equal(["1 26", "4 59"], getline(1, 2))
endfunc
+" Check redo after the normal mode increment
+func Test_visual_increment_38()
+ exec "norm! i10\<ESC>5\<C-A>."
+ call assert_equal(["20"], getline(1, '$'))
+ call assert_equal([0, 1, 2, 0], getpos('.'))
+endfunc
+
" vim: tabstop=2 shiftwidth=2 expandtab