Mercurial > vim
changeset 6493:45ff9dd354ea v7.4.574
updated for version 7.4.574
Problem: No error for eval('$').
Solution: Check for empty name. (Yasuhiro Matsumoto)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 14 Jan 2015 17:15:05 +0100 |
parents | 1e3ac0aca071 |
children | 738e9db215cd |
files | src/eval.c src/version.c |
diffstat | 2 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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; }