summaryrefslogtreecommitdiffstats
path: root/src/evalvars.c
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2021-12-24 20:47:38 +0000
committerBram Moolenaar <Bram@vim.org>2021-12-24 20:47:38 +0000
commite7f4abd38b6e05100c699900c8f87281e363beb2 (patch)
treebadec536bcfe024c7214b18fcce1fa58e5315f80 /src/evalvars.c
parent73a024209cbfbd5b39a2e974084d807c6131e2ed (diff)
patch 8.2.3889: duplicate code for translating script-local function namev8.2.3889
Problem: Duplicate code for translating script-local function name. Solution: Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan, closes #9393)
Diffstat (limited to 'src/evalvars.c')
-rw-r--r--src/evalvars.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/evalvars.c b/src/evalvars.c
index d002e57b45..34cc014ad6 100644
--- 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);
}