*addr_p = message_address_parse(pool, hdr->full_value,
hdr->full_value_len,
(unsigned int)-1, TRUE);
- }
-
- if (str_p != NULL) {
- *str_p = imap_quote(pool, hdr->full_value,
- hdr->full_value_len, TRUE);
+ } else if (str_p != NULL) {
+ if (str_p != &d->subject) {
+ string_t *str = t_str_new(128);
+
+ imap_append_string(str,
+ t_strndup(hdr->full_value, hdr->full_value_len));
+ *str_p = p_strdup(pool, str_c(str));
+ } else {
+ *str_p = imap_quote(pool, hdr->full_value,
+ hdr->full_value_len, TRUE);
+ }
}
}
str_append_c(str, '(');
imap_quote_append_string(str, addr->name, TRUE);
str_append_c(str, ' ');
- imap_quote_append_string(str, addr->route, TRUE);
+ imap_append_nstring(str, addr->route);
str_append_c(str, ' ');
- imap_quote_append_string(str, addr->mailbox, TRUE);
+ imap_append_nstring(str, addr->mailbox);
str_append_c(str, ' ');
- imap_quote_append_string(str, addr->domain, TRUE);
+ imap_append_nstring(str, addr->domain);
str_append_c(str, ')');
addr = addr->next;