diff options
author | Milan Crha <mcrha@redhat.com> | 2011-03-07 19:32:32 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2011-03-07 19:32:32 +0800 |
commit | 6ad4de8a4ef6139d48bf13e9c817002bf1591e53 (patch) | |
tree | e8328983960ab615890a85830d88d50701241f58 /shell | |
parent | 40da2dc117f398fd1140f804e9501fe975b8c184 (diff) | |
download | gsoc2013-evolution-6ad4de8a4ef6139d48bf13e9c817002bf1591e53.tar.gz gsoc2013-evolution-6ad4de8a4ef6139d48bf13e9c817002bf1591e53.tar.zst gsoc2013-evolution-6ad4de8a4ef6139d48bf13e9c817002bf1591e53.zip |
Bug #644107 - Local addressbooks created without relative_uri set
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-migrate.c | 22 |
1 files changed, 18 insertions, 4 deletions
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; |