[evolution-patches] patch for addressbook 61719



comments in the code should explain it.

Chris
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/ChangeLog,v
retrieving revision 1.182
diff -u -r1.182 ChangeLog
--- ChangeLog	3 Aug 2004 23:46:39 -0000	1.182
+++ ChangeLog	3 Aug 2004 23:47:30 -0000
@@ -1,5 +1,11 @@
 2004-08-03  Chris Toshok  <toshok ximian com>
 
+	[ fixes #61719 ]
+	* libebook/e-vcard.c (read_attribute_params): fix the one
+	remaining g_assert_not_reached case.
+
+2004-08-03  Chris Toshok  <toshok ximian com>
+
 	* tests/vcard/Makefile.am (EXTRA_DIST): add 11.vcf.
 
 	* tests/vcard/11.vcf: new test, for missing attribute parameters.
Index: libebook/e-vcard.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libebook/e-vcard.c,v
retrieving revision 1.15
diff -u -r1.15 e-vcard.c
--- libebook/e-vcard.c	7 Jun 2004 21:03:32 -0000	1.15
+++ libebook/e-vcard.c	3 Aug 2004 23:47:30 -0000
@@ -399,8 +399,20 @@
 						lp = g_utf8_next_char (lp);
 				}
 				else {
-					/* XXX more here */
-					g_assert_not_reached ();
+					/* we've got an attribute with a truly empty
+					   attribute parameter.  So it's of the form:
+					   
+					   ATTR;[PARAM=value;]*;[PARAM=value;]*:
+
+					   (note the extra ';')
+
+					   the only thing to do here is, well.. nothing.
+					   we skip over the character if it's not a colon,
+					   and the rest is handled for us: We'll either
+					   continue through the loop again if we hit a ';',
+					   or we'll break out correct below if it was a ':' */
+					if (!colon)
+						lp = g_utf8_next_char (lp);
 				}
 			}
 			if (param && !comma) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]