if (di == NULL)
{
semsg(_(e_undefvar), name);
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
else
{
{
semsg(_("E121: Undefined variable: %c:%s"),
namespace, iptr->isn_arg.string);
- goto failed;
+ goto on_error;
}
else
{
case EXPR_SUB: f1 = f1 - f2; break;
case EXPR_ADD: f1 = f1 + f2; break;
default: emsg(_(e_modulus));
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
clear_tv(tv1);
clear_tv(tv2);
if (tv->v_type != VAR_LIST)
{
emsg(_(e_listreq));
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
list = tv->vval.v_list;
if (tv->v_type != VAR_NUMBER)
{
emsg(_(e_number_exp));
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
n = tv->vval.v_number;
clear_tv(tv);
if ((li = list_find(list, n)) == NULL)
{
semsg(_(e_listidx), n);
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
--ectx.ec_stack.ga_len;
// Clear the list after getting the item, to avoid that it
if ((di = dict_find(dict, key, -1)) == NULL)
{
semsg(_(e_dictkey), key);
- if (trylevel > 0)
- continue;
- goto failed;
+ goto on_error;
}
clear_tv(tv);
--ectx.ec_stack.ga_len;
)
{
emsg(_(e_number_exp));
- goto failed;
+ goto on_error;
}
#ifdef FEAT_FLOAT
if (tv->v_type == VAR_FLOAT)
tv = STACK_TV_BOT(-1);
if (check_not_string(tv) == FAIL)
- goto failed;
+ goto on_error;
(void)tv_get_number_chk(tv, &error);
if (error)
- goto failed;
+ goto on_error;
}
break;
semsg(_("E1029: Expected %s but got %s"),
vartype_name(ct->ct_type),
vartype_name(tv->v_type));
- goto failed;
+ goto on_error;
}
}
break;
{
semsg(_("E1093: Expected %d items but got %d"),
min_len, list == NULL ? 0 : list->lv_len);
- goto failed;
+ goto on_error;
}
}
break;
clear_tv(STACK_TV_BOT(0));
break;
}
+ continue;
+
+on_error:
+ if (trylevel == 0)
+ goto failed;
}
done: