0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.3.704

Problem:    Repeating "cgn" does not always work correctly.
Solution:   Also fetch the operator character. (Christian Brabandt)
This commit is contained in:
Bram Moolenaar
2012-10-21 03:54:33 +02:00
parent e8d8fd2add
commit f00dc2627b
2 changed files with 9 additions and 2 deletions

View File

@@ -960,8 +960,11 @@ getcount:
#ifdef FEAT_CMDL_INFO #ifdef FEAT_CMDL_INFO
need_flushbuf |= add_to_showcmd(ca.nchar); need_flushbuf |= add_to_showcmd(ca.nchar);
#endif #endif
/* For "gn" from redo, need to get one more char to determine the
* operator */
if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`' if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`'
|| ca.nchar == Ctrl_BSL) || ca.nchar == Ctrl_BSL
|| ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty()))
{ {
cp = &ca.extra_char; /* need to get a third character */ cp = &ca.extra_char; /* need to get a third character */
if (ca.nchar != 'r') if (ca.nchar != 'r')
@@ -1083,6 +1086,8 @@ getcount:
ca.nchar = ca.extra_char; ca.nchar = ca.extra_char;
idx = find_command(ca.cmdchar); idx = find_command(ca.cmdchar);
} }
else if (ca.nchar == 'n' || ca.nchar == 'N')
ca.oap->op_type = get_op_type(*cp, NUL);
else if (*cp == Ctrl_BSL) else if (*cp == Ctrl_BSL)
{ {
long towait = (p_ttm >= 0 ? p_ttm : p_tm); long towait = (p_ttm >= 0 ? p_ttm : p_tm);
@@ -8009,7 +8014,7 @@ nv_g_cmd(cap)
#ifdef FEAT_VISUAL #ifdef FEAT_VISUAL
if (!current_search(cap->count1, cap->nchar == 'n')) if (!current_search(cap->count1, cap->nchar == 'n'))
#endif #endif
beep_flush(); clearopbeep(oap);
break; break;
/* /*

View File

@@ -719,6 +719,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
704,
/**/ /**/
703, 703,
/**/ /**/