changeset 6793:e1d59836eecc v7.4.718

patch 7.4.718 Problem: Autocommands triggered by quickfix cannot get the current title value. Solution: Set w:quickfix_title earlier. (Yannick) Also move the check for a title into the function.
author Bram Moolenaar <bram@vim.org>
date Mon, 04 May 2015 12:34:22 +0200
parents 321af9150ab9
children 0598637d7276
files src/quickfix.c src/version.c
diffstat 2 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2452,14 +2452,13 @@ ex_copen(eap)
 	    prevwin = win;
     }
 
+    qf_set_title_var(qi);
+
     /*
      * Fill the buffer with the quickfix list.
      */
     qf_fill_buffer(qi);
 
-    if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
-	qf_set_title_var(qi);
-
     curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
     curwin->w_cursor.col = 0;
     check_cursor();
@@ -2608,8 +2607,7 @@ qf_update_buffer(qi)
 
 	qf_fill_buffer(qi);
 
-	if (qi->qf_lists[qi->qf_curlist].qf_title != NULL
-	    && (win = qf_find_win(qi)) != NULL)
+	if ((win = qf_find_win(qi)) != NULL)
 	{
 	    curwin_save = curwin;
 	    curwin = win;
@@ -2625,11 +2623,15 @@ qf_update_buffer(qi)
     }
 }
 
+/*
+ * Set "w:quickfix_title" if "qi" has a title.
+ */
     static void
 qf_set_title_var(qi)
     qf_info_T	*qi;
 {
-    set_internal_string_var((char_u *)"w:quickfix_title",
+    if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
+	set_internal_string_var((char_u *)"w:quickfix_title",
 				    qi->qf_lists[qi->qf_curlist].qf_title);
 }
 
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    718,
+/**/
     717,
 /**/
     716,