X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=pattern.c;h=63abd4e605927bae11dd8b81560d0bfb277f2740;hb=b17296ba049d71986028ac83f0b415a021d0691c;hp=7813d55ad5889d9b03e6182f6fc56296e4fcbec5;hpb=616031722dea23d357d8b50d41ae7b40cfdd7d3c;p=apps%2Fmadmutt.git diff --git a/pattern.c b/pattern.c index 7813d55..63abd4e 100644 --- a/pattern.c +++ b/pattern.c @@ -246,12 +246,18 @@ int eat_regexp (pattern_t * pat, BUFFER * s, BUFFER * err) int r; memset (&buf, 0, sizeof (buf)); + if (mutt_extract_token (&buf, s, M_TOKEN_PATTERN | M_TOKEN_COMMENT) != 0 || !buf.data) { snprintf (err->data, err->dsize, _("Error in expression: %s"), s->dptr); return (-1); } + if (!*buf.data) { + snprintf (err->data, err->dsize, _("Empty expression")); + return (-1); + } + #if 0 /* If there are no RE metacharacters, use simple search anyway */ if (!pat->stringmatch && !strpbrk (buf.data, "|[{.*+?^$")) @@ -995,7 +1001,7 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, case M_WHOLE_MSG: #ifdef USE_IMAP /* IMAP search sets h->matched at search compile time */ - if (Context->magic == M_IMAP && pat->stringmatch) + if (ctx->magic == M_IMAP && pat->stringmatch) return (h->matched); #endif return (pat->not ^ msg_search (ctx, pat, h->msgno));