summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0275
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0275')
-rw-r--r--data/vim/patches/8.1.0275185
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 ///