Patch 8.1.0293
Problem: Checks for type of stack is cryptic.
Solution: Define IS_QF_STACK() and IS_LL_STACK(). (Yegappan Lakshmanan)
Files: src/quickfix.c
*** ../vim-8.1.0292/src/quickfix.c 2018-08-15 22:29:46.977604162 +0200
--- src/quickfix.c 2018-08-18 19:51:21.810177230 +0200
***************
*** 159,164 ****
--- 159,169 ----
#define IS_QF_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref ==
NULL)
/* Location list window check helper macro */
#define IS_LL_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref !=
NULL)
+
+ // Quickfix and location list stack check helper macros
+ #define IS_QF_STACK(qi) (qi == &ql_info)
+ #define IS_LL_STACK(qi) (qi != &ql_info)
+
/*
* Return location list for window 'wp'
* For location list window, return the referenced location list
***************
*** 1940,1946 ****
qfp->qf_fnum = bufnum;
if (buf != NULL)
buf->b_has_qf_entry |=
! (qi == &ql_info) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
}
else
qfp->qf_fnum = qf_get_fnum(qi, qf_idx, dir, fname);
--- 1945,1951 ----
qfp->qf_fnum = bufnum;
if (buf != NULL)
buf->b_has_qf_entry |=
! IS_QF_STACK(qi) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
}
else
qfp->qf_fnum = qf_get_fnum(qi, qf_idx, dir, fname);
***************
*** 2224,2230 ****
return 0;
buf->b_has_qf_entry =
! (qi == &ql_info) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
return buf->b_fnum;
}
--- 2229,2235 ----
return 0;
buf->b_has_qf_entry =
! IS_QF_STACK(qi) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY;
return buf->b_fnum;
}
***************
*** 2631,2637 ****
if (cmdmod.split == 0 && curwin->w_width != Columns
&& curwin->w_width < 80)
flags |= WSP_TOP;
! if (qi != &ql_info)
flags |= WSP_NEWLOC; /* don't copy the location list */
if (win_split(0, flags) == FAIL)
--- 2636,2642 ----
if (cmdmod.split == 0 && curwin->w_width != Columns
&& curwin->w_width < 80)
flags |= WSP_TOP;
! if (IS_LL_STACK(qi))
flags |= WSP_NEWLOC; /* don't copy the location list */
if (win_split(0, flags) == FAIL)
***************
*** 2642,2648 ****
if (curwin->w_height < p_hh)
win_setheight((int)p_hh);
! if (qi != &ql_info) /* not a quickfix list */
{
/* The new window should use the supplied location list */
curwin->w_llist = qi;
--- 2647,2653 ----
if (curwin->w_height < p_hh)
win_setheight((int)p_hh);
! if (IS_LL_STACK(qi)) // not a quickfix list
{
/* The new window should use the supplied location list */
curwin->w_llist = qi;
***************
*** 2918,2924 ****
retval = buflist_getfile(qf_ptr->qf_fnum,
(linenr_T)1, GETF_SETMARK | GETF_SWITCH, forceit);
! if (qi != &ql_info)
{
/*
* Location list. Check whether the associated window is still
--- 2923,2929 ----
retval = buflist_getfile(qf_ptr->qf_fnum,
(linenr_T)1, GETF_SETMARK | GETF_SWITCH, forceit);
! if (IS_LL_STACK(qi))
{
/*
* Location list. Check whether the associated window is still
***************
*** 2939,2945 ****
else if (old_qf_curlist != qi->qf_curlist
|| !is_qf_entry_present(qi, qf_ptr))
{
! if (qi == &ql_info)
EMSG(_("E925: Current quickfix was changed"));
else
EMSG(_(e_loc_list_changed));
--- 2944,2950 ----
else if (old_qf_curlist != qi->qf_curlist
|| !is_qf_entry_present(qi, qf_ptr))
{
! if (IS_QF_STACK(qi))
EMSG(_("E925: Current quickfix was changed"));
else
EMSG(_(e_loc_list_changed));
***************
*** 4040,4047 ****
* pointing to the location list.
*/
if (bt_quickfix(win->w_buffer))
! if ((qi == &ql_info && win->w_llist_ref == NULL)
! || (qi != &ql_info && win->w_llist_ref == qi))
return TRUE;
return FALSE;
--- 4045,4052 ----
* pointing to the location list.
*/
if (bt_quickfix(win->w_buffer))
! if ((IS_QF_STACK(qi) && win->w_llist_ref == NULL)
! || (IS_LL_STACK(qi) && win->w_llist_ref == qi))
return TRUE;
return FALSE;
***************
*** 6955,6961 ****
{
apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
curbuf->b_fname, TRUE, curbuf);
! if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
/* autocommands made "qi" invalid */
return;
}
--- 6960,6966 ----
{
apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
curbuf->b_fname, TRUE, curbuf);
! if (!new_qi && IS_LL_STACK(qi) && qf_find_buf(qi) == NULL)
/* autocommands made "qi" invalid */
return;
}
*** ../vim-8.1.0292/src/version.c 2018-08-18 19:04:32.462231841 +0200
--- src/version.c 2018-08-18 19:58:34.263431696 +0200
***************
*** 796,797 ****
--- 796,799 ----
{ /* Add new patch number below this line */
+ /**/
+ 293,
/**/
--
FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.