diff -up evolution-data-server-3.8.5/camel/camel-imapx-store-summary.c.eds-1098036 evolution-data-server-3.8.5/camel/camel-imapx-store-summary.c
--- evolution-data-server-3.8.5/camel/camel-imapx-store-summary.c.eds-1098036 2013-07-23 13:57:54.000000000 +0200
+++ evolution-data-server-3.8.5/camel/camel-imapx-store-summary.c 2014-05-19 15:39:42.145061474 +0200
@@ -355,17 +355,26 @@ camel_imapx_store_summary_namespace_find
{
gint len;
CamelIMAPXStoreNamespace *ns;
+ CamelIMAPXStoreNamespace *namespaces[] =
+ {
+ s->namespaces->personal,
+ s->namespaces->other,
+ s->namespaces->shared,
+ NULL
+ };
+ gint ii = 0;
- /* NB: this currently only compares against 1 namespace, in future compare against others */
- /* CHEN TODO */
- ns = s->namespaces->personal;
- while (ns) {
+ for (ii = 0; ii < 3; ii++) {
+ ns = namespaces[ii];
+ if (!ns)
+ continue;
+
+ d ("find_path: comparing namespace '%s' to name '%s'\n", ns->path, path);
len = strlen (ns->path);
if (len == 0
|| (strncmp (ns->path, path, len) == 0
&& (path[len] == '/' || path[len] == 0)))
break;
- ns = NULL;
}
/* have a default? */
@@ -378,11 +387,20 @@ camel_imapx_store_summary_namespace_find
{
gint len = 0;
CamelIMAPXStoreNamespace *ns;
+ CamelIMAPXStoreNamespace *namespaces[] =
+ {
+ s->namespaces->personal,
+ s->namespaces->other,
+ s->namespaces->shared,
+ NULL
+ };
+ gint ii = 0;
+
+ for (ii = 0; ii < 3; ii++) {
+ ns = namespaces[ii];
+ if (!ns)
+ continue;
- /* NB: this currently only compares against 1 namespace, in future compare against others */
- /* CHEN TODO */
- ns = s->namespaces->personal;
- while (ns) {
if (ns->full_name)
len = strlen (ns->full_name);
d ("find_full: comparing namespace '%s' to name '%s'\n", ns->full_name, full);
@@ -390,7 +408,6 @@ camel_imapx_store_summary_namespace_find
|| (strncmp (ns->full_name, full, len) == 0
&& (full[len] == ns->sep || full[len] == 0)))
break;
- ns = NULL;
}
/* have a default? */