patch 8.0.0606: cannot set the context for a specified quickfix list
Problem: Cannot set the context for a specified quickfix list.
Solution: Use the list index instead of the current list. (Yegappan
Lakshmanan)
diff --git a/src/quickfix.c b/src/quickfix.c
index ce21661..6de55f7 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4881,7 +4881,9 @@
/* Use the specified quickfix/location list */
if (di->di_tv.v_type == VAR_NUMBER)
{
- qf_idx = di->di_tv.vval.v_number - 1;
+ /* for zero use the current list */
+ if (di->di_tv.vval.v_number != 0)
+ qf_idx = di->di_tv.vval.v_number - 1;
if (qf_idx < 0 || qf_idx >= qi->qf_listcount)
return FAIL;
}
@@ -4912,11 +4914,11 @@
if ((di = dict_find(what, (char_u *)"context", -1)) != NULL)
{
typval_T *ctx;
- free_tv(qi->qf_lists[qi->qf_curlist].qf_ctx);
+ free_tv(qi->qf_lists[qf_idx].qf_ctx);
ctx = alloc_tv();
if (ctx != NULL)
copy_tv(&di->di_tv, ctx);
- qi->qf_lists[qi->qf_curlist].qf_ctx = ctx;
+ qi->qf_lists[qf_idx].qf_ctx = ctx;
}
return retval;