# HG changeset patch # User Mark Doliner # Date 1091309380 0 # Node ID c001be3c330e2e0d874d5df07031a849d5000dd4 # Parent da88e2cd5c5334a553d223f92a3b647b2ed31741 [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 diff -r da88e2cd5c53 -r c001be3c330e plugins/ChangeLog.API --- a/plugins/ChangeLog.API Sat Jul 31 20:48:03 2004 +0000 +++ b/plugins/ChangeLog.API Sat Jul 31 21:29:40 2004 +0000 @@ -3,6 +3,11 @@ version 0.81cvs Commands API: * Most functions now have a void *data argument. + + Blist API: + * Added gaim_buddy_get_contact_alias + * Renamed gaim_get_buddy_alias to gaim_buddy_get_alias + * Renamed gaim_get_buddy_alias_only to gaim_buddy_get_alias_only Conversation API: * Changed: gaim_conv_chat_add_user() (added flags parameter) diff -r da88e2cd5c53 -r c001be3c330e plugins/statenotify.c --- a/plugins/statenotify.c Sat Jul 31 20:48:03 2004 +0000 +++ b/plugins/statenotify.c Sat Jul 31 21:29:40 2004 +0000 @@ -23,7 +23,7 @@ if (conv == NULL) return; - who = gaim_get_buddy_alias(buddy); + who = gaim_buddy_get_alias(buddy); g_snprintf(buf, sizeof(buf), message, who); diff -r da88e2cd5c53 -r c001be3c330e plugins/tcl/tcl_cmds.c --- a/plugins/tcl/tcl_cmds.c Sat Jul 31 20:48:03 2004 +0000 +++ b/plugins/tcl/tcl_cmds.c Sat Jul 31 21:29:40 2004 +0000 @@ -275,7 +275,7 @@ if (node->type == GAIM_BLIST_CHAT_NODE) Tcl_SetStringObj(result, ((GaimChat *)node)->alias, -1); else if (node->type == GAIM_BLIST_BUDDY_NODE) - Tcl_SetStringObj(result, (char *)gaim_get_buddy_alias((GaimBuddy *)node), -1); + Tcl_SetStringObj(result, (char *)gaim_buddy_get_alias((GaimBuddy *)node), -1); return TCL_OK; break; case CMD_BUDDY_HANDLE: diff -r da88e2cd5c53 -r c001be3c330e plugins/ticker/ticker.c --- a/plugins/ticker/ticker.c Sat Jul 31 20:48:03 2004 +0000 +++ b/plugins/ticker/ticker.c Sat Jul 31 21:29:40 2004 +0000 @@ -154,7 +154,7 @@ g_signal_connect(G_OBJECT(td->ebox), "button-press-event", G_CALLBACK(buddy_click_cb), b); - td->label = gtk_label_new(gaim_get_buddy_alias(b)); + td->label = gtk_label_new(gaim_buddy_get_alias(b)); gtk_box_pack_start(GTK_BOX(hbox), td->label, FALSE, FALSE, 5); gtk_widget_show_all(td->ebox); diff -r da88e2cd5c53 -r c001be3c330e src/blist.c --- 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; diff -r da88e2cd5c53 -r c001be3c330e src/blist.h --- a/src/blist.h Sat Jul 31 20:48:03 2004 +0000 +++ b/src/blist.h Sat Jul 31 21:29:40 2004 +0000 @@ -529,16 +529,30 @@ * @param buddy The buddy whose name will be returned. * @return The alias (if set), server alias (if option is set), or NULL. */ -const char *gaim_get_buddy_alias_only(GaimBuddy *buddy); +const char *gaim_buddy_get_alias_only(GaimBuddy *buddy); /** - * Returns the correct name to display for a buddy. + * Returns the correct name to display for a buddy, taking the contact alias + * into account. In order of precedence: the buddy's alias; the buddy's + * contact alias; the buddy's server alias; the buddy's user name. + * + * @param buddy The buddy whose name will be returned + * @return The appropriate name or alias, or "Unknown" + * + */ +const char *gaim_buddy_get_contact_alias(GaimBuddy *buddy); + + +/** + * Returns the correct name to display for a buddy. In order of precedence: + * the buddy's alias; the buddy's server alias; the buddy's contact alias; + * the buddy's user name. * * @param buddy The buddy whose name will be returned. - * @return The alias (if set), server alias (if option is set), screenname, or "Unknown" + * @return The appropriate name or alias, or "Unknown" */ -const char *gaim_get_buddy_alias(GaimBuddy *buddy); +const char *gaim_buddy_get_alias(GaimBuddy *buddy); /** * Returns the correct name to display for a blist chat. diff -r da88e2cd5c53 -r c001be3c330e src/conversation.c --- a/src/conversation.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/conversation.c Sat Jul 31 21:29:40 2004 +0000 @@ -1100,7 +1100,7 @@ if (gaim_prefs_get_bool("/core/conversations/use_alias_for_title")) { if(gaim_conversation_get_type(conv) == GAIM_CONV_IM) { if(account && ((b = gaim_find_buddy(account, name)) != NULL)) - text = gaim_get_buddy_alias(b); + text = gaim_buddy_get_contact_alias(b); } else if(gaim_conversation_get_type(conv) == GAIM_CONV_CHAT) { if(account && ((chat = gaim_blist_find_chat(account, name)) != NULL)) text = chat->alias; @@ -1389,8 +1389,8 @@ if (gaim_account_get_alias(account) != NULL) who = account->alias; - else if (b != NULL && strcmp(b->name, gaim_get_buddy_alias(b))) - who = gaim_get_buddy_alias(b); + else if (b != NULL && strcmp(b->name, gaim_buddy_get_contact_alias(b))) + who = gaim_buddy_get_contact_alias(b); else if (gaim_connection_get_display_name(gc) != NULL) who = gaim_connection_get_display_name(gc); else @@ -1401,7 +1401,7 @@ gaim_conversation_get_name(conv)); if (b != NULL) - who = gaim_get_buddy_alias(b); + who = gaim_buddy_get_contact_alias(b); else who = gaim_conversation_get_name(conv); } @@ -1410,7 +1410,7 @@ b = gaim_find_buddy(account, who); if (b != NULL) - who = gaim_get_buddy_alias(b); + who = gaim_buddy_get_contact_alias(b); } } } diff -r da88e2cd5c53 -r c001be3c330e src/gtkblist.c --- a/src/gtkblist.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/gtkblist.c Sat Jul 31 21:29:40 2004 +0000 @@ -2727,7 +2727,7 @@ if(gtkcontactnode && !gtkcontactnode->contact_expanded && contact->alias) name = contact->alias; else - name = gaim_get_buddy_alias(b); + name = gaim_buddy_get_alias(b); esc = g_markup_escape_text(name, strlen(name)); prpl = gaim_find_prpl(gaim_account_get_protocol_id(b->account)); diff -r da88e2cd5c53 -r c001be3c330e src/gtkpounce.c --- a/src/gtkpounce.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/gtkpounce.c Sat Jul 31 21:29:40 2004 +0000 @@ -932,7 +932,7 @@ buddy = gaim_find_buddy(account, pouncee); - alias = gaim_get_buddy_alias(buddy); + alias = gaim_buddy_get_alias(buddy); /* Find the protocol id for the window title and/or message */ proto = gaim_find_prpl(gaim_account_get_protocol_id(account)); diff -r da88e2cd5c53 -r c001be3c330e src/protocols/msn/switchboard.c --- a/src/protocols/msn/switchboard.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/protocols/msn/switchboard.c Sat Jul 31 21:29:40 2004 +0000 @@ -180,7 +180,7 @@ char *str = NULL; if ((b = gaim_find_buddy(account, user)) != NULL) - username = gaim_escape_html(gaim_get_buddy_alias(b)); + username = gaim_escape_html(gaim_buddy_get_alias(b)); else username = gaim_escape_html(user); diff -r da88e2cd5c53 -r c001be3c330e src/protocols/novell/novell.c --- a/src/protocols/novell/novell.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/protocols/novell/novell.c Sat Jul 31 21:29:40 2004 +0000 @@ -266,7 +266,7 @@ gaim_blist_rename_buddy(buddy, nm_user_record_get_display_id(user_record)); - alias = gaim_get_buddy_alias(buddy); + alias = gaim_buddy_get_alias(buddy); if (alias == NULL || (strcmp(alias, buddy->name) == 0)) { gaim_blist_alias_buddy(buddy, nm_user_record_get_full_name(user_record)); @@ -2456,7 +2456,7 @@ /* Remove the GaimBuddy (we will add it back after adding it * to the server side list). Save the alias if there is one. */ - alias = gaim_get_buddy_alias(buddy); + alias = gaim_buddy_get_alias(buddy); if (alias && strcmp(alias, buddy->name)) nm_contact_set_display_name(contact, alias); diff -r da88e2cd5c53 -r c001be3c330e src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/protocols/oscar/oscar.c Sat Jul 31 21:29:40 2004 +0000 @@ -3341,7 +3341,7 @@ buddy->name, group->name); aim_ssi_sendauthrequest(od->sess, data->name, msg ? msg : _("Please authorize me so I can add you to my buddy list.")); if (!aim_ssi_itemlist_finditem(od->sess->ssi.local, group->name, buddy->name, AIM_SSI_TYPE_BUDDY)) - aim_ssi_addbuddy(od->sess, buddy->name, group->name, gaim_get_buddy_alias_only(buddy), NULL, NULL, 1); + aim_ssi_addbuddy(od->sess, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 1); } } } @@ -3373,8 +3373,8 @@ gchar *dialog_msg, *nombre; buddy = gaim_find_buddy(gc->account, name); - if (buddy && (gaim_get_buddy_alias_only(buddy))) - nombre = g_strdup_printf("%s (%s)", name, gaim_get_buddy_alias_only(buddy)); + if (buddy && (gaim_buddy_get_alias_only(buddy))) + nombre = g_strdup_printf("%s (%s)", name, gaim_buddy_get_alias_only(buddy)); else nombre = NULL; @@ -3417,7 +3417,7 @@ message = 0; buddy = gaim_find_buddy(gc->account, data->name); aim_im_sendch4(od->sess, data->name, AIM_ICQMSG_AUTHGRANTED, &message); - gaim_account_notify_added(gc->account, NULL, data->name, (buddy ? gaim_get_buddy_alias_only(buddy) : NULL), NULL); + gaim_account_notify_added(gc->account, NULL, data->name, (buddy ? gaim_buddy_get_alias_only(buddy) : NULL), NULL); #else aim_ssi_sendauthreply(od->sess, data->name, 0x01, NULL); #endif @@ -4906,7 +4906,7 @@ g_string_append_printf(str, "\n
\n"); } - primary = g_strdup_printf(_("ICQ Info for %s"), gaim_get_buddy_alias(buddy)); + primary = g_strdup_printf(_("ICQ Info for %s"), gaim_buddy_get_alias(buddy)); gaim_notify_formatted(gc, NULL, primary, NULL, str->str, NULL, NULL); g_free(primary); g_string_free(str, TRUE); @@ -5532,7 +5532,7 @@ if (buddy && group) { gaim_debug_info("oscar", "ssi: adding buddy %s to group %s\n", buddy->name, group->name); - aim_ssi_addbuddy(od->sess, buddy->name, group->name, gaim_get_buddy_alias_only(buddy), NULL, NULL, 0); + aim_ssi_addbuddy(od->sess, buddy->name, group->name, gaim_buddy_get_alias_only(buddy), NULL, NULL, 0); } } #endif @@ -6053,8 +6053,8 @@ "ssi: %s has given you permission to add him to your buddy list\n", sn); buddy = gaim_find_buddy(gc->account, sn); - if (buddy && (gaim_get_buddy_alias_only(buddy))) - nombre = g_strdup_printf("%s (%s)", sn, gaim_get_buddy_alias_only(buddy)); + if (buddy && (gaim_buddy_get_alias_only(buddy))) + nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); else nombre = g_strdup(sn); @@ -6092,8 +6092,8 @@ "ssi: received authorization request from %s\n", sn); buddy = gaim_find_buddy(gc->account, sn); - if (buddy && (gaim_get_buddy_alias_only(buddy))) - nombre = g_strdup_printf("%s (%s)", sn, gaim_get_buddy_alias_only(buddy)); + if (buddy && (gaim_buddy_get_alias_only(buddy))) + nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); else nombre = g_strdup(sn); @@ -6132,8 +6132,8 @@ "ssi: received authorization reply from %s. Reply is 0x%04hhx\n", sn, reply); buddy = gaim_find_buddy(gc->account, sn); - if (buddy && (gaim_get_buddy_alias_only(buddy))) - nombre = g_strdup_printf("%s (%s)", sn, gaim_get_buddy_alias_only(buddy)); + if (buddy && (gaim_buddy_get_alias_only(buddy))) + nombre = g_strdup_printf("%s (%s)", sn, gaim_buddy_get_alias_only(buddy)); else nombre = g_strdup(sn); @@ -6165,7 +6165,7 @@ buddy = gaim_find_buddy(gc->account, sn); gaim_debug_info("oscar", "ssi: %s added you to their buddy list\n", sn); - gaim_account_notify_added(gc->account, NULL, sn, (buddy ? gaim_get_buddy_alias_only(buddy) : NULL), NULL); + gaim_account_notify_added(gc->account, NULL, sn, (buddy ? gaim_buddy_get_alias_only(buddy) : NULL), NULL); return 1; } @@ -6912,8 +6912,8 @@ if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) continue; if (buddy->account == gc->account && aim_ssi_waitingforauth(od->sess->ssi.local, group->name, buddy->name)) { - if (gaim_get_buddy_alias_only(buddy)) - nombre = g_strdup_printf(" %s (%s)", buddy->name, gaim_get_buddy_alias_only(buddy)); + if (gaim_buddy_get_alias_only(buddy)) + nombre = g_strdup_printf(" %s (%s)", buddy->name, gaim_buddy_get_alias_only(buddy)); else nombre = g_strdup_printf(" %s", buddy->name); tmp = g_strdup_printf("%s%s
", text, nombre); diff -r da88e2cd5c53 -r c001be3c330e src/server.c --- a/src/server.c Sat Jul 31 20:48:03 2004 +0000 +++ b/src/server.c Sat Jul 31 21:29:40 2004 +0000 @@ -900,7 +900,7 @@ time_t t = time(NULL); char *tmpmsg; GaimBuddy *b = gaim_find_buddy(gc->account, name); - const char *alias = b ? gaim_get_buddy_alias(b) : name; + const char *alias = b ? gaim_buddy_get_alias(b) : name; int row; struct last_auto_response *lar; const gchar *auto_reply_pref; @@ -1170,7 +1170,7 @@ gaim_blist_rename_buddy(b, name); } - alias = gaim_escape_html(gaim_get_buddy_alias(b)); + alias = gaim_escape_html(gaim_buddy_get_alias(b)); old_idle = b->idle;