Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7949:e787f6cae97c HEAD
Added missing Content-Language: support for BODYSTRUCTURE.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 24 Jun 2008 13:37:55 +0300 |
parents | e29ddf600a09 |
children | 3412c43d6707 |
files | src/lib-imap/imap-bodystructure.c |
diffstat | 1 files changed, 25 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-imap/imap-bodystructure.c Tue Jun 24 13:37:26 2008 +0300 +++ b/src/lib-imap/imap-bodystructure.c Tue Jun 24 13:37:55 2008 +0300 @@ -28,6 +28,7 @@ const char *content_disposition_params; const char *content_md5; const char *content_language; + const char *content_location; struct message_part_envelope_data *envelope; }; @@ -196,8 +197,8 @@ case 'T': if (strcasecmp(name, "Type") == 0 && d->content_type == NULL) parse_content_type(d, hdr); - if (strcasecmp(name, "Transfer-Encoding") == 0 && - d->content_transfer_encoding == NULL) + else if (strcasecmp(name, "Transfer-Encoding") == 0 && + d->content_transfer_encoding == NULL) parse_content_transfer_encoding(d, hdr); break; @@ -206,6 +207,11 @@ if (strcasecmp(name, "Language") == 0 && d->content_language == NULL) parse_content_language(value, value_len, d); + else if (strcasecmp(name, "Location") == 0 && + d->content_location == NULL) { + d->content_location = + imap_quote(pool, value, value_len); + } break; case 'd': @@ -214,9 +220,8 @@ d->content_description == NULL) { d->content_description = imap_quote(pool, value, value_len); - } - if (strcasecmp(name, "Disposition") == 0 && - d->content_disposition_params == NULL) { + } else if (strcasecmp(name, "Disposition") == 0 && + d->content_disposition_params == NULL) { parse_content_disposition(d, hdr); } break; @@ -337,6 +342,12 @@ str_append(str, data->content_language); str_append_c(str, ')'); } + + str_append_c(str, ' '); + if (data->content_location == NULL) + str_append(str, "NIL"); + else + str_append(str, data->content_location); } static void part_write_body(const struct message_part *part, @@ -413,7 +424,7 @@ /* BODYSTRUCTURE data */ /* "md5" ("content disposition" ("disposition" "params")) - ("body" "language" "params") */ + ("body" "language" "params") "location" */ str_append_c(str, ' '); str_append(str, NVL(data->content_md5, "NIL")); @@ -444,6 +455,12 @@ str_append(str, data->content_language); str_append_c(str, ')'); } + + str_append_c(str, ' '); + if (data->content_location == NULL) + str_append(str, "NIL"); + else + str_append(str, data->content_location); } bool imap_bodystructure_is_plain_7bit(const struct message_part *part) @@ -480,7 +497,8 @@ /* BODYSTRUCTURE checks: */ if (data->content_md5 != NULL || data->content_disposition != NULL || - data->content_language != NULL) + data->content_language != NULL || + data->content_location != NULL) return FALSE; return TRUE;