From 8048699f7d2f66a6df4c76607a150545820fcb7a Mon Sep 17 00:00:00 2001 From: Michael Ennen Date: Wed, 13 Jan 2016 17:18:19 -0700 Subject: 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. https://github.com/vim/vim/commit/81278efadf45ad745ec9733fdd9970f070571544 --- src/nvim/quickfix.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'src/nvim/quickfix.c') diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index 3abf43cb8c..85c69af192 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -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); + } } /* -- cgit