diff options
-rw-r--r-- | ChangeLog.adoc | 1 | ||||
-rw-r--r-- | doc/en/weechat_dev.en.adoc | 1 | ||||
-rw-r--r-- | doc/fr/weechat_dev.fr.adoc | 1 | ||||
-rw-r--r-- | doc/ja/weechat_dev.ja.adoc | 2 | ||||
-rw-r--r-- | doc/sr/weechat_dev.sr.adoc | 2 | ||||
-rw-r--r-- | po/cs.po | 12 | ||||
-rw-r--r-- | po/de.po | 14 | ||||
-rw-r--r-- | po/es.po | 12 | ||||
-rw-r--r-- | po/fr.po | 14 | ||||
-rw-r--r-- | po/hu.po | 12 | ||||
-rw-r--r-- | po/it.po | 12 | ||||
-rw-r--r-- | po/ja.po | 14 | ||||
-rw-r--r-- | po/pl.po | 14 | ||||
-rw-r--r-- | po/pt.po | 12 | ||||
-rw-r--r-- | po/pt_BR.po | 12 | ||||
-rw-r--r-- | po/ru.po | 12 | ||||
-rw-r--r-- | po/sr.po | 14 | ||||
-rw-r--r-- | po/tr.po | 14 | ||||
-rw-r--r-- | po/weechat.pot | 10 | ||||
-rw-r--r-- | src/plugins/irc/irc-command.c | 109 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/unit/plugins/irc/test-irc-command.cpp | 1146 |
22 files changed, 1399 insertions, 42 deletions
diff --git a/ChangeLog.adoc b/ChangeLog.adoc index 40b573829..3127f8ade 100644 --- a/ChangeLog.adoc +++ b/ChangeLog.adoc @@ -43,6 +43,7 @@ New features:: * api: add support of specifier `%!` for timestamp in function util_strftimeval * api: add support of base64url in encode/decode functions * fset: add option `-import` in command `/fset` + * irc: allow range in commands `/unban` and `/unquiet` (issue #2113) * irc: rename option irc.color.item_channel_modes to weechat.color.status_modes * irc: add option `-all` in command `/allchan`, do not execute command on parted channels by default (issue #2085) * irc: add server option "autojoin_delay" (delay before autojoin), use option "command_delay" before execution of the command (issue #862) diff --git a/doc/en/weechat_dev.en.adoc b/doc/en/weechat_dev.en.adoc index 237a7f37e..ad6dd681b 100644 --- a/doc/en/weechat_dev.en.adoc +++ b/doc/en/weechat_dev.en.adoc @@ -475,6 +475,7 @@ WeeChat "core" is located in following directories: | test-irc-buffer.cpp | Tests: IRC buffers. | test-irc-channel.cpp | Tests: IRC channels. | test-irc-color.cpp | Tests: IRC colors. +| test-irc-command.cpp | Tests: IRC commands. | test-irc-config.cpp | Tests: IRC configuration. | test-irc-ctcp.cpp | Tests: IRC CTCP. | test-irc-ignore.cpp | Tests: IRC ignores. diff --git a/doc/fr/weechat_dev.fr.adoc b/doc/fr/weechat_dev.fr.adoc index e768fc74e..04b212fba 100644 --- a/doc/fr/weechat_dev.fr.adoc +++ b/doc/fr/weechat_dev.fr.adoc @@ -477,6 +477,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants : | test-irc-buffer.cpp | Tests : tampons IRC. | test-irc-channel.cpp | Tests : canaux IRC. | test-irc-color.cpp | Tests : couleurs IRC. +| test-irc-command.cpp | Tests : commandes IRC. | test-irc-config.cpp | Tests : configuration IRC. | test-irc-ctcp.cpp | Tests : CTCP IRC. | test-irc-ignore.cpp | Tests : ignores IRC. diff --git a/doc/ja/weechat_dev.ja.adoc b/doc/ja/weechat_dev.ja.adoc index 607ee1cb9..62b5a6eab 100644 --- a/doc/ja/weechat_dev.ja.adoc +++ b/doc/ja/weechat_dev.ja.adoc @@ -559,6 +559,8 @@ WeeChat "core" は以下のディレクトリに配置されています: // TRANSLATION MISSING | test-irc-channel.cpp | Tests: IRC channels. | test-irc-color.cpp | Tests: IRC colors. +// TRANSLATION MISSING +| test-irc-command.cpp | Tests: IRC commands. | test-irc-config.cpp | テスト: IRC 設定 // TRANSLATION MISSING | test-irc-ctcp.cpp | Tests: IRC CTCP. diff --git a/doc/sr/weechat_dev.sr.adoc b/doc/sr/weechat_dev.sr.adoc index f7a5aa9ae..ab0fa4754 100644 --- a/doc/sr/weechat_dev.sr.adoc +++ b/doc/sr/weechat_dev.sr.adoc @@ -477,6 +477,8 @@ WeeChat „језгро” се налази у следећим директо | test-irc-buffer.cpp | Тестови: IRC бафери. | test-irc-channel.cpp | Тестови: IRC канали. | test-irc-color.cpp | Тестови: IRC боје. +// TRANSLATION MISSING +| test-irc-command.cpp | Tests: IRC commands. | test-irc-config.cpp | Тестови: IRC конфигурација. | test-irc-ctcp.cpp | Тестови: IRC CTCP. | test-irc-ignore.cpp | Тестови: IRC игнорисања. @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Ondřej Súkup <mimi.vx@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10050,7 +10050,7 @@ msgstr "zruší zakázání pro přezdívku nebo hosta" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<kanál>] <přezdívka> [<přezdívka>...]" #, fuzzy @@ -10060,6 +10060,14 @@ msgstr "" "přezdívka: uživatel nebo host, kterému zrušit zakázání" #, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "IRC servery (vnitřní jména)" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "ztichnout přezdívky nebo hosty" @@ -26,7 +26,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-05-02 07:42+0200\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Language-Team: German <kde-i18n-de@kde.org>\n" @@ -11138,12 +11138,22 @@ msgid "unban nicks or hosts" msgstr "Bann von Nicks oder Hosts aufheben" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +#, fuzzy +#| msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<channel>] <nick>|<number> [<nick>|<number>...]" msgid "number: ban number (as displayed by command /ban)" msgstr "Nummer: Nummer des Bannes (wird beim Befehl /ban angezeigt)" +#, fuzzy +#| msgid "server: internal server name" +msgid "n1: interval start number" +msgstr "Server: interner Name des Servers" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "Nicks oder Hosts das Wort erteilen" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Santiago Forero <santiago@forero.xyz>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10258,7 +10258,7 @@ msgstr "remueve vetos a apodos o máquinas" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<canal>] <apodo> [<apodo> ...]" #, fuzzy @@ -10270,6 +10270,14 @@ msgstr "" "Sin argumentos, este comando muestra la lista de vetos del canal actual." #, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "servidores IRC (nombres internos)" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "silencia apodos o máquinas" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" -"PO-Revision-Date: 2024-05-13 22:50+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" +"PO-Revision-Date: 2024-05-13 22:53+0200\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: fr\n" @@ -10942,12 +10942,18 @@ msgid "unban nicks or hosts" msgstr "supprimer le bannissement sur des pseudos ou hôtes" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" -msgstr "[<canal>] <pseudo>|<nombre> [<pseudo>|<nombre>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" +msgstr "[<canal>] <pseudo>|<nombre>|<n1>-<n2> [<pseudo>|<nombre>|<n1>-<n2>...]" msgid "number: ban number (as displayed by command /ban)" msgstr "nombre : numéro de bannissement (tel qu'affiché par la commande /ban)" +msgid "n1: interval start number" +msgstr "n1 : numéro de départ de l'intervalle" + +msgid "n2: interval end number" +msgstr "n2 : numéro de fin de l'intervalle" + msgid "unquiet nicks or hosts" msgstr "ne plus taire des pseudos ou hôtes" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -9645,7 +9645,7 @@ msgstr "gép vagy felhasználó tiltásának visszavonása" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[szoba] név [név ...]" #, fuzzy @@ -9655,6 +9655,14 @@ msgstr "" " név: felhasználó vagy gép melyen a parancsot végrehajtjuk" #, fuzzy +#| msgid "target: server name" +msgid "n1: interval start number" +msgstr "cél: szerver neve" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "gép vagy felhasználó tiltásának visszavonása" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Esteban I. Ruiz Moreno <exio4.com@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10252,7 +10252,7 @@ msgstr "rimuove il ban da nick o host" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<canale>] <nick> [<nick>...]" #, fuzzy @@ -10264,6 +10264,14 @@ msgstr "" "Senza argomento, il comando mostra la lista dei ban per il canale corrente." #, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "server IRC (nomi interni)" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "fa tacere nick o host" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Language-Team: Japanese <https://github.com/l/weechat/tree/master/" @@ -10551,7 +10551,9 @@ msgid "unban nicks or hosts" msgstr "ニックネームかホストの禁止設定を解除" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +#, fuzzy +#| msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<channel>] <nick>|<number> [<nick>|<number>...]" #, fuzzy @@ -10565,6 +10567,14 @@ msgstr "" " nick: ニックネームまたはホスト名\n" " number: バンするニックネームの番号 (コマンド /ban で表示される番号)" +#, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "IRC サーバ (内部名)" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "ニックネームまたはホスト名に対する発言禁止を解除" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-05-02 00:06+0200\n" "Last-Translator: Krzysztof Korościk <soltys@soltys.info>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10615,12 +10615,22 @@ msgid "unban nicks or hosts" msgstr "odbanowuje nicki lub hosty" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +#, fuzzy +#| msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<kanał>] <nick>|<numer> [<nick>|<numer>...]" msgid "number: ban number (as displayed by command /ban)" msgstr "numer: numer bana (wyświetlany na liście za pomocą komendy /ban)" +#, fuzzy +#| msgid "server: internal server name" +msgid "n1: interval start number" +msgstr "serwer: wewnętrzna nazwa serwera" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "nicki albo hosty przestają być uciszone" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Vasco Almeida <vascomalmeida@sapo.pt>\n" "Language-Team: Portuguese <>\n" @@ -10527,7 +10527,7 @@ msgstr "remover banimento de nicks ou hosts" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<canal>] <nick> [<nick>...]" #, fuzzy @@ -10538,6 +10538,14 @@ msgstr "" "\n" "Sem argumentos, este comando mostra a lista de banimentos do canal atual." +#, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "servidores IRC (nomes internos)" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "remover silêncio de nicks ou hosts" diff --git a/po/pt_BR.po b/po/pt_BR.po index deabbb00c..ef155e2c9 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Érico Nogueira <ericonr@disroot.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -9975,7 +9975,7 @@ msgid "unban nicks or hosts" msgstr "" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "" #, fuzzy @@ -9985,6 +9985,14 @@ msgstr "" " nick: nick ou host" #, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "servidor IRC (nomes internos)" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "retira o silencio de nicks ou hosts" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -9690,7 +9690,7 @@ msgstr "снимает бан с хоста или ника" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated #, fuzzy -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[канал] ник [ник ...]" #, fuzzy @@ -9700,6 +9700,14 @@ msgstr "" " ник: ник или хост для снятия бана" #, fuzzy +#| msgid "target: server name" +msgid "n1: interval start number" +msgstr "цель: название сервера" + +msgid "n2: interval end number" +msgstr "" + +#, fuzzy msgid "unquiet nicks or hosts" msgstr "снимает бан с хоста или ника" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-05-07 14:00+0400\n" "Last-Translator: Ivan Pešić <ivan.pesic@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10603,12 +10603,22 @@ msgid "unban nicks or hosts" msgstr "уклањање забране надимцима или хостовима" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +#, fuzzy +#| msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<канал>] <надимак>|<број> [<надимак>|<број>...]" msgid "number: ban number (as displayed by command /ban)" msgstr "број: број забране (као што га исписује команда /ban)" +#, fuzzy +#| msgid "server: internal server name" +msgid "n1: interval start number" +msgstr "сервер: интерно име сервера" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "уклањање ућуткивања надимака или хостова" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2024-04-07 14:50+0200\n" "Last-Translator: Emir SARI <emir_sari@icloud.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -10678,7 +10678,9 @@ msgid "unban nicks or hosts" msgstr "takma adların veya makinelerin yasağını kaldır" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +#, fuzzy +#| msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "[<kanal>] <takmaad>|<sayı> [<takmaad>|<sayı>...]" #, fuzzy @@ -10692,6 +10694,14 @@ msgstr "" "takmaad: takma ad veya makine\n" " sayı: yasak numarası (/ban komutunda görüntülendiği üzere)" +#, fuzzy +#| msgid "IRC servers (internal names)" +msgid "n1: interval start number" +msgstr "IRC sunucuları (dahili adlar)" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "takma adların veya makinelerin sessiz durumunu kaldır" diff --git a/po/weechat.pot b/po/weechat.pot index 5cd13814c..e6a342bc8 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2024-05-13 22:49+0200\n" +"POT-Creation-Date: 2024-05-13 22:50+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -8833,12 +8833,18 @@ msgid "unban nicks or hosts" msgstr "" #. TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated -msgid "[<channel>] <nick>|<number> [<nick>|<number>...]" +msgid "[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]" msgstr "" msgid "number: ban number (as displayed by command /ban)" msgstr "" +msgid "n1: interval start number" +msgstr "" + +msgid "n2: interval end number" +msgstr "" + msgid "unquiet nicks or hosts" msgstr "" diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 7a6fbcf5b..3b994ba98 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -221,6 +221,77 @@ irc_command_mode_nicks (struct t_irc_server *server, } /* + * Returns arguments with ranges of numbers converted to individual numbers. + * Arguments that are not range (format: "N1-N2") are kept as-is. + * + * For example: ["2" "5-8" "abc"] -> ["2" "5" "6" "7" "8" "abc"] + */ + +char ** +irc_command_mode_masks_convert_ranges (char **argv, int arg_start) +{ + char **str_masks, **masks, *error1, *error2, *pos, str_number[32]; + int i, length, added; + long j, number1, number2; + + if (!argv || (arg_start < 0)) + return NULL; + + str_masks = weechat_string_dyn_alloc (128); + if (!str_masks) + return NULL; + + for (i = arg_start; argv[i]; i++) + { + added = 0; + + length = strlen (argv[i]); + pos = strchr (argv[i], '-'); + if ((length > 2) + && pos + && (argv[i][0] != '-') + && (argv[i][length - 1] != '-')) + { + pos[0] = '\0'; + error1 = NULL; + number1 = strtol (argv[i], &error1, 10); + error2 = NULL; + number2 = strtol (pos + 1, &error2, 10); + if (error1 && !error1[0] + && error2 && !error2[0] + && (number1 > 0) && (number1 < 128) + && (number2 > 0) && (number2 < 128) + && (number1 < number2)) + { + for (j = number1; j <= number2; j++) + { + if (*str_masks[0]) + weechat_string_dyn_concat (str_masks, " ", -1); + snprintf (str_number, sizeof (str_number), + "%ld", j); + weechat_string_dyn_concat (str_masks, str_number, -1); + } + added = 1; + } + pos[0] = '-'; + } + + if (!added) + { + if (*str_masks[0]) + weechat_string_dyn_concat (str_masks, " ", -1); + weechat_string_dyn_concat (str_masks, argv[i], -1); + } + } + + masks = weechat_string_split (*str_masks, " ", NULL, 0, 0, NULL); + + weechat_string_dyn_free (str_masks, 1); + + return masks; +} + +/* * Sends mode change for many masks on a channel. * * Argument "set" is "+" or "-", mode can be "b", "q", or any other mode @@ -6369,7 +6440,7 @@ IRC_COMMAND_CALLBACK(trace) IRC_COMMAND_CALLBACK(unban) { - char *pos_channel; + char *pos_channel, **masks; int pos_args; IRC_BUFFER_GET_SERVER_CHANNEL(buffer); @@ -6409,9 +6480,14 @@ IRC_COMMAND_CALLBACK(unban) } } - irc_command_mode_masks (ptr_server, pos_channel, - "unban", "-", "b", - argv, pos_args); + masks = irc_command_mode_masks_convert_ranges (argv, pos_args); + if (masks) + { + irc_command_mode_masks (ptr_server, pos_channel, + "unban", "-", "b", + masks, 0); + weechat_string_free_split (masks); + } return WEECHAT_RC_OK; } @@ -6422,7 +6498,7 @@ IRC_COMMAND_CALLBACK(unban) IRC_COMMAND_CALLBACK(unquiet) { - char *pos_channel; + char *pos_channel, **masks; int pos_args; IRC_BUFFER_GET_SERVER_CHANNEL(buffer); @@ -6464,9 +6540,14 @@ IRC_COMMAND_CALLBACK(unquiet) if (argv[pos_args]) { - irc_command_mode_masks (ptr_server, pos_channel, - "unquiet", "-", "q", - argv, pos_args); + masks = irc_command_mode_masks_convert_ranges (argv, pos_args); + if (masks) + { + irc_command_mode_masks (ptr_server, pos_channel, + "unquiet", "-", "q", + masks, 0); + weechat_string_free_split (masks); + } } else { @@ -7923,22 +8004,26 @@ irc_command_init () "unban", N_("unban nicks or hosts"), /* TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated */ - N_("[<channel>] <nick>|<number> [<nick>|<number>...]"), + N_("[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]"), WEECHAT_CMD_ARGS_DESC( N_("channel: channel name"), N_("nick: nick or host"), - N_("number: ban number (as displayed by command /ban)")), + N_("number: ban number (as displayed by command /ban)"), + N_("n1: interval start number"), + N_("n2: interval end number")), "%(irc_modelist_masks:b)|%(irc_modelist_numbers:b)", &irc_command_unban, NULL, NULL); weechat_hook_command ( "unquiet", N_("unquiet nicks or hosts"), /* TRANSLATORS: only text between angle brackets (eg: "<name>") must be translated */ - N_("[<channel>] <nick>|<number> [<nick>|<number>...]"), + N_("[<channel>] <nick>|<number>|<n1>-<n2> [<nick>|<number>|<n1>-<n2>...]"), WEECHAT_CMD_ARGS_DESC( N_("channel: channel name"), N_("nick: nick or host"), - N_("number: quiet number (as displayed by command /quiet)")), + N_("number: quiet number (as displayed by command /quiet)"), + N_("n1: interval start number"), + N_("n2: interval end number")), "%(irc_modelist_masks:q)|%(irc_modelist_numbers:q)", &irc_command_unquiet, NULL, NULL); weechat_hook_command ( diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 52702d9c4..58c74e966 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -126,6 +126,7 @@ if(ENABLE_IRC) unit/plugins/irc/test-irc-buffer.cpp unit/plugins/irc/test-irc-channel.cpp unit/plugins/irc/test-irc-color.cpp + unit/plugins/irc/test-irc-command.cpp unit/plugins/irc/test-irc-config.cpp unit/plugins/irc/test-irc-ctcp.cpp unit/plugins/irc/test-irc-info.cpp diff --git a/tests/unit/plugins/irc/test-irc-command.cpp b/tests/unit/plugins/irc/test-irc-command.cpp new file mode 100644 index 000000000..ec9814e97 --- /dev/null +++ b/tests/unit/plugins/irc/test-irc-command.cpp @@ -0,0 +1,1146 @@ +/* + * test-irc-command.cpp - test IRC commands + * + * Copyright (C) 2024 Sébastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * WeeChat is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "CppUTest/TestHarness.h" + +extern "C" +{ +#include <string.h> +#include "src/core/core-string.h" +#include "src/plugins/irc/irc-command.h" + +extern char **irc_command_mode_masks_convert_ranges (char **argv, int arg_start); +} + +TEST_GROUP(IrcCommand) +{ +}; + +/* + * Tests functions: + * irc_command_mode_nicks + */ + +TEST(IrcCommand, ModeNicks) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_mode_masks_convert_ranges + */ + +TEST(IrcCommand, ModeMasksConvertRanges) +{ + char **args, **masks; + + POINTERS_EQUAL(NULL, irc_command_mode_masks_convert_ranges (NULL, 0)); + + args = string_split ("test", " ", NULL, 0, 0, NULL); + POINTERS_EQUAL(NULL, irc_command_mode_masks_convert_ranges (args, -1)); + masks = irc_command_mode_masks_convert_ranges (args, 0); + CHECK(masks); + STRCMP_EQUAL("test", masks[0]); + POINTERS_EQUAL(NULL, masks[1]); + string_free_split (masks); + string_free_split (args); + + args = string_split ("3 test 6-9 5-1 -2 64-", " ", NULL, 0, 0, NULL); + masks = irc_command_mode_masks_convert_ranges (args, 0); + CHECK(masks); + STRCMP_EQUAL("3", masks[0]); + STRCMP_EQUAL("test", masks[1]); + STRCMP_EQUAL("6", masks[2]); + STRCMP_EQUAL("7", masks[3]); + STRCMP_EQUAL("8", masks[4]); + STRCMP_EQUAL("9", masks[5]); + STRCMP_EQUAL("5-1", masks[6]); + STRCMP_EQUAL("-2", masks[7]); + STRCMP_EQUAL("64-", masks[8]); + POINTERS_EQUAL(NULL, masks[9]); + string_free_split (masks); + string_free_split (args); + + args = string_split ("4-10", " ", NULL, 0, 0, NULL); + masks = irc_command_mode_masks_convert_ranges (args, 0); + CHECK(masks); + STRCMP_EQUAL("4", masks[0]); + STRCMP_EQUAL("5", masks[1]); + STRCMP_EQUAL("6", masks[2]); + STRCMP_EQUAL("7", masks[3]); + STRCMP_EQUAL("8", masks[4]); + STRCMP_EQUAL("9", masks[5]); + STRCMP_EQUAL("10", masks[6]); + POINTERS_EQUAL(NULL, masks[7]); + string_free_split (masks); + string_free_split (args); +} + +/* + * Tests functions: + * irc_command_mode_masks + */ + +TEST(IrcCommand, ModeMasks) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_me_channel_message + */ + +TEST(IrcCommand, MeChannelMessage) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_me_channel + */ + +TEST(IrcCommand, MeChannel) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_me_all_channels + */ + +TEST(IrcCommand, MeAllChannels) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_action + */ + +TEST(IrcCommand, Action) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_admin + */ + +TEST(IrcCommand, Admin) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_exec_buffers + */ + +TEST(IrcCommand, ExecBuffers) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_exec_all_channels + */ + +TEST(IrcCommand, ExecAllChannels) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_allchan + */ + +TEST(IrcCommand, Allchan) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_allpv + */ + +TEST(IrcCommand, Allpv) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_exec_all_servers + */ + +TEST(IrcCommand, ExecAllServers) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_allserv + */ + +TEST(IrcCommand, Allserv) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_auth + */ + +TEST(IrcCommand, Auth) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_autojoin + */ + +TEST(IrcCommand, Autojoin) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_display_away + */ + +TEST(IrcCommand, DisplayAway) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_away_server + */ + +TEST(IrcCommand, AwayServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_away + */ + +TEST(IrcCommand, Away) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_run_away + */ + +TEST(IrcCommand, RunAway) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_send_ban + */ + +TEST(IrcCommand, SendBan) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ban + */ + +TEST(IrcCommand, Ban) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_cap + */ + +TEST(IrcCommand, Cap) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_connect_one_server + */ + +TEST(IrcCommand, ConnectOneServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_connect + */ + +TEST(IrcCommand, Connect) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ctcp + */ + +TEST(IrcCommand, Ctcp) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_cycle + */ + +TEST(IrcCommand, Cycle) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_dcc + */ + +TEST(IrcCommand, Dcc) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_dehalfop + */ + +TEST(IrcCommand, Dehalfop) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_deop + */ + +TEST(IrcCommand, Deop) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_devoice + */ + +TEST(IrcCommand, Devoice) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_die + */ + +TEST(IrcCommand, Die) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_quit_server + */ + +TEST(IrcCommand, QuitServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_disconnect_one_server + */ + +TEST(IrcCommand, DisconnectOneServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_disconnect + */ + +TEST(IrcCommand, Disconnect) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_halfop + */ + +TEST(IrcCommand, Halfop) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ignore_display + */ + +TEST(IrcCommand, IgnoreDisplay) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ignore + */ + +TEST(IrcCommand, Ignore) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_info + */ + +TEST(IrcCommand, Info) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_invite + */ + +TEST(IrcCommand, Invite) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ison + */ + +TEST(IrcCommand, Ison) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_join_server + */ + +TEST(IrcCommand, JoinServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_join + */ + +TEST(IrcCommand, Join) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_kick_channel + */ + +TEST(IrcCommand, KickChannel) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_kick + */ + +TEST(IrcCommand, Kick) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_kickban + */ + +TEST(IrcCommand, Kickban) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_kill + */ + +TEST(IrcCommand, Kill) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_knock + */ + +TEST(IrcCommand, Knock) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_links + */ + +TEST(IrcCommand, Links) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_list_get_int_arg + */ + +TEST(IrcCommand, ListGetIntArg) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_list + */ + +TEST(IrcCommand, List) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_lusers + */ + +TEST(IrcCommand, Lusers) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_map + */ + +TEST(IrcCommand, Map) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_me + */ + +TEST(IrcCommand, Me) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_mode_server + */ + +TEST(IrcCommand, ModeServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_mode + */ + +TEST(IrcCommand, Mode) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_motd + */ + +TEST(IrcCommand, Motd) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_msg + */ + +TEST(IrcCommand, Msg) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_names + */ + +TEST(IrcCommand, Names) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_nick_server + */ + +TEST(IrcCommand, NickServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_nick + */ + +TEST(IrcCommand, Nick) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_notice + */ + +TEST(IrcCommand, Notice) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_notify + */ + +TEST(IrcCommand, Notify) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_op + */ + +TEST(IrcCommand, Op) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_oper + */ + +TEST(IrcCommand, Oper) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_part_channel + */ + +TEST(IrcCommand, PartChannel) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_part + */ + +TEST(IrcCommand, Part) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_ping + */ + +TEST(IrcCommand, Ping) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_pong + */ + +TEST(IrcCommand, Pong) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_query + */ + +TEST(IrcCommand, Query) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_quiet + */ + +TEST(IrcCommand, Quiet) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_quote + */ + +TEST(IrcCommand, Quote) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_reconnect_one_server + */ + +TEST(IrcCommand, ReconnectOneServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_reconnect + */ + +TEST(IrcCommand, Reconnect) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_rehash + */ + +TEST(IrcCommand, Rehash) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_remove + */ + +TEST(IrcCommand, Remove) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_restart + */ + +TEST(IrcCommand, Restart) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_rules + */ + +TEST(IrcCommand, Rules) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_sajoin + */ + +TEST(IrcCommand, Sajoin) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_samode + */ + +TEST(IrcCommand, Samode) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_sanick + */ + +TEST(IrcCommand, Sanick) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_sapart + */ + +TEST(IrcCommand, Sapart) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_saquit + */ + +TEST(IrcCommand, Saquit) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_display_server + */ + +TEST(IrcCommand, DisplayServer) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_server + */ + +TEST(IrcCommand, Server) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_service + */ + +TEST(IrcCommand, Service) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_servlist + */ + +TEST(IrcCommand, Servlist) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_squery + */ + +TEST(IrcCommand, Squery) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_setname + */ + +TEST(IrcCommand, Setname) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_squit + */ + +TEST(IrcCommand, Squit) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_stats + */ + +TEST(IrcCommand, Stats) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_summon + */ + +TEST(IrcCommand, Summon) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_time + */ + +TEST(IrcCommand, Time) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_topic + */ + +TEST(IrcCommand, Topic) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_trace + */ + +TEST(IrcCommand, Trace) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_unban + */ + +TEST(IrcCommand, Unban) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_unquiet + */ + +TEST(IrcCommand, Unquiet) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_userhost + */ + +TEST(IrcCommand, Userhost) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_users + */ + +TEST(IrcCommand, Users) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_version + */ + +TEST(IrcCommand, Version) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_voice + */ + +TEST(IrcCommand, Voice) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_wallchops + */ + +TEST(IrcCommand, Wallchops) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_wallops + */ + +TEST(IrcCommand, Wallops) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_who + */ + +TEST(IrcCommand, Who) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_whois + */ + +TEST(IrcCommand, Whois) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_whowas + */ + +TEST(IrcCommand, Whowas) +{ + /* TODO: write tests */ +} + +/* + * Tests functions: + * irc_command_init + */ + +TEST(IrcCommand, Init) +{ + /* TODO: write tests */ +} |