Patch 8.1.0275
Problem: 'incsearch' with :s doesn't start at cursor line.
Solution: Set cursor before parsing address. (closes #3318)
Also accept a match at the start of the first line.
Files: src/ex_getln.c, src/testdir/test_search.vim
*** ../vim-8.1.0274/src/ex_getln.c 2018-08-11 19:20:45.042561404 +0200
--- src/ex_getln.c 2018-08-12 15:48:20.176044564 +0200
***************
*** 316,323 ****
ea.line2 = 1;
ea.cmd = ccline.cmdbuff;
ea.addr_type = ADDR_LINES;
- parse_cmd_address(&ea, &dummy);
curwin->w_cursor = is_state->search_start;
if (ea.addr_count > 0)
{
search_first_line = ea.line1;
--- 316,323 ----
ea.line2 = 1;
ea.cmd = ccline.cmdbuff;
ea.addr_type = ADDR_LINES;
curwin->w_cursor = is_state->search_start;
+ parse_cmd_address(&ea, &dummy);
if (ea.addr_count > 0)
{
search_first_line = ea.line1;
***************
*** 401,406 ****
--- 401,408 ----
#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,
*** ../vim-8.1.0274/src/testdir/test_search.vim 2018-08-11 19:20:45.042561404
+0200
--- src/testdir/test_search.vim 2018-08-12 15:24:06.430745257 +0200
***************
*** 351,357 ****
set incsearch
endfunc
! func Cmdline3_cleanup()
set noincsearch
call test_override("char_avail", 0)
bw!
--- 351,357 ----
set incsearch
endfunc
! func Incsearch_cleanup()
set noincsearch
call test_override("char_avail", 0)
bw!
***************
*** 367,373 ****
call feedkeys("/the\<c-l>\<cr>", 'tx')
call assert_equal(' 2 the~e', getline('.'))
! call Cmdline3_cleanup()
endfunc
func Test_search_cmdline3s()
--- 367,373 ----
call feedkeys("/the\<c-l>\<cr>", 'tx')
call assert_equal(' 2 the~e', getline('.'))
! call Incsearch_cleanup()
endfunc
func Test_search_cmdline3s()
***************
*** 385,391 ****
call feedkeys(":%substitute/the\<c-l>/xxx\<cr>", 'tx')
call assert_equal(' 2 xxxe', getline('.'))
! call Cmdline3_cleanup()
endfunc
func Test_search_cmdline3g()
--- 385,391 ----
call feedkeys(":%substitute/the\<c-l>/xxx\<cr>", 'tx')
call assert_equal(' 2 xxxe', getline('.'))
! call Incsearch_cleanup()
endfunc
func Test_search_cmdline3g()
***************
*** 400,406 ****
call feedkeys(":global/the\<c-l>/d\<cr>", 'tx')
call assert_equal(' 3 the theother', getline(2))
! call Cmdline3_cleanup()
endfunc
func Test_search_cmdline3v()
--- 400,406 ----
call feedkeys(":global/the\<c-l>/d\<cr>", 'tx')
call assert_equal(' 3 the theother', getline(2))
! call Incsearch_cleanup()
endfunc
func Test_search_cmdline3v()
***************
*** 417,423 ****
call assert_equal(1, line('$'))
call assert_equal(' 2 the~e', getline(1))
! call Cmdline3_cleanup()
endfunc
func Test_search_cmdline4()
--- 417,423 ----
call assert_equal(1, line('$'))
call assert_equal(' 2 the~e', getline(1))
! call Incsearch_cleanup()
endfunc
func Test_search_cmdline4()
***************
*** 797,802 ****
--- 797,823 ----
call delete('Xscript')
endfunc
+ func Test_incsearch_substitute()
+ if !exists('+incsearch')
+ return
+ endif
+ call test_override("char_avail", 1)
+ new
+ set incsearch
+ for n in range(1, 10)
+ call setline(n, 'foo ' . n)
+ endfor
+ 4
+ call feedkeys(":.,.+2s/foo\<BS>o\<BS>o/xxx\<cr>", 'tx')
+ call assert_equal('foo 3', getline(3))
+ call assert_equal('xxx 4', getline(4))
+ call assert_equal('xxx 5', getline(5))
+ call assert_equal('xxx 6', getline(6))
+ call assert_equal('foo 7', getline(7))
+
+ call Incsearch_cleanup()
+ endfunc
+
func Test_search_undefined_behaviour()
if !has("terminal")
return
*** ../vim-8.1.0274/src/version.c 2018-08-11 19:20:45.042561404 +0200
--- src/version.c 2018-08-12 15:29:30.772309260 +0200
***************
*** 796,797 ****
--- 796,799 ----
{ /* Add new patch number below this line */
+ /**/
+ 275,
/**/
--
Any sufficiently advanced technology is indistinguishable from magic.
Arthur C. Clarke
Any sufficiently advanced bug is indistinguishable from a feature.
Rich Kulawiec
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.