[evolution-patches] fix for bug #71747 (camel)



http://bugzilla.ximian.com/show_bug.cgi?id=71747

This may or may not be related to the bug about creating folders in
IMAP4 with a namespace set.

I know that Michael wants me to change the IMAP4 code to use url paths
instead of fragments for the folder names (and I will get to it), but I
think this fix is appropriate even so.

Jeff

? 71747.patch
? camel-mime-tables.c
? tests/folder/test10
? tests/folder/test11
? tests/message/test4
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/ChangeLog,v
retrieving revision 1.2429
diff -u -r1.2429 ChangeLog
--- ChangeLog	7 Feb 2005 22:06:57 -0000	1.2429
+++ ChangeLog	9 Feb 2005 20:11:24 -0000
@@ -1,3 +1,9 @@
+2005-02-09  Jeffrey Stedfast  <fejj novell com>
+
+	* camel-store.c (camel_folder_info_build): Fix the FIXME about
+	using fragment instead of path for those urls which use fragment
+	instead. Also fixes bug #71747.
+
 2005-02-07  JP Rosevear  <jpr novell com>
 
 	* camel-iconv.c: remove dead file
Index: camel-store.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/camel/camel-store.c,v
retrieving revision 1.160
diff -u -r1.160 camel-store.c
--- camel-store.c	1 Feb 2005 08:36:44 -0000	1.160
+++ camel-store.c	9 Feb 2005 20:11:24 -0000
@@ -945,6 +945,7 @@
 			} else {
 				/* we are missing a folder in the heirarchy so
 				   create a fake folder node */
+				const char *path;
 				CamelURL *url;
 				char *sep;
 
@@ -957,17 +958,21 @@
 						pfi->name = g_strdup (pname);
 				} else
 					pfi->name = g_strdup (pname);
-
-				/* FIXME: url's with fragments should have the fragment truncated, not path */
+				
 				url = camel_url_new (fi->uri, NULL);
-				sep = strrchr (url->path, separator);
+				if (url->fragment)
+					path = url->fragment;
+				else
+					path = url->path + 1;
+				
+				sep = strrchr (path, separator);
 				if (sep)
 					*sep = '\0';
 				else
 					d(g_warning ("huh, no \"%c\" in \"%s\"?", separator, fi->url));
 				
-				pfi->full_name = g_strdup(url->path+1);
-
+				pfi->full_name = g_strdup (path);
+				
 				/* since this is a "fake" folder node, it is not selectable */
 				camel_url_set_param (url, "noselect", "yes");
 				pfi->uri = camel_url_to_string (url, 0);


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