diff options
author | ZyX <kp-pav@yandex.ru> | 2017-02-21 00:12:22 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-02-23 19:46:45 +0300 |
commit | 9972db79c81e4369fde0d0144c017160a1677c0f (patch) | |
tree | 09f5a258aa454bffb69829bc0ff2411fc66e1184 | |
parent | d5ab50a04011dd41471e9db47b40c26707c29656 (diff) | |
download | rneovim-9972db79c81e4369fde0d0144c017160a1677c0f.tar.gz rneovim-9972db79c81e4369fde0d0144c017160a1677c0f.tar.bz2 rneovim-9972db79c81e4369fde0d0144c017160a1677c0f.zip |
eval: Specify more precise len for var_check_ro in get_lval
-rw-r--r-- | src/nvim/eval.c | 8 | ||||
-rw-r--r-- | test/functional/eval/changedtick_spec.lua | 12 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 2df958b23d..1a1f8535d9 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -1964,7 +1964,7 @@ ex_let_one ( */ static char_u * get_lval ( - char_u *name, + char_u *const name, typval_T *rettv, lval_T *lp, int unlet, @@ -2192,7 +2192,7 @@ get_lval ( break; // existing variable, need to check if it can be changed } else if (var_check_ro(lp->ll_di->di_flags, (const char *)name, - STRLEN(name))) { + (size_t)(p - name))) { if (len == -1) { clear_tv(&var1); } @@ -20493,8 +20493,8 @@ set_var ( if (v != NULL) { // existing variable, need to clear the value - if (var_check_ro(v->di_flags, (const char *)name, STRLEN(name)) - || tv_check_lock(v->di_tv.v_lock, (const char *)name, STRLEN(name))) { + if (var_check_ro(v->di_flags, (const char *)name, name_len) + || tv_check_lock(v->di_tv.v_lock, (const char *)name, name_len)) { return; } diff --git a/test/functional/eval/changedtick_spec.lua b/test/functional/eval/changedtick_spec.lua index ede03ff3e9..f4c3dbc97f 100644 --- a/test/functional/eval/changedtick_spec.lua +++ b/test/functional/eval/changedtick_spec.lua @@ -60,11 +60,11 @@ describe('b:changedtick', function() eq(0, exc_exec('let d = b:')) eq('\nE46: Cannot change read-only variable "b:changedtick"', redir_exec('let b:changedtick = ' .. ctn)) - eq('\nE46: Cannot change read-only variable "b:["changedtick"] = '..ctn..'"', + eq('\nE46: Cannot change read-only variable "b:["changedtick"]"', redir_exec('let b:["changedtick"] = ' .. ctn)) - eq('\nE46: Cannot change read-only variable "b:.changedtick = '..ctn..'"', + eq('\nE46: Cannot change read-only variable "b:.changedtick"', redir_exec('let b:.changedtick = ' .. ctn)) - eq('\nE46: Cannot change read-only variable "d.changedtick = '..ctn..'"', + eq('\nE46: Cannot change read-only variable "d.changedtick"', redir_exec('let d.changedtick = ' .. ctn)) -- FIXME -- eq({fales, ''}, @@ -83,11 +83,11 @@ describe('b:changedtick', function() -- {pcall(curbufmeths.del_var, 'changedtick')}) eq(ct, changedtick()) - eq('\nE46: Cannot change read-only variable "b:["changedtick"] += '..ctn..'"', + eq('\nE46: Cannot change read-only variable "b:["changedtick"]"', redir_exec('let b:["changedtick"] += ' .. ctn)) - eq('\nE46: Cannot change read-only variable "b:["changedtick"] -= '..ctn..'"', + eq('\nE46: Cannot change read-only variable "b:["changedtick"]"', redir_exec('let b:["changedtick"] -= ' .. ctn)) - eq('\nE46: Cannot change read-only variable "b:["changedtick"] .= '..ctn..'"', + eq('\nE46: Cannot change read-only variable "b:["changedtick"]"', redir_exec('let b:["changedtick"] .= ' .. ctn)) eq(ct, changedtick()) |