From 08ebcc877f0cf3b18d136029b34b435cef3ae280 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Mon, 19 Oct 2009 12:28:48 +0200 Subject: [PATCH] Improve mask used by command /kickban --- ChangeLog | 3 ++- po/cs.po | 25 +++++++++++++++---- po/de.po | 25 +++++++++++++++---- po/es.po | 25 +++++++++++++++---- po/fr.po | 31 ++++++++++++++++++++--- po/hu.po | 25 +++++++++++++++---- po/pl.po | 25 +++++++++++++++---- po/ru.po | 25 +++++++++++++++---- po/weechat.pot | 13 ++++++++-- src/plugins/irc/irc-command.c | 46 ++++++++++++++++++++++++++++++----- 10 files changed, 200 insertions(+), 43 deletions(-) diff --git a/ChangeLog b/ChangeLog index d6d231c84..ac466de1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ WeeChat ChangeLog ================= FlashCode -v0.3.1-dev, 2009-10-14 +v0.3.1-dev, 2009-10-19 Version 0.3.1 (under dev!) @@ -25,6 +25,7 @@ Version 0.3.1 (under dev!) * irc: add options for CTCP, to block/customize CTCP reply (task #9693) * irc: add missing CTCP: clientinfo, finger, source, time, userinfo (task #7270) * irc: improve error management on socket error (recv/send) +* irc: improve mask used by command /kickban * xfer: add missing charset decoding/encoding for IRC DCC chat (bug #27482) * gui: fix bug with URL selection in some terminals (caused by horizontal lines) (bug #27700) diff --git a/po/cs.po b/po/cs.po index 4c2aab952..88f560f79 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-09-14 10:56+0200\n" "Last-Translator: Jiri Golembiovsky \n" "Language-Team: weechat-dev \n" @@ -2822,6 +2822,10 @@ msgstr "%s%s: nekorektní číslo ignorování" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s%s: neznámá volba pro příkaz \"%s\"" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s%s: \"%s\" není validní regulární výraz (%s)" @@ -3182,11 +3186,13 @@ msgstr "vyhodit a zakázat přezdívku na kanálu" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -" kanál: kanál na kterém je uživatel\n" -"přezdívka: přezdívka, kterou vykopnout a zakázat\n" -" komentář: komentář pro vykopnutí" msgid "close client-server connection" msgstr "zavřít spojení klient-server" @@ -5706,3 +5712,12 @@ msgstr "%s%s: nemohu nastavit \"neblokovaci\" volbu na soket" #, c-format msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: vypršel časový limit \"%s\" pro %s" + +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " kanál: kanál na kterém je uživatel\n" +#~ "přezdívka: přezdívka, kterou vykopnout a zakázat\n" +#~ " komentář: komentář pro vykopnutí" diff --git a/po/de.po b/po/de.po index 79b0ee96c..e56c697e2 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-10-18 21:19+0200\n" "Last-Translator: Nils G \n" "Language-Team: weechat-dev \n" @@ -2700,6 +2700,10 @@ msgstr "%s falsche Puffernummer\n" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s%s: unbekannte Option für den Befehl \"%s\"" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s%s: \"%s\" ist kein korrekter regulärer Ausdruck (%s)" @@ -3045,11 +3049,13 @@ msgstr "kickt und verbannt jemanden von einem Channel" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -"Channel: Channel des Benutzers\n" -"Nickname: Nickname des Benutzers\n" -"Kommentar: Begründung für den Kickban" msgid "close client-server connection" msgstr "Jemanden vom Server werfen" @@ -5541,6 +5547,15 @@ msgstr "%s%s: kann die \"nonblock\"-Option für den Socket nicht festlegen" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: Zeitüberschreitung für \"%s\" mit %s" +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ "Channel: Channel des Benutzers\n" +#~ "Nickname: Nickname des Benutzers\n" +#~ "Kommentar: Begründung für den Kickban" + #~ msgid "list of alias" #~ msgstr "Liste der Aliases" diff --git a/po/es.po b/po/es.po index 748423f5e..2ab91013e 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-09-06 21:25+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -2625,6 +2625,10 @@ msgstr "%s%s: número de ignorado incorrecto" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s%s: opción desconocida para el comando \"%s\"" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s%s: \"%s\" no es una expresión regular válida (%s)" @@ -2987,11 +2991,13 @@ msgstr "expulsa y veta a un apodo de un canal" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -" canal: canal donde está el usuario\n" -" apodo: apodo a expulsar y vetar\n" -"comentario: comentario de la expulsión" msgid "close client-server connection" msgstr "cerrar la conexión cliente-servidor" @@ -5565,6 +5571,15 @@ msgstr "%s no es posible crear el servidor\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s falta un argumento para la opción --dir\n" +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " canal: canal donde está el usuario\n" +#~ " apodo: apodo a expulsar y vetar\n" +#~ "comentario: comentario de la expulsión" + #, fuzzy #~ msgid "list of alias" #~ msgstr "Lista de alias:\n" diff --git a/po/fr.po b/po/fr.po index 61080040d..6737b1387 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" -"PO-Revision-Date: 2009-10-14 17:30+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" +"PO-Revision-Date: 2009-10-19 11:27+0200\n" "Last-Translator: FlashCode \n" "Language-Team: weechat-dev \n" "MIME-Version: 1.0\n" @@ -2892,6 +2892,10 @@ msgstr "%s%s: numéro d'ignore incorrect" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s%s: option inconnue pour la commande \"%s\"" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "%s%s: le masque doit commencer par un pseudo" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s%s: \"%s\" n'est pas une expression régulière valide (%s)" @@ -3256,11 +3260,21 @@ msgstr "retirer par la force un pseudo d'un canal et le bannir" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" " canal: canal où l'utilisateur se trouve\n" " pseudo: pseudo à éliminer et bannir\n" -"commentaire: commentaire pour l'élimination" +"commentaire: commentaire pour l'élimination\n" +"\n" +"Il est possible d'émiliner/bannir avec un masque, le pseudo sera extrait du " +"masque et remplacé par \"*\", par exemple :\n" +" /kickban toto!*@host.com\n" +" bannira \"*!*@host.com\" puis éliminera \"toto\"." msgid "close client-server connection" msgstr "fermer la connexion client-serveur" @@ -5823,3 +5837,12 @@ msgstr "%s%s: impossible de positionner l'option \"nonblock\" pour la socket" #, c-format msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: délai d'attente dépassé pour \"%s\" avec %s" + +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " canal: canal où l'utilisateur se trouve\n" +#~ " pseudo: pseudo à éliminer et bannir\n" +#~ "commentaire: commentaire pour l'élimination" diff --git a/po/hu.po b/po/hu.po index f41e8ba4b..cfcaac39f 100644 --- a/po/hu.po +++ b/po/hu.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-09-20 13:51+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -2741,6 +2741,10 @@ msgstr "%s helytelen pufferszám\n" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s ismeretlen opció a \"%s\" parancsnak\n" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, fuzzy, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s a(z) \"%s\" érvénytelen reguláris kifejezés (%s)\n" @@ -3095,11 +3099,13 @@ msgstr "kirúgja és kitiltja a felhasználót a szobából" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -" szoba: a szoba, ahol a felhasználó tartózkodik\n" -" név: a kirúgandó és kitiltandó neve\n" -"megjegyzés: megjegyzés a kirúgáshoz" msgid "close client-server connection" msgstr "kliens-szerver kapcsolat bezárása" @@ -5651,6 +5657,15 @@ msgstr "%s DCC: nem sikerült 'nonblock' opciót beállítani a csatornán\n" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s hiányzó argumentum a(z) \"%s\" opciónak\n" +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " szoba: a szoba, ahol a felhasználó tartózkodik\n" +#~ " név: a kirúgandó és kitiltandó neve\n" +#~ "megjegyzés: megjegyzés a kirúgáshoz" + #, fuzzy #~ msgid "list of alias" #~ msgstr "Aliaszok listája:\n" diff --git a/po/pl.po b/po/pl.po index adceaf02b..f3995f4cd 100644 --- a/po/pl.po +++ b/po/pl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-09-06 21:25+0200\n" "Last-Translator: Krzysztof Korościk \n" "Language-Team: Polish\n" @@ -2856,6 +2856,10 @@ msgstr "%s%s: zły numer z listy ignorowanych" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s%s: nieznana opcja dla komendy \"%s\"" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s%s: \"%s\" nie jest prawidłowym wyrażeniem regularnym (%s)" @@ -3217,11 +3221,13 @@ msgstr "wykopuje i banuje użytkownika na kanale" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -" kanał: kanał, na którym znajduje się użytkownik\n" -"nick: osoba do wykopania i zbanowania\n" -" komentarz: powód " msgid "close client-server connection" msgstr "zamyka połączenie klient-serwer" @@ -5763,6 +5769,15 @@ msgstr "%s%s: nie można ustawić opcji \"nonblock\" dla gniazda" msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s%s: przekroczono czas na \"%s\" z %s" +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " kanał: kanał, na którym znajduje się użytkownik\n" +#~ "nick: osoba do wykopania i zbanowania\n" +#~ " komentarz: powód " + #~ msgid "list of alias" #~ msgstr "lista aliasów" diff --git a/po/ru.po b/po/ru.po index dc087e3bb..b335b3e1c 100644 --- a/po/ru.po +++ b/po/ru.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.1-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: 2009-09-20 13:50+0200\n" "Last-Translator: Pavel Shevchuk \n" "Language-Team: weechat-dev \n" @@ -2753,6 +2753,10 @@ msgstr "%s неправильный номер буфера\n" msgid "%s%s: unknown option for \"%s\" command" msgstr "%s неизвестный параметр для команды \"%s\"\n" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, fuzzy, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "%s \"%s\" не является регулярным выражением (%s)\n" @@ -3106,11 +3110,13 @@ msgstr "кикает и банит пользователя с канала" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" -" канал: канал, на котором присутствует пользователь\n" -" ник: цель для кика и бана\n" -"комментарий: причина кика" msgid "close client-server connection" msgstr "закрыть соединение клиент-сервер" @@ -5648,6 +5654,15 @@ msgstr "%s DCC: не могу установить неблокирующий р msgid "%s%s: timeout for \"%s\" with %s" msgstr "%s нет аргумента для параметра \"%s\"\n" +#~ msgid "" +#~ " channel: channel where user is\n" +#~ "nickname: nickname to kick and ban\n" +#~ " comment: comment for kick" +#~ msgstr "" +#~ " канал: канал, на котором присутствует пользователь\n" +#~ " ник: цель для кика и бана\n" +#~ "комментарий: причина кика" + #, fuzzy #~ msgid "list of alias" #~ msgstr "Список сокращений:\n" diff --git a/po/weechat.pot b/po/weechat.pot index 18ffe9861..77fdd3905 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2009-10-14 17:29+0200\n" +"POT-Creation-Date: 2009-10-19 11:26+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2386,6 +2386,10 @@ msgstr "" msgid "%s%s: unknown option for \"%s\" command" msgstr "" +#, c-format +msgid "%s%s: mask must begin with nick" +msgstr "" + #, c-format msgid "%s%s: \"%s\" is not a valid regular expression (%s)" msgstr "" @@ -2690,7 +2694,12 @@ msgstr "" msgid "" " channel: channel where user is\n" "nickname: nickname to kick and ban\n" -" comment: comment for kick" +" comment: comment for kick\n" +"\n" +"It is possible to kick/ban with a mask, nick will be extracted from mask and " +"replaced by \"*\", for example:\n" +" /kickban toto!*@host.com\n" +" will ban \"*!*@host.com\" and then kick \"toto\"." msgstr "" msgid "close client-server connection" diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 2cfc761bc..363a127b7 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -1636,7 +1636,8 @@ int irc_command_kickban (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { - char *pos_channel, *pos_nick, *nick_only, *pos_comment, *pos; + char *pos_channel, *pos_nick, *nick_only, *pos_comment, *pos, *mask; + int length; IRC_GET_SERVER_CHANNEL(buffer); IRC_COMMAND_CHECK_SERVER("kickban", 1); @@ -1679,10 +1680,6 @@ irc_command_kickban (void *data, struct t_gui_buffer *buffer, int argc, return WEECHAT_RC_OK; } } - - /* set ban for nick(+host) on channel */ - irc_server_sendf (ptr_server, 0, "MODE %s +b %s", - pos_channel, pos_nick); /* kick nick from channel */ nick_only = strdup (pos_nick); @@ -1694,6 +1691,37 @@ irc_command_kickban (void *data, struct t_gui_buffer *buffer, int argc, pos = strchr (nick_only, '!'); if (pos) pos[0] = '\0'; + + if (strcmp (nick_only, "*") == 0) + { + weechat_printf (ptr_server->buffer, + _("%s%s: mask must begin with nick"), + weechat_prefix ("error"), IRC_PLUGIN_NAME); + return WEECHAT_RC_OK; + } + + /* set ban for nick(+host) on channel */ + if (strchr (pos_nick, '@')) + { + length = strlen (pos_nick) + 16; + mask = malloc (length + 1); + if (mask) + { + pos = strchr (pos_nick, '!'); + snprintf (mask, length, "*!%s", + (pos) ? pos + 1 : pos_nick); + irc_server_sendf (ptr_server, 0, "MODE %s +b %s", + pos_channel, mask); + free (mask); + } + } + else + { + irc_server_sendf (ptr_server, 0, "MODE %s +b %s", + pos_channel, pos_nick); + } + + /* kick nick */ irc_server_sendf (ptr_server, 0, "KICK %s %s%s%s", pos_channel, nick_only, @@ -3971,7 +3999,13 @@ irc_command_init () N_("[channel] nickname [comment]"), N_(" channel: channel where user is\n" "nickname: nickname to kick and ban\n" - " comment: comment for kick"), + " comment: comment for kick\n\n" + "It is possible to kick/ban with a mask, nick " + "will be extracted from mask and replaced by " + "\"*\", for example:\n" + " /kickban toto!*@host.com\n" + " will ban \"*!*@host.com\" and then kick " + "\"toto\"."), "%(irc_channel_nicks_hosts) %-", &irc_command_kickban, NULL); weechat_hook_command ("kill", N_("close client-server connection"),