[gmime] A continuation of previous Content-* patch



commit 8f2ba5676764f91fc9cbcec6f806a6d2e9805f65
Author: Jeffrey Stedfast <fejj gnome org>
Date:   Mon Feb 20 11:41:46 2012 -0500

    A continuation of previous Content-* patch

 gmime/gmime-message.c |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)
---
diff --git a/gmime/gmime-message.c b/gmime/gmime-message.c
index d237ffe..5acc8fb 100644
--- a/gmime/gmime-message.c
+++ b/gmime/gmime-message.c
@@ -791,10 +791,12 @@ message_prepend_header (GMimeObject *object, const char *header, const char *val
 {
 	GMimeMessage *message = (GMimeMessage *) object;
 	
-	/* Make sure that the header is not a Content-* header, else it
-           doesn't belong on a message */
-	if (!g_ascii_strncasecmp ("Content-", header, 8))
+	/* Content-* headers don't belong on the message, they belong on the part. */
+	if (!g_ascii_strncasecmp ("Content-", header, 8)) {
+		if (message->mime_part)
+			g_mime_object_prepend_header (message->mime_part, header, value);
 		return;
+	}
 	
 	if (!process_header (object, PREPEND, header, value))
 		GMIME_OBJECT_CLASS (parent_class)->prepend_header (object, header, value);
@@ -810,10 +812,12 @@ message_append_header (GMimeObject *object, const char *header, const char *valu
 {
 	GMimeMessage *message = (GMimeMessage *) object;
 	
-	/* Make sure that the header is not a Content-* header, else it
-           doesn't belong on a message */
-	if (!g_ascii_strncasecmp ("Content-", header, 8))
+	/* Content-* headers don't belong on the message, they belong on the part. */
+	if (!g_ascii_strncasecmp ("Content-", header, 8)) {
+		if (message->mime_part)
+			g_mime_object_append_header (message->mime_part, header, value);
 		return;
+	}
 	
 	if (!process_header (object, APPEND, header, value))
 		GMIME_OBJECT_CLASS (parent_class)->append_header (object, header, value);
@@ -829,10 +833,12 @@ message_set_header (GMimeObject *object, const char *header, const char *value)
 {
 	GMimeMessage *message = (GMimeMessage *) object;
 	
-	/* Make sure that the header is not a Content-* header, else it
-           doesn't belong on a message */
-	if (!g_ascii_strncasecmp ("Content-", header, 8))
+	/* Content-* headers don't belong on the message, they belong on the part. */
+	if (!g_ascii_strncasecmp ("Content-", header, 8)) {
+		if (message->mime_part)
+			g_mime_object_set_header (message->mime_part, header, value);
 		return;
+	}
 	
 	if (!process_header (object, SET, header, value))
 		GMIME_OBJECT_CLASS (parent_class)->set_header (object, header, value);
@@ -849,8 +855,7 @@ message_get_header (GMimeObject *object, const char *header)
 	GMimeMessage *message = (GMimeMessage *) object;
 	const char *value;
 	
-	/* Make sure that the header is not a Content-* header, else it
-           doesn't belong on a message */
+	/* Content-* headers don't belong on the message, they belong on the part. */
 	if (g_ascii_strncasecmp ("Content-", header, 8) != 0) {
 		if ((value = GMIME_OBJECT_CLASS (parent_class)->get_header (object, header)))
 			return value;
@@ -872,8 +877,7 @@ message_remove_header (GMimeObject *object, const char *header)
 	GMimeRecipientType type;
 	guint i;
 	
-	/* Make sure that the header is not a Content-* header, else it
-           doesn't belong on a message */
+	/* Content-* headers don't belong on the message, they belong on the part. */
 	if (!g_ascii_strncasecmp ("Content-", header, 8)) {
 		if (message->mime_part)
 			return g_mime_object_remove_header (message->mime_part, header);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]