X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-mime%2Frfc822address.c;h=0b06c0530dd27a2499e01147223f036e225fcef2;hp=6a2e0eebdb121bc544e4d469b1f6b434783f40d2;hb=0f6739c5be4203bec0fa32962e6ab13349da703b;hpb=22601f25ede6703ba7cd06ee84eddd2045308570 diff --git a/lib-mime/rfc822address.c b/lib-mime/rfc822address.c index 6a2e0ee..0b06c05 100644 --- a/lib-mime/rfc822address.c +++ b/lib-mime/rfc822address.c @@ -51,7 +51,7 @@ void rfc822_qualify(address_t *addr, const char *host) } } -address_t *address_dup(address_t *addr) +address_t *address_dup(const address_t *addr) { address_t *res = address_new(); @@ -61,7 +61,7 @@ address_t *address_dup(address_t *addr) return res; } -address_t *address_list_dup(address_t *addr) +address_t *address_list_dup(const address_t *addr) { address_t *res = NULL, **resp = &res; @@ -462,3 +462,22 @@ rfc822_write_address(char *buf, ssize_t buflen, address_t *addr, int display) return pos; } +address_t *mutt_parse_adrlist(address_t *p, const char *s) +{ + /* check for a simple whitespace separated list of addresses */ + char *q = strpbrk(s, "\"<>():;,\\"); + char tmp[HUGE_STRING]; + + if (q) + return rfc822_parse_adrlist(p, s); + + m_strcpy(tmp, sizeof(tmp), s); + q = tmp; + while ((q = strtok(q, " \t"))) { + p = rfc822_parse_adrlist(p, q); + q = NULL; + } + + return p; +} +