diff options
Diffstat (limited to 'data/vim/patches/8.1.0265')
-rw-r--r-- | data/vim/patches/8.1.0265 | 875 |
1 files changed, 0 insertions, 875 deletions
diff --git a/data/vim/patches/8.1.0265 b/data/vim/patches/8.1.0265 deleted file mode 100644 index bd59897ea..000000000 --- a/data/vim/patches/8.1.0265 +++ /dev/null @@ -1,875 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0265 -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.0265 -Problem: The getcmdline() function is way too big. -Solution: Factor out the incremental search highlighting. -Files: src/ex_getln.c - - -*** ../vim-8.1.0264/src/ex_getln.c 2018-08-01 19:05:59.286223185 +0200 ---- src/ex_getln.c 2018-08-10 22:05:38.646652603 +0200 -*************** -*** 141,149 **** - #endif - sort_func_compare(const void *s1, const void *s2); - #endif -- #ifdef FEAT_SEARCH_EXTRA -- static void set_search_match(pos_T *t); -- #endif - - - static void ---- 141,146 ---- -*************** -*** 185,193 **** - n -= 2; - return n == 0 || (n >= 2 && p[n - 2] == '\\' && p[n - 1] == '|'); - } -- #endif - -! #ifdef FEAT_SEARCH_EXTRA - typedef struct { - colnr_T vs_curswant; - colnr_T vs_leftcol; ---- 182,189 ---- - n -= 2; - return n == 0 || (n >= 2 && p[n - 2] == '\\' && p[n - 1] == '|'); - } - -! // Struct to store the viewstate during 'incsearch' highlighting. - typedef struct { - colnr_T vs_curswant; - colnr_T vs_leftcol; -*************** -*** 224,229 **** ---- 220,553 ---- - curwin->w_botline = vs->vs_botline; - curwin->w_empty_rows = vs->vs_empty_rows; - } -+ -+ // Struct to store the state of 'incsearch' highlighting. -+ typedef struct { -+ pos_T search_start; // where 'incsearch' starts searching -+ pos_T save_cursor; -+ viewstate_T init_viewstate; -+ viewstate_T old_viewstate; -+ pos_T match_start; -+ pos_T match_end; -+ int did_incsearch; -+ int incsearch_postponed; -+ } incsearch_state_T; -+ -+ static void -+ init_incsearch_state(incsearch_state_T *is_state) -+ { -+ is_state->match_start = curwin->w_cursor; -+ is_state->did_incsearch = FALSE; -+ is_state->incsearch_postponed = FALSE; -+ CLEAR_POS(&is_state->match_end); -+ is_state->save_cursor = curwin->w_cursor; // may be restored later -+ is_state->search_start = curwin->w_cursor; -+ save_viewstate(&is_state->init_viewstate); -+ save_viewstate(&is_state->old_viewstate); -+ } -+ -+ /* -+ * First move cursor to end of match, then to the start. This -+ * moves the whole match onto the screen when 'nowrap' is set. -+ */ -+ static void -+ set_search_match(pos_T *t) -+ { -+ t->lnum += search_match_lines; -+ t->col = search_match_endcol; -+ if (t->lnum > curbuf->b_ml.ml_line_count) -+ { -+ t->lnum = curbuf->b_ml.ml_line_count; -+ coladvance((colnr_T)MAXCOL); -+ } -+ } -+ -+ /* -+ * Return TRUE when 'incsearch' highlighting is to be done. -+ */ -+ static int -+ do_incsearch_highlighting(int firstc) -+ { -+ return p_is && !cmd_silent && (firstc == '/' || firstc == '?'); -+ } -+ -+ /* -+ * Do 'incsearch' highlighting if desired. -+ */ -+ static void -+ may_do_incsearch_highlighting( -+ int firstc, -+ 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. -+ if (char_avail()) -+ { -+ is_state->incsearch_postponed = TRUE; -+ return; -+ } -+ 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 -+ redraw_all_later(SOME_VALID); -+ } -+ else -+ { -+ int search_flags = SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK; -+ -+ cursor_off(); // so the user knows we're busy -+ out_flush(); -+ ++emsg_off; // so it doesn't beep if bad expr -+ #ifdef FEAT_RELTIME -+ // Set the time limit to half a second. -+ profile_setlimit(500L, &tm); -+ #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) -+ { -+ (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 -+ -+ // First restore the old curwin values, so the screen is positioned in the -+ // same way as the actual search command. -+ restore_viewstate(&is_state->old_viewstate); -+ changed_cline_bef_curs(); -+ update_topline(); -+ -+ if (i != 0) -+ { -+ pos_T save_pos = curwin->w_cursor; -+ -+ is_state->match_start = curwin->w_cursor; -+ set_search_match(&curwin->w_cursor); -+ validate_cursor(); -+ end_pos = curwin->w_cursor; -+ is_state->match_end = end_pos; -+ curwin->w_cursor = save_pos; -+ } -+ else -+ end_pos = curwin->w_cursor; // shutup gcc 4 -+ -+ // Disable 'hlsearch' highlighting if the pattern matches everything. -+ // Avoids a flash when typing "foo\|". -+ if (empty_pattern(ccline.cmdbuff)) -+ set_no_hlsearch(TRUE); -+ -+ validate_cursor(); -+ // May redraw the status line to show the cursor position. -+ if (p_ru && curwin->w_status_height > 0) -+ curwin->w_redr_status = TRUE; -+ -+ save_cmdline(&save_ccline); -+ update_screen(SOME_VALID); -+ 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(); -+ redrawcmdline(); -+ is_state->did_incsearch = TRUE; -+ } -+ -+ /* -+ * May adjust 'incsearch' highlighting for typing CTRL-G and CTRL-T, go to next -+ * or previous match. -+ * Returns FAIL when jumping to cmdline_not_changed; -+ */ -+ 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(); -+ out_flush(); -+ if (c == Ctrl_G) -+ { -+ t = is_state->match_end; -+ if (LT_POS(is_state->match_start, is_state->match_end)) -+ // Start searching at the end of the match not at the beginning of -+ // the next column. -+ (void)decl(&t); -+ search_flags += SEARCH_COL; -+ } -+ else -+ t = is_state->match_start; -+ 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. -+ is_state->search_start = t; -+ (void)decl(&is_state->search_start); -+ } -+ else if (c == Ctrl_G && firstc == '?') -+ { -+ // Move just after the current match, so that when nv_search -+ // finishes the cursor will be put back on the match. -+ is_state->search_start = t; -+ (void)incl(&is_state->search_start); -+ } -+ if (LT_POS(t, is_state->search_start) && c == Ctrl_G) -+ { -+ // wrap around -+ is_state->search_start = t; -+ if (firstc == '?') -+ (void)incl(&is_state->search_start); -+ else -+ (void)decl(&is_state->search_start); -+ } -+ -+ set_search_match(&is_state->match_end); -+ curwin->w_cursor = is_state->match_start; -+ changed_cline_bef_curs(); -+ update_topline(); -+ validate_cursor(); -+ highlight_match = TRUE; -+ save_viewstate(&is_state->old_viewstate); -+ update_screen(NOT_VALID); -+ redrawcmdline(); -+ } -+ else -+ vim_beep(BO_ERROR); -+ restore_last_search_pattern(); -+ return FAIL; -+ } -+ -+ /* -+ * When CTRL-L typed: add character from the match to the pattern. -+ * May set "*c" to the added character. -+ * Return OK when jumping to cmdline_not_changed. -+ */ -+ 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'. -+ if (is_state->did_incsearch) -+ { -+ curwin->w_cursor = is_state->match_end; -+ if (!EQUAL_POS(curwin->w_cursor, is_state->search_start)) -+ { -+ *c = gchar_cursor(); -+ -+ // 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) -+ { -+ if (*c == firstc || vim_strchr((char_u *)( -+ p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL) -+ { -+ // put a backslash before special characters -+ stuffcharReadbuff(*c); -+ *c = '\\'; -+ } -+ return FAIL; -+ } -+ } -+ } -+ return OK; -+ } -+ -+ static void -+ finish_incsearch_highlighting(int gotesc, incsearch_state_T *is_state) -+ { -+ if (is_state->did_incsearch) -+ { -+ if (gotesc) -+ curwin->w_cursor = is_state->save_cursor; -+ else -+ { -+ if (!EQUAL_POS(is_state->save_cursor, is_state->search_start)) -+ { -+ // put the '" mark at the original position -+ curwin->w_cursor = is_state->save_cursor; -+ setpcmark(); -+ } -+ curwin->w_cursor = is_state->search_start; -+ } -+ restore_viewstate(&is_state->old_viewstate); -+ highlight_match = FALSE; -+ validate_cursor(); /* needed for TAB */ -+ redraw_all_later(SOME_VALID); -+ } -+ } - #endif - - /* -*************** -*** 262,275 **** - int histype; /* history type to be used */ - #endif - #ifdef FEAT_SEARCH_EXTRA -! pos_T search_start; /* where 'incsearch' starts searching */ -! pos_T save_cursor; -! viewstate_T init_viewstate; -! viewstate_T old_viewstate; -! pos_T match_start = curwin->w_cursor; -! pos_T match_end; -! int did_incsearch = FALSE; -! int incsearch_postponed = FALSE; - #endif - int did_wild_list = FALSE; /* did wild_list() recently */ - int wim_index = 0; /* index in wim_flags[] */ ---- 586,592 ---- - int histype; /* history type to be used */ - #endif - #ifdef FEAT_SEARCH_EXTRA -! incsearch_state_T is_state; - #endif - int did_wild_list = FALSE; /* did wild_list() recently */ - int wim_index = 0; /* index in wim_flags[] */ -*************** -*** 287,293 **** - #endif - expand_T xpc; - long *b_im_ptr = NULL; -! #if defined(FEAT_WILDMENU) || defined(FEAT_EVAL) || defined(FEAT_SEARCH_EXTRA) - /* Everything that may work recursively should save and restore the - * current command line in save_ccline. That includes update_screen(), a - * custom status line may invoke ":normal". */ ---- 604,610 ---- - #endif - expand_T xpc; - long *b_im_ptr = NULL; -! #if defined(FEAT_WILDMENU) || defined(FEAT_EVAL) - /* Everything that may work recursively should save and restore the - * current command line in save_ccline. That includes update_screen(), a - * custom status line may invoke ":normal". */ -*************** -*** 309,320 **** - #endif - - ccline.overstrike = FALSE; /* always start in insert mode */ - #ifdef FEAT_SEARCH_EXTRA -! CLEAR_POS(&match_end); -! save_cursor = curwin->w_cursor; /* may be restored later */ -! search_start = curwin->w_cursor; -! save_viewstate(&init_viewstate); -! save_viewstate(&old_viewstate); - #endif - - /* ---- 626,634 ---- - #endif - - ccline.overstrike = FALSE; /* always start in insert mode */ -+ - #ifdef FEAT_SEARCH_EXTRA -! init_incsearch_state(&is_state); - #endif - - /* -*************** -*** 1089,1098 **** - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) - { -! search_start = save_cursor; - /* save view settings, so that the screen - * won't be restored at the wrong position */ -! old_viewstate = init_viewstate; - } - #endif - redrawcmd(); ---- 1403,1412 ---- - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) - { -! is_state.search_start = is_state.save_cursor; - /* save view settings, so that the screen - * won't be restored at the wrong position */ -! is_state.old_viewstate = is_state.init_viewstate; - } - #endif - redrawcmd(); -*************** -*** 1121,1127 **** - } - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) -! search_start = save_cursor; - #endif - redraw_cmdline = TRUE; - goto returncmd; /* back to cmd mode */ ---- 1435,1441 ---- - } - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) -! is_state.search_start = is_state.save_cursor; - #endif - redraw_cmdline = TRUE; - goto returncmd; /* back to cmd mode */ -*************** -*** 1208,1214 **** - ccline.cmdbuff[ccline.cmdlen] = NUL; - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) -! search_start = save_cursor; - #endif - redrawcmd(); - goto cmdline_changed; ---- 1522,1528 ---- - ccline.cmdbuff[ccline.cmdlen] = NUL; - #ifdef FEAT_SEARCH_EXTRA - if (ccline.cmdlen == 0) -! is_state.search_start = is_state.save_cursor; - #endif - redrawcmd(); - goto cmdline_changed; -*************** -*** 1545,1582 **** - - case Ctrl_L: - #ifdef FEAT_SEARCH_EXTRA -! if (p_is && !cmd_silent && (firstc == '/' || firstc == '?')) -! { -! /* Add a character from under the cursor for 'incsearch' */ -! if (did_incsearch) -! { -! curwin->w_cursor = match_end; -! if (!EQUAL_POS(curwin->w_cursor, search_start)) -! { -! c = gchar_cursor(); -! /* 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) -! { -! if (c == firstc || vim_strchr((char_u *)( -! p_magic ? "\\~^$.*[" : "\\^$"), c) -! != NULL) -! { -! /* put a backslash before special -! * characters */ -! stuffcharReadbuff(c); -! c = '\\'; -! } -! break; -! } -! } -! } - goto cmdline_not_changed; -- } - #endif - - /* completion: longest common part */ ---- 1859,1866 ---- - - case Ctrl_L: - #ifdef FEAT_SEARCH_EXTRA -! if (may_add_char_to_search(firstc, &c, &is_state) == OK) - goto cmdline_not_changed; - #endif - - /* completion: longest common part */ -*************** -*** 1742,1829 **** - #ifdef FEAT_SEARCH_EXTRA - case Ctrl_G: /* next match */ - case Ctrl_T: /* previous match */ -! if (p_is && !cmd_silent && (firstc == '/' || firstc == '?')) -! { -! pos_T t; -! char_u *pat; -! int search_flags = SEARCH_NOOF; -! -! if (ccline.cmdlen == 0) -! goto cmdline_not_changed; -! -! if (firstc == ccline.cmdbuff[0]) -! pat = last_search_pattern(); -! else -! pat = ccline.cmdbuff; -! -! save_last_search_pattern(); -! cursor_off(); -! out_flush(); -! if (c == Ctrl_G) -! { -! t = match_end; -! if (LT_POS(match_start, match_end)) -! /* start searching at the end of the match -! * not at the beginning of the next column */ -! (void)decl(&t); -! search_flags += SEARCH_COL; -! } -! else -! t = match_start; -! 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) -! { -! search_start = match_start; -! match_end = t; -! 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 */ -! search_start = t; -! (void)decl(&search_start); -! } -! else if (c == Ctrl_G && firstc == '?') -! { -! /* move just after the current match, so that -! * when nv_search finishes the cursor will be -! * put back on the match */ -! search_start = t; -! (void)incl(&search_start); -! } -! if (LT_POS(t, search_start) && c == Ctrl_G) -! { -! /* wrap around */ -! search_start = t; -! if (firstc == '?') -! (void)incl(&search_start); -! else -! (void)decl(&search_start); -! } -! -! set_search_match(&match_end); -! curwin->w_cursor = match_start; -! changed_cline_bef_curs(); -! update_topline(); -! validate_cursor(); -! highlight_match = TRUE; -! save_viewstate(&old_viewstate); -! update_screen(NOT_VALID); -! redrawcmdline(); -! } -! else -! vim_beep(BO_ERROR); -! restore_last_search_pattern(); - goto cmdline_not_changed; -- } - break; - #endif - ---- 2026,2034 ---- - #ifdef FEAT_SEARCH_EXTRA - case Ctrl_G: /* next match */ - case Ctrl_T: /* previous match */ -! if (may_adjust_incsearch_highlighting( -! firstc, count, &is_state, c) == FAIL) - goto cmdline_not_changed; - break; - #endif - -*************** -*** 1951,1957 **** - */ - cmdline_not_changed: - #ifdef FEAT_SEARCH_EXTRA -! if (!incsearch_postponed) - continue; - #endif - ---- 2156,2162 ---- - */ - cmdline_not_changed: - #ifdef FEAT_SEARCH_EXTRA -! if (!is_state.incsearch_postponed) - continue; - #endif - -*************** -*** 1960,2074 **** - trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINECHANGED); - - #ifdef FEAT_SEARCH_EXTRA -! /* -! * 'incsearch' highlighting. -! */ -! if (p_is && !cmd_silent && (firstc == '/' || firstc == '?')) -! { -! pos_T end_pos; -! #ifdef FEAT_RELTIME -! proftime_T tm; -! #endif -! -! /* if there is a character waiting, search and redraw later */ -! if (char_avail()) -! { -! incsearch_postponed = TRUE; -! continue; -! } -! incsearch_postponed = FALSE; -! curwin->w_cursor = search_start; /* start at old position */ -! 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 */ -! redraw_all_later(SOME_VALID); -! } -! else -! { -! int search_flags = SEARCH_OPT + SEARCH_NOOF + SEARCH_PEEK; -! cursor_off(); /* so the user knows we're busy */ -! out_flush(); -! ++emsg_off; /* So it doesn't beep if bad expr */ -! #ifdef FEAT_RELTIME -! /* Set the time limit to half a second. */ -! profile_setlimit(500L, &tm); -! #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) -! { -! (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 */ -! incsearch_postponed = TRUE; -! } -! if (i != 0) -! highlight_match = TRUE; /* highlight position */ -! else -! highlight_match = FALSE; /* remove highlight */ -! -! /* first restore the old curwin values, so the screen is -! * positioned in the same way as the actual search command */ -! restore_viewstate(&old_viewstate); -! changed_cline_bef_curs(); -! update_topline(); -! -! if (i != 0) -! { -! pos_T save_pos = curwin->w_cursor; -! -! match_start = curwin->w_cursor; -! set_search_match(&curwin->w_cursor); -! validate_cursor(); -! end_pos = curwin->w_cursor; -! match_end = end_pos; -! curwin->w_cursor = save_pos; -! } -! else -! end_pos = curwin->w_cursor; /* shutup gcc 4 */ -! -! /* Disable 'hlsearch' highlighting if the pattern matches -! * everything. Avoids a flash when typing "foo\|". */ -! if (empty_pattern(ccline.cmdbuff)) -! set_no_hlsearch(TRUE); -! -! validate_cursor(); -! /* May redraw the status line to show the cursor position. */ -! if (p_ru && curwin->w_status_height > 0) -! curwin->w_redr_status = TRUE; -! -! save_cmdline(&save_ccline); -! update_screen(SOME_VALID); -! 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(); -! redrawcmdline(); -! did_incsearch = TRUE; -! } -! #else /* FEAT_SEARCH_EXTRA */ -! ; - #endif - - #ifdef FEAT_RIGHTLEFT ---- 2165,2171 ---- - trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINECHANGED); - - #ifdef FEAT_SEARCH_EXTRA -! may_do_incsearch_highlighting(firstc, count, &is_state); - #endif - - #ifdef FEAT_RIGHTLEFT -*************** -*** 2100,2124 **** - ccline.xpc = NULL; - - #ifdef FEAT_SEARCH_EXTRA -! if (did_incsearch) -! { -! if (gotesc) -! curwin->w_cursor = save_cursor; -! else -! { -! if (!EQUAL_POS(save_cursor, search_start)) -! { -! /* put the '" mark at the original position */ -! curwin->w_cursor = save_cursor; -! setpcmark(); -! } -! curwin->w_cursor = search_start; -! } -! restore_viewstate(&old_viewstate); -! highlight_match = FALSE; -! validate_cursor(); /* needed for TAB */ -! redraw_all_later(SOME_VALID); -! } - #endif - - if (ccline.cmdbuff != NULL) ---- 2197,2203 ---- - ccline.xpc = NULL; - - #ifdef FEAT_SEARCH_EXTRA -! finish_incsearch_highlighting(gotesc, &is_state); - #endif - - if (ccline.cmdbuff != NULL) -*************** -*** 7239,7259 **** - - return (char_u *)ga.ga_data; - } -- -- #ifdef FEAT_SEARCH_EXTRA -- static void -- set_search_match(pos_T *t) -- { -- /* -- * First move cursor to end of match, then to the start. This -- * moves the whole match onto the screen when 'nowrap' is set. -- */ -- t->lnum += search_match_lines; -- t->col = search_match_endcol; -- if (t->lnum > curbuf->b_ml.ml_line_count) -- { -- t->lnum = curbuf->b_ml.ml_line_count; -- coladvance((colnr_T)MAXCOL); -- } -- } -- #endif ---- 7318,7320 ---- -*** ../vim-8.1.0264/src/version.c 2018-08-09 22:26:34.259501130 +0200 ---- src/version.c 2018-08-10 22:07:22.817944576 +0200 -*************** -*** 796,797 **** ---- 796,799 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 265, - /**/ - --- -Sorry, no fortune today. - - /// 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 /// |