}
/* compile the regexp into a program */
- if (flags & EW_NOERROR)
+ if (flags & (EW_NOERROR | EW_NOTWILD))
++emsg_silent;
regmatch.rm_ic = TRUE; /* Always ignore case */
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
- if (flags & EW_NOERROR)
+ if (flags & (EW_NOERROR | EW_NOTWILD))
--emsg_silent;
vim_free(pat);
- if (regmatch.regprog == NULL)
+ if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
{
vim_free(buf);
return 0;
* all entries found with "matchname". */
if ((p[0] != '.' || starts_with_dot)
&& (matchname == NULL
- || vim_regexec(®match, p, (colnr_T)0)
+ || (regmatch.regprog != NULL
+ && vim_regexec(®match, p, (colnr_T)0))
|| ((flags & EW_NOTWILD)
&& fnamencmp(path + (s - buf), p, e - s) == 0)))
{
else
regmatch.rm_ic = FALSE; /* Don't ignore case */
#endif
+ if (flags & (EW_NOERROR | EW_NOTWILD))
+ ++emsg_silent;
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+ if (flags & (EW_NOERROR | EW_NOTWILD))
+ --emsg_silent;
vim_free(pat);
- if (regmatch.regprog == NULL)
+ if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
{
vim_free(buf);
return 0;
if (dp == NULL)
break;
if ((dp->d_name[0] != '.' || starts_with_dot)
- && (vim_regexec(®match, (char_u *)dp->d_name, (colnr_T)0)
+ && ((regmatch.regprog != NULL && vim_regexec(®match,
+ (char_u *)dp->d_name, (colnr_T)0))
|| ((flags & EW_NOTWILD)
&& fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
{