From d8a7e5fdbb7d94f06e30aedaea42028caec52c95 Mon Sep 17 00:00:00 2001 From: ZyX Date: Thu, 23 Feb 2017 00:59:11 +0300 Subject: eval: Forbid (un)locking b:changedtick Port of vim-patch:8.0.0343 --- src/nvim/eval.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index da084d8ecc..25ac0e2ad1 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -3091,6 +3091,12 @@ static int do_lock_var(lval_T *lp, char_u *name_end, int deep, int lock) true); if (di == NULL) { ret = FAIL; + } else if ((di->di_flags & DI_FLAGS_FIX) + && di->di_tv.v_type != VAR_DICT + && di->di_tv.v_type != VAR_LIST) { + // For historical reasons this error is not given for Lists and + // Dictionaries. E.g. b: dictionary may be locked/unlocked. + emsgf(_("E940: Cannot lock or unlock variable %s"), lp->ll_name); } else { if ((di->di_flags & (DI_FLAGS_LOCK|DI_FLAGS_FIX)) == (DI_FLAGS_LOCK|DI_FLAGS_FIX)) { -- cgit