0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

updated for version 7.2.402

Problem:    This gives a #705 error: let X = function('haslocaldir')
            let X = function('getcwd')
Solution:   Don't give E705 when the name is found in the hashtab. (Sergey
            Khorev)
This commit is contained in:
Bram Moolenaar
2010-03-17 19:53:49 +01:00
parent b91e59b0f3
commit baff0fec3f
2 changed files with 14 additions and 9 deletions

View File

@@ -19103,6 +19103,14 @@ set_var(name, tv, copy)
hashtab_T *ht;
char_u *p;
ht = find_var_ht(name, &varname);
if (ht == NULL || *varname == NUL)
{
EMSG2(_(e_illvar), name);
return;
}
v = find_var_in_ht(ht, varname, TRUE);
if (tv->v_type == VAR_FUNC)
{
if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
@@ -19112,7 +19120,10 @@ set_var(name, tv, copy)
EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
return;
}
if (function_exists(name))
/* Don't allow hiding a function. When "v" is not NULL we migth be
* assigning another function to the same var, the type is checked
* below. */
if (v == NULL && function_exists(name))
{
EMSG2(_("E705: Variable name conflicts with existing function: %s"),
name);
@@ -19120,14 +19131,6 @@ set_var(name, tv, copy)
}
}
ht = find_var_ht(name, &varname);
if (ht == NULL || *varname == NUL)
{
EMSG2(_(e_illvar), name);
return;
}
v = find_var_in_ht(ht, varname, TRUE);
if (v != NULL)
{
/* existing variable, need to clear the value */