]> granicus.if.org Git - vim/commitdiff
updated for version 7.4.110 v7.4.110
authorBram Moolenaar <Bram@vim.org>
Thu, 28 Nov 2013 18:27:30 +0000 (19:27 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 28 Nov 2013 18:27:30 +0000 (19:27 +0100)
Problem:    "gUgn" cannot be repeeated. (Dimitar Dimitrov)
Solution:   Don't put "gn" in a different order in the redo buffer.  Restore
            'wrapscan' when the pattern isn't found. (Christian Wellenbrock)

src/normal.c
src/search.c
src/version.c

index 9349be2bb4ef1edc0e70c65193877a9101ac5705..013fdcee456c483e732b2c82b8363c66c13b40e7 100644 (file)
@@ -962,11 +962,8 @@ 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 == 'n' || ca.nchar == 'N') && !stuff_empty()))
+                                                      || ca.nchar == Ctrl_BSL)
            {
                cp = &ca.extra_char;    /* need to get a third character */
                if (ca.nchar != 'r')
@@ -1797,10 +1794,9 @@ do_pending_operator(cap, old_col, gui_yank)
                 * otherwise it might be the second char of the operator. */
                if (cap->cmdchar == 'g' && (cap->nchar == 'n'
                                                        || cap->nchar == 'N'))
-                   /* "gn" and "gN" are a bit different */
-                   prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar,
-                                       get_op_char(oap->op_type),
-                                       get_extra_op_char(oap->op_type));
+                   prep_redo(oap->regname, cap->count0,
+                           get_op_char(oap->op_type), get_extra_op_char(oap->op_type),
+                           oap->motion_force, cap->cmdchar, cap->nchar);
                else if (cap->cmdchar != ':')
                    prep_redo(oap->regname, 0L, NUL, 'v',
                                        get_op_char(oap->op_type),
index 2fb7624c49a7464cf1a50c97bee7071d75e07181..d97dcf6bd9e67eab987c5c984823882f3aaa4226 100644 (file)
@@ -4544,7 +4544,10 @@ current_search(count, forward)
     /* Is the pattern is zero-width? */
     one_char = is_one_char(spats[last_idx].pat);
     if (one_char == -1)
-       return FAIL;  /* invalid pattern */
+    {
+       p_ws = old_p_ws;
+       return FAIL;  /* pattern not found */
+    }
 
     /*
      * The trick is to first search backwards and then search forward again,
index 5975135f9ecf2d4c8ecffa1b38ca94731b2a7cd3..4a4bcd0a2e8f1b5ecc8536c9165bb792ac70cebe 100644 (file)
@@ -738,6 +738,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    110,
 /**/
     109,
 /**/