Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}