aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog7
-rw-r--r--addressbook/backend/ebook/e-card.c10
2 files changed, 16 insertions, 1 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 6c4c6c6292..ec6934dbec 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,5 +1,12 @@
2002-11-26 Chris Toshok <toshok@ximian.com>
+ [ roll forward from 1.2 branch, Fixes addressbook bug #28945 ]
+ * backend/ebook/e-card.c (e_card_get_vobject): if the email
+ property is xml, get the real address from the e-destination.
+ Fixes saving contact lists.
+
+2002-11-26 Chris Toshok <toshok@ximian.com>
+
* gui/widgets/e-minicard.c (e_minicard_reflow): remove redundant
setting of y2.
diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c
index 07926ddd84..67787a20f9 100644
--- a/addressbook/backend/ebook/e-card.c
+++ b/addressbook/backend/ebook/e-card.c
@@ -575,7 +575,15 @@ e_card_get_vobject (const ECard *card, gboolean assumeUTF8)
EIterator *iterator = e_list_get_iterator(card->email);
for ( ; e_iterator_is_valid(iterator) ;e_iterator_next(iterator) ) {
VObject *emailprop;
- emailprop = ADD_PROP_VALUE(vobj, VCEmailAddressProp, (char *) e_iterator_get(iterator));
+ char *e = (char *) e_iterator_get(iterator);
+ if (!strncmp (e, "<?xml", 5)) {
+ EDestination *dest = e_destination_import (e);
+ emailprop = ADD_PROP_VALUE(vobj, VCEmailAddressProp, e_destination_get_address (dest));
+ g_object_unref (dest);
+ }
+ else {
+ emailprop = ADD_PROP_VALUE(vobj, VCEmailAddressProp, e);
+ }
addProp (emailprop, VCInternetProp);
}
g_object_unref(iterator);