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,