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)
c672525b48

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.
228e62975e

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)
05c1acd5e1
This commit is contained in:
Jan Edmund Lazo 2020-09-14 01:17:47 -04:00
parent f34eeba2d8
commit ea03032018
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
2 changed files with 26 additions and 8 deletions

View File

@ -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.

View File

@ -708,6 +708,19 @@ func Test_incsearch_substitute_dump()
call VerifyScreenDump(buf, 'Test_incsearch_substitute_12', {})
call term_sendkeys(buf, "\<Esc>")
call VerifyScreenDump(buf, 'Test_incsearch_substitute_13', {})
call term_sendkeys(buf, ":%bwipe!\<CR>")
call term_sendkeys(buf, ":only!\<CR>")
" get :'<,'>s command in history
call term_sendkeys(buf, ":set cmdheight=2\<CR>")
call term_sendkeys(buf, "aasdfasdf\<Esc>")
call term_sendkeys(buf, "V:s/a/b/g\<CR>")
" Using '<,'> does not give E20
call term_sendkeys(buf, ":new\<CR>")
call term_sendkeys(buf, "aasdfasdf\<Esc>")
call term_sendkeys(buf, ":\<Up>\<Up>")
call VerifyScreenDump(buf, 'Test_incsearch_substitute_14', {})
call term_sendkeys(buf, "<Esc>")
call StopVimInTerminal(buf)
call delete('Xis_subst_script')