static int
eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg)
{
- int evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
-
/*
* Get the first variable.
*/
*/
for (;;)
{
+ int evaluate;
int getnext;
char_u *p;
int op;
concat = op == '.' && (*(p + 1) == '.' || current_sctx.sc_version < 2);
if (op != '+' && op != '-' && !concat)
break;
+
if (getnext)
*arg = eval_next_line(evalarg);
-
+ evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
if ((op != '+' || (rettv->v_type != VAR_LIST
&& rettv->v_type != VAR_BLOB))
#ifdef FEAT_FLOAT
evalarg_T *evalarg,
int want_string) // after "." operator
{
- typval_T var2;
- int op;
- varnumber_T n1, n2;
#ifdef FEAT_FLOAT
- int use_float = FALSE;
- float_T f1 = 0, f2 = 0;
+ int use_float = FALSE;
#endif
- int error = FALSE;
/*
* Get the first variable.
*/
for (;;)
{
- int evaluate = evalarg == NULL ? 0
- : (evalarg->eval_flags & EVAL_EVALUATE);
- int getnext;
+ int evaluate;
+ int getnext;
+ typval_T var2;
+ int op;
+ varnumber_T n1, n2;
+#ifdef FEAT_FLOAT
+ float_T f1, f2;
+#endif
+ int error;
op = *eval_next_non_blank(*arg, evalarg, &getnext);
if (op != '*' && op != '/' && op != '%')
break;
+
if (getnext)
*arg = eval_next_line(evalarg);
+#ifdef FEAT_FLOAT
+ f1 = 0;
+ f2 = 0;
+#endif
+ error = FALSE;
+ evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
if (evaluate)
{
#ifdef FEAT_FLOAT
evalarg_T *evalarg,
int want_string) // after "." operator
{
- int flags = evalarg == NULL ? 0 : evalarg->eval_flags;
int evaluate = evalarg != NULL
&& (evalarg->eval_flags & EVAL_EVALUATE);
int len;
ret = FAIL;
else
{
+ int flags = evalarg == NULL ? 0 : evalarg->eval_flags;
+
if (**arg == '(')
// "name(..." recursive!
ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL);