diff gtk/plugins/gevolution/gevo-util.c @ 14964:89ef5680f228

[gaim-migrate @ 17743] Split out the logic for finding a buddy's e-mail address into a separate function. Show the "Send E-mail" menu item only if an e-mail address was found. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Mon, 13 Nov 2006 04:16:49 +0000
parents 009db0b357b5
children
line wrap: on
line diff
--- a/gtk/plugins/gevolution/gevo-util.c	Mon Nov 13 03:53:46 2006 +0000
+++ b/gtk/plugins/gevolution/gevo-util.c	Mon Nov 13 04:16:49 2006 +0000
@@ -146,3 +146,38 @@
 
 	return result;
 }
+
+char *
+gevo_get_email_for_buddy(GaimBuddy *buddy)
+{
+	EContact *contact;
+	char *mail = NULL;
+
+	contact = gevo_search_buddy_in_contacts(buddy, NULL);
+
+	if (contact != NULL)
+	{
+		mail = g_strdup(e_contact_get(contact, E_CONTACT_EMAIL_1));
+		g_object_unref(contact);
+	}
+
+	if (mail == NULL)
+	{
+		GaimAccount *account = gaim_buddy_get_account(buddy);
+		const char *prpl_id = gaim_account_get_protocol_id(account);
+
+		if (!strcmp(prpl_id, "prpl-msn"))
+		{
+			mail = g_strdup(gaim_normalize(account,
+										   gaim_buddy_get_name(buddy)));
+		}
+		else if (!strcmp(prpl_id, "prpl-yahoo"))
+		{
+			mail = g_strdup_printf("%s@yahoo.com",
+								   gaim_normalize(account,
+												  gaim_buddy_get_name(buddy)));
+		}
+	}
+
+	return mail;
+}