From 8db9a0e5a26616a84903ca29cd5a877df9037bd8 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 24 May 2024 18:29:17 +0800 Subject: vim-patch:8.2.3158: strange error message when using islocked() with a number (#28962) Problem: Strange error message when using islocked() with a number. (Yegappan Lakshmanan) Solution: Check that the name is empty. https://github.com/vim/vim/commit/1840a7b4e3577e617f724c9d07ccc78195cc010a Use ll_name_len instead. Co-authored-by: Bram Moolenaar --- src/nvim/eval.c | 1 + src/nvim/eval/funcs.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 18e5dc7cbd..c1c1f551a8 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -1737,6 +1737,7 @@ char *get_lval(char *const name, typval_T *const rettv, lval_T *const lp, const } tv_clear(&var1); + lp->ll_name_len = (size_t)(p - lp->ll_name); return p; } diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index 048f744532..e4cb63eb8e 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -4119,7 +4119,7 @@ static void f_islocked(typval_T *argvars, typval_T *rettv, EvalFuncData fptr) FNE_CHECK_START); if (end != NULL && lv.ll_name != NULL) { if (*end != NUL) { - semsg(_(e_trailing_arg), end); + semsg(_(lv.ll_name_len == 0 ? e_invarg2 : e_trailing_arg), end); } else { if (lv.ll_tv == NULL) { dictitem_T *di = find_var(lv.ll_name, lv.ll_name_len, NULL, true); -- cgit