changeset 3896:be8ad9c9b973 v7.3.704

updated for version 7.3.704 Problem: Repeating "cgn" does not always work correctly. Solution: Also fetch the operator character. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Sun, 21 Oct 2012 03:54:33 +0200
parents 6abf54f12abc
children d2d138ca6e96
files src/normal.c src/version.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/normal.c
+++ b/src/normal.c
@@ -960,8 +960,11 @@ getcount:
 #ifdef FEAT_CMDL_INFO
 	    need_flushbuf |= add_to_showcmd(ca.nchar);
 #endif
+	    /* For "gn" from redo, need to get one more char to determine the
+	     * operator */
 	    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 */
 		if (ca.nchar != 'r')
@@ -1083,6 +1086,8 @@ getcount:
 		ca.nchar = ca.extra_char;
 		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)
 	    {
 		long towait = (p_ttm >= 0 ? p_ttm : p_tm);
@@ -8009,7 +8014,7 @@ nv_g_cmd(cap)
 #ifdef FEAT_VISUAL
 	if (!current_search(cap->count1, cap->nchar == 'n'))
 #endif
-	    beep_flush();
+	    clearopbeep(oap);
 	break;
 
     /*
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    704,
+/**/
     703,
 /**/
     702,