X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Frfc822address.c;h=6c11e631352b80012f4e5f9aec7bf67544ec2a88;hp=a76fd25d2d74c9be77905d5e539c2bac8a889c06;hb=129050c6742f6be13fa5635ba03542b7fb2a9525;hpb=108f3c7ab59844591f7540347914ea57be5245e2 diff --git a/lib-mime/rfc822address.c b/lib-mime/rfc822address.c index a76fd25..6c11e63 100644 --- a/lib-mime/rfc822address.c +++ b/lib-mime/rfc822address.c @@ -26,14 +26,7 @@ * please see the file GPL in the top level source directory. */ -#include -#include -#include - -#include -#include -#include -#include +#include #include "mutt_idna.h" @@ -73,6 +66,26 @@ address_t *address_list_dup(const address_t *addr) return res; } +/* given a list of addresses, return a list of unique addresses */ +void address_list_uniq(address_t *a) +{ + for (; a; a = a->next) { + address_t **b = &a->next; + + if (!a->mailbox) + continue; + + while (*b) { + if ((*b)->mailbox && !ascii_strcasecmp((*b)->mailbox, a->mailbox)) + { + address_t *pop = address_list_pop(b); + address_delete(&pop); + } else { + b = &(*b)->next; + } + } + } +} /****************************************************************************/ /* Parsing functions */ @@ -242,7 +255,7 @@ parse_address(const char *s, static_buf *comment, address_t *cur) return s; } -address_t **rfc822_eotoken(address_t **last, static_buf *phrase, static_buf *comment) +static address_t **rfc822_eotoken(address_t **last, static_buf *phrase, static_buf *comment) { if (phrase->len) { const char *s;