diff src/eval.c @ 10912:fd1760f8c215 v8.0.0345

patch 8.0.0345: islocked('d.changedtick') does not work commit https://github.com/vim/vim/commit/3a257737726ba42980bf38ec9a0c80944756af24 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 21 20:47:13 2017 +0100 patch 8.0.0345: islocked('d.changedtick') does not work Problem: islocked('d.changedtick') does not work. Solution: Make it work.
author Christian Brabandt <cb@256bit.org>
date Tue, 21 Feb 2017 21:00:04 +0100
parents 8bff367672a4
children 7dab3a9cb933
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -1811,6 +1811,7 @@ ex_let_one(
  *
  * flags:
  *  GLV_QUIET:       do not give error messages
+ *  GLV_READ_ONLY:   will not change the variable
  *  GLV_NO_AUTOLOAD: do not use script autoloading
  *
  * Returns a pointer to just after the name, including indexes.
@@ -2078,7 +2079,8 @@ get_lval(
 		break;
 	    }
 	    /* existing variable, need to check if it can be changed */
-	    else if (var_check_ro(lp->ll_di->di_flags, name, FALSE))
+	    else if ((flags & GLV_READ_ONLY) == 0
+			     && var_check_ro(lp->ll_di->di_flags, name, FALSE))
 	    {
 		clear_tv(&var1);
 		return NULL;