summaryrefslogtreecommitdiff
path: root/src/normal.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-09-03 21:04:58 +0200
committerBram Moolenaar <Bram@vim.org>2016-09-03 21:04:58 +0200
commitdda933d06c06c2792bd686d059f6ad19191ad30b (patch)
tree0452e843f90cf9289f01366c926169e8b9169faf /src/normal.c
parentb07a82b6d5f904ed3e623e775c3458adb1cc0a3e (diff)
downloadvim-git-dda933d06c06c2792bd686d059f6ad19191ad30b.tar.gz
patch 7.4.2320v7.4.2320
Problem: Redraw problem when using 'incsearch'. Solution: Save the current view when deleting characters. (Christian Brabandt) Fix that the '" mark is set in the wrong position. Don't change the search start when using BS.
Diffstat (limited to 'src/normal.c')
-rw-r--r--src/normal.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/normal.c b/src/normal.c
index a18594953..0f9b23051 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -6228,6 +6228,7 @@ nv_dollar(cmdarg_T *cap)
nv_search(cmdarg_T *cap)
{
oparg_T *oap = cap->oap;
+ pos_T save_cursor = curwin->w_cursor;
if (cap->cmdchar == '?' && cap->oap->op_type == OP_ROT13)
{
@@ -6238,6 +6239,8 @@ nv_search(cmdarg_T *cap)
return;
}
+ /* When using 'incsearch' the cursor may be moved to set a different search
+ * start position. */
cap->searchbuf = getcmdline(cap->cmdchar, cap->count1, 0);
if (cap->searchbuf == NULL)
@@ -6247,7 +6250,8 @@ nv_search(cmdarg_T *cap)
}
(void)normal_search(cap, cap->cmdchar, cap->searchbuf,
- (cap->arg ? 0 : SEARCH_MARK));
+ (cap->arg || !equalpos(save_cursor, curwin->w_cursor))
+ ? 0 : SEARCH_MARK);
}
/*