From e939f5ebbae8dd7825d62d84e0c9910fa1756a9c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 26 Jan 2022 21:32:59 +0000 Subject: patch 8.2.4227: Vim9: using "lockvar!" in :def function does not work Problem: Vim9: using "lockvar!" in :def function does not work. Solution: Add "!" instead of "-1". (closes #9634) --- src/vim9cmds.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/vim9cmds.c') diff --git a/src/vim9cmds.c b/src/vim9cmds.c index 1af2a157e..716a40411 100644 --- a/src/vim9cmds.c +++ b/src/vim9cmds.c @@ -223,10 +223,12 @@ compile_lock_unlock( ret = FAIL; else { - vim_snprintf((char *)buf, len, "%s %d %s", - eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar", - deep, - p); + char *cmd = eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar"; + + if (deep < 0) + vim_snprintf((char *)buf, len, "%s! %s", cmd, p); + else + vim_snprintf((char *)buf, len, "%s %d %s", cmd, deep, p); ret = generate_EXEC_copy(cctx, isn, buf); vim_free(buf); -- cgit v1.2.1