* 3: user is in the CC list
* 4: user is originator
*/
-static int user_is_recipient (HEADER *h)
+int mutt_user_is_recipient (HEADER *h)
{
- ENVELOPE *hdr = h->env;
+ ENVELOPE *env = h->env;
if(!h->recip_valid)
{
h->recip_valid = 1;
- if (mutt_addr_is_user (hdr->from))
+ if (mutt_addr_is_user (env->from))
h->recipient = 4;
- else if (user_in_addr (hdr->to))
+ else if (user_in_addr (env->to))
{
- if (hdr->to->next || hdr->cc)
+ if (env->to->next || env->cc)
h->recipient = 2; /* non-unique recipient */
else
h->recipient = 1; /* unique recipient */
}
- else if (user_in_addr (hdr->cc))
+ else if (user_in_addr (env->cc))
h->recipient = 3;
else
h->recipient = 0;
case 'T':
snprintf (fmt, sizeof (fmt), "%%%sc", prefix);
snprintf (dest, destlen, fmt,
- (Tochars && ((i = user_is_recipient (hdr))) < strlen (Tochars)) ? Tochars[i] : ' ');
+ (Tochars && ((i = mutt_user_is_recipient (hdr))) < strlen (Tochars)) ? Tochars[i] : ' ');
break;
case 'u':
hdr->deleted ? 'D' : (hdr->attach_del ? 'd' : ch),
hdr->tagged ? '*' :
(hdr->flagged ? '!' :
- (Tochars && ((i = user_is_recipient (hdr)) < strlen (Tochars)) ? Tochars[i] : ' ')));
+ (Tochars && ((i = mutt_user_is_recipient (hdr)) < strlen (Tochars)) ? Tochars[i] : ' ')));
snprintf (dest, destlen, fmt, buf2);
break;
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
int mutt_compose_menu (HEADER *, char *, size_t, HEADER *);
int mutt_strcmp (const char *, const char *);
int mutt_thread_set_flag (HEADER *, int, int, int);
+int mutt_user_is_recipient (HEADER *);
int mutt_view_attachment (FILE*, BODY *, int);
int mutt_wait_filter (pid_t);
int mutt_which_case (const char *);