summaryrefslogtreecommitdiffstats
path: root/pattern.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>1998-10-21 22:46:13 +0000
committerThomas Roessler <roessler@does-not-exist.org>1998-10-21 22:46:13 +0000
commit81817e80725b2aec981e96f6026732dbea9748e5 (patch)
treec52eb9e23038a2f66a86dc27986dd0e69caccba6 /pattern.c
parenta44de424b8540d14391bf387945f465877dd92b8 (diff)
Fix match-all for the ~p, ~P modifiers.
Diffstat (limited to 'pattern.c')
-rw-r--r--pattern.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pattern.c b/pattern.c
index 10d9a802..513a3f03 100644
--- a/pattern.c
+++ b/pattern.c
@@ -833,7 +833,13 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx,
return (pat->not ^ (mutt_is_list_recipient (h->env->to) ||
mutt_is_list_recipient (h->env->cc)));
case M_PERSONAL_RECIP:
- return (pat->not ^ (match_user (h->env->to) || match_user (h->env->cc)));
+ if (pat->alladdr)
+ {
+ int i = mutt_user_is_recipient (h);
+ return (pat->not ^ ((i == 1) || (i == 3 && h->env->cc && !h->env->cc->next)));
+ }
+ else
+ return (pat->not ^ (match_user (h->env->to) || match_user (h->env->cc)));
case M_PERSONAL_FROM:
return (pat->not ^ (match_user (h->env->from)));
#ifdef _PGPPATH