Mercurial > vim
diff src/ex_getln.c @ 14524:e36d6e01708c v8.1.0275
patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
commit https://github.com/vim/vim/commit/976b847f43dd16eb6cd809d2dcab7dde6045e176
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Aug 12 15:49:47 2018 +0200
patch 8.1.0275: 'incsearch' with :s doesn't start at cursor line
Problem: 'incsearch' with :s doesn't start at cursor line.
Solution: Set cursor before parsing address. (closes https://github.com/vim/vim/issues/3318)
Also accept a match at the start of the first line.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 12 Aug 2018 16:00:06 +0200 |
parents | 97641c4f5687 |
children | 58ca11610819 |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -316,8 +316,8 @@ do_incsearch_highlighting(int firstc, in ea.line2 = 1; ea.cmd = ccline.cmdbuff; ea.addr_type = ADDR_LINES; + curwin->w_cursor = is_state->search_start; parse_cmd_address(&ea, &dummy); - curwin->w_cursor = is_state->search_start; if (ea.addr_count > 0) { search_first_line = ea.line1; @@ -401,6 +401,8 @@ may_do_incsearch_highlighting( #endif if (!p_hls) search_flags += SEARCH_KEEP; + if (search_first_line != 0) + search_flags += SEARCH_START; c = ccline.cmdbuff[skiplen + patlen]; ccline.cmdbuff[skiplen + patlen] = NUL; i = do_search(NULL, firstc == ':' ? '/' : firstc,