diff options
Diffstat (limited to 'data/vim/patches/8.1.0275')
-rw-r--r-- | data/vim/patches/8.1.0275 | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0275 b/data/vim/patches/8.1.0275 new file mode 100644 index 000000000..6617c72f0 --- /dev/null +++ b/data/vim/patches/8.1.0275 @@ -0,0 +1,185 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0275 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +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 -- Bram@Moolenaar.net -- 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 /// |