# HG changeset patch # User Bram Moolenaar # Date 1421252105 -3600 # Node ID 45ff9dd354eaff958c0ba646134e1f5cd6e9186f # Parent 1e3ac0aca071d0ad85f89be409343ef2a0a2db53 updated for version 7.4.574 Problem: No error for eval('$'). Solution: Check for empty name. (Yasuhiro Matsumoto) diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -7867,7 +7867,7 @@ get_env_tv(arg, rettv, evaluate) if (evaluate) { if (len == 0) - return FAIL; /* can't be an environment variable */ + return FAIL; /* invalid empty name */ cc = name[len]; name[len] = NUL; @@ -10117,14 +10117,18 @@ f_eval(argvars, rettv) typval_T *argvars; typval_T *rettv; { - char_u *s; + char_u *s, *p; s = get_tv_string_chk(&argvars[0]); if (s != NULL) s = skipwhite(s); + p = s; if (s == NULL || eval1(&s, rettv, TRUE) == FAIL) { + if (p != NULL && !aborting()) + EMSG2(_(e_invexpr2), p); + need_clr_eos = FALSE; rettv->v_type = VAR_NUMBER; rettv->vval.v_number = 0; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 574, +/**/ 573, /**/ 572,