File bnc-161000-junk-mail-dont-work.patch of Package evolution-data-server

Index: camel/providers/groupwise/camel-groupwise-folder.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/providers/groupwise/camel-groupwise-folder.c,v
retrieving revision 1.126
diff -u -p -r1.126 camel-groupwise-folder.c
--- camel/providers/groupwise/camel-groupwise-folder.c	3 Apr 2006 06:36:11 -0000	1.126
+++ camel/providers/groupwise/camel-groupwise-folder.c	3 Apr 2006 06:42:45 -0000
@@ -491,7 +491,8 @@ update_junk_list (CamelStore *store, Cam
 		goto error;
 
 	email = g_strsplit_set (from, "<>", -1);
-	if (!email[1])
+
+	if (!email || !email[1])
 		goto error;
 
 	if (flag == ADD_JUNK_ENTRY)
@@ -617,6 +618,7 @@ groupwise_sync (CamelFolder *folder, gbo
 
 		if ((flags & CAMEL_MESSAGE_JUNK) && !(flags & CAMEL_GW_MESSAGE_JUNK)) /*marked a message junk*/
 			move_to_junk (folder, info, ex);
+
 		else if ((flags & CAMEL_MESSAGE_JUNK) && (flags & CAMEL_GW_MESSAGE_JUNK)) /*message was marked as junk, now unjunk*/ 
 			move_to_mailbox (folder, info, ex);
 
@@ -1171,12 +1173,17 @@ gw_update_cache (CamelFolder *folder, GL
 
 		org = e_gw_item_get_organizer (item); 
 		if (org) {
-			if (exists)
-				camel_pstring_free(mi->info.from);
-			if (org->display_name && org->display_name[0])
-				mi->info.from = camel_pstring_strdup (org->display_name);
-			else if (org->email && org->email[0])
-				mi->info.from = camel_pstring_strdup (org->email);
+			GString *str;
+			str = g_string_new ("");
+			if (org->display_name && org->display_name[0]) 
+				str = g_string_append (str, org->display_name);
+			if (org->email && org->email[0]) { 
+				g_string_append (str, "<");
+				str = g_string_append (str, org->email);
+				g_string_append (str, ">");
+			}
+			mi->info.from = camel_pstring_strdup (str->str);
+			g_string_free (str, TRUE);
 		}
 		g_string_truncate (str, 0);
 		recp_list = e_gw_item_get_recipient_list (item);
@@ -1369,10 +1376,17 @@ gw_update_summary ( CamelFolder *folder,
 
 		org = e_gw_item_get_organizer (item); 
 		if (org) {
-			if (org->display_name && org->display_name[0])
-				mi->info.from = camel_pstring_strdup (org->display_name);
-			else if (org->email && org->email[0])
-				mi->info.from = camel_pstring_strdup (org->email);
+			GString *str;
+			str = g_string_new ("");
+			if (org->display_name && org->display_name[0]) 
+				str = g_string_append (str, org->display_name);
+			if (org->email && org->email[0]) { 
+				g_string_append (str, "<");
+				str = g_string_append (str, org->email);
+				g_string_append (str, ">");
+			}
+			mi->info.from = camel_pstring_strdup (str->str);
+			g_string_free (str, TRUE);
 		}
 		g_string_truncate (str, 0);
 		recp_list = e_gw_item_get_recipient_list (item);
openSUSE Build Service is sponsored by