From 6ad4de8a4ef6139d48bf13e9c817002bf1591e53 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 7 Mar 2011 12:32:32 +0100 Subject: Bug #644107 - Local addressbooks created without relative_uri set --- shell/e-shell-migrate.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'shell') diff --git a/shell/e-shell-migrate.c b/shell/e-shell-migrate.c index dbed197dce..41d829b9e6 100644 --- a/shell/e-shell-migrate.c +++ b/shell/e-shell-migrate.c @@ -819,16 +819,14 @@ merge_duplicate_local_sources (GConfClient *client, const gchar *gconf_key) } /* merging respective sources */ - for (sources = e_source_group_peek_sources (group); - sources != NULL; sources = sources->next) { + for (sources = e_source_group_peek_sources (group); sources != NULL; sources = sources->next) { GSList *liter; ESource *dupe_source = sources->data; if (!dupe_source) continue; - for (liter = e_source_group_peek_sources (first_local); - liter != NULL; liter = liter->next) { + for (liter = e_source_group_peek_sources (first_local); liter != NULL; liter = liter->next) { ESource *my_source = liter->data; const gchar *val1, *val2; @@ -861,6 +859,22 @@ merge_duplicate_local_sources (GConfClient *client, const gchar *gconf_key) to_remove = g_slist_prepend (to_remove, group); } + if (first_local) { + GSList *sources; + + for (sources = e_source_group_peek_sources (first_local); sources != NULL; sources = sources->next) { + ESource *source = sources->data; + const gchar *relative_uri; + + if (!source) + continue; + + relative_uri = e_source_peek_relative_uri (source); + if (!relative_uri || !*relative_uri) + e_source_set_relative_uri (source, e_source_peek_uid (source)); + } + } + if (!to_remove) { g_object_unref (source_list); return; -- cgit v1.2.3