diff --git a/po/cs.po b/po/cs.po index 772eb0115..73af4d9e3 100644 --- a/po/cs.po +++ b/po/cs.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Ondřej Súkup \n" "Language-Team: weechat-dev \n" @@ -9148,6 +9148,9 @@ msgstr "%s%s: schopnost klienta: sasl není podporován" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s%s%s%s%s%s%s opustil %s%s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sByl jsi pozván na %s%s%s od %s%s%s" @@ -9196,6 +9199,9 @@ msgstr "%sJste nyní známý jako %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s je nyní známý jako %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s opustil %s%s%s %s(%s%s%s)" @@ -9236,6 +9242,10 @@ msgstr "%s%s%s%s zrušil téma pro %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallops od %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "běžící" + #, fuzzy, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr " %s[%s%d%s]%s maska: %s / server: %s / kanál: %s" diff --git a/po/de.po b/po/de.po index 0c329e221..17b8cb60b 100644 --- a/po/de.po +++ b/po/de.po @@ -24,7 +24,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-06-05 23:02+0200\n" "Last-Translator: Nils Görs \n" "Language-Team: German \n" @@ -11224,6 +11224,9 @@ msgstr "%s%s: Clientfähigkeit, entfernt: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s (%s%s%s)%s hat den Host nach %s%s geändert" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sDu bist in den Kanal %s%s%s von %s%s%s eingeladen worden" @@ -11272,6 +11275,9 @@ msgstr "%sDu bist nun als %s%s%s bekannt" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s ist nun als %s%s%s bekannt" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s verließ %s%s%s %s(%s%s%s)" @@ -11315,6 +11321,10 @@ msgstr "%s%s%s%s hat das Thema von %s%s%s entfernt" msgid "%sWallops from %s: %s" msgstr "%sWallops von %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "%s: Warnung:" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sServer notice Maske für %s%s%s: %s" diff --git a/po/es.po b/po/es.po index c9798f922..1f24a3f21 100644 --- a/po/es.po +++ b/po/es.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Elián Hanisch \n" "Language-Team: weechat-dev \n" @@ -9451,6 +9451,9 @@ msgstr "%s%s: capabilidad del cliente, rechazada: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s%s%s%s%s%s%s ha abandonado %s%s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sUsted ha sido invitado a %s%s%s por %s%s%s" @@ -9499,6 +9502,9 @@ msgstr "%sEres conocido ahora como %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s es conocido ahora como %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s ha abandonado %s%s%s %s(%s%s%s)" @@ -9539,6 +9545,10 @@ msgstr "%s%s%s%s ha borrado el tema para %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallops de %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "corriendo" + #, fuzzy, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sEl modo de usuario para %s%s%s es %s[%s%s%s]" diff --git a/po/fr.po b/po/fr.po index 547e8c117..b209a98ac 100644 --- a/po/fr.po +++ b/po/fr.po @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" -"PO-Revision-Date: 2021-06-13 09:15+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" +"PO-Revision-Date: 2021-06-15 18:49+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" "Language: fr\n" @@ -10986,6 +10986,9 @@ msgstr "%s%s : client capability, supprimé : %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s (%s%s%s)%s a changé d'hôte pour %s%s" +msgid "Failure:" +msgstr "Échec :" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sVous avez été invité sur %s%s%s par %s%s%s" @@ -11034,6 +11037,9 @@ msgstr "%sVous êtes maintenant connu sous le nom %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s est maintenant connu sous le nom %s%s%s" +msgid "Note:" +msgstr "Note :" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s a quitté %s%s%s %s(%s%s%s)" @@ -11074,6 +11080,9 @@ msgstr "%s%s%s%s a retiré le titre pour %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallops de %s : %s" +msgid "Warning:" +msgstr "Attention :" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sMasque de notice serveur pour %s%s%s : %s" diff --git a/po/hu.po b/po/hu.po index 39554d35b..c9593b378 100644 --- a/po/hu.po +++ b/po/hu.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Andras Voroskoi \n" "Language-Team: weechat-dev \n" @@ -8721,6 +8721,9 @@ msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" +msgid "Failure:" +msgstr "" + #, fuzzy, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "Meghívást kapott a %s%s%s szobába %s%s felhasználótól\n" @@ -8769,6 +8772,9 @@ msgstr "Az új neved: %s%s\n" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s mostantól: %s%s\n" +msgid "Note:" +msgstr "" + #, fuzzy, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" @@ -8809,6 +8815,9 @@ msgstr "%s%s%s törölte a %s%s szoba témáját\n" msgid "%sWallops from %s: %s" msgstr "%s%s %s(%s%s@%s%s)%s neve %s volt\n" +msgid "Warning:" +msgstr "" + #, fuzzy, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%s%s%s felhasználói módja: %s[%s%s%s]\n" diff --git a/po/it.po b/po/it.po index 24322f7a3..7cf5a92b5 100644 --- a/po/it.po +++ b/po/it.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Esteban I. Ruiz Moreno \n" "Language-Team: weechat-dev \n" @@ -9612,6 +9612,9 @@ msgstr "%s%s: capacità del client, rifiutata: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s%s%s%s%s%s%s è uscito da %s%s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sSei stato invitato su %s%s%s da %s%s%s" @@ -9660,6 +9663,9 @@ msgstr "%sOra sei conosciuto come %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s ora è conosciuto come %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s è uscito da %s%s%s %s(%s%s%s)" @@ -9701,6 +9707,10 @@ msgstr "%s%s%s%s ha rimosso l'argomento per %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallop da %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "in_esecuzione" + #, fuzzy, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sModalità utente per %s%s%s è %s[%s%s%s]" diff --git a/po/ja.po b/po/ja.po index 81ab5c998..e55371c19 100644 --- a/po/ja.po +++ b/po/ja.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke \n" "Language-Team: Japanese \n" "Language-Team: Polish \n" @@ -10737,6 +10737,9 @@ msgstr "%s%s: możliwości klienta, usunięte: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s (%s%s%s)%s zmienił hosta na %s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sZostałeś zaproszony na %s%s%s przez %s%s%s" @@ -10785,6 +10788,9 @@ msgstr "%sTwój nowy nick to %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s zmienił nick na %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s opuścił %s%s%s %s(%s%s%s)" @@ -10825,6 +10831,10 @@ msgstr "%s%s%s%s usunął temat %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallopy od %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "%s: ostrzeżenie:" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sMaska powiadomień serwera dla %s%s%s: %s" diff --git a/po/pt.po b/po/pt.po index 0c93816f8..e35e2baab 100644 --- a/po/pt.po +++ b/po/pt.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Vasco Almeida \n" "Language-Team: Portuguese <>\n" @@ -10292,6 +10292,9 @@ msgstr "%s%s: capacidade do cliente, removido: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s%s%s%s%s%s%s saiu %s%s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sFoi convidado para %s%s%s por %s%s%s" @@ -10340,6 +10343,9 @@ msgstr "%sAgora é conhecido por %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s agora é conhecido por %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s saiu %s%s%s %s(%s%s%s)" @@ -10380,6 +10386,10 @@ msgstr "%s%s%s%s retirou o tópico de %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallops de %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "carregado" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sMáscara de notice do servidor %s%s%s: %s" diff --git a/po/pt_BR.po b/po/pt_BR.po index 9c7300815..b7cc7584e 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: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Érico Nogueira \n" "Language-Team: weechat-dev \n" @@ -9153,6 +9153,9 @@ msgstr "%s: script removido: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s%s%s%s%s%s%s entrou %s%s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sVocê foi convidado para %s%s%s por %s%s%s" @@ -9201,6 +9204,9 @@ msgstr "%sVocê agora é conhecido como %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s agora é conhecido como %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "" @@ -9241,6 +9247,9 @@ msgstr "%s%s%s%s limpou o tópico do canal %s%s%s" msgid "%sWallops from %s: %s" msgstr "" +msgid "Warning:" +msgstr "" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sMáscara de aviso do servidor para %s%s%s: %s" diff --git a/po/ru.po b/po/ru.po index 088e01875..4155be1e0 100644 --- a/po/ru.po +++ b/po/ru.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti \n" "Language-Team: weechat-dev \n" @@ -8758,6 +8758,9 @@ msgstr "Не могу записать лог-файл \"%s\"\n" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s %s(%s%s%s)%s покинул %s%s" +msgid "Failure:" +msgstr "" + #, fuzzy, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "Вас пригласил на %s%s%s пользователь %s%s\n" @@ -8806,6 +8809,9 @@ msgstr "Теперь вы известны как %s%s\n" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s теперь известен как %s%s\n" +msgid "Note:" +msgstr "" + #, fuzzy, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s %s(%s%s%s)%s покинул %s%s" @@ -8846,6 +8852,9 @@ msgstr "%s%s%s удалил тему канала для %s%s\n" msgid "%sWallops from %s: %s" msgstr "%s%s %s(%s%s@%s%s)%s был %s\n" +msgid "Warning:" +msgstr "" + #, fuzzy, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "Режим пользователя %s%s%s - %s[%s%s%s]\n" diff --git a/po/sr.po b/po/sr.po index 9854a2b13..58da99be8 100644 --- a/po/sr.po +++ b/po/sr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 14:41+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-06-03 15:15+0400\n" "Last-Translator: Ivan Pešić \n" "Language-Team: weechat-dev \n" @@ -10710,6 +10710,9 @@ msgstr "%s%s: могућност клијента, уклоњено: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s (%s%s%s)%s је променио свој хост на %s%s" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "%sНа канал %s%s%s вас је позвао %s%s%s" @@ -10758,6 +10761,9 @@ msgstr "%sОд сада сте познати као %s%s%s" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s%s је сада познат као %s%s%s" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s је напустио %s%s%s %s(%s%s%s)" @@ -10798,6 +10804,10 @@ msgstr "%s%s%s%s је обрисао тему за канал %s%s%s" msgid "%sWallops from %s: %s" msgstr "%sWallops од %s: %s" +#, fuzzy +msgid "Warning:" +msgstr "%s: упозорење:" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%sМаска серверских обавештења за %s%s%s: %s" diff --git a/po/tr.po b/po/tr.po index 76d1cdda4..1d15c3b99 100644 --- a/po/tr.po +++ b/po/tr.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2021-05-25 18:28+0200\n" "Last-Translator: Emir SARI \n" "Language-Team: weechat-dev \n" @@ -8308,6 +8308,9 @@ msgstr "%s%s: sunucu yeteneği, kaldırıldı: %s" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "%s%s%s%s (%s%s%s)%s ana makineyi %s%s olarak değiştirdi" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "" @@ -8356,6 +8359,9 @@ msgstr "%s Artık %s%s%s olarak biliniyorsunuz" msgid "%s%s%s%s is now known as %s%s%s" msgstr "%s%s%s şimdi %s%s%s%s olarak biliniyor" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "%s%s%s%s%s%s%s%s%s%s terk etti %s%s%s %s(%s%s%s)" @@ -8396,6 +8402,9 @@ msgstr "" msgid "%sWallops from %s: %s" msgstr "" +msgid "Warning:" +msgstr "" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "%s%s%s%s için sunucu bildirim maskesi: %s" diff --git a/po/weechat.pot b/po/weechat.pot index f48d84999..3b94cf2ba 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: 2021-06-13 09:14+0200\n" +"POT-Creation-Date: 2021-06-15 18:48+0200\n" "PO-Revision-Date: 2014-08-16 10:27+0200\n" "Last-Translator: Sébastien Helleu \n" "Language-Team: weechat-dev \n" @@ -7780,6 +7780,9 @@ msgstr "" msgid "%s%s%s%s (%s%s%s)%s has changed host to %s%s" msgstr "" +msgid "Failure:" +msgstr "" + #, c-format msgid "%sYou have been invited to %s%s%s by %s%s%s" msgstr "" @@ -7828,6 +7831,9 @@ msgstr "" msgid "%s%s%s%s is now known as %s%s%s" msgstr "" +msgid "Note:" +msgstr "" + #, c-format msgid "%s%s%s%s%s%s%s%s%s%s has left %s%s%s %s(%s%s%s)" msgstr "" @@ -7868,6 +7874,9 @@ msgstr "" msgid "%sWallops from %s: %s" msgstr "" +msgid "Warning:" +msgstr "" + #, c-format msgid "%sServer notice mask for %s%s%s: %s" msgstr "" diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index ab0ce07af..71eb0d0df 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -318,6 +318,54 @@ irc_protocol_parse_time (const char *time) return time_value; } +/* + * Prints a FAIL/WARN/NOTE message. + * + * Called by callbacks for messages: FAIL, WARN, NOTE. + */ + +void +irc_protocol_print_error_warning_msg (struct t_irc_server *server, + time_t date, + const char *command, + const char *prefix, + const char *label, + char *error_command, + char *args) +{ + const char *ptr_command; + char *pos_desc; + + ptr_command = (error_command && (strcmp (error_command, "*") != 0)) ? + error_command : NULL; + + pos_desc = (args) ? strstr (args, " :") : NULL; + if (pos_desc) + pos_desc[0] = '\0'; + + weechat_printf_date_tags ( + irc_msgbuffer_get_target_buffer (server, NULL, command, NULL, NULL), + date, + irc_protocol_tags (command, NULL, NULL, NULL), + "%s%s%s%s%s%s[%s%s%s]%s%s%s", + (prefix) ? prefix : "", + (label) ? label : "", + (label) ? " " : "", + (ptr_command) ? ptr_command : "", + (ptr_command) ? " " : "", + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_RESET, + (args) ? args : "", + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_RESET, + (pos_desc) ? ": " : "", + (pos_desc) ? pos_desc + 2 : ""); + + if (pos_desc) + pos_desc[0] = ' '; + +} + /* * Callback for the IRC message "ACCOUNT": account info about a nick * (with capability "account-notify"). @@ -1209,6 +1257,31 @@ IRC_PROTOCOL_CALLBACK(generic_error) return WEECHAT_RC_OK; } +/* + * Callback for the IRC message "FAIL". + * + * Message looks like: + * :server FAIL * NEED_REGISTRATION :You need to be registered to continue + * :server FAIL ACC REG_INVALID_CALLBACK REGISTER :Email address is not valid + * :server FAIL BOX BOXES_INVALID STACK CLOCKWISE :Given boxes are not supported + */ + +IRC_PROTOCOL_CALLBACK(fail) +{ + IRC_PROTOCOL_MIN_ARGS(4); + + irc_protocol_print_error_warning_msg ( + server, + date, + command, + weechat_prefix ("error"), + _("Failure:"), + argv[2], + argv_eol[3]); + + return WEECHAT_RC_OK; +} + /* * Callback for the IRC message "INVITE". * @@ -1920,6 +1993,29 @@ IRC_PROTOCOL_CALLBACK(nick) return WEECHAT_RC_OK; } +/* + * Callback for the IRC message "NOTE". + * + * Message looks like: + * :server NOTE * OPER_MESSAGE :The message + */ + +IRC_PROTOCOL_CALLBACK(note) +{ + IRC_PROTOCOL_MIN_ARGS(4); + + irc_protocol_print_error_warning_msg ( + server, + date, + command, + weechat_prefix ("network"), + _("Note:"), + argv[2], + argv_eol[3]); + + return WEECHAT_RC_OK; +} + /* * Callback for the IRC message "NOTICE". * @@ -2992,6 +3088,29 @@ IRC_PROTOCOL_CALLBACK(wallops) return WEECHAT_RC_OK; } +/* + * Callback for the IRC message "WARN". + * + * Message looks like: + * :server WARN REHASH CERTS_EXPIRED :Certificate [xxx] has expired + */ + +IRC_PROTOCOL_CALLBACK(warn) +{ + IRC_PROTOCOL_MIN_ARGS(4); + + irc_protocol_print_error_warning_msg ( + server, + date, + command, + weechat_prefix ("error"), + _("Warning:"), + argv[2], + argv_eol[3]); + + return WEECHAT_RC_OK; +} + /* * Callback for the IRC message "001": connected to IRC server. * @@ -6484,159 +6603,162 @@ irc_protocol_recv_command (struct t_irc_server *server, char *nick, *address, *address_color, *host, *host_no_color, *host_color; char **argv, **argv_eol; struct t_hashtable *hash_tags; - struct t_irc_protocol_msg irc_protocol_messages[] = - { { "account", /* account (cap account-notify) */ 1, 0, &irc_protocol_cb_account }, - { "authenticate", /* authenticate */ 1, 0, &irc_protocol_cb_authenticate }, - { "away", /* away (cap away-notify) */ 1, 0, &irc_protocol_cb_away }, - { "cap", /* client capability */ 1, 0, &irc_protocol_cb_cap }, - { "chghost", /* user/host change (cap chghost) */ 1, 0, &irc_protocol_cb_chghost }, - { "error", /* error received from IRC server */ 1, 0, &irc_protocol_cb_error }, - { "invite", /* invite a nick on a channel */ 1, 0, &irc_protocol_cb_invite }, - { "join", /* join a channel */ 1, 0, &irc_protocol_cb_join }, - { "kick", /* forcibly remove a user from a channel */ 1, 1, &irc_protocol_cb_kick }, - { "kill", /* close client-server connection */ 1, 1, &irc_protocol_cb_kill }, - { "mode", /* change channel or user mode */ 1, 0, &irc_protocol_cb_mode }, - { "nick", /* change current nickname */ 1, 0, &irc_protocol_cb_nick }, - { "notice", /* send notice message to user */ 1, 1, &irc_protocol_cb_notice }, - { "part", /* leave a channel */ 1, 1, &irc_protocol_cb_part }, - { "ping", /* ping server */ 1, 0, &irc_protocol_cb_ping }, - { "pong", /* answer to a ping message */ 1, 0, &irc_protocol_cb_pong }, - { "privmsg", /* message received */ 1, 1, &irc_protocol_cb_privmsg }, - { "quit", /* close all connections and quit */ 1, 1, &irc_protocol_cb_quit }, - { "topic", /* get/set channel topic */ 0, 1, &irc_protocol_cb_topic }, - { "wallops", /* send a message to all currently connected users who have " - "set the 'w' user mode " - "for themselves */ 1, 1, &irc_protocol_cb_wallops }, - { "001", /* a server message */ 1, 0, &irc_protocol_cb_001 }, - { "005", /* a server message */ 1, 0, &irc_protocol_cb_005 }, - { "008", /* server notice mask */ 1, 0, &irc_protocol_cb_008 }, - { "221", /* user mode string */ 1, 0, &irc_protocol_cb_221 }, - { "223", /* whois (charset is) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "264", /* whois (is using encrypted connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "275", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "276", /* whois (has client certificate fingerprint) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "301", /* away message */ 1, 1, &irc_protocol_cb_301 }, - { "303", /* ison */ 1, 0, &irc_protocol_cb_303 }, - { "305", /* unaway */ 1, 0, &irc_protocol_cb_305 }, - { "306", /* now away */ 1, 0, &irc_protocol_cb_306 }, - { "307", /* whois (registered nick) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "310", /* whois (help mode) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "311", /* whois (user) */ 1, 0, &irc_protocol_cb_311 }, - { "312", /* whois (server) */ 1, 0, &irc_protocol_cb_312 }, - { "313", /* whois (operator) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "314", /* whowas */ 1, 0, &irc_protocol_cb_314 }, - { "315", /* end of /who list */ 1, 0, &irc_protocol_cb_315 }, - { "317", /* whois (idle) */ 1, 0, &irc_protocol_cb_317 }, - { "318", /* whois (end) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "319", /* whois (channels) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "320", /* whois (identified user) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "321", /* /list start */ 1, 0, &irc_protocol_cb_321 }, - { "322", /* channel (for /list) */ 1, 0, &irc_protocol_cb_322 }, - { "323", /* end of /list */ 1, 0, &irc_protocol_cb_323 }, - { "324", /* channel mode */ 1, 0, &irc_protocol_cb_324 }, - { "326", /* whois (has oper privs) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "327", /* whois (host) */ 1, 0, &irc_protocol_cb_327 }, - { "328", /* channel url */ 1, 0, &irc_protocol_cb_328 }, - { "329", /* channel creation date */ 1, 0, &irc_protocol_cb_329 }, - { "330", /* is logged in as */ 1, 0, &irc_protocol_cb_330_343 }, - { "331", /* no topic for channel */ 1, 0, &irc_protocol_cb_331 }, - { "332", /* topic of channel */ 0, 1, &irc_protocol_cb_332 }, - { "333", /* infos about topic (nick and date changed) */ 1, 0, &irc_protocol_cb_333 }, - { "335", /* is a bot on */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "338", /* whois (host) */ 1, 0, &irc_protocol_cb_338 }, - { "341", /* inviting */ 1, 0, &irc_protocol_cb_341 }, - { "343", /* is opered as */ 1, 0, &irc_protocol_cb_330_343 }, - { "344", /* channel reop */ 1, 0, &irc_protocol_cb_344 }, - { "345", /* end of channel reop list */ 1, 0, &irc_protocol_cb_345 }, - { "346", /* invite list */ 1, 0, &irc_protocol_cb_346 }, - { "347", /* end of invite list */ 1, 0, &irc_protocol_cb_347 }, - { "348", /* channel exception list */ 1, 0, &irc_protocol_cb_348 }, - { "349", /* end of channel exception list */ 1, 0, &irc_protocol_cb_349 }, - { "351", /* server version */ 1, 0, &irc_protocol_cb_351 }, - { "352", /* who */ 1, 0, &irc_protocol_cb_352 }, - { "353", /* list of nicks on channel */ 1, 0, &irc_protocol_cb_353 }, - { "354", /* whox */ 1, 0, &irc_protocol_cb_354 }, - { "366", /* end of /names list */ 1, 0, &irc_protocol_cb_366 }, - { "367", /* banlist */ 1, 0, &irc_protocol_cb_367 }, - { "368", /* end of banlist */ 1, 0, &irc_protocol_cb_368 }, - { "369", /* whowas (end) */ 1, 0, &irc_protocol_cb_whowas_nick_msg }, - { "378", /* whois (connecting from) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "379", /* whois (using modes) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "401", /* no such nick/channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "402", /* no such server */ 1, 0, &irc_protocol_cb_generic_error }, - { "403", /* no such channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "404", /* cannot send to channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "405", /* too many channels */ 1, 0, &irc_protocol_cb_generic_error }, - { "406", /* was no such nick */ 1, 0, &irc_protocol_cb_generic_error }, - { "407", /* was no such nick */ 1, 0, &irc_protocol_cb_generic_error }, - { "409", /* no origin */ 1, 0, &irc_protocol_cb_generic_error }, - { "410", /* no services */ 1, 0, &irc_protocol_cb_generic_error }, - { "411", /* no recipient */ 1, 0, &irc_protocol_cb_generic_error }, - { "412", /* no text to send */ 1, 0, &irc_protocol_cb_generic_error }, - { "413", /* no toplevel */ 1, 0, &irc_protocol_cb_generic_error }, - { "414", /* wilcard in toplevel domain */ 1, 0, &irc_protocol_cb_generic_error }, - { "421", /* unknown command */ 1, 0, &irc_protocol_cb_generic_error }, - { "422", /* MOTD is missing */ 1, 0, &irc_protocol_cb_generic_error }, - { "423", /* no administrative info */ 1, 0, &irc_protocol_cb_generic_error }, - { "424", /* file error */ 1, 0, &irc_protocol_cb_generic_error }, - { "431", /* no nickname given */ 1, 0, &irc_protocol_cb_generic_error }, - { "432", /* erroneous nickname */ 1, 0, &irc_protocol_cb_432 }, - { "433", /* nickname already in use */ 1, 0, &irc_protocol_cb_433 }, - { "436", /* nickname collision */ 1, 0, &irc_protocol_cb_generic_error }, - { "437", /* nick/channel unavailable */ 1, 0, &irc_protocol_cb_437 }, - { "438", /* not authorized to change nickname */ 1, 0, &irc_protocol_cb_438 }, - { "441", /* user not in channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "442", /* not on channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "443", /* user already on channel */ 1, 0, &irc_protocol_cb_generic_error }, - { "444", /* user not logged in */ 1, 0, &irc_protocol_cb_generic_error }, - { "445", /* summon has been disabled */ 1, 0, &irc_protocol_cb_generic_error }, - { "446", /* users has been disabled */ 1, 0, &irc_protocol_cb_generic_error }, - { "451", /* you are not registered */ 1, 0, &irc_protocol_cb_generic_error }, - { "461", /* not enough parameters */ 1, 0, &irc_protocol_cb_generic_error }, - { "462", /* you may not register */ 1, 0, &irc_protocol_cb_generic_error }, - { "463", /* your host isn't among the privileged */ 1, 0, &irc_protocol_cb_generic_error }, - { "464", /* password incorrect */ 1, 0, &irc_protocol_cb_generic_error }, - { "465", /* you are banned from this server */ 1, 0, &irc_protocol_cb_generic_error }, - { "467", /* channel key already set */ 1, 0, &irc_protocol_cb_generic_error }, - { "470", /* forwarding to another channel */ 1, 0, &irc_protocol_cb_470 }, - { "471", /* channel is already full */ 1, 0, &irc_protocol_cb_generic_error }, - { "472", /* unknown mode char to me */ 1, 0, &irc_protocol_cb_generic_error }, - { "473", /* cannot join channel (invite only) */ 1, 0, &irc_protocol_cb_generic_error }, - { "474", /* cannot join channel (banned from channel) */ 1, 0, &irc_protocol_cb_generic_error }, - { "475", /* cannot join channel (bad channel key) */ 1, 0, &irc_protocol_cb_generic_error }, - { "476", /* bad channel mask */ 1, 0, &irc_protocol_cb_generic_error }, - { "477", /* channel doesn't support modes */ 1, 0, &irc_protocol_cb_generic_error }, - { "481", /* you're not an IRC operator */ 1, 0, &irc_protocol_cb_generic_error }, - { "482", /* you're not channel operator */ 1, 0, &irc_protocol_cb_generic_error }, - { "483", /* you can't kill a server! */ 1, 0, &irc_protocol_cb_generic_error }, - { "484", /* your connection is restricted! */ 1, 0, &irc_protocol_cb_generic_error }, - { "485", /* user is immune from kick/deop */ 1, 0, &irc_protocol_cb_generic_error }, - { "487", /* network split */ 1, 0, &irc_protocol_cb_generic_error }, - { "491", /* no O-lines for your host */ 1, 0, &irc_protocol_cb_generic_error }, - { "501", /* unknown mode flag */ 1, 0, &irc_protocol_cb_generic_error }, - { "502", /* can't change mode for other users */ 1, 0, &irc_protocol_cb_generic_error }, - { "671", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_whois_nick_msg }, - { "728", /* quietlist */ 1, 0, &irc_protocol_cb_728 }, - { "729", /* end of quietlist */ 1, 0, &irc_protocol_cb_729 }, - { "730", /* monitored nicks online */ 1, 0, &irc_protocol_cb_730 }, - { "731", /* monitored nicks offline */ 1, 0, &irc_protocol_cb_731 }, - { "732", /* list of monitored nicks */ 1, 0, &irc_protocol_cb_732 }, - { "733", /* end of monitor list */ 1, 0, &irc_protocol_cb_733 }, - { "734", /* monitor list is full */ 1, 0, &irc_protocol_cb_734 }, - { "900", /* logged in as (SASL) */ 1, 0, &irc_protocol_cb_900 }, - { "901", /* you are now logged in */ 1, 0, &irc_protocol_cb_901 }, - { "902", /* SASL authentication failed (account locked/held) */ 1, 0, &irc_protocol_cb_sasl_end_fail }, - { "903", /* SASL authentication successful */ 1, 0, &irc_protocol_cb_sasl_end_ok }, - { "904", /* SASL authentication failed */ 1, 0, &irc_protocol_cb_sasl_end_fail }, - { "905", /* SASL message too long */ 1, 0, &irc_protocol_cb_sasl_end_fail }, - { "906", /* SASL authentication aborted */ 1, 0, &irc_protocol_cb_sasl_end_fail }, - { "907", /* You have already completed SASL authentication */ 1, 0, &irc_protocol_cb_sasl_end_ok }, - { "936", /* censored word */ 1, 0, &irc_protocol_cb_generic_error }, - { "973", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason }, - { "974", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason }, - { "975", /* whois (secure connection) */ 1, 0, &irc_protocol_cb_server_mode_reason }, - { NULL, 0, 0, NULL } - }; + + struct t_irc_protocol_msg irc_protocol_messages[] = { + /* format: "command", decode_color, keep_trailing_spaces, func_cb */ + IRCB(account, 1, 0, account), /* account (cap account-notify) */ + IRCB(authenticate, 1, 0, authenticate), /* authenticate */ + IRCB(away, 1, 0, away), /* away (cap away-notify) */ + IRCB(cap, 1, 0, cap), /* client capability */ + IRCB(chghost, 1, 0, chghost), /* user/host change (cap chghost) */ + IRCB(error, 1, 0, error), /* error received from server */ + IRCB(fail, 1, 0, fail), /* error received from server */ + IRCB(invite, 1, 0, invite), /* invite a nick on a channel */ + IRCB(join, 1, 0, join), /* join a channel */ + IRCB(kick, 1, 1, kick), /* kick a user */ + IRCB(kill, 1, 1, kill), /* close client-server connection */ + IRCB(mode, 1, 0, mode), /* change channel or user mode */ + IRCB(nick, 1, 0, nick), /* change current nickname */ + IRCB(note, 1, 0, note), /* note received from server */ + IRCB(notice, 1, 1, notice), /* send notice message to user */ + IRCB(part, 1, 1, part), /* leave a channel */ + IRCB(ping, 1, 0, ping), /* ping server */ + IRCB(pong, 1, 0, pong), /* answer to a ping message */ + IRCB(privmsg, 1, 1, privmsg), /* message received */ + IRCB(quit, 1, 1, quit), /* close all connections and quit */ + IRCB(topic, 0, 1, topic), /* get/set channel topic */ + IRCB(wallops, 1, 1, wallops), /* wallops */ + IRCB(warn, 1, 0, warn), /* warning received from server */ + IRCB(001, 1, 0, 001), /* a server message */ + IRCB(005, 1, 0, 005), /* a server message */ + IRCB(008, 1, 0, 008), /* server notice mask */ + IRCB(221, 1, 0, 221), /* user mode string */ + IRCB(223, 1, 0, whois_nick_msg), /* whois (charset is) */ + IRCB(264, 1, 0, whois_nick_msg), /* whois (encrypted connection) */ + IRCB(275, 1, 0, whois_nick_msg), /* whois (secure connection) */ + IRCB(276, 1, 0, whois_nick_msg), /* whois (client cert. fingerprint)*/ + IRCB(301, 1, 1, 301), /* away message */ + IRCB(303, 1, 0, 303), /* ison */ + IRCB(305, 1, 0, 305), /* unaway */ + IRCB(306, 1, 0, 306), /* now away */ + IRCB(307, 1, 0, whois_nick_msg), /* whois (registered nick) */ + IRCB(310, 1, 0, whois_nick_msg), /* whois (help mode) */ + IRCB(311, 1, 0, 311), /* whois (user) */ + IRCB(312, 1, 0, 312), /* whois (server) */ + IRCB(313, 1, 0, whois_nick_msg), /* whois (operator) */ + IRCB(314, 1, 0, 314), /* whowas */ + IRCB(315, 1, 0, 315), /* end of /who list */ + IRCB(317, 1, 0, 317), /* whois (idle) */ + IRCB(318, 1, 0, whois_nick_msg), /* whois (end) */ + IRCB(319, 1, 0, whois_nick_msg), /* whois (channels) */ + IRCB(320, 1, 0, whois_nick_msg), /* whois (identified user) */ + IRCB(321, 1, 0, 321), /* /list start */ + IRCB(322, 1, 0, 322), /* channel (for /list) */ + IRCB(323, 1, 0, 323), /* end of /list */ + IRCB(324, 1, 0, 324), /* channel mode */ + IRCB(326, 1, 0, whois_nick_msg), /* whois (has oper privs) */ + IRCB(327, 1, 0, 327), /* whois (host) */ + IRCB(328, 1, 0, 328), /* channel URL */ + IRCB(329, 1, 0, 329), /* channel creation date */ + IRCB(330, 1, 0, 330_343), /* is logged in as */ + IRCB(331, 1, 0, 331), /* no topic for channel */ + IRCB(332, 0, 1, 332), /* topic of channel */ + IRCB(333, 1, 0, 333), /* topic info (nick/date) */ + IRCB(335, 1, 0, whois_nick_msg), /* is a bot on */ + IRCB(338, 1, 0, 338), /* whois (host) */ + IRCB(341, 1, 0, 341), /* inviting */ + IRCB(343, 1, 0, 330_343), /* is opered as */ + IRCB(344, 1, 0, 344), /* channel reop */ + IRCB(345, 1, 0, 345), /* end of channel reop list */ + IRCB(346, 1, 0, 346), /* invite list */ + IRCB(347, 1, 0, 347), /* end of invite list */ + IRCB(348, 1, 0, 348), /* channel exception list */ + IRCB(349, 1, 0, 349), /* end of channel exception list */ + IRCB(351, 1, 0, 351), /* server version */ + IRCB(352, 1, 0, 352), /* who */ + IRCB(353, 1, 0, 353), /* list of nicks on channel */ + IRCB(354, 1, 0, 354), /* whox */ + IRCB(366, 1, 0, 366), /* end of /names list */ + IRCB(367, 1, 0, 367), /* banlist */ + IRCB(368, 1, 0, 368), /* end of banlist */ + IRCB(369, 1, 0, whowas_nick_msg), /* whowas (end) */ + IRCB(378, 1, 0, whois_nick_msg), /* whois (connecting from) */ + IRCB(379, 1, 0, whois_nick_msg), /* whois (using modes) */ + IRCB(401, 1, 0, generic_error), /* no such nick/channel */ + IRCB(402, 1, 0, generic_error), /* no such server */ + IRCB(403, 1, 0, generic_error), /* no such channel */ + IRCB(404, 1, 0, generic_error), /* cannot send to channel */ + IRCB(405, 1, 0, generic_error), /* too many channels */ + IRCB(406, 1, 0, generic_error), /* was no such nick */ + IRCB(407, 1, 0, generic_error), /* was no such nick */ + IRCB(409, 1, 0, generic_error), /* no origin */ + IRCB(410, 1, 0, generic_error), /* no services */ + IRCB(411, 1, 0, generic_error), /* no recipient */ + IRCB(412, 1, 0, generic_error), /* no text to send */ + IRCB(413, 1, 0, generic_error), /* no toplevel */ + IRCB(414, 1, 0, generic_error), /* wilcard in toplevel domain */ + IRCB(421, 1, 0, generic_error), /* unknown command */ + IRCB(422, 1, 0, generic_error), /* MOTD is missing */ + IRCB(423, 1, 0, generic_error), /* no administrative info */ + IRCB(424, 1, 0, generic_error), /* file error */ + IRCB(431, 1, 0, generic_error), /* no nickname given */ + IRCB(432, 1, 0, 432), /* erroneous nickname */ + IRCB(433, 1, 0, 433), /* nickname already in use */ + IRCB(436, 1, 0, generic_error), /* nickname collision */ + IRCB(437, 1, 0, 437), /* nick/channel unavailable */ + IRCB(438, 1, 0, 438), /* not auth. to change nickname */ + IRCB(441, 1, 0, generic_error), /* user not in channel */ + IRCB(442, 1, 0, generic_error), /* not on channel */ + IRCB(443, 1, 0, generic_error), /* user already on channel */ + IRCB(444, 1, 0, generic_error), /* user not logged in */ + IRCB(445, 1, 0, generic_error), /* summon has been disabled */ + IRCB(446, 1, 0, generic_error), /* users has been disabled */ + IRCB(451, 1, 0, generic_error), /* you are not registered */ + IRCB(461, 1, 0, generic_error), /* not enough parameters */ + IRCB(462, 1, 0, generic_error), /* you may not register */ + IRCB(463, 1, 0, generic_error), /* host not privileged */ + IRCB(464, 1, 0, generic_error), /* password incorrect */ + IRCB(465, 1, 0, generic_error), /* banned from this server */ + IRCB(467, 1, 0, generic_error), /* channel key already set */ + IRCB(470, 1, 0, 470), /* forwarding to another channel */ + IRCB(471, 1, 0, generic_error), /* channel is already full */ + IRCB(472, 1, 0, generic_error), /* unknown mode char to me */ + IRCB(473, 1, 0, generic_error), /* cannot join (invite only) */ + IRCB(474, 1, 0, generic_error), /* cannot join (banned) */ + IRCB(475, 1, 0, generic_error), /* cannot join (bad key) */ + IRCB(476, 1, 0, generic_error), /* bad channel mask */ + IRCB(477, 1, 0, generic_error), /* channel doesn't support modes */ + IRCB(481, 1, 0, generic_error), /* you're not an IRC operator */ + IRCB(482, 1, 0, generic_error), /* you're not channel operator */ + IRCB(483, 1, 0, generic_error), /* you can't kill a server! */ + IRCB(484, 1, 0, generic_error), /* your connection is restricted! */ + IRCB(485, 1, 0, generic_error), /* user immune from kick/deop */ + IRCB(487, 1, 0, generic_error), /* network split */ + IRCB(491, 1, 0, generic_error), /* no O-lines for your host */ + IRCB(501, 1, 0, generic_error), /* unknown mode flag */ + IRCB(502, 1, 0, generic_error), /* can't chg mode for other users */ + IRCB(671, 1, 0, whois_nick_msg), /* whois (secure connection) */ + IRCB(728, 1, 0, 728), /* quietlist */ + IRCB(729, 1, 0, 729), /* end of quietlist */ + IRCB(730, 1, 0, 730), /* monitored nicks online */ + IRCB(731, 1, 0, 731), /* monitored nicks offline */ + IRCB(732, 1, 0, 732), /* list of monitored nicks */ + IRCB(733, 1, 0, 733), /* end of monitor list */ + IRCB(734, 1, 0, 734), /* monitor list is full */ + IRCB(900, 1, 0, 900), /* logged in as (SASL) */ + IRCB(901, 1, 0, 901), /* you are now logged in */ + IRCB(902, 1, 0, sasl_end_fail), /* SASL auth failed (acc. locked) */ + IRCB(903, 1, 0, sasl_end_ok), /* SASL auth successful */ + IRCB(904, 1, 0, sasl_end_fail), /* SASL auth failed */ + IRCB(905, 1, 0, sasl_end_fail), /* SASL message too long */ + IRCB(906, 1, 0, sasl_end_fail), /* SASL authentication aborted */ + IRCB(907, 1, 0, sasl_end_ok), /* already completed SASL auth */ + IRCB(936, 1, 0, generic_error), /* censored word */ + IRCB(973, 1, 0, server_mode_reason), /* whois (secure conn.) */ + IRCB(974, 1, 0, server_mode_reason), /* whois (secure conn.) */ + IRCB(975, 1, 0, server_mode_reason), /* whois (secure conn.) */ + { NULL, 0, 0, NULL }, + }; if (!msg_command) return; diff --git a/src/plugins/irc/irc-protocol.h b/src/plugins/irc/irc-protocol.h index 950a785f7..29d27a08d 100644 --- a/src/plugins/irc/irc-protocol.h +++ b/src/plugins/irc/irc-protocol.h @@ -34,6 +34,12 @@ int argc, \ char **argv, \ char **argv_eol) +#define IRCB(__message, __decode_color, __keep_trailing_spaces, \ + __func_cb) \ + { #__message, \ + __decode_color, \ + __keep_trailing_spaces, \ + &irc_protocol_cb_##__func_cb } #define IRC_PROTOCOL_MIN_ARGS(__min_args) \ (void) date; \ diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp index 4fd7bb5b4..596a040aa 100644 --- a/tests/unit/plugins/irc/test-irc-protocol.cpp +++ b/tests/unit/plugins/irc/test-irc-protocol.cpp @@ -607,6 +607,31 @@ TEST(IrcProtocolWithServer, error) server_recv ("ERROR :Closing Link: irc.server.org (Bad Password)"); } +/* + * Tests functions: + * irc_protocol_cb_fail + */ + +TEST(IrcProtocolWithServer, fail) +{ + server_recv (":server 001 alice"); + + /* not enough arguments */ + server_recv (":server FAIL"); + server_recv (":server FAIL *"); + server_recv (":server FAIL COMMAND"); + + server_recv (":server FAIL * TEST"); + server_recv (":server FAIL * TEST :the message"); + server_recv (":server FAIL * TEST TEST2"); + server_recv (":server FAIL * TEST TEST2 :the message"); + + server_recv (":server FAIL COMMAND TEST"); + server_recv (":server FAIL COMMAND TEST :the message"); + server_recv (":server FAIL COMMAND TEST TEST2"); + server_recv (":server FAIL COMMAND TEST TEST2 :the message"); +} + /* * Tests functions: * irc_protocol_cb_invite @@ -936,6 +961,31 @@ TEST(IrcProtocolWithServer, nick) STRCMP_EQUAL("bob2", ptr_server->last_channel->name); } +/* + * Tests functions: + * irc_protocol_cb_note + */ + +TEST(IrcProtocolWithServer, note) +{ + server_recv (":server 001 alice"); + + /* not enough arguments */ + server_recv (":server NOTE"); + server_recv (":server NOTE *"); + server_recv (":server NOTE COMMAND"); + + server_recv (":server NOTE * TEST"); + server_recv (":server NOTE * TEST :the message"); + server_recv (":server NOTE * TEST TEST2"); + server_recv (":server NOTE * TEST TEST2 :the message"); + + server_recv (":server NOTE COMMAND TEST"); + server_recv (":server NOTE COMMAND TEST :the message"); + server_recv (":server NOTE COMMAND TEST TEST2"); + server_recv (":server NOTE COMMAND TEST TEST2 :the message"); +} + /* * Tests functions: * irc_protocol_cb_notice @@ -1262,6 +1312,31 @@ TEST(IrcProtocolWithServer, wallops) server_recv (":alice!user@host WALLOPS :message from admin"); } +/* + * Tests functions: + * irc_protocol_cb_warn + */ + +TEST(IrcProtocolWithServer, warn) +{ + server_recv (":server 001 alice"); + + /* not enough arguments */ + server_recv (":server WARN"); + server_recv (":server WARN *"); + server_recv (":server WARN COMMAND"); + + server_recv (":server WARN * TEST"); + server_recv (":server WARN * TEST :the message"); + server_recv (":server WARN * TEST TEST2"); + server_recv (":server WARN * TEST TEST2 :the message"); + + server_recv (":server WARN COMMAND TEST"); + server_recv (":server WARN COMMAND TEST :the message"); + server_recv (":server WARN COMMAND TEST TEST2"); + server_recv (":server WARN COMMAND TEST TEST2 :the message"); +} + /* * Tests functions: * irc_protocol_cb_001 (connected to IRC server, empty)