evolution-data-server r9802 - branches/gnome-2-24/camel/providers/imap



Author: sragavan
Date: Fri Dec  5 06:24:36 2008
New Revision: 9802
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9802&view=rev

Log:
2008-12-05  Srinivasa Ragavan  <sragavan novell com>

	** Fix for bug #558883

	* camel/providers/imap/camel-imap-summary.c: Don't do DB sort from
	IMAP.




Modified:
   branches/gnome-2-24/camel/providers/imap/ChangeLog
   branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c

Modified: branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c
==============================================================================
--- branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c	(original)
+++ branches/gnome-2-24/camel/providers/imap/camel-imap-summary.c	Fri Dec  5 06:24:36 2008
@@ -163,6 +163,22 @@
 	return (a1 < a1) ? -1 : (a1 > a2) ? 1 : 0;
 }
 
+static int
+uid_compare (const void *va, const void *vb)
+{
+	const char **sa = (const char **)va, **sb = (const char **)vb;
+	unsigned long a, b;
+
+	a = strtoul (*sa, NULL, 10);
+	b = strtoul (*sb, NULL, 10);
+	if (a < b)
+		return -1;
+	else if (a == b)
+		return 0;
+	else
+		return 1;
+}
+
 /**
  * camel_imap_summary_new:
  * @folder: Parent folder.
@@ -181,7 +197,8 @@
 	camel_exception_init (&ex);
 
 	summary->folder = folder;
-	if (folder) {
+	/* Don't do DB sort. Its pretty slow to load */
+	if (folder && 0) {
 		camel_db_set_collate (folder->parent_store->cdb_r, "uid", "imap_uid_sort", (CamelDBCollate)sort_uid_cmp);
 		summary->sort_by = "uid";
 		summary->collate = "imap_uid_sort";
@@ -199,6 +216,8 @@
 		camel_exception_clear (&ex);
 	}
 
+	g_ptr_array_sort (summary->uids, (GCompareFunc) uid_compare); 
+
 	return summary;
 }
 



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