diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-11-28 19:27:30 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-11-28 19:27:30 +0100 |
commit | ba2d44f33863e115b1858ab572829f403ad21883 (patch) | |
tree | 362d1fb55a4e860fef7bfd3e7a978dffd62b8d2d | |
parent | b95186fd36bae9716181bfdd203fb27f410e3c4f (diff) | |
download | vim-git-ba2d44f33863e115b1858ab572829f403ad21883.tar.gz |
updated for version 7.4.110v7.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)
-rw-r--r-- | src/normal.c | 12 | ||||
-rw-r--r-- | src/search.c | 5 | ||||
-rw-r--r-- | 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 @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 110, +/**/ 109, /**/ 108, |