diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/quickfix.c | 5 | ||||
| -rw-r--r-- | src/nvim/testdir/test_quickfix.vim | 18 | 
2 files changed, 21 insertions, 2 deletions
| diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index d083d2890c..8f071390b3 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -6952,8 +6952,9 @@ void ex_helpgrep(exarg_T *eap)    if (au_name != NULL) {      apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,                     curbuf->b_fname, true, curbuf); -    if (!new_qi && IS_LL_STACK(qi) && qf_find_buf(qi) == NULL) { -      // autocommands made "qi" invalid +    // When adding a location list to an existing location list stack, +    // if the autocmd made the stack invalid, then just return. +    if (!new_qi && IS_LL_STACK(qi) && qf_find_win_with_loclist(qi) == NULL) {        decr_quickfix_busy();        return;      } diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim index 2b00f828f7..be7ea908c7 100644 --- a/src/nvim/testdir/test_quickfix.vim +++ b/src/nvim/testdir/test_quickfix.vim @@ -4625,6 +4625,24 @@ func Test_cquit()    call assert_fails('-3cquit', 'E16:')  endfunc +" Running :lhelpgrep command more than once in a help window, doesn't jump to +" the help topic +func Test_lhelpgrep_from_help_window() +  call mkdir('Xtestdir/doc', 'p') +  call writefile(['window'], 'Xtestdir/doc/a.txt') +  call writefile(['buffer'], 'Xtestdir/doc/b.txt') +  let save_rtp = &rtp +  let &rtp = 'Xtestdir' +  lhelpgrep window +  lhelpgrep buffer +  call assert_equal('b.txt', fnamemodify(@%, ":p:t")) +  lhelpgrep window +  call assert_equal('a.txt', fnamemodify(@%, ":p:t")) +  let &rtp = save_rtp +  call delete('Xtestdir', 'rf') +  new | only! +endfunc +  " Test for adding an invalid entry with the quickfix window open and making  " sure that the window contents are not changed  func Test_add_invalid_entry_with_qf_window() | 
