changeset 862:375923d2f910 HEAD

BODYSTRUCTURE reply was incorrect. pine didn't like it.
author Timo Sirainen <tss@iki.fi>
date Fri, 27 Dec 2002 22:57:11 +0200
parents 7498eab8903f
children 8ecfe2c250ee
files src/lib-imap/imap-bodystructure.c
diffstat 1 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap/imap-bodystructure.c	Fri Dec 27 22:33:46 2002 +0200
+++ b/src/lib-imap/imap-bodystructure.c	Fri Dec 27 22:57:11 2002 +0200
@@ -179,7 +179,7 @@
 						   parse_save_params_list,
 						   part_data);
 		part_data->content_type_params =
-			p_strdup(pool, str_c(part_data->str));
+			p_strdup_empty(pool, str_c(part_data->str));
 	} else if (strcasecmp(name, "Content-Transfer-Encoding") == 0 &&
 		   part_data->content_transfer_encoding == NULL) {
 		(void)message_content_parse_header(t_strndup(value, value_len),
@@ -201,7 +201,7 @@
 						   parse_save_params_list,
 						   part_data);
 		part_data->content_disposition_params =
-			p_strdup(pool, str_c(part_data->str));
+			p_strdup_empty(pool, str_c(part_data->str));
 	} else if (strcasecmp(name, "Content-Language") == 0) {
 		(void)message_content_parse_header(t_strndup(value, value_len),
 						   parse_content_language, NULL,
@@ -283,8 +283,12 @@
 	else {
 		str_append_c(str, '(');
 		str_append(str, data->content_disposition);
-		if (data->content_disposition_params != NULL) {
-			str_append(str, " (");
+		str_append_c(str, ' ');
+
+		if (data->content_disposition_params == NULL)
+			str_append(str, "NIL");
+		else {
+			str_append_c(str, '(');
 			str_append(str, data->content_disposition_params);
 			str_append_c(str, ')');
 		}
@@ -374,13 +378,17 @@
 	else {
 		str_append_c(str, '(');
 		str_append(str, data->content_disposition);
-		str_append_c(str, ')');
+		str_append_c(str, ' ');
 
-		if (data->content_disposition_params != NULL) {
-			str_append(str, " (");
+		if (data->content_disposition_params == NULL)
+			str_append(str, "NIL");
+		else {
+			str_append_c(str, '(');
 			str_append(str, data->content_disposition_params);
 			str_append_c(str, ')');
 		}
+
+		str_append_c(str, ')');
 	}
 
 	str_append_c(str, ' ');
@@ -438,7 +446,7 @@
 	return part_get_bodystructure(*part, extended);
 }
 
-static int imap_write_list(ImapArg *args, String *str)
+static int imap_write_list(const ImapArg *args, String *str)
 {
 	/* don't do any typechecking, just write it out */
 	str_append_c(str, '(');
@@ -471,7 +479,7 @@
 	return TRUE;
 }
 
-static int imap_parse_bodystructure_args(ImapArg *args, String *str)
+static int imap_parse_bodystructure_args(const ImapArg *args, String *str)
 {
 	ImapArg *subargs;
 	int i, multipart, text, message_rfc822;