[dovecot-cvs] dovecot/src/lib-imap imap-bodystructure.c,1.22,1.23

cras at procontrol.fi cras at procontrol.fi
Fri Dec 27 22:57:13 EET 2002


Update of /home/cvs/dovecot/src/lib-imap
In directory danu:/tmp/cvs-serv23448

Modified Files:
	imap-bodystructure.c 
Log Message:
BODYSTRUCTURE reply was incorrect. pine didn't like it.



Index: imap-bodystructure.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-imap/imap-bodystructure.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- imap-bodystructure.c	21 Dec 2002 22:02:58 -0000	1.22
+++ imap-bodystructure.c	27 Dec 2002 20:57:11 -0000	1.23
@@ -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;




More information about the dovecot-cvs mailing list