Mercurial > vim
diff src/normal.c @ 10098:72e4b7f90465 v7.4.2320
commit https://github.com/vim/vim/commit/dda933d06c06c2792bd686d059f6ad19191ad30b
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Sep 3 21:04:58 2016 +0200
patch 7.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.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 03 Sep 2016 21:15:06 +0200 |
parents | 4aead6a9b7a9 |
children | cfb38b57d407 |
line wrap: on
line diff
--- 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); } /*