summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0271
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0271')
-rw-r--r--data/vim/patches/8.1.0271489
1 files changed, 0 insertions, 489 deletions
diff --git a/data/vim/patches/8.1.0271 b/data/vim/patches/8.1.0271
deleted file mode 100644
index 53b7c4942..000000000
--- a/data/vim/patches/8.1.0271
+++ /dev/null
@@ -1,489 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0271
-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.0271
-Problem: 'incsearch' doesn't work for :s, :g or :v.
-Solution: Also use 'incsearch' for other commands that use a pattern.
-Files: src/ex_getln.c, src/globals.h, src/screen.c,
- src/testdir/test_search.vim
-
-
-*** ../vim-8.1.0270/src/ex_getln.c 2018-08-10 22:07:28.821903829 +0200
---- src/ex_getln.c 2018-08-11 16:16:52.578317070 +0200
-***************
-*** 264,274 ****
-
- /*
- * Return TRUE when 'incsearch' highlighting is to be done.
- */
- static int
-! do_incsearch_highlighting(int firstc)
- {
-! return p_is && !cmd_silent && (firstc == '/' || firstc == '?');
- }
-
- /*
---- 264,341 ----
-
- /*
- * Return TRUE when 'incsearch' highlighting is to be done.
-+ * Sets search_first_line and search_last_line to the address range.
- */
- static int
-! do_incsearch_highlighting(int firstc, incsearch_state_T *is_state,
-! int *skiplen, int *patlen)
- {
-! *skiplen = 0;
-! *patlen = ccline.cmdlen;
-!
-! if (p_is && !cmd_silent)
-! {
-! // by default search all lines
-! search_first_line = 0;
-! search_last_line = MAXLNUM;
-!
-! if (firstc == '/' || firstc == '?')
-! return TRUE;
-! if (firstc == ':')
-! {
-! char_u *cmd = skip_range(ccline.cmdbuff, NULL);
-! char_u *p;
-! int delim;
-! char_u *end;
-!
-! if (*cmd == 's' || *cmd == 'g' || *cmd == 'v')
-! {
-! // Skip over "substitute" to find the pattern separator.
-! for (p = cmd; ASCII_ISALPHA(*p); ++p)
-! ;
-! if (*p != NUL)
-! {
-! delim = *p++;
-! end = skip_regexp(p, delim, p_magic, NULL);
-! if (end > p)
-! {
-! char_u *dummy;
-! exarg_T ea;
-! pos_T save_cursor = curwin->w_cursor;
-!
-! // found a non-empty pattern
-! *skiplen = (int)(p - ccline.cmdbuff);
-! *patlen = (int)(end - p);
-!
-! // parse the address range
-! vim_memset(&ea, 0, sizeof(ea));
-! ea.line1 = 1;
-! 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;
-! search_last_line = ea.line2;
-! }
-! else if (*cmd == 's')
-! {
-! // :s defaults to the current line
-! search_first_line = curwin->w_cursor.lnum;
-! search_last_line = curwin->w_cursor.lnum;
-! }
-!
-! curwin->w_cursor = save_cursor;
-! return TRUE;
-! }
-! }
-! }
-! }
-! }
-!
-! return FALSE;
- }
-
- /*
-***************
-*** 280,293 ****
- long count,
- incsearch_state_T *is_state)
- {
- int i;
- pos_T end_pos;
- struct cmdline_info save_ccline;
- #ifdef FEAT_RELTIME
- proftime_T tm;
- #endif
-
-! if (!do_incsearch_highlighting(firstc))
- return;
-
- // If there is a character waiting, search and redraw later.
---- 347,362 ----
- long count,
- incsearch_state_T *is_state)
- {
-+ int skiplen, patlen;
- int i;
- pos_T end_pos;
- struct cmdline_info save_ccline;
- #ifdef FEAT_RELTIME
- proftime_T tm;
- #endif
-+ int c;
-
-! if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
- return;
-
- // If there is a character waiting, search and redraw later.
-***************
-*** 298,309 ****
- }
- is_state->incsearch_postponed = FALSE;
-
-! // start at old position
-! curwin->w_cursor = is_state->search_start;
- save_last_search_pattern();
-
- // If there is no command line, don't do anything.
-! if (ccline.cmdlen == 0)
- {
- i = 0;
- set_no_hlsearch(TRUE); // turn off previous highlight
---- 367,385 ----
- }
- is_state->incsearch_postponed = FALSE;
-
-! if (search_first_line == 0)
-! // start at the original cursor position
-! curwin->w_cursor = is_state->search_start;
-! else
-! {
-! // start at the first line in the range
-! curwin->w_cursor.lnum = search_first_line;
-! curwin->w_cursor.col = 0;
-! }
- save_last_search_pattern();
-
- // If there is no command line, don't do anything.
-! if (patlen == 0)
- {
- i = 0;
- set_no_hlsearch(TRUE); // turn off previous highlight
-***************
-*** 322,336 ****
- #endif
- if (!p_hls)
- search_flags += SEARCH_KEEP;
-! i = do_search(NULL, firstc, ccline.cmdbuff, count, search_flags,
- #ifdef FEAT_RELTIME
- &tm, NULL
- #else
- NULL, NULL
- #endif
- );
- --emsg_off;
-
- // if interrupted while searching, behave like it failed
- if (got_int)
- {
---- 398,421 ----
- #endif
- if (!p_hls)
- search_flags += SEARCH_KEEP;
-! c = ccline.cmdbuff[skiplen + patlen];
-! ccline.cmdbuff[skiplen + patlen] = NUL;
-! i = do_search(NULL, firstc == ':' ? '/' : firstc,
-! ccline.cmdbuff + skiplen, count, search_flags,
- #ifdef FEAT_RELTIME
- &tm, NULL
- #else
- NULL, NULL
- #endif
- );
-+ ccline.cmdbuff[skiplen + patlen] = c;
- --emsg_off;
-
-+ if (curwin->w_cursor.lnum < search_first_line
-+ || curwin->w_cursor.lnum > search_last_line)
-+ // match outside of address range
-+ i = 0;
-+
- // if interrupted while searching, behave like it failed
- if (got_int)
- {
-***************
-*** 369,376 ****
---- 454,464 ----
-
- // Disable 'hlsearch' highlighting if the pattern matches everything.
- // Avoids a flash when typing "foo\|".
-+ c = ccline.cmdbuff[skiplen + patlen];
-+ ccline.cmdbuff[skiplen + patlen] = NUL;
- if (empty_pattern(ccline.cmdbuff))
- set_no_hlsearch(TRUE);
-+ ccline.cmdbuff[skiplen + patlen] = c;
-
- validate_cursor();
- // May redraw the status line to show the cursor position.
-***************
-*** 398,422 ****
- */
- static int
- may_adjust_incsearch_highlighting(
-! int firstc,
-! long count,
- incsearch_state_T *is_state,
-! int c)
- {
- pos_T t;
- char_u *pat;
- int search_flags = SEARCH_NOOF;
- int i;
-
-! if (!do_incsearch_highlighting(firstc))
- return OK;
-! if (ccline.cmdlen == 0)
- return FAIL;
-
-! if (firstc == ccline.cmdbuff[0])
- pat = last_search_pattern();
- else
-! pat = ccline.cmdbuff;
-
- save_last_search_pattern();
- cursor_off();
---- 486,512 ----
- */
- static int
- may_adjust_incsearch_highlighting(
-! int firstc,
-! long count,
- incsearch_state_T *is_state,
-! int c)
- {
-+ int skiplen, patlen;
- pos_T t;
- char_u *pat;
- int search_flags = SEARCH_NOOF;
- int i;
-+ int save;
-
-! if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
- return OK;
-! if (patlen == 0 && ccline.cmdbuff[skiplen] == NUL)
- return FAIL;
-
-! if (firstc == ccline.cmdbuff[skiplen])
- pat = last_search_pattern();
- else
-! pat = ccline.cmdbuff + skiplen;
-
- save_last_search_pattern();
- cursor_off();
-***************
-*** 435,451 ****
- if (!p_hls)
- search_flags += SEARCH_KEEP;
- ++emsg_off;
- i = searchit(curwin, curbuf, &t,
- c == Ctrl_G ? FORWARD : BACKWARD,
- pat, count, search_flags,
- RE_SEARCH, 0, NULL, NULL);
- --emsg_off;
- if (i)
- {
- is_state->search_start = is_state->match_start;
- is_state->match_end = t;
- is_state->match_start = t;
-! if (c == Ctrl_T && firstc == '/')
- {
- // Move just before the current match, so that when nv_search
- // finishes the cursor will be put back on the match.
---- 525,544 ----
- if (!p_hls)
- search_flags += SEARCH_KEEP;
- ++emsg_off;
-+ save = pat[patlen];
-+ pat[patlen] = NUL;
- i = searchit(curwin, curbuf, &t,
- c == Ctrl_G ? FORWARD : BACKWARD,
- pat, count, search_flags,
- RE_SEARCH, 0, NULL, NULL);
- --emsg_off;
-+ pat[patlen] = save;
- if (i)
- {
- is_state->search_start = is_state->match_start;
- is_state->match_end = t;
- is_state->match_start = t;
-! if (c == Ctrl_T && firstc != '?')
- {
- // Move just before the current match, so that when nv_search
- // finishes the cursor will be put back on the match.
-***************
-*** 493,499 ****
- static int
- may_add_char_to_search(int firstc, int *c, incsearch_state_T *is_state)
- {
-! if (!do_incsearch_highlighting(firstc))
- return FAIL;
-
- // Add a character from under the cursor for 'incsearch'.
---- 586,594 ----
- static int
- may_add_char_to_search(int firstc, int *c, incsearch_state_T *is_state)
- {
-! int skiplen, patlen;
-!
-! if (!do_incsearch_highlighting(firstc, is_state, &skiplen, &patlen))
- return FAIL;
-
- // Add a character from under the cursor for 'incsearch'.
-***************
-*** 507,513 ****
- // If 'ignorecase' and 'smartcase' are set and the
- // command line has no uppercase characters, convert
- // the character to lowercase.
-! if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff))
- *c = MB_TOLOWER(*c);
- if (*c != NUL)
- {
---- 602,608 ----
- // If 'ignorecase' and 'smartcase' are set and the
- // command line has no uppercase characters, convert
- // the character to lowercase.
-! if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff + skiplen))
- *c = MB_TOLOWER(*c);
- if (*c != NUL)
- {
-*** ../vim-8.1.0270/src/globals.h 2018-07-29 16:09:14.644945560 +0200
---- src/globals.h 2018-08-11 15:13:44.359706095 +0200
-***************
-*** 345,353 ****
- * a match within one line), search_match_endcol the column number of the
- * character just after the match in the last line.
- */
-! EXTERN int highlight_match INIT(= FALSE); /* show search match pos */
-! EXTERN linenr_T search_match_lines; /* lines of of matched string */
-! EXTERN colnr_T search_match_endcol; /* col nr of match end */
-
- EXTERN int no_smartcase INIT(= FALSE); /* don't use 'smartcase' once */
-
---- 345,357 ----
- * a match within one line), search_match_endcol the column number of the
- * character just after the match in the last line.
- */
-! EXTERN int highlight_match INIT(= FALSE); // show search match pos
-! EXTERN linenr_T search_match_lines; // lines of of matched string
-! EXTERN colnr_T search_match_endcol; // col nr of match end
-! #ifdef FEAT_SEARCH_EXTRA
-! EXTERN linenr_T search_first_line INIT(= 0); // for :{FIRST},{last}s/pat
-! EXTERN linenr_T search_last_line INIT(= MAXLNUM); // for :{first},{LAST}s/pat
-! #endif
-
- EXTERN int no_smartcase INIT(= FALSE); /* don't use 'smartcase' once */
-
-*** ../vim-8.1.0270/src/screen.c 2018-07-29 17:35:19.493750319 +0200
---- src/screen.c 2018-08-11 15:26:39.760558152 +0200
-***************
-*** 7892,7897 ****
---- 7892,7904 ----
- long nmatched;
- int save_called_emsg = called_emsg;
-
-+ // for :{range}s/pat only highlight inside the range
-+ if (lnum < search_first_line || lnum > search_last_line)
-+ {
-+ shl->lnum = 0;
-+ return;
-+ }
-+
- if (shl->lnum != 0)
- {
- /* Check for three situations:
-*** ../vim-8.1.0270/src/testdir/test_search.vim 2018-07-14 17:24:57.681329029 +0200
---- src/testdir/test_search.vim 2018-08-11 16:27:47.757683001 +0200
-***************
-*** 362,367 ****
---- 362,419 ----
- bw!
- endfunc
-
-+ func Cmdline3_prep()
-+ " need to disable char_avail,
-+ " so that expansion of commandline works
-+ call test_override("char_avail", 1)
-+ new
-+ call setline(1, [' 1', ' 2 the~e', ' 3 the theother'])
-+ set incsearch
-+ endfunc
-+
-+ func Cmdline3_cleanup()
-+ set noincsearch
-+ call test_override("char_avail", 0)
-+ bw!
-+ endfunc
-+
-+ func Test_search_cmdline3s()
-+ if !exists('+incsearch')
-+ return
-+ endif
-+ call Cmdline3_prep()
-+ 1
-+ call feedkeys(":%s/the\<c-l>/xxx\<cr>", 'tx')
-+ call assert_equal(' 2 xxxe', getline('.'))
-+
-+ call Cmdline3_cleanup()
-+ endfunc
-+
-+ func Test_search_cmdline3g()
-+ if !exists('+incsearch')
-+ return
-+ endif
-+ call Cmdline3_prep()
-+ 1
-+ call feedkeys(":g/the\<c-l>/d\<cr>", 'tx')
-+ call assert_equal(' 3 the theother', getline(2))
-+
-+ call Cmdline3_cleanup()
-+ endfunc
-+
-+ func Test_search_cmdline3v()
-+ if !exists('+incsearch')
-+ return
-+ endif
-+ call Cmdline3_prep()
-+ 1
-+ call feedkeys(":v/the\<c-l>/d\<cr>", 'tx')
-+ call assert_equal(1, line('$'))
-+ call assert_equal(' 2 the~e', getline(1))
-+
-+ call Cmdline3_cleanup()
-+ endfunc
-+
- func Test_search_cmdline4()
- if !exists('+incsearch')
- return
-*** ../vim-8.1.0270/src/version.c 2018-08-11 14:41:48.326928864 +0200
---- src/version.c 2018-08-11 16:29:55.060807807 +0200
-***************
-*** 796,797 ****
---- 796,799 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 271,
- /**/
-
---
-Every exit is an entrance into something else.
-
- /// 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 ///