aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBastian Winkler <buz@netbuz.org>2015-04-29 20:11:15 +0200
committerMichael Reed <m.reed@mykolab.com>2015-05-03 19:39:56 -0400
commit115f137b124a8b26c92656cf190e340b2364a5a2 (patch)
treedb67c680d2fe1a7e2aea2677b959c417b7c3dad3 /src
parent0d6ce4c770ea471913c38414ee7d8ac8f516e8f8 (diff)
downloadrneovim-115f137b124a8b26c92656cf190e340b2364a5a2.tar.gz
rneovim-115f137b124a8b26c92656cf190e340b2364a5a2.tar.bz2
rneovim-115f137b124a8b26c92656cf190e340b2364a5a2.zip
vim-patch:7.4.574 #2539
Problem: No error for eval('$'). Solution: Check for empty name. (Yasuhiro Matsumoto) https://github.com/vim/vim/commit/v7-4-574
Diffstat (limited to 'src')
-rw-r--r--src/nvim/eval.c12
-rw-r--r--src/nvim/version.c2
2 files changed, 10 insertions, 4 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index df301f4266..c4c2821b80 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6363,8 +6363,8 @@ static int get_env_tv(char_u **arg, typval_T *rettv, int evaluate)
len = get_env_len(arg);
if (evaluate) {
- if (len == 0) {
- return FAIL; // Can't be an environment variable.
+ if (len == 0) {
+ return FAIL; // Invalid empty name.
}
cc = name[len];
name[len] = NUL;
@@ -8145,11 +8145,17 @@ static void f_eval(typval_T *argvars, typval_T *rettv)
if (s != NULL)
s = skipwhite(s);
+ char_u *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;
- } else if (*s != NUL)
+ } else if (*s != NUL) {
EMSG(_(e_trailing));
+ }
}
/*
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 76460959ed..dc0454ffc1 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -209,7 +209,7 @@ static int included_patches[] = {
//577,
//576,
//575,
- //574,
+ 574,
//573,
572,
//571 NA