# HG changeset patch # User Richard Laager # Date 1126407483 0 # Node ID 9fc7d0153332cf69ae9fa3dd28efbf13bd391d1b # Parent 6f9fc83ee25cc13318198fd3c514c60326d6a9a5 [gaim-migrate @ 13745] Remove the stupid prpl option I added with the aliasing code. This fixes the remaining bug I'm aware of. It should be correct, but let me know if I've broken something (which would mostly likely be with Jabber). committer: Tailor Script diff -r 6f9fc83ee25c -r 9fc7d0153332 plugins/ChangeLog.API --- a/plugins/ChangeLog.API Sat Sep 10 21:52:51 2005 +0000 +++ b/plugins/ChangeLog.API Sun Sep 11 02:58:03 2005 +0000 @@ -100,8 +100,6 @@ * Added: CHAT_USERS_ALIAS_COLUMN, CHAT_USERS_COLOR_COLUMN, CHAT_USERS_BUDDY_COLUMN to the list of columns for the chat user list - * Added: OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS, see the prpl.h - documentation if you're writing a prpl Signals: * Changed: "received-im-msg" and "received-chat-msg" to match, both diff -r 6f9fc83ee25c -r 9fc7d0153332 src/conversation.c --- a/src/conversation.c Sat Sep 10 21:52:51 2005 +0000 +++ b/src/conversation.c Sun Sep 11 02:58:03 2005 +0000 @@ -1899,16 +1899,10 @@ if (!(flags & GAIM_MESSAGE_WHISPER)) { char *str; - const char *nick; str = g_strdup(gaim_normalize(account, who)); - if (prpl_info->options & OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS) - nick = account->gc->display_name; - else - nick = account->username; - - if (!g_utf8_collate(str, gaim_normalize(account, nick))) { + if (!strcmp(str, gaim_normalize(account, chat->nick))) { flags |= GAIM_MESSAGE_SEND; } else { flags |= GAIM_MESSAGE_RECV; @@ -1983,30 +1977,20 @@ GaimConvChatBuddyFlags flags = GPOINTER_TO_INT(fl->data); const char *extra_msg = (extra_msgs ? extra_msgs->data : NULL); - if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { - char *tmp; - - if (prpl_info->options & OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS) - tmp = g_strdup(gaim_normalize(conv->account, gc->display_name)); + if (!strcmp(chat->nick, gaim_normalize(conv->account, user))) { + const char *alias2 = gaim_account_get_alias(conv->account); + if (alias2 != NULL) + alias = alias2; else - tmp = g_strdup(gaim_normalize(conv->account, conv->account->username)); - - if (!strcmp(tmp, gaim_normalize(conv->account, user))) { - const char *alias2 = gaim_account_get_alias(conv->account); - if (alias2 != NULL) - alias = alias2; - else - { - const char *display_name = gaim_connection_get_display_name(gc); - if (display_name != NULL) - alias = display_name; - } - } else { - GaimBuddy *buddy; - if ((buddy = gaim_find_buddy(gc->account, user)) != NULL) - alias = gaim_buddy_get_contact_alias(buddy); + { + const char *display_name = gaim_connection_get_display_name(gc); + if (display_name != NULL) + alias = display_name; } - g_free(tmp); + } else if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { + GaimBuddy *buddy; + if ((buddy = gaim_find_buddy(gc->account, user)) != NULL) + alias = gaim_buddy_get_contact_alias(buddy); } quiet = GPOINTER_TO_INT(gaim_signal_emit_return_1(gaim_conversations_get_handle(), @@ -2076,9 +2060,23 @@ gaim_conv_chat_set_users(chat, g_list_prepend(gaim_conv_chat_get_users(chat), cb)); - if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { + if (!strcmp(chat->nick, gaim_normalize(conv->account, old_user))) { + const char *alias; + + /* Note this for later. */ + is_me = TRUE; + + alias = gaim_account_get_alias(conv->account); + if (alias != NULL) + new_alias = alias; + else + { + const char *display_name = gaim_connection_get_display_name(gc); + if (display_name != NULL) + alias = display_name; + } + } else if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { GaimBuddy *buddy; - if ((buddy = gaim_find_buddy(gc->account, new_user)) != NULL) new_alias = gaim_buddy_get_contact_alias(buddy); } @@ -2101,16 +2099,13 @@ else if (gaim_conv_chat_is_user_ignored(chat, new_user)) gaim_conv_chat_unignore(chat, new_user); - /* This should use gaim_normalize on the two values and strcmp them. */ - if(!g_utf8_collate(old_user, chat->nick)) { + if (is_me) gaim_conv_chat_set_nick(chat, new_user); - is_me = TRUE; - } if (gaim_prefs_get_bool("/core/conversations/chat/show_nick_change") && !gaim_conv_chat_is_user_ignored(chat, new_user)) { - if(is_me) { + if (is_me) { g_snprintf(tmp, sizeof(tmp), _("You are now known as %s"), new_user); } else { @@ -2347,7 +2342,7 @@ ops = gaim_conversation_get_ui_ops(conv); if (ops != NULL && ops->chat_update_user != NULL) - ops->chat_update_user(conv, user); + ops->chat_update_user(conv, user); gaim_signal_emit(gaim_conversations_get_handle(), "chat-buddy-flags", conv, user, oldflags, flags); @@ -2374,7 +2369,7 @@ if(chat->nick) g_free(chat->nick); - chat->nick = g_strdup(nick); + chat->nick = g_strdup(gaim_normalize(chat->conv->account, nick)); } const char *gaim_conv_chat_get_nick(GaimConvChat *chat) { diff -r 6f9fc83ee25c -r 9fc7d0153332 src/gtkconv.c --- a/src/gtkconv.c Sat Sep 10 21:52:51 2005 +0000 +++ b/src/gtkconv.c Sun Sep 11 02:58:03 2005 +0000 @@ -117,7 +117,7 @@ static void got_typing_keypress(GaimGtkConversation *gtkconv, gboolean first); static GList *generate_invite_user_names(GaimConnection *gc); static void add_chat_buddy_common(GaimConversation *conv, const char *name, - const char *alias); + const char *alias, const char *old_name); static gboolean tab_complete(GaimConversation *conv); static void update_typing_icon(GaimGtkConversation *gtkconv); static gboolean update_send_as_selection(GaimConvWindow *win); @@ -1470,7 +1470,7 @@ else gaim_conv_chat_ignore(chat, name); - add_chat_buddy_common(conv, name, alias); + add_chat_buddy_common(conv, name, alias, NULL); g_free(name); g_free(alias); } @@ -1554,6 +1554,7 @@ GaimPluginProtocolInfo *prpl_info, GaimConnection *gc) { static GtkWidget *menu = NULL; + GaimConvChat *chat = GAIM_CONV_CHAT(conv); gboolean is_me = FALSE; GtkWidget *button; @@ -1564,18 +1565,8 @@ if (menu) gtk_widget_destroy(menu); - if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { - char *tmp; - - if (prpl_info->options & OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS) - tmp = g_strdup(gaim_normalize(conv->account, gc->display_name)); - else - tmp = g_strdup(gaim_normalize(conv->account, conv->account->username)); - - if (!strcmp(tmp, gaim_normalize(conv->account, who))) - is_me = TRUE; - g_free(tmp); - } + if (!strcmp(chat->nick, gaim_normalize(conv->account, who))) + is_me = TRUE; menu = gtk_menu_new(); @@ -3443,7 +3434,7 @@ } static void -add_chat_buddy_common(GaimConversation *conv, const char *name, const char *alias) +add_chat_buddy_common(GaimConversation *conv, const char *name, const char *alias, const char *old_name) { GaimGtkConversation *gtkconv; GaimGtkChatPane *gtkchat; @@ -3473,18 +3464,8 @@ flags = gaim_conv_chat_user_get_flags(chat, name); pixbuf = get_chat_buddy_status_icon(chat, name, flags); - if (!(prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) { - char *tmp; - - if (prpl_info->options & OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS) - tmp = g_strdup(gaim_normalize(conv->account, gc->display_name)); - else - tmp = g_strdup(gaim_normalize(conv->account, conv->account->username)); - - if (!strcmp(tmp, gaim_normalize(conv->account, name))) - is_me = TRUE; - g_free(tmp); - } + if (!strcmp(chat->nick, gaim_normalize(conv->account, old_name != NULL ? old_name : name))) + is_me = TRUE; is_buddy = (gaim_find_buddy(conv->account, name) != NULL); @@ -3970,6 +3951,7 @@ update_chat_alias(GaimBuddy *buddy, GaimConversation *conv, GaimConnection *gc, GaimPluginProtocolInfo *prpl_info) { GaimGtkConversation *gtkconv = GAIM_GTK_CONVERSATION(conv); + GaimConvChat *chat = GAIM_CONV_CHAT(conv); GtkTreeModel *model; char *normalized_name; GtkTreeIter iter; @@ -3993,15 +3975,9 @@ if (!strcmp(normalized_name, gaim_normalize(conv->account, name))) { const char *alias = name; - char *tmp; GaimBuddy *buddy2; - if (prpl_info->options & OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS) - tmp = g_strdup(gaim_normalize(conv->account, gc->display_name)); - else - tmp = g_strdup(gaim_normalize(conv->account, conv->account->username)); - - if (strcmp(tmp, gaim_normalize(conv->account, name))) { + if (strcmp(chat->nick, gaim_normalize(conv->account, name))) { /* This user is not me, so look into updating the alias. */ if ((buddy2 = gaim_find_buddy(conv->account, name)) != NULL) @@ -4012,7 +3988,6 @@ CHAT_USERS_COLOR_COLUMN, get_nick_color(gtkconv, alias), -1); } - g_free(tmp); g_free(name); break; } @@ -4023,7 +3998,6 @@ } while (f != 0); g_free(normalized_name); - } static void @@ -5487,7 +5461,7 @@ l = users; ll = aliases; while (l != NULL && ll != NULL) { - add_chat_buddy_common(conv, (const char *)l->data, (const char *)ll->data); + add_chat_buddy_common(conv, (const char *)l->data, (const char *)ll->data, NULL); l = l->next; ll = ll->next; } @@ -5534,7 +5508,7 @@ g_return_if_fail(new_alias != NULL); - add_chat_buddy_common(conv, new_name, new_alias); + add_chat_buddy_common(conv, new_name, new_alias, old_name); } static void @@ -5669,7 +5643,7 @@ gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &val, -1); if (!gaim_utf8_strcasecmp(user, val)) { - gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &alias, -1); + gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_ALIAS_COLUMN, &alias, -1); gtk_list_store_remove(GTK_LIST_STORE(model), &iter); g_free(val); break; @@ -5685,7 +5659,7 @@ g_return_if_fail(alias != NULL); - add_chat_buddy_common(conv, user, alias); + add_chat_buddy_common(conv, user, alias, NULL); g_free(alias); } diff -r 6f9fc83ee25c -r 9fc7d0153332 src/protocols/irc/irc.c --- a/src/protocols/irc/irc.c Sat Sep 10 21:52:51 2005 +0000 +++ b/src/protocols/irc/irc.c Sun Sep 11 02:58:03 2005 +0000 @@ -751,7 +751,7 @@ static GaimPluginProtocolInfo prpl_info = { - OPT_PROTO_CHAT_TOPIC | OPT_PROTO_PASSWORD_OPTIONAL | OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS, + OPT_PROTO_CHAT_TOPIC | OPT_PROTO_PASSWORD_OPTIONAL, NULL, /* user_splits */ NULL, /* protocol_options */ NO_BUDDY_ICONS, /* icon_spec */ diff -r 6f9fc83ee25c -r 9fc7d0153332 src/protocols/silc/ops.c --- a/src/protocols/silc/ops.c Sat Sep 10 21:52:51 2005 +0000 +++ b/src/protocols/silc/ops.c Sun Sep 11 02:58:03 2005 +0000 @@ -1214,7 +1214,7 @@ if (!convo) continue; oldnick = gaim_conv_chat_get_nick(GAIM_CONV_CHAT(convo)); - if (strcmp(oldnick, local_entry->nickname)) { + if (strcmp(oldnick, gaim_normalize(gaim_conversation_get_account(convo), local_entry->nickname))) { gaim_conv_chat_rename_user(GAIM_CONV_CHAT(convo), oldnick, local_entry->nickname); gaim_conv_chat_set_nick(GAIM_CONV_CHAT(convo), local_entry->nickname); diff -r 6f9fc83ee25c -r 9fc7d0153332 src/prpl.h --- a/src/prpl.h Sat Sep 10 21:52:51 2005 +0000 +++ b/src/prpl.h Sun Sep 11 02:58:03 2005 +0000 @@ -163,14 +163,6 @@ */ OPT_PROTO_REGISTER_NOSCREENNAME = 0x00000200, - /** - * Chats use the display name for "my" nickname. - * - * IRC uses the user's current nickname in the chat list, not the - * username that's been setup for the account. - */ - OPT_PROTO_USE_DISPLAY_NAME_FOR_ME_IN_CHATS = 0x00000400 - } GaimProtocolOptions; /**