From: Timo Sirainen Date: Wed, 24 Oct 2012 08:28:38 +0000 (+0300) Subject: lib-imap: ENVELOPE parsing/writing no longer strips whitespace from machine readable... X-Git-Tag: 2.2.alpha1~51 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ef24f8d8293fc2fc60207b7be24154a0838d969;p=thirdparty%2Fdovecot%2Fcore.git lib-imap: ENVELOPE parsing/writing no longer strips whitespace from machine readable fields. --- diff --git a/src/lib-imap/imap-envelope.c b/src/lib-imap/imap-envelope.c index 028917d3fc..ad49584ba2 100644 --- a/src/lib-imap/imap-envelope.c +++ b/src/lib-imap/imap-envelope.c @@ -147,11 +147,17 @@ void imap_envelope_parse_header(pool_t pool, *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); + } } } @@ -167,11 +173,11 @@ static void imap_write_address(string_t *str, struct message_address *addr) 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;