comparison src/dict.c @ 22298:07e48ee8c3bb v8.2.1698

patch 8.2.1698: cannot lock a variable in legacy Vim script like in Vim9 Commit: https://github.com/vim/vim/commit/a187c43cfe8863d48b2159d695fedcb71f8525c1 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 16 21:08:28 2020 +0200 patch 8.2.1698: cannot lock a variable in legacy Vim script like in Vim9 Problem: Cannot lock a variable in legacy Vim script like in Vim9. Solution: Make ":lockvar 0" work.
author Bram Moolenaar <Bram@vim.org>
date Wed, 16 Sep 2020 21:15:05 +0200
parents a211bca98bc3
children 542682b758dc
comparison
equal deleted inserted replaced
22297:3d2dc70119a7 22298:07e48ee8c3bb
1007 semsg(_("E737: Key already exists: %s"), hi2->hi_key); 1007 semsg(_("E737: Key already exists: %s"), hi2->hi_key);
1008 break; 1008 break;
1009 } 1009 }
1010 else if (*action == 'f' && HI2DI(hi2) != di1) 1010 else if (*action == 'f' && HI2DI(hi2) != di1)
1011 { 1011 {
1012 if (var_check_lock(di1->di_tv.v_lock, arg_errmsg, TRUE) 1012 if (value_check_lock(di1->di_tv.v_lock, arg_errmsg, TRUE)
1013 || var_check_ro(di1->di_flags, arg_errmsg, TRUE)) 1013 || var_check_ro(di1->di_flags, arg_errmsg, TRUE))
1014 break; 1014 break;
1015 clear_tv(&di1->di_tv); 1015 clear_tv(&di1->di_tv);
1016 copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv); 1016 copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
1017 } 1017 }
1225 dictitem_T *di; 1225 dictitem_T *di;
1226 1226
1227 if (argvars[2].v_type != VAR_UNKNOWN) 1227 if (argvars[2].v_type != VAR_UNKNOWN)
1228 semsg(_(e_toomanyarg), "remove()"); 1228 semsg(_(e_toomanyarg), "remove()");
1229 else if ((d = argvars[0].vval.v_dict) != NULL 1229 else if ((d = argvars[0].vval.v_dict) != NULL
1230 && !var_check_lock(d->dv_lock, arg_errmsg, TRUE)) 1230 && !value_check_lock(d->dv_lock, arg_errmsg, TRUE))
1231 { 1231 {
1232 key = tv_get_string_chk(&argvars[1]); 1232 key = tv_get_string_chk(&argvars[1]);
1233 if (key != NULL) 1233 if (key != NULL)
1234 { 1234 {
1235 di = dict_find(d, key, -1); 1235 di = dict_find(d, key, -1);