if (pat->op == M_HEADER) {
if (*(buf = mutt_read_rfc822_line (fp, buf, &blen)) == '\0')
break;
- } if (fgets (buf, blen - 1, fp) == NULL)
+ } else if (fgets (buf, blen - 1, fp) == NULL)
break; /* don't loop forever */
if (patmatch (pat, buf) == 0) {
match = 1;
pattern_t *last = NULL;
int not = 0;
int alladdr = 0;
- int stringmatch = 0;
int or = 0;
int implicit = 1; /* used to detect logical AND operator */
struct pattern_flags *entry;
implicit = 0;
not = 0;
alladdr = 0;
- stringmatch = 0;
break;
case '=':
- stringmatch = 1;
/* fallthrough */
case '~':
if (implicit && or) {
tmp = new_pattern ();
tmp->not = not;
tmp->alladdr = alladdr;
- tmp->stringmatch = stringmatch;
+ tmp->stringmatch = (*ps.dptr == '=') ? 1 : 0;
not = 0;
alladdr = 0;
- stringmatch = 0;
if (last)
last->next = tmp;