comparison src/protocols/jabber/message.c @ 7261:1930e3d00ecd

[gaim-migrate @ 7838] prpl-specific normalize is back, after my crusade to kill it. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Tue, 14 Oct 2003 05:07:39 +0000
parents d1974612b994
children 7c12dab8e513
comparison
equal deleted inserted replaced
7260:49839c4cbb1c 7261:1930e3d00ecd
50 g_list_free(jm->etc); 50 g_list_free(jm->etc);
51 51
52 g_free(jm); 52 g_free(jm);
53 } 53 }
54 54
55 static GaimConversation *
56 find_unnormalized_conv(const char *name, GaimAccount *account)
57 {
58 GaimConversation *c = NULL;
59 GList *cnv;
60
61 g_return_val_if_fail(name != NULL, NULL);
62
63 for(cnv = gaim_get_conversations(); cnv; cnv = cnv->next) {
64 c = (GaimConversation*)cnv->data;
65 if(!gaim_utf8_strcasecmp(name, gaim_conversation_get_name(c)) &&
66 account == gaim_conversation_get_account(c))
67 return c;
68 }
69
70 return NULL;
71 }
72
55 static void handle_chat(JabberMessage *jm) 73 static void handle_chat(JabberMessage *jm)
56 { 74 {
57 JabberID *jid = jabber_id_new(jm->from); 75 JabberID *jid = jabber_id_new(jm->from);
58 char *from; 76 char *from;
59 77
61 JabberBuddyResource *jbr; 79 JabberBuddyResource *jbr;
62 80
63 jb = jabber_buddy_find(jm->js, jm->from, TRUE); 81 jb = jabber_buddy_find(jm->js, jm->from, TRUE);
64 jbr = jabber_buddy_find_resource(jb, jabber_get_resource(jm->from)); 82 jbr = jabber_buddy_find_resource(jb, jabber_get_resource(jm->from));
65 83
66 if(gaim_find_conversation_with_account(jm->from, jm->js->gc->account)) { 84 if(find_unnormalized_conv(jm->from, jm->js->gc->account)) {
67 from = g_strdup(jm->from); 85 from = g_strdup(jm->from);
68 } else if(jid->node) { 86 } else if(jid->node) {
69 GaimConversation *conv; 87 GaimConversation *conv;
70 88
71 from = g_strdup_printf("%s@%s", jid->node, jid->domain); 89 from = g_strdup_printf("%s@%s", jid->node, jid->domain);
72 conv = gaim_find_conversation_with_account(from, jm->js->gc->account); 90 conv = find_unnormalized_conv(from, jm->js->gc->account);
73 if(conv) 91 if(conv)
74 gaim_conversation_set_name(conv, jm->from); 92 gaim_conversation_set_name(conv, jm->from);
75 g_free(from); 93 g_free(from);
76 from = g_strdup(jm->from); 94 from = g_strdup(jm->from);
77 } else { 95 } else {