summaryrefslogtreecommitdiff
path: root/libpurple/account.c
diff options
context:
space:
mode:
authorJohn Bailey <rekkanoryo@rekkanoryo.org>2009-10-31 17:52:54 +0000
committerJohn Bailey <rekkanoryo@rekkanoryo.org>2009-10-31 17:52:54 +0000
commit631931fe640b45c0bf623406f101cffb62a19906 (patch)
tree89f82be2050568a05d57320430137deeeb07e82b /libpurple/account.c
parent4bfaae6f20ad3a8305457b4169ec6db8192bfdda (diff)
parentcb3d8a82a3a2c1c3525be5da071e0f70197c59e6 (diff)
downloadpidgin-631931fe640b45c0bf623406f101cffb62a19906.tar.gz
propagate from branch 'im.pidgin.pidgin' (head e8995c6648becc2478de4dc29691d4c95d90d27b)
to branch 'im.pidgin.pidgin.next.minor' (head 06ed2b4fb291addacb5f426f401275e6acb050d2)
Diffstat (limited to 'libpurple/account.c')
-rw-r--r--libpurple/account.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/libpurple/account.c b/libpurple/account.c
index 78100bbb99..89117f4c1c 100644
--- a/libpurple/account.c
+++ b/libpurple/account.c
@@ -2032,6 +2032,42 @@ purple_account_get_connection(const PurpleAccount *account)
return account->gc;
}
+const gchar *
+purple_account_get_name_for_display(const PurpleAccount *account)
+{
+ PurpleBuddy *self = NULL;
+ PurpleConnection *gc = NULL;
+ const gchar *name = NULL, *username = NULL, *displayname = NULL;
+
+ name = purple_account_get_alias(account);
+
+ if (name) {
+ return name;
+ }
+
+ username = purple_account_get_username(account);
+ self = purple_find_buddy((PurpleAccount *)account, username);
+
+ if (self) {
+ const gchar *calias= purple_buddy_get_contact_alias(self);
+
+ /* We don't want to return the buddy name if the buddy/contact
+ * doesn't have an alias set. */
+ if (!purple_strequal(username, calias)) {
+ return calias;
+ }
+ }
+
+ gc = purple_account_get_connection(account);
+ displayname = purple_connection_get_display_name(gc);
+
+ if (displayname) {
+ return displayname;
+ }
+
+ return username;
+}
+
gboolean
purple_account_get_remember_password(const PurpleAccount *account)
{