aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-03-07 19:32:32 +0800
committerMilan Crha <mcrha@redhat.com>2011-03-07 19:32:32 +0800
commit6ad4de8a4ef6139d48bf13e9c817002bf1591e53 (patch)
treee8328983960ab615890a85830d88d50701241f58 /shell
parent40da2dc117f398fd1140f804e9501fe975b8c184 (diff)
downloadgsoc2013-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.c22
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;