]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 7.4.1591 v7.4.1591
authorBram Moolenaar <Bram@vim.org>
Fri, 18 Mar 2016 20:00:51 +0000 (21:00 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 18 Mar 2016 20:00:51 +0000 (21:00 +0100)
Problem:    The quickfix title is truncated.
Solution:   Save the command before it is truncated. (Anton Lindqvist)

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

index eb6433eaf98b50a0fb3fc5b0119df2885f084a34..8dfad2ec84c04fe27148840e577bce4f22c994c9 100644 (file)
@@ -3286,6 +3286,7 @@ ex_vimgrep(exarg_T *eap)
     int                fcount;
     char_u     **fnames;
     char_u     *fname;
+    char_u     *title;
     char_u     *s;
     char_u     *p;
     int                fi;
@@ -3354,6 +3355,7 @@ ex_vimgrep(exarg_T *eap)
 
     /* Get the search pattern: either white-separated or enclosed in // */
     regmatch.regprog = NULL;
+    title = vim_strsave(*eap->cmdlinep);
     p = skip_vimgrep_pat(eap->arg, &s, &flags);
     if (p == NULL)
     {
@@ -3390,7 +3392,7 @@ ex_vimgrep(exarg_T *eap)
         eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
                                        || qi->qf_curlist == qi->qf_listcount)
        /* make place for a new list */
-       qf_new_list(qi, *eap->cmdlinep);
+       qf_new_list(qi, title != NULL ? title : *eap->cmdlinep);
     else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
        /* Adding to existing list, find last entry. */
        for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
@@ -3669,6 +3671,7 @@ ex_vimgrep(exarg_T *eap)
     }
 
 theend:
+    vim_free(title);
     vim_free(dirname_now);
     vim_free(dirname_start);
     vim_free(target_dir);
index d551febdf55ac5667730b6dedbaa757be4088c12..5982aeef1b80ec9bacaaf68c238ee0c56097aa58 100644 (file)
@@ -317,6 +317,23 @@ func Test_errortitle()
   augroup! QfBufWinEnter
 endfunc
 
+func Test_vimgreptitle()
+  augroup QfBufWinEnter
+    au!
+    au BufWinEnter * :let g:a=get(w:, 'quickfix_title', 'NONE')
+  augroup END
+  try
+    vimgrep /pattern/j file
+  catch /E480/
+  endtry
+  copen
+  call assert_equal(':    vimgrep /pattern/j file', g:a)
+  augroup QfBufWinEnter
+    au!
+  augroup END
+  augroup! QfBufWinEnter
+endfunc
+
 function XqfTitleTests(cchar)
   let Xgetexpr = a:cchar . 'getexpr'
   if a:cchar == 'c'
index a64d6080ff7f36f515d8c193702541447b907d76..f2e7d67fcd4ac5dfa46dcbd6743f2a33e92f61ae 100644 (file)
@@ -748,6 +748,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1591,
 /**/
     1590,
 /**/