mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
Merge pull request #17948 from zeertzjq/vim-8.2.3471
vim-patch:8.2.{3471,3472,3489}: fix some crashes/errors with search
This commit is contained in:
commit
377e875211
@ -4027,8 +4027,9 @@ static linenr_T get_address(exarg_T *eap, char_u **ptr, cmd_addr_T addr_type, in
|
||||
|
||||
// When '/' or '?' follows another address, start from
|
||||
// there.
|
||||
if (lnum != MAXLNUM) {
|
||||
curwin->w_cursor.lnum = lnum;
|
||||
if (lnum > 0 && lnum != MAXLNUM) {
|
||||
curwin->w_cursor.lnum
|
||||
= lnum > curbuf->b_ml.ml_line_count ? curbuf->b_ml.ml_line_count : lnum;
|
||||
}
|
||||
|
||||
// Start a forward search at the end of the line (unless
|
||||
|
@ -1606,6 +1606,10 @@ static int may_do_command_line_next_incsearch(int firstc, long count, incsearch_
|
||||
|
||||
if (search_delim == ccline.cmdbuff[skiplen]) {
|
||||
pat = last_search_pattern();
|
||||
if (pat == NULL) {
|
||||
restore_last_search_pattern();
|
||||
return FAIL;
|
||||
}
|
||||
skiplen = 0;
|
||||
patlen = (int)STRLEN(pat);
|
||||
} else {
|
||||
|
@ -1527,4 +1527,31 @@ func Test_incsearch_highlighting_newline()
|
||||
bw
|
||||
endfunc
|
||||
|
||||
func Test_no_last_search_pattern()
|
||||
CheckOption incsearch
|
||||
|
||||
let @/ = ""
|
||||
set incsearch
|
||||
" these were causing a crash
|
||||
call feedkeys("//\<C-G>", 'xt')
|
||||
call feedkeys("//\<C-T>", 'xt')
|
||||
call feedkeys("??\<C-G>", 'xt')
|
||||
call feedkeys("??\<C-T>", 'xt')
|
||||
endfunc
|
||||
|
||||
func Test_search_with_invalid_range()
|
||||
new
|
||||
let lines =<< trim END
|
||||
/\%.v
|
||||
5/
|
||||
c
|
||||
END
|
||||
call writefile(lines, 'Xrangesearch')
|
||||
source Xrangesearch
|
||||
|
||||
bwipe!
|
||||
call delete('Xrangesearch')
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
Loading…
Reference in New Issue
Block a user