Hi, eab_contact_list_from_string currently expects vcards to be separated by 2 new lines characters when they are concatenated in a single file. The attached patch looks for an "END:VCARD" string instead. Christophe
Index: addressbook/ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/ChangeLog,v
retrieving revision 1.1684
diff -u -r1.1684 ChangeLog
--- addressbook/ChangeLog 30 Apr 2004 18:23:16 -0000 1.1684
+++ addressbook/ChangeLog 1 May 2004 12:02:36 -0000
@@ -1,3 +1,9 @@
+2004-05-01 Christophe Fergeau <teuf gnome org>
+
+ * util/eab-book-util.c (eab_contact_list_from_string): don't assume
+ that if a file contains several vcards, they will be neatly separated
+ by \n\n
+
2004-04-30 Chris Toshok <toshok ximian com>
* util/e-destination.c (e_destination_set_contact): don't use
Index: addressbook/util/eab-book-util.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/util/eab-book-util.c,v
retrieving revision 1.4
diff -u -r1.4 eab-book-util.c
--- addressbook/util/eab-book-util.c 23 Jan 2004 19:35:02 -0000 1.4
+++ addressbook/util/eab-book-util.c 1 May 2004 12:02:36 -0000
@@ -199,22 +199,21 @@
do {
char *temp;
- blank_line = strstr (q, "\n\n");
+ blank_line = strstr (q, "END:VCARD");
if (blank_line) {
+ blank_line += strlen ("END:VCARD");
temp = g_strndup (q, blank_line - q);
}
else {
temp = g_strdup (q);
}
-
- contacts = g_list_append (contacts, e_contact_new_from_vcard (temp));
+ g_strstrip (temp);
+ if ((temp != NULL) && (*temp != '\0')) {
+ contacts = g_list_append (contacts, e_contact_new_from_vcard (temp));
+ }
g_free (temp);
-
- if (blank_line)
- q = blank_line + 2;
- else
- q = NULL;
+ q = blank_line;
} while (blank_line);
g_free (p);
Attachment:
signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=