diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-09-14 01:17:47 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-09-14 18:19:45 -0400 |
commit | ea03032018c39b9976b664071ebcd1a75463348c (patch) | |
tree | fd7cad48f33cb77030ea5399e24cf372318f6fb6 /src/nvim/ex_getln.c | |
parent | f34eeba2d85b4382d7504e1f3e12a7afb0788c1d (diff) | |
download | rneovim-ea03032018c39b9976b664071ebcd1a75463348c.tar.gz rneovim-ea03032018c39b9976b664071ebcd1a75463348c.tar.bz2 rneovim-ea03032018c39b9976b664071ebcd1a75463348c.zip |
vim-patch:8.1.2338: using Visual mark sith :s gives E20 if not set
Problem: Using Visual mark sith :s gives E20 if not set.
Solution: Ignore errors when handling 'incsearch'. (closes vim/vim#3837)
https://github.com/vim/vim/commit/c672525b487992306f69ceab093291ba3b8e4246
N/A patches for version.c:
vim-patch:8.2.1526: line in testdir Makefile got commented out
Problem: Line in testdir Makefile got commented out. (Christian Brabandt)
Solution: Revert.
https://github.com/vim/vim/commit/228e62975e7aef9d6224a5a7c43625c1c1494fc2
vim-patch:8.2.1675: MinGW: testdir makefile deletes non-existing file
Problem: MinGW: testdir makefile deletes non-existing file.
Solution: Use another way to delete the output file if it already exists.
(Michael Soyka)
https://github.com/vim/vim/commit/05c1acd5e1564ea4dbc7d4be26908af6909f43f6
Diffstat (limited to 'src/nvim/ex_getln.c')
-rw-r--r-- | src/nvim/ex_getln.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/nvim/ex_getln.c b/src/nvim/ex_getln.c index 8f2d536e63..d57239e570 100644 --- a/src/nvim/ex_getln.c +++ b/src/nvim/ex_getln.c @@ -288,6 +288,7 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, exarg_T ea; pos_T save_cursor; bool use_last_pat; + bool retval = false; *skiplen = 0; *patlen = ccline.cmdlen; @@ -307,6 +308,7 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, return false; } + emsg_off++; memset(&ea, 0, sizeof(ea)); ea.line1 = 1; ea.line2 = 1; @@ -318,13 +320,13 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, cmd = skip_range(ea.cmd, NULL); if (vim_strchr((char_u *)"sgvl", *cmd) == NULL) { - return false; + goto theend; } // Skip over "substitute" to find the pattern separator. for (p = cmd; ASCII_ISALPHA(*p); p++) {} if (*skipwhite(p) == NUL) { - return false; + goto theend; } if (STRNCMP(cmd, "substitute", p - cmd) == 0 @@ -342,7 +344,7 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, p++; } if (*p == NUL) { - return false; + goto theend; } } else if (STRNCMP(cmd, "vimgrep", MAX(p - cmd, 3)) == 0 || STRNCMP(cmd, "vimgrepadd", MAX(p - cmd, 8)) == 0 @@ -353,14 +355,14 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, if (*p == '!') { p++; if (*skipwhite(p) == NUL) { - return false; + goto theend; } } if (*cmd != 'g') { delim_optional = true; } } else { - return false; + goto theend; } p = skipwhite(p); @@ -369,7 +371,7 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, use_last_pat = end == p && *end == delim; if (end == p && !use_last_pat) { - return false; + goto theend; } // Don't do 'hlsearch' highlighting if the pattern matches everything. @@ -381,7 +383,7 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, empty = empty_pattern(p); *end = c; if (empty) { - return false; + goto theend; } } @@ -409,7 +411,10 @@ static bool do_incsearch_highlighting(int firstc, incsearch_state_T *s, } curwin->w_cursor = save_cursor; - return true; + retval = true; +theend: + emsg_off--; + return retval; } // May do 'incsearch' highlighting if desired. |