mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
eval: Specify more precise len for var_check_ro in get_lval
This commit is contained in:
parent
d5ab50a040
commit
9972db79c8
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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())
|
||||
|
Loading…
Reference in New Issue
Block a user