updated for version 7.4.268
Problem: Using exists() on a funcref for a script-local function does not
work.
Solution: Translate <SNR> to the special byte sequence. Add a test.
diff --git a/src/eval.c b/src/eval.c
index f915789..3e1088a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -22275,6 +22275,14 @@
{
name = vim_strsave(name);
*pp = end;
+ if (STRNCMP(name, "<SNR>", 5) == 0)
+ {
+ /* Change "<SNR>" to the byte sequence. */
+ name[0] = K_SPECIAL;
+ name[1] = KS_EXTRA;
+ name[2] = (int)KE_SNR;
+ mch_memmove(name + 3, name + 5, STRLEN(name + 5) + 1);
+ }
goto theend;
}