From c103c8d35677feda74fe386e0cf43519510fc500 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Wed, 29 May 2013 18:28:29 +0200 Subject: [PATCH] irc: fix multiple nicks in command /query (separated by commas): open one buffer per nick --- ChangeLog | 4 +- doc/de/autogen/user/irc_commands.txt | 2 +- doc/en/autogen/user/irc_commands.txt | 2 +- doc/fr/autogen/user/irc_commands.txt | 2 +- doc/it/autogen/user/irc_commands.txt | 2 +- doc/ja/autogen/user/irc_commands.txt | 2 +- po/cs.po | 5 +- po/de.po | 5 +- po/es.po | 5 +- po/fr.po | 8 +-- po/hu.po | 4 +- po/it.po | 5 +- po/ja.po | 5 +- po/pl.po | 5 +- po/pt_BR.po | 7 +-- po/ru.po | 4 +- po/weechat.pot | 4 +- src/plugins/irc/irc-command.c | 75 ++++++++++++++++------------ 18 files changed, 84 insertions(+), 62 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8c57c33f1..a8480f6c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ WeeChat ChangeLog ================= Sébastien Helleu -v0.4.2-dev, 2013-05-28 +v0.4.2-dev, 2013-05-29 This document lists all changes for each version. @@ -20,6 +20,8 @@ Version 0.4.2 (under dev!) "layout_window" * core: fix line alignment when option weechat.look.buffer_time_format is set to empty string +* irc: fix multiple nicks in command /query (separated by commas): open one + buffer per nick * xfer: fix compilation on OpenBSD (bug #39071) Version 0.4.1 (2013-05-20) diff --git a/doc/de/autogen/user/irc_commands.txt b/doc/de/autogen/user/irc_commands.txt index d88bcba88..29d9c61f4 100644 --- a/doc/de/autogen/user/irc_commands.txt +++ b/doc/de/autogen/user/irc_commands.txt @@ -461,7 +461,7 @@ Daemon2: Nachricht an diesen Daemon weiterleiten [[command_irc_query]] [command]*`query`* Eine private Nachricht an einen Nick schicken:: ........................................ -/query [-server ] [] +/query [-server ] [,...] [] server: an diesen Server senden (interner Name) nick: Nickname für privaten Chat diff --git a/doc/en/autogen/user/irc_commands.txt b/doc/en/autogen/user/irc_commands.txt index 6ef458ba0..b59d9a03b 100644 --- a/doc/en/autogen/user/irc_commands.txt +++ b/doc/en/autogen/user/irc_commands.txt @@ -461,7 +461,7 @@ daemon2: forward message to this daemon [[command_irc_query]] [command]*`query`* send a private message to a nick:: ........................................ -/query [-server ] [] +/query [-server ] [,...] [] server: send to this server (internal name) nick: nick for private conversation diff --git a/doc/fr/autogen/user/irc_commands.txt b/doc/fr/autogen/user/irc_commands.txt index dae53eddd..974e26d65 100644 --- a/doc/fr/autogen/user/irc_commands.txt +++ b/doc/fr/autogen/user/irc_commands.txt @@ -461,7 +461,7 @@ démon2: faire suivre le message à ce démon [[command_irc_query]] [command]*`query`* envoyer un message privé à un pseudo:: ........................................ -/query [-server ] [] +/query [-server ] [,...] [] serveur: envoyer à ce serveur (nom interne) pseudo: pseudo pour la conversation privée diff --git a/doc/it/autogen/user/irc_commands.txt b/doc/it/autogen/user/irc_commands.txt index c89c893b7..90ba230d6 100644 --- a/doc/it/autogen/user/irc_commands.txt +++ b/doc/it/autogen/user/irc_commands.txt @@ -461,7 +461,7 @@ demone2: reindirizza messaggio a questo demone [[command_irc_query]] [command]*`query`* invia un messaggio privato ad un nick:: ........................................ -/query [-server ] [] +/query [-server ] [,...] [] server: invia a questo server (nome interno) nick: nick per la conversazione privata diff --git a/doc/ja/autogen/user/irc_commands.txt b/doc/ja/autogen/user/irc_commands.txt index 72941edc1..780834b95 100644 --- a/doc/ja/autogen/user/irc_commands.txt +++ b/doc/ja/autogen/user/irc_commands.txt @@ -461,7 +461,7 @@ daemon2: メッセージをデーモンに転送 [[command_irc_query]] [command]*`query`* ニックネーム宛にプライベートメッセージを送信:: ........................................ -/query [-server ] [] +/query [-server ] [,...] [] server: 送信先サーバ (内部サーバ名) nick: プライベート会話を行うニックネーム diff --git a/po/cs.po b/po/cs.po index b04250f49..55ce5c2de 100644 --- a/po/cs.po +++ b/po/cs.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -5207,7 +5207,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "poslat soukromou zprávu přezdívce" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/de.po b/po/de.po index 44f1ad5cc..e1b630f61 100644 --- a/po/de.po +++ b/po/de.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -5730,7 +5730,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "Eine private Nachricht an einen Nick schicken" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/es.po b/po/es.po index c97060ab0..56812147b 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -5416,7 +5416,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "enviar mensaje privado a un usuario" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/fr.po b/po/fr.po index e330b5bb4..cc7d51f4a 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" -"PO-Revision-Date: 2013-05-21 22:35+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" +"PO-Revision-Date: 2013-05-29 11:57+0200\n" "Last-Translator: Sebastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -5581,8 +5581,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "envoyer un message privé à un pseudo" -msgid "[-server ] []" -msgstr "[-server ] []" +msgid "[-server ] [,...] []" +msgstr "[-server ] [,...] []" msgid "" "server: send to this server (internal name)\n" diff --git a/po/hu.po b/po/hu.po index 1b16b2a28..30ce69c29 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -4727,7 +4727,7 @@ msgid "send a private message to a nick" msgstr "személyes üzenet küldése egy felhasználónak" #, fuzzy -msgid "[-server ] []" +msgid "[-server ] [,...] []" msgstr "[szerver | név]" #, fuzzy diff --git a/po/it.po b/po/it.po index 771abc934..4d8794c2d 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Marco Paolone \n" "Language-Team: weechat-dev \n" @@ -5487,7 +5487,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "invia un messaggio privato ad un nick" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/ja.po b/po/ja.po index 50ecd0677..3da104b07 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" @@ -5389,7 +5389,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "ニックネーム宛にプライベートメッセージを送信" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/pl.po b/po/pl.po index bf88d5994..07e53e584 100644 --- a/po/pl.po +++ b/po/pl.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:54+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: weechat-dev \n" @@ -5498,7 +5498,8 @@ msgstr "" msgid "send a private message to a nick" msgstr "wysyła prywatną wiadomość do użytkownika" -msgid "[-server ] []" +#, fuzzy +msgid "[-server ] [,...] []" msgstr "[-server ] []" msgid "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 8baee9105..dc344e784 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:55+0200\n" "Last-Translator: Sergio Durigan Junior \n" "Language-Team: weechat-dev \n" @@ -5036,8 +5036,9 @@ msgstr "" msgid "send a private message to a nick" msgstr "" -msgid "[-server ] []" -msgstr "" +#, fuzzy +msgid "[-server ] [,...] []" +msgstr " [...]" msgid "" "server: send to this server (internal name)\n" diff --git a/po/ru.po b/po/ru.po index 2e2651bcb..20621c5ce 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.2-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-05-20 16:55+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -4759,7 +4759,7 @@ msgid "send a private message to a nick" msgstr "отправить личное сообщение нику" #, fuzzy -msgid "[-server ] []" +msgid "[-server ] [,...] []" msgstr "[сервер | ник]" #, fuzzy diff --git a/po/weechat.pot b/po/weechat.pot index b1a1429f9..4c5b93469 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.4.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2013-05-21 22:34+0200\n" +"POT-Creation-Date: 2013-05-29 11:55+0200\n" "PO-Revision-Date: 2013-02-14 18:20+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: weechat-dev \n" @@ -4191,7 +4191,7 @@ msgstr "" msgid "send a private message to a nick" msgstr "" -msgid "[-server ] []" +msgid "[-server ] [,...] []" msgstr "" msgid "" diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 5d2fccf84..03af690ee 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -3507,8 +3507,8 @@ int irc_command_query (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { - char *string; - int arg_nick, arg_text; + char *string, **nicks; + int i, arg_nick, arg_text, num_nicks; IRC_BUFFER_GET_SERVER_CHANNEL(buffer); @@ -3528,37 +3528,50 @@ irc_command_query (void *data, struct t_gui_buffer *buffer, int argc, IRC_COMMAND_CHECK_SERVER("query", 1); - /* create private window if not already opened */ - ptr_channel = irc_channel_search (ptr_server, argv[arg_nick]); - if (!ptr_channel) + nicks = weechat_string_split (argv[arg_nick], ",", 0, 0, &num_nicks); + if (nicks) { - ptr_channel = irc_channel_new (ptr_server, - IRC_CHANNEL_TYPE_PRIVATE, - argv[arg_nick], 1, 0); - if (!ptr_channel) + for (i = 0; i < num_nicks; i++) { - weechat_printf (ptr_server->buffer, - _("%s%s: cannot create new private " - "buffer \"%s\""), - weechat_prefix ("error"), IRC_PLUGIN_NAME, - argv[arg_nick]); - return WEECHAT_RC_OK; - } - } - weechat_buffer_set (ptr_channel->buffer, "display", "1"); + /* create private window if not already opened */ + ptr_channel = irc_channel_search (ptr_server, nicks[i]); + if (!ptr_channel) + { + ptr_channel = irc_channel_new (ptr_server, + IRC_CHANNEL_TYPE_PRIVATE, + nicks[i], 1, 0); + if (!ptr_channel) + { + weechat_printf (ptr_server->buffer, + _("%s%s: cannot create new private " + "buffer \"%s\""), + weechat_prefix ("error"), IRC_PLUGIN_NAME, + nicks[i]); + } + } - /* display text if given */ - if (argv_eol[arg_text]) - { - string = irc_color_decode (argv_eol[arg_text], - weechat_config_boolean (irc_config_network_colors_receive)); - irc_input_user_message_display (ptr_channel->buffer, 0, - (string) ? string : argv_eol[arg_text]); - if (string) - free (string); - irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL, - "PRIVMSG %s :%s", - argv[arg_nick], argv_eol[arg_text]); + if (ptr_channel) + { + /* switch to buffer */ + weechat_buffer_set (ptr_channel->buffer, "display", "1"); + + /* display text if given */ + if (argv_eol[arg_text]) + { + string = irc_color_decode (argv_eol[arg_text], + weechat_config_boolean (irc_config_network_colors_receive)); + irc_input_user_message_display (ptr_channel->buffer, 0, + (string) ? string : argv_eol[arg_text]); + if (string) + free (string); + irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, + NULL, + "PRIVMSG %s :%s", + nicks[i], argv_eol[arg_text]); + } + } + } + weechat_string_free_split (nicks); } } else @@ -5948,7 +5961,7 @@ irc_command_init () NULL, &irc_command_pong, NULL); weechat_hook_command ("query", N_("send a private message to a nick"), - N_("[-server ] []"), + N_("[-server ] [,...] []"), N_("server: send to this server (internal name)\n" " nick: nick for private conversation\n" " text: text to send"),