vim-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.

81278efadf
This commit is contained in:
Michael Ennen
2016-01-13 17:18:19 -07:00
parent 573d65c738
commit 8048699f7d
2 changed files with 11 additions and 15 deletions

View File

@@ -2117,14 +2117,10 @@ void ex_copen(exarg_T *eap)
prevwin = win;
}
/*
* Fill the buffer with the quickfix list.
*/
qf_fill_buffer(qi);
qf_set_title_var(qi);
if (qi->qf_lists[qi->qf_curlist].qf_title != NULL) {
qf_set_title_var(qi);
}
// Fill the buffer with the quickfix list.
qf_fill_buffer(qi);
curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
curwin->w_cursor.col = 0;
@@ -2256,16 +2252,13 @@ static void qf_update_buffer(qf_info_T *qi)
/* set curwin/curbuf to buf and save a few things */
aucmd_prepbuf(&aco, buf);
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;
qf_set_title_var(qi);
curwin = curwin_save;
}
qf_fill_buffer(qi);
/* restore curwin/curbuf and a few other things */
aucmd_restbuf(&aco);
@@ -2274,10 +2267,13 @@ static void qf_update_buffer(qf_info_T *qi)
}
}
// Set "w:quickfix_title" if "qi" has a title.
static void qf_set_title_var(qf_info_T *qi)
{
set_internal_string_var((char_u *)"w:quickfix_title",
qi->qf_lists[qi->qf_curlist].qf_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);
}
}
/*