comparison src/protocols/yahoo/yahoochat.c @ 8357:1f56ea865926

[gaim-migrate @ 9081] " This fixes some bugs in joining a yahoo chat after you've already joined a yahoo chat. these bugs were introduced by me of course. Well, they're half my changes I made in CVS, and half the odd way I coded yahoo chat support to begin with. So yeah, all my fault... This also adds a pos++ like nosnilmot was saying." --Tim (marv) Ringenbach committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Sat, 28 Feb 2004 05:48:01 +0000
parents d60272410bd5
children 3c07b7d0084c
comparison
equal deleted inserted replaced
8356:8f2667524c06 8357:1f56ea865926
405 yahoo_chat_leave(gc, room, 405 yahoo_chat_leave(gc, room,
406 gaim_connection_get_display_name(gc), FALSE); 406 gaim_connection_get_display_name(gc), FALSE);
407 407
408 c = gaim_find_chat(gc, YAHOO_CHAT_ID); 408 c = gaim_find_chat(gc, YAHOO_CHAT_ID);
409 409
410 if (!c && members && ((g_list_length(members) > 1) || 410 if ((!c || gaim_conv_chat_has_left(GAIM_CONV_CHAT(c))) && members &&
411 !g_ascii_strcasecmp(members->data, 411 ((g_list_length(members) > 1) ||
412 gaim_connection_get_display_name(gc)))) { 412 !g_ascii_strcasecmp(members->data, gaim_connection_get_display_name(gc)))) {
413 c = serv_got_joined_chat(gc, YAHOO_CHAT_ID, room); 413 if (c && gaim_conv_chat_has_left(GAIM_CONV_CHAT(c))) {
414 if (topic) 414 /* this might be a hack, but oh well, it should nicely */
415 gaim_conv_chat_set_topic(GAIM_CONV_CHAT(c), NULL, topic); 415 char *tmpmsg;
416 yd->in_chat = 1; 416
417 yd->chat_name = g_strdup(room); 417 gaim_conversation_set_name(c, room);
418 gaim_conv_chat_add_users(GAIM_CONV_CHAT(c), members); 418
419 c = serv_got_joined_chat(gc, YAHOO_CHAT_ID, room);
420 if (topic)
421 gaim_conv_chat_set_topic(GAIM_CONV_CHAT(c), NULL, topic);
422 yd->in_chat = 1;
423 yd->chat_name = g_strdup(room);
424 gaim_conv_chat_add_users(GAIM_CONV_CHAT(c), members);
425
426 tmpmsg = g_strdup_printf(_("You are now chatting in %s."), room);
427 gaim_conv_chat_write(GAIM_CONV_CHAT(c), "", tmpmsg, GAIM_MESSAGE_SYSTEM, time(NULL));
428 g_free(tmpmsg);
429 } else {
430 c = serv_got_joined_chat(gc, YAHOO_CHAT_ID, room);
431 if (topic)
432 gaim_conv_chat_set_topic(GAIM_CONV_CHAT(c), NULL, topic);
433 yd->in_chat = 1;
434 yd->chat_name = g_strdup(room);
435 gaim_conv_chat_add_users(GAIM_CONV_CHAT(c), members);
436 }
419 } else if (c) { 437 } else if (c) {
420 yahoo_chat_add_users(GAIM_CONV_CHAT(c), members); 438 yahoo_chat_add_users(GAIM_CONV_CHAT(c), members);
421 } 439 }
422 440
423 g_list_free(members); 441 g_list_free(members);