evolution-data-server r8521 - in trunk/addressbook: . backends/groupwise backends/ldap libebook



Author: mcrha
Date: Fri Feb 22 18:26:56 2008
New Revision: 8521
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=8521&view=rev

Log:
2008-02-22  Milan Crha  <mcrha redhat com>

	** Part of fix for bug #514836

	* libebook/e-vcard.h:
	* libebook/e-destination.c: (e_destination_set_contact),
	(e_destination_export_to_vcard_attribute):
	Obsoleting EVC_X_DEST_EMAIL and EVC_X_DEST_NAME.
	* backends/ldap/e-book-backend-ldap.c: (member_populate):
	* backends/groupwise/e-book-backend-groupwise.c:
	(populate_contact_members): Obsoleting EVC_X_DEST_EMAIL and
	EVC_X_DEST_NAME and one leak fix.



Modified:
   trunk/addressbook/ChangeLog
   trunk/addressbook/backends/groupwise/e-book-backend-groupwise.c
   trunk/addressbook/backends/ldap/e-book-backend-ldap.c
   trunk/addressbook/libebook/e-destination.c
   trunk/addressbook/libebook/e-vcard.h

Modified: trunk/addressbook/backends/groupwise/e-book-backend-groupwise.c
==============================================================================
--- trunk/addressbook/backends/groupwise/e-book-backend-groupwise.c	(original)
+++ trunk/addressbook/backends/groupwise/e-book-backend-groupwise.c	Fri Feb 22 18:26:56 2008
@@ -765,14 +765,21 @@
 		e_vcard_attribute_add_param_with_value (attr,
                                                         e_vcard_attribute_param_new (EVC_X_DEST_CONTACT_UID),
 							member->id);
-		e_vcard_attribute_add_param_with_value (attr,
-                                                        e_vcard_attribute_param_new (EVC_X_DEST_EMAIL),
-							member->email);
-		if (member->name)
-			e_vcard_attribute_add_param_with_value (attr,
-                                                        e_vcard_attribute_param_new (EVC_X_DEST_NAME),
-							member->name);
-		e_vcard_attribute_add_value (attr, member->email);
+		if (member->name) {
+			int len = strlen (member->name);
+			char *value;
+
+			if (member->name [0] == '\"' && member->name [len - 1] == '\"')
+				value = g_strdup_printf ("%s %s", member->name, member->email);
+			else
+				value = g_strdup_printf ("\"%s\" %s", member->name, member->email);
+
+			e_vcard_attribute_add_value (attr, value);
+			g_free (value);
+		} else {
+			e_vcard_attribute_add_value (attr, member->email);
+		}
+
 		e_vcard_add_attribute (E_VCARD (contact), attr);
 	}
 }

Modified: trunk/addressbook/backends/ldap/e-book-backend-ldap.c
==============================================================================
--- trunk/addressbook/backends/ldap/e-book-backend-ldap.c	(original)
+++ trunk/addressbook/backends/ldap/e-book-backend-ldap.c	Fri Feb 22 18:26:56 2008
@@ -2569,12 +2569,25 @@
 		member_info = g_strsplit (values [i], ";", -1);
 
 		attr = e_vcard_attribute_new (NULL, EVC_EMAIL);
-		e_vcard_attribute_add_param_with_value (attr, e_vcard_attribute_param_new (EVC_X_DEST_EMAIL), member_info [0]);
 		e_vcard_attribute_add_param_with_value (attr, e_vcard_attribute_param_new (EVC_X_DEST_CONTACT_UID), member_info [1]);
-		if (member_info [2])
-			e_vcard_attribute_add_param_with_value (attr, e_vcard_attribute_param_new (EVC_X_DEST_NAME), member_info [2]);
-		e_vcard_attribute_add_value (attr, member_info [0]);
+
+		if (member_info [2]) {
+			int len = strlen (member_info [2]);
+			char *value;
+
+			if (member_info [2][0] == '\"' && member_info [2][len - 1] == '\"')
+				value = g_strdup_printf ("%s %s", member_info [2], member_info [0]);
+			else
+				value = g_strdup_printf ("\"%s\" %s", member_info [2], member_info [0]);
+
+			e_vcard_attribute_add_value (attr, value);
+			g_free (value);
+		} else {
+			e_vcard_attribute_add_value (attr, member_info [0]);
+		}
+
 		e_vcard_add_attribute (E_VCARD (contact), attr);
+		g_strfreev (member_info);
 	}
 }
 

Modified: trunk/addressbook/libebook/e-destination.c
==============================================================================
--- trunk/addressbook/libebook/e-destination.c	(original)
+++ trunk/addressbook/libebook/e-destination.c	Fri Feb 22 18:26:56 2008
@@ -404,8 +404,7 @@
 					GList *p;
 					EDestination *list_dest = e_destination_new ();
 					char *contact_uid = NULL;
-					char *email_addr = NULL;
-					char *name = NULL;
+					char *value;
 					int email_num = -1;
 					gboolean html_pref = FALSE;
 
@@ -423,16 +422,6 @@
 							email_num = v ? atoi (v->data) : -1;
 						}
 						else if (!g_ascii_strcasecmp (param_name,
-									      EVC_X_DEST_NAME)) {
-							GList *v = e_vcard_attribute_param_get_values (param);
-							name = v ? v->data : NULL;
-						}
-						else if (!g_ascii_strcasecmp (param_name,
-									      EVC_X_DEST_EMAIL)) {
-							GList *v = e_vcard_attribute_param_get_values (param);
-							email_addr = v ? v->data : NULL;
-						}
-						else if (!g_ascii_strcasecmp (param_name,
 									      EVC_X_DEST_HTML_MAIL)) {
 							GList *v = e_vcard_attribute_param_get_values (param);
 							html_pref = v ? !g_ascii_strcasecmp (v->data, "true") : FALSE;
@@ -440,10 +429,12 @@
 					}
 
 					if (contact_uid) e_destination_set_contact_uid (list_dest, contact_uid, email_num);
-					if (name) e_destination_set_name (list_dest, name);
-					if (email_addr) e_destination_set_email (list_dest, email_addr);
 					e_destination_set_html_mail_pref (list_dest, html_pref);
 					list_dest->priv->ignored = FALSE;
+					value = e_vcard_attribute_get_value (attr);
+					if (value)
+						e_destination_set_raw (list_dest, value);
+					g_free (value);
 
 					dest->priv->list_dests = g_list_append (dest->priv->list_dests, list_dest);
 				}
@@ -1625,14 +1616,6 @@
 							e_vcard_attribute_param_new (EVC_X_DEST_EMAIL_NUM),
 							buf);
 	}
-	if (e_destination_get_name (dest))
-		e_vcard_attribute_add_param_with_value (attr,
-							e_vcard_attribute_param_new (EVC_X_DEST_NAME),
-							e_destination_get_name (dest));
-	if (e_destination_get_email (dest))
-		e_vcard_attribute_add_param_with_value (attr,
-							e_vcard_attribute_param_new (EVC_X_DEST_EMAIL),
-							e_destination_get_email (dest));
 	e_vcard_attribute_add_param_with_value (attr,
 						e_vcard_attribute_param_new (EVC_X_DEST_HTML_MAIL),
 						e_destination_get_html_mail_pref (dest) ? "TRUE" : "FALSE");

Modified: trunk/addressbook/libebook/e-vcard.h
==============================================================================
--- trunk/addressbook/libebook/e-vcard.h	(original)
+++ trunk/addressbook/libebook/e-vcard.h	Fri Feb 22 18:26:56 2008
@@ -67,10 +67,12 @@
 #define EVC_X_CALLBACK         "X-EVOLUTION-CALLBACK"
 #define EVC_X_COMPANY          "X-EVOLUTION-COMPANY"
 #define EVC_X_DEST_CONTACT_UID "X-EVOLUTION-DEST-CONTACT-UID"
+#ifndef EDS_DISABLE_DEPRECATED
 #define EVC_X_DEST_EMAIL       "X-EVOLUTION-DEST-EMAIL"
+#define EVC_X_DEST_NAME        "X-EVOLUTION-DEST-NAME"
+#endif /* EDS_DISABLE_DEPRECATED */
 #define EVC_X_DEST_EMAIL_NUM   "X-EVOLUTION-DEST-EMAIL-NUM"
 #define EVC_X_DEST_HTML_MAIL   "X-EVOLUTION-DEST-HTML-MAIL"
-#define EVC_X_DEST_NAME        "X-EVOLUTION-DEST-NAME"
 #define EVC_X_DEST_SOURCE_UID  "X-EVOLUTION-DEST-SOURCE-UID"
 #define EVC_X_FILE_AS          "X-EVOLUTION-FILE-AS"
 #define EVC_X_ICQ              "X-ICQ"



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