diff src/blist.c @ 9620:c001be3c330e

[gaim-migrate @ 10464] Changes to those get_alias functions in blist.c from Christopher (siege) O'Brien: Renames gaim_get_buddy_alias to gaim_buddy_get_alias Renames gaim_get_buddy_alias_only to _gaim_buddy_get_alias_only Adds function gaim_buddy_get_contact_alias, which looks up a buddy's appropriate display name by order of: buddy alias; contact alias; server alias; buddy name. Note that the buddy alias is still the top-priority. Changed conversation.c to use _get_contact_alias rather than _get_alias The end result of this is that aliasing the contact will result in conversations with any of that contact's buddies using the contact alias. This allows people like myself to no longer have to alias each buddy to the same alias in order to achieve the same effect. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sat, 31 Jul 2004 21:29:40 +0000
parents dfa5bc2c655b
children db62420a53a2
line wrap: on
line diff
--- a/src/blist.c	Sat Jul 31 20:48:03 2004 +0000
+++ b/src/blist.c	Sat Jul 31 21:29:40 2004 +0000
@@ -916,7 +916,7 @@
 	if (contact->alias)
 		return contact->alias;
 
-	return gaim_get_buddy_alias(contact->priority);
+	return gaim_buddy_get_alias(contact->priority);
 }
 
 GaimGroup *gaim_group_new(const char *name)
@@ -1100,9 +1100,6 @@
 	g_return_if_fail(group != NULL);
 	g_return_if_fail(GAIM_BLIST_NODE_IS_GROUP((GaimBlistNode *)group));
 
-	/* XXX - Wha?  Why does this exist here? */
-	//if (!gaimbuddylist)
-		//gaimbuddylist = gaim_blist_new();
 	ops = gaimbuddylist->ui_ops;
 
 	if (!gaimbuddylist->root) {
@@ -1367,7 +1364,7 @@
 	return contact->priority;
 }
 
-const char *gaim_get_buddy_alias_only(GaimBuddy *buddy)
+const char *gaim_buddy_get_alias_only(GaimBuddy *buddy)
 {
 	g_return_val_if_fail(buddy != NULL, NULL);
 
@@ -1383,20 +1380,52 @@
 	return NULL;
 }
 
-const char *gaim_get_buddy_alias(GaimBuddy *buddy)
+
+const char *gaim_buddy_get_contact_alias(GaimBuddy *buddy)
 {
-	const char *ret;
-
-	/* Are there ever times when we WANT to return "Unknown"? */
-	/* g_return_val_if_fail(buddy != NULL, NULL); */
-	if (!buddy)
-		return _("Unknown");
-
-	ret = gaim_get_buddy_alias_only(buddy);
-
-	return ret ? ret : buddy->name;
+	GaimContact *c;
+
+	g_return_val_if_fail(buddy != NULL, NULL);
+
+	/* Search for an alias for the buddy. In order of precedence: */
+	/* The buddy alias */
+	if (buddy->alias != NULL)
+		return buddy->alias;
+
+	/* The contact alias */
+	c = gaim_buddy_get_contact(buddy);
+	if ((c != NULL) && (c->alias != NULL))
+		return c->alias;
+
+	/* The server alias, if preferences say so */
+	if ((buddy->server_alias) && (*buddy->server_alias) &&
+			(gaim_prefs_get_bool("/core/buddies/use_server_alias")))
+		return buddy->server_alias;
+
+	/* The buddy's user name (i.e. no alias) */
+	return buddy->name;
 }
 
+
+const char *gaim_buddy_get_alias(GaimBuddy *buddy)
+{
+	g_return_val_if_fail(buddy != NULL, NULL);
+
+	/* Search for an alias for the buddy. In order of precedence: */
+	/* The buddy alias */
+	if (buddy->alias != NULL)
+		return buddy->alias;
+
+	/* The server alias, if preferences say so */
+	if ((buddy->server_alias) && (*buddy->server_alias) &&
+			(gaim_prefs_get_bool("/core/buddies/use_server_alias")))
+		return buddy->server_alias;
+
+	/* The buddy's user name (i.e. no alias) */
+	return buddy->name;
+}
+
+
 const char *gaim_chat_get_name(GaimChat *chat)
 {
 	struct proto_chat_entry *pce;