patch 8.2.3794: Vim9: cannot find script-local func using "s:"
Problem: Vim9: cannot find script-local func using "s:". (Yegappan
Lakshmanan)
Solution: Skip the "s:".
diff --git a/src/userfunc.c b/src/userfunc.c
index 5f35f35..034bf9e 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1885,13 +1885,14 @@
{
char_u *after_script = NULL;
long sid = 0;
- int find_script_local = in_vim9script()
- && eval_isnamec1(*name) && name[1] != ':';
+ int find_script_local = in_vim9script() && eval_isnamec1(*name)
+ && (name[1] != ':' || *name == 's');
if (find_script_local)
{
// Find script-local function before global one.
- func = find_func_with_sid(name, current_sctx.sc_sid);
+ func = find_func_with_sid(name[0] == 's' && name[1] == ':'
+ ? name + 2 : name, current_sctx.sc_sid);
if (func != NULL)
return func;
}