diff options
-rw-r--r-- | src/quickfix.c | 24 | ||||
-rw-r--r-- | src/testdir/test10.in | 18 | ||||
-rw-r--r-- | src/testdir/test10.ok | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 42 insertions, 6 deletions
diff --git a/src/quickfix.c b/src/quickfix.c index 17d85837cb..0502392c92 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -126,6 +126,7 @@ static int is_qf_win __ARGS((win_T *win, qf_info_T *qi)); 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! diff --git a/src/testdir/test10.in b/src/testdir/test10.in index 0bd6455f18..50ef86eb0c 100644 --- 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 @@ in file "Xtestfile" linenr 16: there is an error "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 diff --git a/src/testdir/test10.ok b/src/testdir/test10.ok index 2c86889c18..01d47e8f35 100644 --- 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 diff --git a/src/version.c b/src/version.c index 8ef4fac0bb..133037690c 100644 --- 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, |