diff src/evalvars.c @ 21409:2c40e60017a8 v8.2.1255

patch 8.2.1255: cannot use a lambda with quickfix functions Commit: https://github.com/vim/vim/commit/d43906d2e5969288f239df851f5ad7b1dc2c7251 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 20 21:31:32 2020 +0200 patch 8.2.1255: cannot use a lambda with quickfix functions Problem: Cannot use a lambda with quickfix functions. Solution: Add support for lambda. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/6499)
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 Jul 2020 21:45:04 +0200
parents 8d1d11afd8c8
children 369cde0d5771
line wrap: on
line diff
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -3849,6 +3849,27 @@ set_callback(callback_T *dest, callback_
 }
 
 /*
+ * Copy callback from "src" to "dest", incrementing the refcounts.
+ */
+    void
+copy_callback(callback_T *dest, callback_T *src)
+{
+    dest->cb_partial = src->cb_partial;
+    if (dest->cb_partial != NULL)
+    {
+	dest->cb_name = src->cb_name;
+	dest->cb_free_name = FALSE;
+	++dest->cb_partial->pt_refcount;
+    }
+    else
+    {
+	dest->cb_name = vim_strsave(src->cb_name);
+	dest->cb_free_name = TRUE;
+	func_ref(src->cb_name);
+    }
+}
+
+/*
  * Unref/free "callback" returned by get_callback() or set_callback().
  */
     void