Mercurial > pidgin.yaz
comparison src/server.c @ 368:9bf1f77985d2
[gaim-migrate @ 378]
chat works properly now. it wasn't even working properly on the toc side,
but the toc server was more lenient.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 09 Jun 2000 07:59:00 +0000 |
parents | b402a23f35df |
children | be408b41c172 |
comparison
equal
deleted
inserted
replaced
367:c457f47fbb1d | 368:9bf1f77985d2 |
---|---|
546 g_free(buf); | 546 g_free(buf); |
547 #else | 547 #else |
548 GList *bcs = buddy_chats; | 548 GList *bcs = buddy_chats; |
549 struct buddy_chat *b = NULL; | 549 struct buddy_chat *b = NULL; |
550 struct chat_connection *c = NULL; | 550 struct chat_connection *c = NULL; |
551 int count = 0; | |
551 | 552 |
552 while (bcs) { | 553 while (bcs) { |
554 count++; | |
553 b = (struct buddy_chat *)bcs->data; | 555 b = (struct buddy_chat *)bcs->data; |
554 if (id == b->id) | 556 if (id == b->id) |
555 break; | 557 break; |
556 bcs = bcs->next; | 558 bcs = bcs->next; |
557 b = NULL; | 559 b = NULL; |
558 } | 560 } |
559 | 561 |
560 if (!b) | 562 if (!b) |
561 return; | 563 return; |
564 | |
565 sprintf(debug_buff, "Attempting to leave room %s (currently in %d rooms)\n", | |
566 b->name, count); | |
567 debug_print(debug_buff); | |
562 | 568 |
563 aim_chat_leaveroom(gaim_sess, b->name); | 569 aim_chat_leaveroom(gaim_sess, b->name); |
564 c = find_oscar_chat(b->name); | 570 c = find_oscar_chat(b->name); |
565 if (c != NULL) { | 571 if (c != NULL) { |
566 oscar_chats = g_list_remove(oscar_chats, c); | 572 oscar_chats = g_list_remove(oscar_chats, c); |
567 gdk_input_remove(c->inpa); | 573 gdk_input_remove(c->inpa); |
568 g_free(c->name); | 574 g_free(c->name); |
569 g_free(c); | 575 g_free(c); |
570 } | 576 } |
577 /* we do this because with Oscar it doesn't tell us we left */ | |
578 serv_got_chat_left(b->id); | |
571 #endif | 579 #endif |
572 } | 580 } |
573 | 581 |
574 void serv_chat_whisper(int id, char *who, char *message) | 582 void serv_chat_whisper(int id, char *who, char *message) |
575 { | 583 { |
948 } | 956 } |
949 | 957 |
950 if (!b) | 958 if (!b) |
951 return; | 959 return; |
952 | 960 |
953 if (b->window) | 961 sprintf(debug_buff, "Leaving room %s.\n", b->name); |
954 gtk_widget_destroy(GTK_WIDGET(b->window)); | 962 debug_print(debug_buff); |
955 | 963 |
956 buddy_chats = g_list_remove(buddy_chats, b); | 964 buddy_chats = g_list_remove(buddy_chats, b); |
957 | 965 |
958 g_free(b); | 966 g_free(b); |
959 } | 967 } |