summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0356
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0356')
-rw-r--r--data/vim/patches/8.1.0356224
1 files changed, 224 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0356 b/data/vim/patches/8.1.0356
new file mode 100644
index 000000000..907ebef7e
--- /dev/null
+++ b/data/vim/patches/8.1.0356
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0356
+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.0356
+Problem: Using :s with 'incsearch' prevents CTRL-R CTRL-W. (Boris Staletic)
+Solution: When past the pattern put cursor back in the start position.
+ (closes #3413)
+Files: src/ex_getln.c, src/testdir/test_search.vim
+
+
+*** ../vim-8.1.0355/src/ex_getln.c 2018-09-06 21:44:13.660006996 +0200
+--- src/ex_getln.c 2018-09-09 15:53:37.117142011 +0200
+***************
+*** 462,468 ****
+ incsearch_state_T *is_state)
+ {
+ int skiplen, patlen;
+! int i;
+ pos_T end_pos;
+ struct cmdline_info save_ccline;
+ #ifdef FEAT_RELTIME
+--- 462,468 ----
+ incsearch_state_T *is_state)
+ {
+ int skiplen, patlen;
+! int found; // do_search() result
+ pos_T end_pos;
+ struct cmdline_info save_ccline;
+ #ifdef FEAT_RELTIME
+***************
+*** 508,514 ****
+ // If there is no pattern, don't do anything.
+ if (patlen == 0 && !use_last_pat)
+ {
+! i = 0;
+ set_no_hlsearch(TRUE); // turn off previous highlight
+ redraw_all_later(SOME_VALID);
+ }
+--- 508,514 ----
+ // If there is no pattern, don't do anything.
+ if (patlen == 0 && !use_last_pat)
+ {
+! found = 0;
+ set_no_hlsearch(TRUE); // turn off previous highlight
+ redraw_all_later(SOME_VALID);
+ }
+***************
+*** 528,534 ****
+ if (search_first_line != 0)
+ search_flags += SEARCH_START;
+ ccline.cmdbuff[skiplen + patlen] = NUL;
+! i = do_search(NULL, firstc == ':' ? '/' : firstc,
+ ccline.cmdbuff + skiplen, count, search_flags,
+ #ifdef FEAT_RELTIME
+ &tm, NULL
+--- 528,534 ----
+ if (search_first_line != 0)
+ search_flags += SEARCH_START;
+ ccline.cmdbuff[skiplen + patlen] = NUL;
+! found = do_search(NULL, firstc == ':' ? '/' : firstc,
+ ccline.cmdbuff + skiplen, count, search_flags,
+ #ifdef FEAT_RELTIME
+ &tm, NULL
+***************
+*** 543,549 ****
+ || curwin->w_cursor.lnum > search_last_line)
+ {
+ // match outside of address range
+! i = 0;
+ curwin->w_cursor = is_state->search_start;
+ }
+
+--- 543,549 ----
+ || curwin->w_cursor.lnum > search_last_line)
+ {
+ // match outside of address range
+! found = 0;
+ curwin->w_cursor = is_state->search_start;
+ }
+
+***************
+*** 552,564 ****
+ {
+ (void)vpeekc(); // remove <C-C> from input stream
+ got_int = FALSE; // don't abandon the command line
+! i = 0;
+ }
+ else if (char_avail())
+ // cancelled searching because a char was typed
+ is_state->incsearch_postponed = TRUE;
+ }
+! if (i != 0)
+ highlight_match = TRUE; // highlight position
+ else
+ highlight_match = FALSE; // remove highlight
+--- 552,564 ----
+ {
+ (void)vpeekc(); // remove <C-C> from input stream
+ got_int = FALSE; // don't abandon the command line
+! found = 0;
+ }
+ else if (char_avail())
+ // cancelled searching because a char was typed
+ is_state->incsearch_postponed = TRUE;
+ }
+! if (found != 0)
+ highlight_match = TRUE; // highlight position
+ else
+ highlight_match = FALSE; // remove highlight
+***************
+*** 569,575 ****
+ changed_cline_bef_curs();
+ update_topline();
+
+! if (i != 0)
+ {
+ pos_T save_pos = curwin->w_cursor;
+
+--- 569,575 ----
+ changed_cline_bef_curs();
+ update_topline();
+
+! if (found != 0)
+ {
+ pos_T save_pos = curwin->w_cursor;
+
+***************
+*** 604,611 ****
+ restore_cmdline(&save_ccline);
+ restore_last_search_pattern();
+
+! // Leave it at the end to make CTRL-R CTRL-W work.
+! if (i != 0)
+ curwin->w_cursor = end_pos;
+
+ msg_starthere();
+--- 604,614 ----
+ restore_cmdline(&save_ccline);
+ restore_last_search_pattern();
+
+! // Leave it at the end to make CTRL-R CTRL-W work. But not when beyond the
+! // end of the pattern, e.g. for ":s/pat/".
+! if (ccline.cmdbuff[skiplen + patlen] != NUL)
+! curwin->w_cursor = is_state->search_start;
+! else if (found != 0)
+ curwin->w_cursor = end_pos;
+
+ msg_starthere();
+*** ../vim-8.1.0355/src/testdir/test_search.vim 2018-09-06 21:44:13.660006996 +0200
+--- src/testdir/test_search.vim 2018-09-09 15:50:31.934618534 +0200
+***************
+*** 1060,1065 ****
+--- 1060,1101 ----
+ set noincsearch
+ endfunc
+
++ func Test_word_under_cursor_after_match()
++ if !exists('+incsearch')
++ return
++ endif
++ new
++ call setline(1, 'foo bar')
++ set incsearch
++ call test_override("char_avail", 1)
++ try
++ call feedkeys("/foo\<C-R>\<C-W>\<CR>", 'ntx')
++ catch /E486:/
++ endtry
++ call assert_equal('foobar', @/)
++
++ bwipe!
++ call test_override("ALL", 0)
++ set noincsearch
++ endfunc
++
++ func Test_subst_word_under_cursor()
++ if !exists('+incsearch')
++ return
++ endif
++ new
++ call setline(1, ['int SomeLongName;', 'for (xxx = 1; xxx < len; ++xxx)'])
++ set incsearch
++ call test_override("char_avail", 1)
++ call feedkeys("/LongName\<CR>", 'ntx')
++ call feedkeys(":%s/xxx/\<C-R>\<C-W>/g\<CR>", 'ntx')
++ call assert_equal('for (SomeLongName = 1; SomeLongName < len; ++SomeLongName)', getline(2))
++
++ bwipe!
++ call test_override("ALL", 0)
++ set noincsearch
++ endfunc
++
+ func Test_search_undefined_behaviour()
+ if !has("terminal")
+ return
+*** ../vim-8.1.0355/src/version.c 2018-09-09 15:27:54.812344748 +0200
+--- src/version.c 2018-09-09 15:52:51.437517050 +0200
+***************
+*** 796,797 ****
+--- 796,799 ----
+ { /* Add new patch number below this line */
++ /**/
++ 356,
+ /**/
+
+--
+"So this is it," said Arthur, "we are going to die."
+"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across
+the chamber at something behind Arthur's line of vision. "What's this
+switch?" he cried.
+"What? Where?" cried Arthur, twisting around.
+"No, I was only fooling," said Ford, "we are going to die after all."
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// 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 ///