| 345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); |
345 PURPLE_MESSAGE_NO_LOG|PURPLE_MESSAGE_ERROR, time(NULL)); |
| 346 return PURPLE_CMD_STATUS_OK; |
346 return PURPLE_CMD_STATUS_OK; |
| 347 } |
347 } |
| 348 } |
348 } |
| 349 |
349 |
| |
350 static void clear_conversation_scrollback(PurpleConversation *conv) |
| |
351 { |
| |
352 PidginConversation *gtkconv = NULL; |
| |
353 |
| |
354 gtkconv = PIDGIN_CONVERSATION(conv); |
| |
355 |
| |
356 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); |
| |
357 } |
| |
358 |
| 350 static PurpleCmdRet |
359 static PurpleCmdRet |
| 351 clear_command_cb(PurpleConversation *conv, |
360 clear_command_cb(PurpleConversation *conv, |
| 352 const char *cmd, char **args, char **error, void *data) |
361 const char *cmd, char **args, char **error, void *data) |
| 353 { |
362 { |
| 354 PidginConversation *gtkconv = NULL; |
363 clear_conversation_scrollback(conv); |
| 355 |
364 return PURPLE_CMD_STATUS_OK; |
| 356 gtkconv = PIDGIN_CONVERSATION(conv); |
365 } |
| 357 |
366 |
| 358 gtk_imhtml_clear(GTK_IMHTML(gtkconv->imhtml)); |
367 static PurpleCmdRet |
| |
368 clearall_command_cb(PurpleConversation *conv, |
| |
369 const char *cmd, char **args, char **error, void *data) |
| |
370 { |
| |
371 purple_conversation_foreach(clear_conversation_scrollback); |
| 359 return PURPLE_CMD_STATUS_OK; |
372 return PURPLE_CMD_STATUS_OK; |
| 360 } |
373 } |
| 361 |
374 |
| 362 static PurpleCmdRet |
375 static PurpleCmdRet |
| 363 help_command_cb(PurpleConversation *conv, |
376 help_command_cb(PurpleConversation *conv, |
| 526 PurpleMessageFlags flags = 0; |
539 PurpleMessageFlags flags = 0; |
| 527 char *buf, *clean; |
540 char *buf, *clean; |
| 528 |
541 |
| 529 account = purple_conversation_get_account(conv); |
542 account = purple_conversation_get_account(conv); |
| 530 |
543 |
| 531 if (!purple_account_is_connected(account)) |
|
| 532 return; |
|
| 533 |
|
| 534 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && |
|
| 535 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) |
|
| 536 return; |
|
| 537 |
|
| 538 if (check_for_and_do_command(conv)) { |
544 if (check_for_and_do_command(conv)) { |
| 539 if (gtkconv->entry_growing) { |
545 if (gtkconv->entry_growing) { |
| 540 reset_default_size(gtkconv); |
546 reset_default_size(gtkconv); |
| 541 gtkconv->entry_growing = FALSE; |
547 gtkconv->entry_growing = FALSE; |
| 542 } |
548 } |
| 543 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
549 gtk_imhtml_clear(GTK_IMHTML(gtkconv->entry)); |
| 544 return; |
550 return; |
| 545 } |
551 } |
| |
552 |
| |
553 if ((purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT) && |
| |
554 purple_conv_chat_has_left(PURPLE_CONV_CHAT(conv))) |
| |
555 return; |
| |
556 |
| |
557 if (!purple_account_is_connected(account)) |
| |
558 return; |
| 546 |
559 |
| 547 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); |
560 buf = gtk_imhtml_get_markup(GTK_IMHTML(gtkconv->entry)); |
| 548 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); |
561 clean = gtk_imhtml_get_text(GTK_IMHTML(gtkconv->entry), NULL, NULL); |
| 549 |
562 |
| 550 gtk_widget_grab_focus(gtkconv->entry); |
563 gtk_widget_grab_focus(gtkconv->entry); |
| 3669 pixbuf = get_chat_buddy_status_icon(chat, name, flags); |
3682 pixbuf = get_chat_buddy_status_icon(chat, name, flags); |
| 3670 |
3683 |
| 3671 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name))) |
3684 if (!strcmp(chat->nick, purple_normalize(conv->account, old_name != NULL ? old_name : name))) |
| 3672 is_me = TRUE; |
3685 is_me = TRUE; |
| 3673 |
3686 |
| 3674 is_buddy = (purple_find_buddy(conv->account, name) != NULL); |
3687 is_buddy = cb->buddy; |
| 3675 |
3688 |
| 3676 tmp = g_utf8_casefold(alias, -1); |
3689 tmp = g_utf8_casefold(alias, -1); |
| 3677 alias_key = g_utf8_collate_key(tmp, -1); |
3690 alias_key = g_utf8_collate_key(tmp, -1); |
| 3678 g_free(tmp); |
3691 g_free(tmp); |
| 3679 |
3692 |
| 5561 if (!purple_conv_chat_find_user(chat, old_name)) |
5574 if (!purple_conv_chat_find_user(chat, old_name)) |
| 5562 return; |
5575 return; |
| 5563 |
5576 |
| 5564 g_return_if_fail(new_alias != NULL); |
5577 g_return_if_fail(new_alias != NULL); |
| 5565 |
5578 |
| 5566 cbuddy = purple_conv_chat_cb_new(new_name, new_alias, flags); |
5579 cbuddy = purple_conv_chat_cb_find(chat, new_name); |
| 5567 |
5580 |
| 5568 add_chat_buddy_common(conv, cbuddy, old_name); |
5581 add_chat_buddy_common(conv, cbuddy, old_name); |
| 5569 } |
5582 } |
| 5570 |
5583 |
| 5571 static void |
5584 static void |
| 7201 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
7214 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
| 7202 debug_command_cb, _("debug <option>: Send various debug information to the current conversation."), NULL); |
7215 debug_command_cb, _("debug <option>: Send various debug information to the current conversation."), NULL); |
| 7203 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, |
7216 purple_cmd_register("clear", "", PURPLE_CMD_P_DEFAULT, |
| 7204 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
7217 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
| 7205 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); |
7218 clear_command_cb, _("clear: Clears the conversation scrollback."), NULL); |
| |
7219 purple_cmd_register("clearall", "", PURPLE_CMD_P_DEFAULT, |
| |
7220 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL, |
| |
7221 clearall_command_cb, _("clear: Clears all conversation scrollbacks."), NULL); |
| 7206 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, |
7222 purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT, |
| 7207 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, |
7223 PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL, |
| 7208 help_command_cb, _("help <command>: Help on a specific command."), NULL); |
7224 help_command_cb, _("help <command>: Help on a specific command."), NULL); |
| 7209 |
7225 |
| 7210 /********************************************************************** |
7226 /********************************************************************** |