From: Bram Moolenaar Date: Tue, 26 Feb 2013 18:36:15 +0000 (+0100) Subject: updated for version 7.3.841 X-Git-Tag: v7.3.841 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e17c2603355669a84813f454875d865f38172ff8;p=vim updated for version 7.3.841 Problem: When a "cond ? one : two" expression has a subscript it is not parsed correctly. (Andy Wokula) Solution: Handle a subscript also when the type is unknown. (Christian Brabandt) --- diff --git a/src/eval.c b/src/eval.c index 480f214b4..d5a41fbce 100644 --- a/src/eval.c +++ b/src/eval.c @@ -5164,6 +5164,16 @@ eval7(arg, rettv, evaluate, want_string) ret = get_func_tv(s, len, rettv, arg, curwin->w_cursor.lnum, curwin->w_cursor.lnum, &len, evaluate, NULL); + + /* If evaluate is FALSE rettv->v_type was not set in + * get_func_tv, but it's needed in handle_subscript() to parse + * what follows. So set it here. */ + if (rettv->v_type == VAR_UNKNOWN && !evaluate && **arg == '(') + { + rettv->vval.v_string = vim_strsave(""); + rettv->v_type = VAR_FUNC; + } + /* Stop the expression evaluation when immediately * aborting on error, or when an interrupt occurred or * an exception was thrown but not caught. */ diff --git a/src/version.c b/src/version.c index 7c12188fe..6098591c0 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 841, /**/ 840, /**/