Merge pull request #18139 from zeertzjq/vim-8.2.0791

vim-patch:8.2.0791
This commit is contained in:
zeertzjq 2022-04-17 10:42:06 +08:00 committed by GitHub
commit ae325e6274
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 2 deletions

View File

@ -2373,8 +2373,13 @@ int parse_cmd_address(exarg_T *eap, char **errormsg, bool silent)
switch (eap->addr_type) {
case ADDR_LINES:
case ADDR_OTHER:
// default is current line number
eap->line2 = curwin->w_cursor.lnum;
// Default is the cursor line number. Avoid using an invalid
// line number though.
if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) {
eap->line2 = curbuf->b_ml.ml_line_count;
} else {
eap->line2 = curwin->w_cursor.lnum;
}
break;
case ADDR_WINDOWS:
eap->line2 = CURRENT_WIN_NR;

View File

@ -109,4 +109,17 @@ describe('quickfix', function()
]])
eq({0, 6, 1, 0, 1}, funcs.getcurpos())
end)
it('BufAdd does not cause E16 when reusing quickfix buffer #18135', function()
local file = file_base .. '_reuse_qfbuf_BufAdd'
write_file(file, ('\n'):rep(100) .. 'foo')
source([[
set grepprg=internal
autocmd BufAdd * call and(0, 0)
autocmd QuickFixCmdPost grep ++nested cclose | cwindow
]])
command('grep foo ' .. file)
command('grep foo ' .. file)
os.remove(file)
end)
end)