changeset 3016:58bba69b3371 v7.3.280

updated for version 7.3.280 Problem: ":lmake" does not update the quickfix window title. Solution: Update the title. (Lech Lorens)
author Bram Moolenaar <bram@vim.org>
date Wed, 10 Aug 2011 18:36:54 +0200
parents 3cce0a65c296
children 3edc4535acfa
files src/quickfix.c src/testdir/test10.in src/testdir/test10.ok src/version.c
diffstat 4 files changed, 42 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -126,6 +126,7 @@ static int	is_qf_win __ARGS((win_T *win,
 static win_T	*qf_find_win __ARGS((qf_info_T *qi));
 static buf_T	*qf_find_buf __ARGS((qf_info_T *qi));
 static void	qf_update_buffer __ARGS((qf_info_T *qi));
+static void	qf_set_title __ARGS((qf_info_T *qi));
 static void	qf_fill_buffer __ARGS((qf_info_T *qi));
 #endif
 static char_u	*get_mef_name __ARGS((void));
@@ -2388,8 +2389,7 @@ ex_copen(eap)
     qf_fill_buffer(qi);
 
     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);
+	qf_set_title(qi);
 
     curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
     curwin->w_cursor.col = 0;
@@ -2526,6 +2526,8 @@ qf_update_buffer(qi)
     qf_info_T	*qi;
 {
     buf_T	*buf;
+    win_T	*win;
+    win_T	*curwin_save;
     aco_save_T	aco;
 
     /* Check if a buffer for the quickfix list exists.  Update it. */
@@ -2537,6 +2539,16 @@ qf_update_buffer(qi)
 
 	qf_fill_buffer(qi);
 
+	if (qi->qf_lists[qi->qf_curlist].qf_title != NULL
+	    && (win = qf_find_win(qi)) != NULL)
+	{
+	    curwin_save = curwin;
+	    curwin = win;
+	    qf_set_title(qi);
+	    curwin = curwin_save;
+
+	}
+
 	/* restore curwin/curbuf and a few other things */
 	aucmd_restbuf(&aco);
 
@@ -2544,6 +2556,14 @@ qf_update_buffer(qi)
     }
 }
 
+    static void
+qf_set_title(qi)
+    qf_info_T	*qi;
+{
+    set_internal_string_var((char_u *)"w:quickfix_title",
+				    qi->qf_lists[qi->qf_curlist].qf_title);
+}
+
 /*
  * Fill current buffer with quickfix errors, replacing any previous contents.
  * curbuf must be the quickfix buffer!
--- a/src/testdir/test10.in
+++ b/src/testdir/test10.in
@@ -5,9 +5,16 @@ STARTTEST
 :" Also test a BOM is ignored.
 :so mbyte.vim
 :set encoding=utf-8
-:/start of errorfile/,/end of errorfile/w! Xerrorfile
+:7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
 :/start of testfile/,/end of testfile/w! Xtestfile
-:cf Xerrorfile
+:cf Xerrorfile2
+:clast
+:copen
+:let a=w:quickfix_title
+:wincmd p
+gR=a

+:cf Xerrorfile1
 rA
 :cn
 rB
@@ -17,6 +24,11 @@ rC
 rD
 :cn
 rE
+:cn
+:wincmd w
+:let a=w:quickfix_title
+:wincmd p
+gR=a

 :w! test.out             " Write contents of this file
 :qa!
 ENDTEST
@@ -33,6 +45,8 @@ 2 returned
 "Xtestfile", linenr 19: yet another problem
 
 Does anyone know what is the problem and how to correction it?
+"Xtestfile", line 21 col 9: What is the title of the quickfix window?
+"Xtestfile", line 22 col 9: What is the title of the quickfix window?
 end of errorfile
 
 start of testfile
--- a/src/testdir/test10.ok
+++ b/src/testdir/test10.ok
@@ -18,6 +18,6 @@ line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
+line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
 end of testfile
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    280,
+/**/
     279,
 /**/
     278,