diff src/evalvars.c @ 26721:9c9b8d95b05f v8.2.3889

patch 8.2.3889: duplicate code for translating script-local function name Commit: https://github.com/vim/vim/commit/e7f4abd38b6e05100c699900c8f87281e363beb2 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Fri Dec 24 20:47:38 2021 +0000 patch 8.2.3889: duplicate code for translating script-local function name Problem: Duplicate code for translating script-local function name. Solution: Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan, closes #9393)
author Bram Moolenaar <Bram@vim.org>
date Fri, 24 Dec 2021 22:00:03 +0100
parents bdf11d8e3df3
children c3cffd372c6f
line wrap: on
line diff
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -4450,7 +4450,18 @@ get_callback(typval_T *arg)
 	    r = FAIL;
 	else if (arg->v_type == VAR_FUNC || arg->v_type == VAR_STRING)
 	{
-	    // Note that we don't make a copy of the string.
+	    if (arg->v_type == VAR_STRING)
+	    {
+		char_u *name;
+
+		name = get_scriptlocal_funcname(arg->vval.v_string);
+		if (name != NULL)
+		{
+		    vim_free(arg->vval.v_string);
+		    arg->vval.v_string = name;
+		}
+	    }
+
 	    res.cb_name = arg->vval.v_string;
 	    func_ref(res.cb_name);
 	}