Mercurial > vim
diff src/ex_getln.c @ 14538:213f1a519378 v8.1.0282
patch 8.1.0282: 'incsearch' does not work with command modifiers
commit https://github.com/vim/vim/commit/33c4dbb74bdf41aadd193a704f597d4df20f0e47
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Aug 14 16:06:16 2018 +0200
patch 8.1.0282: 'incsearch' does not work with command modifiers
Problem: 'incsearch' does not work with command modifiers.
Solution: Skip command modifiers.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 14 Aug 2018 16:15:04 +0200 |
parents | 8fa7f5ff2649 |
children | 116a01c73fd8 |
line wrap: on
line diff
--- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -283,11 +283,24 @@ do_incsearch_highlighting(int firstc, in return TRUE; if (firstc == ':') { - char_u *cmd = skip_range(ccline.cmdbuff, NULL); - char_u *p; - int delim; - char_u *end; - + char_u *cmd; + cmdmod_T save_cmdmod = cmdmod; + char_u *p; + int delim; + char_u *end; + char_u *dummy; + exarg_T ea; + + vim_memset(&ea, 0, sizeof(ea)); + ea.line1 = 1; + ea.line2 = 1; + ea.cmd = ccline.cmdbuff; + ea.addr_type = ADDR_LINES; + + parse_command_modifiers(&ea, &dummy, TRUE); + cmdmod = save_cmdmod; + + cmd = skip_range(ea.cmd, NULL); if (*cmd == 's' || *cmd == 'g' || *cmd == 'v') { // Skip over "substitute" to find the pattern separator. @@ -310,8 +323,6 @@ do_incsearch_highlighting(int firstc, in end = skip_regexp(p, delim, p_magic, NULL); if (end > p || *end == delim) { - char_u *dummy; - exarg_T ea; pos_T save_cursor = curwin->w_cursor; // found a non-empty pattern @@ -319,11 +330,6 @@ do_incsearch_highlighting(int firstc, in *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; curwin->w_cursor = is_state->search_start; parse_cmd_address(&ea, &dummy); if (ea.addr_count > 0)