From ba2d44f33863e115b1858ab572829f403ad21883 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 28 Nov 2013 19:27:30 +0100 Subject: [PATCH] updated for version 7.4.110 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 | 12 ++++-------- src/search.c | 5 ++++- src/version.c | 2 ++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/normal.c b/src/normal.c index 9349be2bb..013fdcee4 100644 --- a/src/normal.c +++ b/src/normal.c @@ -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), diff --git a/src/search.c b/src/search.c index 2fb7624c4..d97dcf6bd 100644 --- a/src/search.c +++ b/src/search.c @@ -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, diff --git a/src/version.c b/src/version.c index 5975135f9..4a4bcd0a2 100644 --- a/src/version.c +++ b/src/version.c @@ -738,6 +738,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 110, /**/ 109, /**/ -- 2.50.1