Mercurial > vim
comparison src/vim9cmds.c @ 27398:472bb63632bd v8.2.4227
patch 8.2.4227: Vim9: using "lockvar!" in :def function does not work
Commit: https://github.com/vim/vim/commit/e939f5ebbae8dd7825d62d84e0c9910fa1756a9c
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 26 21:32:59 2022 +0000
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 https://github.com/vim/vim/issues/9634)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 26 Jan 2022 22:45:04 +0100 |
parents | 69a48bcd1d80 |
children | 1aff400b819e |
comparison
equal
deleted
inserted
replaced
27397:48efff3a6f0b | 27398:472bb63632bd |
---|---|
221 buf = alloc(len); | 221 buf = alloc(len); |
222 if (buf == NULL) | 222 if (buf == NULL) |
223 ret = FAIL; | 223 ret = FAIL; |
224 else | 224 else |
225 { | 225 { |
226 vim_snprintf((char *)buf, len, "%s %d %s", | 226 char *cmd = eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar"; |
227 eap->cmdidx == CMD_lockvar ? "lockvar" : "unlockvar", | 227 |
228 deep, | 228 if (deep < 0) |
229 p); | 229 vim_snprintf((char *)buf, len, "%s! %s", cmd, p); |
230 else | |
231 vim_snprintf((char *)buf, len, "%s %d %s", cmd, deep, p); | |
230 ret = generate_EXEC_copy(cctx, isn, buf); | 232 ret = generate_EXEC_copy(cctx, isn, buf); |
231 | 233 |
232 vim_free(buf); | 234 vim_free(buf); |
233 *name_end = cc; | 235 *name_end = cc; |
234 } | 236 } |