[evolution] Encode also message_uid in e_mail_part_build_uri()



commit b3ec9c8c2f6d4711b1fbd710891de01ab81500b6
Author: Milan Crha <mcrha redhat com>
Date:   Thu Oct 18 17:56:52 2012 +0200

    Encode also message_uid in e_mail_part_build_uri()
    
    This reverts commit 7050a1286825, which broke opening of IMAP message.
    It's also the correct solution for the initial issue, because
    the message_uid can contain letters which should be encoded in the URI.

 em-format/e-mail-part-utils.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/em-format/e-mail-part-utils.c b/em-format/e-mail-part-utils.c
index 0d96d56..9c7c913 100644
--- a/em-format/e-mail-part-utils.c
+++ b/em-format/e-mail-part-utils.c
@@ -358,7 +358,7 @@ e_mail_part_animation_extract_frame (const GByteArray *anim,
 /**
  * e_mail_part_build_url:
  * @folder: (allow-none) a #CamelFolder with the message or %NULL
- * @message_uid: (allow-none) uid of the message within the @folder or %NULL
+ * @message_uid: uid of the message within the @folder
  * @first_param_name: Name of first query parameter followed by GType of it's value and value
  * terminated by %NULL.
  *
@@ -380,6 +380,7 @@ e_mail_part_build_uri (CamelFolder *folder,
 	va_list ap;
 	const gchar *name;
 	const gchar *service_uid, *folder_name;
+	gchar *encoded_message_uid;
 	gchar separator;
 
 	g_return_val_if_fail (message_uid && *message_uid, NULL);
@@ -397,10 +398,12 @@ e_mail_part_build_uri (CamelFolder *folder,
 			service_uid = "generic";
 	}
 
+	encoded_message_uid = soup_uri_encode (message_uid, NULL);
 	tmp = g_strdup_printf ("mail://%s/%s/%s",
 			service_uid,
 			folder_name,
-			message_uid);
+			encoded_message_uid);
+	g_free (encoded_message_uid);
 
 	if (folder) {
 		g_free ((gchar *) folder_name);



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