]> granicus.if.org Git - vim/commitdiff
patch 8.2.0934: lhelpgrep twice in help window doesn't jump to the help topic v8.2.0934
authorBram Moolenaar <Bram@vim.org>
Mon, 8 Jun 2020 17:35:59 +0000 (19:35 +0200)
committerBram Moolenaar <Bram@vim.org>
Mon, 8 Jun 2020 17:35:59 +0000 (19:35 +0200)
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes #6215)

src/quickfix.c
src/testdir/test_quickfix.vim
src/version.c

index 0da8ea27f1c27908106e5a43fffc955d6d668dd3..35a66dc93cad720cda0247972fd9f735c85cb4fe 100644 (file)
@@ -7963,9 +7963,10 @@ ex_helpgrep(exarg_T *eap)
     {
        apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
                                               curbuf->b_fname, TRUE, curbuf);
-       if (!new_qi && IS_LL_STACK(qi) && qf_find_buf(qi) == NULL)
+       // 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)
        {
-           // autocommands made "qi" invalid
            decr_quickfix_busy();
            return;
        }
index 7587d979e588682e5c48980e76305b47dedc9ec0..03b374fb10c90cc2af9098c83261ccb55a8f0896 100644 (file)
@@ -4918,4 +4918,22 @@ func Test_qftextfunc()
   call Xtest_qftextfunc('l')
 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
+
 " vim: shiftwidth=2 sts=2 expandtab
index 54369e4a73c393b680bdf49a5ce72df95bb8c5f0..04f61c93ec436f8df27040d1c28291fd1345266f 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    934,
 /**/
     933,
 /**/