[empathy/mc5] Have log_store_empathy_search_hit_new lookup accounts properly



commit f23c28d9775e5679fa17568cb49e296b8251e0ea
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date:   Mon Aug 24 00:22:54 2009 +0100

    Have log_store_empathy_search_hit_new lookup accounts properly

 libempathy/empathy-log-store-empathy.c |   24 +++++++++++++++++-------
 1 files changed, 17 insertions(+), 7 deletions(-)
---
diff --git a/libempathy/empathy-log-store-empathy.c b/libempathy/empathy-log-store-empathy.c
index 723ee64..2049fc2 100644
--- a/libempathy/empathy-log-store-empathy.c
+++ b/libempathy/empathy-log-store-empathy.c
@@ -389,11 +389,11 @@ log_store_empathy_search_hit_new (EmpathyLogStore *self,
 {
   EmpathyLogStoreEmpathyPriv *priv = GET_PRIV (self);
   EmpathyLogSearchHit *hit;
-  gchar *unescaped;
   gchar *account_name;
   const gchar *end;
   gchar **strv;
   guint len;
+  GList *accounts, *l;
 
   if (!g_str_has_suffix (filename, LOG_FILENAME_SUFFIX))
     return NULL;
@@ -413,15 +413,25 @@ log_store_empathy_search_hit_new (EmpathyLogStore *self,
   else
     account_name = strv[len-3];
 
-  unescaped = g_strdup_printf ("/%s", g_strdelimit (account_name, "%", '/'));
+  accounts = empathy_account_manager_dup_accounts(priv->account_manager);
+
+  for (l = accounts; l != NULL; l = g_list_next (l))
+    {
+      EmpathyAccount *account = EMPATHY_ACCOUNT (l->data);
+      gchar *name;
+      name = log_store_account_to_dirname (account);
+      if (!tp_strdiff (name, account_name))
+        {
+          g_assert (hit->account == NULL);
+          hit->account = account;
+          g_object_ref (account);
+        }
+      g_object_unref (account);
+    }
+  g_list_free (accounts);
 
-  hit->account = empathy_account_manager_get_account (priv->account_manager,
-    unescaped);
-  if (hit->account != NULL)
-    g_object_ref (hit->account);
   hit->filename = g_strdup (filename);
 
-  g_free (unescaped);
   g_strfreev (strv);
 
   return hit;



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