simplify alias expansion a lot.
[apps/madmutt.git] / lib-mime / rfc822address.c
index 6a2e0ee..0b06c05 100644 (file)
@@ -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;
+}
+