src/blist.c

changeset 9620
fe99fcea5c1c
parent 9462
37877d099bc1
child 9713
bb37562302a1
--- 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;

mercurial