int xfer_chat_buffer_input_cb (void *data, struct t_gui_buffer *buffer, const char *input_data) { struct t_xfer *ptr_xfer; char *input_data_color, str_tags[256], *str_color; /* make C compiler happy */ (void) data; ptr_xfer = xfer_search_by_buffer (buffer); if (ptr_xfer) { if (!XFER_HAS_ENDED(ptr_xfer->status)) { xfer_chat_sendf (ptr_xfer, "%s\r\n", input_data); if (!XFER_HAS_ENDED(ptr_xfer->status)) { str_color = xfer_chat_color_for_tags (weechat_config_color (weechat_config_get ("weechat.color.chat_nick_self"))); snprintf (str_tags, sizeof (str_tags), "irc_privmsg,no_highlight,prefix_nick_%s,nick_%s,log1", (str_color) ? str_color : "default", ptr_xfer->local_nick); if (str_color) free (str_color); input_data_color = weechat_hook_modifier_exec ("irc_color_decode", "1", input_data); weechat_printf_tags (buffer, str_tags, "%s%s\t%s", weechat_color ("chat_nick_self"), ptr_xfer->local_nick, (input_data_color) ? input_data_color : input_data); if (input_data_color) free (input_data_color); } } } return WEECHAT_RC_OK; }
int xfer_command_me (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { struct t_xfer *ptr_xfer; /* make C compiler happy */ (void) data; (void) argc; (void) argv; ptr_xfer = xfer_search_by_buffer (buffer); if (!ptr_xfer) { dogechat_printf (NULL, _("%s%s: can't find xfer for buffer \"%s\""), dogechat_prefix ("error"), XFER_PLUGIN_NAME, dogechat_buffer_get_string (buffer, "name")); return DOGECHAT_RC_OK; } if (!XFER_HAS_ENDED(ptr_xfer->status)) { xfer_chat_sendf (ptr_xfer, "\01ACTION %s\01\r\n", (argv_eol[1]) ? argv_eol[1] : ""); dogechat_printf_tags (buffer, "no_highlight", "%s%s%s %s%s", dogechat_prefix ("action"), dogechat_color ("chat_nick_self"), ptr_xfer->local_nick, dogechat_color ("chat"), (argv_eol[1]) ? argv_eol[1] : ""); } return DOGECHAT_RC_OK; }