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




well strictly speaking you shouldn't be using that function at all anymore.  i seriously wanted to remove it long ago because it is just a nasty mess.  there's not enough control over what it does, and it isn't saving much code.  and its been the cause of many many bugs.

but sure it can go in for now, but i think you should consider rewriting your code to not need it.  maildir/mbox don't need it for example.

On Wed, 2005-02-09 at 15:18 -0500, Jeffrey Stedfast wrote:
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

text/plain attachment (71747.patch), ""
? 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 = "" (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]