summaryrefslogtreecommitdiff
path: root/src/plugins/irc
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2009-09-20 10:29:25 +0200
committerSebastien Helleu <flashcode@flashtux.org>2009-09-20 10:29:25 +0200
commit6fb5084af5d4004bd58bfb6365b97775740588c4 (patch)
tree2ddb62b32e95f5def103bd9f56d01f1433ac63e1 /src/plugins/irc
parentd4c62d0dba2ba0499eac5a7210db6b793fc1977e (diff)
downloadweechat-6fb5084af5d4004bd58bfb6365b97775740588c4.zip
Add missing charset decoding/encoding for IRC DCC chat (bug #27482)
Diffstat (limited to 'src/plugins/irc')
-rw-r--r--src/plugins/irc/irc-command.c5
-rw-r--r--src/plugins/irc/irc-ctcp.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c
index f570e1164..f6d17e602 100644
--- a/src/plugins/irc/irc-command.c
+++ b/src/plugins/irc/irc-command.c
@@ -845,7 +845,7 @@ irc_command_dcc (void *data, struct t_gui_buffer *buffer, int argc,
unsigned long address;
struct t_infolist *infolist;
struct t_infolist_item *item;
- char plugin_id[128], str_address[128];
+ char plugin_id[128], str_address[128], charset_modifier[256];
IRC_GET_SERVER_CHANNEL(buffer);
IRC_COMMAND_CHECK_SERVER("dcc", 1);
@@ -915,6 +915,9 @@ irc_command_dcc (void *data, struct t_gui_buffer *buffer, int argc,
weechat_infolist_new_var_string (item, "type", "chat_send");
weechat_infolist_new_var_string (item, "remote_nick", argv[2]);
weechat_infolist_new_var_string (item, "local_nick", ptr_server->nick);
+ snprintf (charset_modifier, sizeof (charset_modifier),
+ "irc.%s.%s", ptr_server->name, argv[2]);
+ weechat_infolist_new_var_string (item, "charset_modifier", charset_modifier);
snprintf (str_address, sizeof (str_address),
"%lu", address);
weechat_infolist_new_var_string (item, "address", str_address);
diff --git a/src/plugins/irc/irc-ctcp.c b/src/plugins/irc/irc-ctcp.c
index 088411aa6..6ae341a4c 100644
--- a/src/plugins/irc/irc-ctcp.c
+++ b/src/plugins/irc/irc-ctcp.c
@@ -368,7 +368,7 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
char *dcc_args, *pos, *pos_file, *pos_addr, *pos_port, *pos_size, *pos_start_resume;
struct t_infolist *infolist;
struct t_infolist_item *item;
- char plugin_id[128];
+ char plugin_id[128], charset_modifier[256];
if (!arguments || !arguments[0])
return;
@@ -768,6 +768,9 @@ irc_ctcp_recv_dcc (struct t_irc_server *server, const char *nick,
weechat_infolist_new_var_string (item, "type", "chat_recv");
weechat_infolist_new_var_string (item, "remote_nick", nick);
weechat_infolist_new_var_string (item, "local_nick", server->nick);
+ snprintf (charset_modifier, sizeof (charset_modifier),
+ "irc.%s.%s", server->name, nick);
+ weechat_infolist_new_var_string (item, "charset_modifier", charset_modifier);
weechat_infolist_new_var_string (item, "proxy",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_PROXY));
weechat_infolist_new_var_string (item, "address", pos_addr);