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