diff options
author | ZyX <kp-pav@yandex.ru> | 2017-02-23 00:59:11 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2017-02-23 19:48:41 +0300 |
commit | d8a7e5fdbb7d94f06e30aedaea42028caec52c95 (patch) | |
tree | 9fd58ebc04c450f95dc9d6492b0f95ae18b047a8 /src/nvim/eval.c | |
parent | 9668d26a4384376d1eb052aa093d65c060359fef (diff) | |
download | rneovim-d8a7e5fdbb7d94f06e30aedaea42028caec52c95.tar.gz rneovim-d8a7e5fdbb7d94f06e30aedaea42028caec52c95.tar.bz2 rneovim-d8a7e5fdbb7d94f06e30aedaea42028caec52c95.zip |
eval: Forbid (un)locking b:changedtick
Port of vim-patch:8.0.0343
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 6 |
1 files changed, 6 insertions, 0 deletions
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)) { |