Mercurial > pidgin
comparison src/server.c @ 472:6a92cd7322cc
[gaim-migrate @ 482]
merged chat and IM windows. /me is now in IM, font/color dialogs in chat, and smileys in chat too. also, fixed the GOOD bug. i don't know what kind of crack rob was smoking when he decided O could be eyes.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Sun, 09 Jul 2000 23:19:21 +0000 |
| parents | 5db3734a1fe6 |
| children | 6e318907bcce |
comparison
equal
deleted
inserted
replaced
| 471:4d0b703a094c | 472:6a92cd7322cc |
|---|---|
| 156 | 156 |
| 157 | 157 |
| 158 void serv_send_im(char *name, char *message, int away) | 158 void serv_send_im(char *name, char *message, int away) |
| 159 { | 159 { |
| 160 if (!USE_OSCAR) { | 160 if (!USE_OSCAR) { |
| 161 char buf[MSG_LEN - 7]; | 161 char buf[MSG_LEN - 7]; |
| 162 | 162 |
| 163 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), | 163 g_snprintf(buf, MSG_LEN - 8, "toc_send_im %s \"%s\"%s", normalize(name), |
| 164 message, ((away) ? " auto" : "")); | 164 message, ((away) ? " auto" : "")); |
| 165 sflap_send(buf, strlen(buf), TYPE_DATA); | 165 sflap_send(buf, strlen(buf), TYPE_DATA); |
| 166 } else { | 166 } else { |
| 167 if (away) | 167 if (away) |
| 168 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, message); | 168 aim_send_im(gaim_sess, gaim_conn, name, AIM_IMFLAGS_AWAY, message); |
| 169 else | 169 else |
| 170 aim_send_im(gaim_sess, gaim_conn, name, 0, message); | 170 aim_send_im(gaim_sess, gaim_conn, name, 0, message); |
| 171 } | 171 } |
| 172 if (!away) | 172 if (!away) |
| 173 serv_touch_idle(); | 173 serv_touch_idle(); |
| 174 } | 174 } |
| 175 | 175 |
| 518 char buf[BUF_LONG]; | 518 char buf[BUF_LONG]; |
| 519 g_snprintf(buf, sizeof(buf)/2, "toc_chat_invite %d \"%s\" %s", id, message, normalize(name)); | 519 g_snprintf(buf, sizeof(buf)/2, "toc_chat_invite %d \"%s\" %s", id, message, normalize(name)); |
| 520 sflap_send(buf, -1, TYPE_DATA); | 520 sflap_send(buf, -1, TYPE_DATA); |
| 521 } else { | 521 } else { |
| 522 GList *bcs = buddy_chats; | 522 GList *bcs = buddy_chats; |
| 523 struct buddy_chat *b = NULL; | 523 struct conversation *b = NULL; |
| 524 | 524 |
| 525 while (bcs) { | 525 while (bcs) { |
| 526 b = (struct buddy_chat *)bcs->data; | 526 b = (struct conversation *)bcs->data; |
| 527 if (id == b->id) | 527 if (id == b->id) |
| 528 break; | 528 break; |
| 529 bcs = bcs->next; | 529 bcs = bcs->next; |
| 530 b = NULL; | 530 b = NULL; |
| 531 } | 531 } |
| 544 g_snprintf(buf, 255, "toc_chat_leave %d", id); | 544 g_snprintf(buf, 255, "toc_chat_leave %d", id); |
| 545 sflap_send(buf, -1, TYPE_DATA); | 545 sflap_send(buf, -1, TYPE_DATA); |
| 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 conversation *b = NULL; |
| 550 struct chat_connection *c = NULL; | 550 struct chat_connection *c = NULL; |
| 551 int count = 0; | 551 int count = 0; |
| 552 | 552 |
| 553 while (bcs) { | 553 while (bcs) { |
| 554 count++; | 554 count++; |
| 555 b = (struct buddy_chat *)bcs->data; | 555 b = (struct conversation *)bcs->data; |
| 556 if (id == b->id) | 556 if (id == b->id) |
| 557 break; | 557 break; |
| 558 bcs = bcs->next; | 558 bcs = bcs->next; |
| 559 b = NULL; | 559 b = NULL; |
| 560 } | 560 } |
| 598 g_snprintf(buf, sizeof(buf), "toc_chat_send %d \"%s\"",id, message); | 598 g_snprintf(buf, sizeof(buf), "toc_chat_send %d \"%s\"",id, message); |
| 599 sflap_send(buf, -1, TYPE_DATA); | 599 sflap_send(buf, -1, TYPE_DATA); |
| 600 } else { | 600 } else { |
| 601 struct aim_conn_t *cn; | 601 struct aim_conn_t *cn; |
| 602 GList *bcs = buddy_chats; | 602 GList *bcs = buddy_chats; |
| 603 struct buddy_chat *b = NULL; | 603 struct conversation *b = NULL; |
| 604 | 604 |
| 605 while (bcs) { | 605 while (bcs) { |
| 606 b = (struct buddy_chat *)bcs->data; | 606 b = (struct conversation *)bcs->data; |
| 607 if (id == b->id) | 607 if (id == b->id) |
| 608 break; | 608 break; |
| 609 bcs = bcs->next; | 609 bcs = bcs->next; |
| 610 b = NULL; | 610 b = NULL; |
| 611 } | 611 } |
| 613 return; | 613 return; |
| 614 | 614 |
| 615 cn = aim_chat_getconn(gaim_sess, b->name); | 615 cn = aim_chat_getconn(gaim_sess, b->name); |
| 616 aim_chat_send_im(gaim_sess, cn, message); | 616 aim_chat_send_im(gaim_sess, cn, message); |
| 617 } | 617 } |
| 618 serv_touch_idle(); | |
| 618 } | 619 } |
| 619 | 620 |
| 620 | 621 |
| 621 | 622 |
| 622 | 623 |
| 680 } | 681 } |
| 681 } | 682 } |
| 682 if (cnv != NULL) { | 683 if (cnv != NULL) { |
| 683 if (sound_options & OPT_SOUND_WHEN_AWAY) | 684 if (sound_options & OPT_SOUND_WHEN_AWAY) |
| 684 play_sound(AWAY); | 685 play_sound(AWAY); |
| 685 write_to_conv(cnv, message, away | WFLAG_RECV); | 686 write_to_conv(cnv, message, away | WFLAG_RECV, NULL); |
| 686 } | 687 } |
| 687 | 688 |
| 688 } else { | 689 } else { |
| 689 if (cnv == NULL) { | 690 if (cnv == NULL) { |
| 690 new_conv = 1; | 691 new_conv = 1; |
| 694 play_sound(FIRST_RECEIVE); | 695 play_sound(FIRST_RECEIVE); |
| 695 } else { | 696 } else { |
| 696 if (cnv->makesound && (sound_options & OPT_SOUND_RECV)) | 697 if (cnv->makesound && (sound_options & OPT_SOUND_RECV)) |
| 697 play_sound(RECEIVE); | 698 play_sound(RECEIVE); |
| 698 } | 699 } |
| 699 write_to_conv(cnv, message, away | WFLAG_RECV); | 700 write_to_conv(cnv, message, away | WFLAG_RECV, NULL); |
| 700 } | 701 } |
| 701 | 702 |
| 702 | 703 |
| 703 | 704 |
| 704 | 705 |
| 724 | 725 |
| 725 if (is_idle == -1) | 726 if (is_idle == -1) |
| 726 is_idle = 1; | 727 is_idle = 1; |
| 727 | 728 |
| 728 if (cnv != NULL) | 729 if (cnv != NULL) |
| 729 write_to_conv(cnv, awaymessage->message, WFLAG_SEND | WFLAG_AUTO); | 730 write_to_conv(cnv, awaymessage->message, WFLAG_SEND | WFLAG_AUTO, NULL); |
| 730 } | 731 } |
| 731 } | 732 } |
| 732 | 733 |
| 733 | 734 |
| 734 | 735 |
| 961 gtk_widget_show(d); | 962 gtk_widget_show(d); |
| 962 } | 963 } |
| 963 | 964 |
| 964 void serv_got_joined_chat(int id, char *name) | 965 void serv_got_joined_chat(int id, char *name) |
| 965 { | 966 { |
| 966 struct buddy_chat *b; | 967 struct conversation *b; |
| 967 | 968 |
| 968 #ifdef GAIM_PLUGINS | 969 #ifdef GAIM_PLUGINS |
| 969 GList *c = callbacks; | 970 GList *c = callbacks; |
| 970 struct gaim_callback *g; | 971 struct gaim_callback *g; |
| 971 void (*function)(char *, void *); | 972 void (*function)(char *, void *); |
| 977 } | 978 } |
| 978 c = c->next; | 979 c = c->next; |
| 979 } | 980 } |
| 980 #endif | 981 #endif |
| 981 | 982 |
| 982 b = (struct buddy_chat *)g_new0(struct buddy_chat, 1); | 983 b = (struct conversation *)g_new0(struct conversation, 1); |
| 983 buddy_chats = g_list_append(buddy_chats, b); | 984 buddy_chats = g_list_append(buddy_chats, b); |
| 984 | 985 |
| 986 b->is_chat = TRUE; | |
| 985 b->ignored = NULL; | 987 b->ignored = NULL; |
| 986 b->in_room = NULL; | 988 b->in_room = NULL; |
| 987 b->id = id; | 989 b->id = id; |
| 988 g_snprintf(b->name, 80, "%s", name); | 990 g_snprintf(b->name, 80, "%s", name); |
| 989 show_new_buddy_chat(b); | 991 show_new_buddy_chat(b); |
| 990 } | 992 } |
| 991 | 993 |
| 992 void serv_got_chat_left(int id) | 994 void serv_got_chat_left(int id) |
| 993 { | 995 { |
| 994 GList *bcs = buddy_chats; | 996 GList *bcs = buddy_chats; |
| 995 struct buddy_chat *b = NULL; | 997 struct conversation *b = NULL; |
| 996 | 998 |
| 997 | 999 |
| 998 while(bcs) { | 1000 while(bcs) { |
| 999 b = (struct buddy_chat *)bcs->data; | 1001 b = (struct conversation *)bcs->data; |
| 1000 if (id == b->id) { | 1002 if (id == b->id) { |
| 1001 break; | 1003 break; |
| 1002 } | 1004 } |
| 1003 b = NULL; | 1005 b = NULL; |
| 1004 bcs = bcs->next; | 1006 bcs = bcs->next; |
| 1033 | 1035 |
| 1034 void serv_got_chat_in(int id, char *who, int whisper, char *message) | 1036 void serv_got_chat_in(int id, char *who, int whisper, char *message) |
| 1035 { | 1037 { |
| 1036 int w; | 1038 int w; |
| 1037 GList *bcs = buddy_chats; | 1039 GList *bcs = buddy_chats; |
| 1038 struct buddy_chat *b = NULL; | 1040 struct conversation *b = NULL; |
| 1039 | 1041 |
| 1040 while(bcs) { | 1042 while(bcs) { |
| 1041 b = (struct buddy_chat *)bcs->data; | 1043 b = (struct conversation *)bcs->data; |
| 1042 if (id == b->id) | 1044 if (id == b->id) |
| 1043 break; | 1045 break; |
| 1044 bcs = bcs->next; | 1046 bcs = bcs->next; |
| 1045 b = NULL; | 1047 b = NULL; |
| 1046 | 1048 |
