patch 8.2.4740: when expand() fails there is no error message
Problem: When expand() fails there is no error message.
Solution: When 'verbose' is set give an error message.
diff --git a/src/evalfunc.c b/src/evalfunc.c
index e56b505..e30186b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4065,7 +4065,6 @@
{
char_u *s;
int len;
- char *errormsg;
int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
expand_T xpc;
int error = FALSE;
@@ -4096,9 +4095,15 @@
s = tv_get_string(&argvars[0]);
if (*s == '%' || *s == '#' || *s == '<')
{
- ++emsg_off;
+ char *errormsg = NULL;
+
+ if (p_verbose == 0)
+ ++emsg_off;
result = eval_vars(s, s, &len, NULL, &errormsg, NULL);
- --emsg_off;
+ if (p_verbose == 0)
+ --emsg_off;
+ else if (errormsg != NULL)
+ emsg(errormsg);
if (rettv->v_type == VAR_LIST)
{
if (rettv_list_alloc(rettv) != FAIL && result != NULL)