comparison src/conversation.c @ 1002:1d8f05ea6bdf

[gaim-migrate @ 1012] i don't even remember what happened. all good things, i hope committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 18 Oct 2000 02:38:18 +0000
parents 91b7377e7b45
children 38452403563b
comparison
equal deleted inserted replaced
1001:b8a819390499 1002:1d8f05ea6bdf
162 } 162 }
163 g_free(cuser); 163 g_free(cuser);
164 return NULL; 164 return NULL;
165 } 165 }
166 166
167 void make_direct(struct conversation *c, gboolean direct, struct aim_conn_t *conn, gint watcher)
168 {
169 char buf[BUF_LONG];
170 if (c == NULL) return;
171 c->is_direct = direct;
172 if (direct) {
173 c->conn = conn;
174 c->watcher = watcher;
175 g_snprintf(buf, sizeof buf, _("<HR><B>Direct Connection with %s established.</B><BR><HR>"),
176 c->name);
177 write_to_conv(c, buf, WFLAG_SYSTEM, NULL);
178 } else {
179 c->conn = NULL;
180 gdk_input_remove(c->watcher);
181 c->watcher = -1;
182 g_snprintf(buf, sizeof buf, _("<HR><B>Direct Connection with %s closed.</B><BR><HR>"),
183 c->name);
184 write_to_conv(c, buf, WFLAG_SYSTEM, NULL);
185 }
186 }
187
188 /* --------------------------------------------------- 167 /* ---------------------------------------------------
189 * Function to remove a log file entry 168 * Function to remove a log file entry
190 * --------------------------------------------------- 169 * ---------------------------------------------------
191 */ 170 */
192 171
388 c->log_dialog = NULL; 367 c->log_dialog = NULL;
389 368
390 if (c->is_chat) { 369 if (c->is_chat) {
391 serv_chat_leave(c->gc, c->id); 370 serv_chat_leave(c->gc, c->id);
392 } else { 371 } else {
393 if (c->is_direct) {
394 /* FIXME
395 if (c->gc->protocol == PROTO_OSCAR) {
396 gdk_input_remove(c->watcher);
397 sprintf(debug_buff, "Closing DirectIM conversation (%p)\n", c->conn);
398 debug_print(debug_buff);
399 aim_conn_kill(((struct oscar_data *)c->gc->proto_data)->sess,
400 &c->conn);
401 } else {
402 Direct IM TOC FIXME
403 }
404 */
405 }
406 delete_conversation(c); 372 delete_conversation(c);
407 } 373 }
408 374
409 return TRUE; 375 return TRUE;
410 } 376 }
613 { 579 {
614 char *buf, *buf2, *buf3; 580 char *buf, *buf2, *buf3;
615 int hdrlen, limit; 581 int hdrlen, limit;
616 582
617 if (!c->gc) return; 583 if (!c->gc) return;
618 if (c->is_direct) limit = 0x8000; /* 32 k */ 584 /* FIXME! this used to have limits based on protocol limits (oscar chat was 512,
619 else if (c->is_chat && c->gc->protocol == PROTO_OSCAR) limit = MAXCHATMSGLEN; 585 * oscar im was 7985, toc was 4k). we shouldn't be using PROTO_whatever here. it
620 else if (c->gc->protocol == PROTO_OSCAR) limit = MAXMSGLEN; 586 * should be gotten from the PRPL somehow */
621 else limit = MSG_LEN; 587 limit = 7985 << 2;
622 limit <<= 2;
623 588
624 buf = g_malloc(limit); 589 buf = g_malloc(limit);
625 590
626 buf2 = gtk_editable_get_chars(GTK_EDITABLE(c->entry), 0, -1); 591 buf2 = gtk_editable_get_chars(GTK_EDITABLE(c->entry), 0, -1);
627 g_snprintf(buf, limit, "%s", buf2); 592 g_snprintf(buf, limit, "%s", buf2);
639 604
640 /* Let us determine how long the message CAN be. 605 /* Let us determine how long the message CAN be.
641 * toc_send_im is 11 chars long + 2 quotes. 606 * toc_send_im is 11 chars long + 2 quotes.
642 * + 2 spaces + 6 for the header + 2 for good 607 * + 2 spaces + 6 for the header + 2 for good
643 * measure = 23 bytes + the length of normalize c->name */ 608 * measure = 23 bytes + the length of normalize c->name */
644 if (c->gc->protocol == PROTO_TOC) 609 /* FIXME: the hdrlen is for how long the header is going to cut off the limit.
645 hdrlen = 23 + strlen(normalize(c->name)); 610 * but since we don't know on a protocol basis anymore we can't do this. so we'll
646 else 611 * just assume it's 23 + strlen(normalize(c->name)) for all protocols */
647 hdrlen = 0; 612 hdrlen = 23 + strlen(normalize(c->name));
648 613
649 if (font_options & OPT_FONT_BOLD) { 614 if (font_options & OPT_FONT_BOLD) {
650 g_snprintf(buf2, limit, "<B>%s</B>", buf); 615 g_snprintf(buf2, limit, "<B>%s</B>", buf);
651 strcpy(buf, buf2); 616 strcpy(buf, buf2);
652 } 617 }