updated for version 7.0b
diff --git a/src/eval.c b/src/eval.c
index efa04be..e80407e 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1666,6 +1666,8 @@
argend = skip_var_list(arg, &var_count, &semicolon);
if (argend == NULL)
return;
+ if (argend > arg && argend[-1] == '.') /* for var.='str' */
+ --argend;
expr = vim_strchr(argend, '=');
if (expr == NULL)
{
@@ -19360,9 +19362,11 @@
init_var_dict(&fc.l_vars, &fc.l_vars_var);
if (selfdict != NULL)
{
- /* Set l:self to "selfdict". */
+ /* Set l:self to "selfdict". Use "name" to avoid a warning from
+ * some compiler that checks the destination size. */
v = &fc.fixvar[fixvar_idx++].var;
- STRCPY(v->di_key, "self");
+ name = v->di_key;
+ STRCPY(name, "self");
v->di_flags = DI_FLAGS_RO + DI_FLAGS_FIX;
hash_add(&fc.l_vars.dv_hashtab, DI2HIKEY(v));
v->di_tv.v_type = VAR_DICT;